服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。DNS 介绍
DNS 由来
DNS 全名是 Domain Name System, 透过 DNS 系统, 我们可以由一部机器的 domain name 查其 IP, 也可以由机器的 IP 反查它的 domain name, 除此之外 DNS 还与 Mail System 结合, 提供 Mail routing 的功能
早期这个 domain name 与 IP 的对应表是记在每部机器的 /etc/host 这个档案, 当电脑个数不多还好, 但是电脑数目一多就会发生问题了, 主要有下列问题
1 Traffic & Load
2 Conflict
3 Consistency
因为用 hosts 记录 domain name <-> ip mapping 有上述问题, 所以后来发展出 DNS
Domain Name Space
整个 INTERNET 上的电脑如此众多, 如何保证两部电脑不会有相同的 domain name/IP 是一个很重要的问题 几个重要的观念如下
1 Domain (网域)
将整个 internet 分成许多 domain, 每个 domain 下又细分为许多 domain, 然后这些细分的 domain 视实际需求又再细分成许多 domain, 一直循环下去
基本上每个 domain 内的 mapping 由一部主机负责管理
top level domain - com, edu, gov, mil, net, org, int (现在又多出许多 top domain 了如 isp, art 等)
2 Delegation (授权)
刚才提到每个 domain 都可因实际需求再细分成许多 sub domain 上层的 domain 可以将其分出的某个 sub domain 的 domain name 与 IP mapping 交由另一部机器管理, 这个动作我们称之为 delegation
3Forward/Reverse(正解/反解)
在讲到 domain name <-> IP mapping, 其实应该看成两个命名空间:
一个是 domain name -> IP, 称之为 forward mapping, 在这个命名空间中就是先分成前面提到的那些 top domain, 再细分 sub domain, 再细分
比如说 winniecorphpcom -> 1516192152 代表在负责 corphpcom 这个 sub domain 的机器上, 可以查到其 mapping table 上有一笔记录是 winnie -> 1516192152
一个是 IP -> domain name 称为 reverse mapping 在这个命名空间中, 所有的 IP 组成一个叫作 arpain-addr 的 top domain, 然后再依 IP 层层细分
比如说 1516192152 -> winniecorphpcom 代表在负责 1921615in-addrarpa(注意是反过来写, 因为 top domain 要在最后面) 这个 sub domain 的机器上, 可以查到其 mapping table 上有一笔记录是 152 -> winniecophpcom
值得注意的是:
a 负责 forward mapping 和 reverse mapping 的机器不一定是同一部
负责 corphpcom domain 与负责 1921615in-addrarpa 的机器不一定是同一部机器, 即使在同一部机器, 如果不注意的话, 两边的内容可能也会有不 match 的情形
b domain 与 ip subnet 并没有一对一关系
举例而言成大电机的 domain 是 eenckuedutw, 但是因为成大电机内部机器数多的关系, 所用到的 IP subnet 有 14011672, 1401649, 140116163, 140116156, 140116227 共 5 组
Name Server
负责记录 forward/reverse mapping 的机器会执行一个叫 name server 的软体, 透过这个软体回应来自其它机器对 domain name 或 IP 的查询
1 zone & domain
上面提到基本上每个 domain交由一个机器来负责, 其实更精确地说应该是每个 zone 交由一个 name server 来负责, 所谓 zone 就是把一个 domain 扣掉分给下层负责的部份, 剩下来的就是 zone
2 Primary/Secondary
每个 zone 交由一部 name server负责的作法会有一个问题, 万一这个 name server 当掉, 可能造成 INTERNET 上其它机器无法取得属於这个 zone 的资料(就是 domain name 和 ip mapping) 为了避免这种情形, 我们可以把这个 zone 的资料同时交给多部 name server 负责原本的这部称为 primary name server, 其它的称为 secondary name server Secondary name server 会定期将 primary name server 上 zone 的资料拷贝一份下来备用
对於上层的 name server 而言, 它只是设定某个 zone 同时 delegate 给一部以上的下层 dns server, 但是它并不去分辨谁是真正的 primary, 谁是 secondary 它只是依据顺序寻问, 当第一部负责某个 zone 的 dns server 当掉时, 它会依序找下一个负责的 dns server
ps: primary/secondary 在新版 name server 程式中改称为 master/slave
Name Resolution (名称解析, 名称查询)
接下来我们介绍名称查询运作时一些重要名词或观念
1 Resolver
相当於是 DNS server 的 client 端, 通常是以函式库的方式被放在整套作业系统中, 各类的应用程式经由呼叫这个 resolver 函式库可以很容易地向 DNS server 进行查询, 得到所要的资料
2 Root Name Server
在查询资料时, 总是要有一个起点, 当一个 local DNS server 收到来自 client 端关於一个 domain name 的查询, 这个 local DNS server 怎麼知道这个 domain name 的相关资料是记录在 INTERNET 中的哪一个 DNS 上呢
答案是向 root name server 寻问 root name server 记录了各 top domain 分别是由哪些 DNS server 负责 比如说要找 >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)