Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7749
  • 博文数量: 4
  • 博客积分: 150
  • 博客等级: 入伍新兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-09 22:40
文章分类
文章存档

2012年(4)

我的朋友
最近访客

分类: LINUX

2012-12-09 22:50:17

大家在把自己的机器连到一个 T C P / I P 网络上时,肯定会碰到许多问题,比如如何处理 I P 地址和主机名,有时甚至还会碰到路由问题。本章将为大家提供相关背景,帮助大家尽快了 解安装时需要什么,下一章将为大家介绍几个处理这些问题的工具。

2.1 网络接口
先撇开联网环境中的设备可能不同这一情况。 T C P / I P 定 义 了 一 个 抽 象 接 口 , 所 有 对 设 备 的访问都将通过这一接口。该接口为所有类型的硬件设备提供了同一个操作集,基本上用于 包的收发。
针对准备用于联网的各个外设,内核中都必须有相应的接口。比如,以太网接口即称为
e t h 0 和 e t h 1 , S L I P 接口称为 s l 0 、 s l l , 以 此 类 推 。 在 打 算 针 对 内 核 对 特 定 的 物 理 设 备 命 名 时 , 出于配置上的需要,可使用这些接口名。除此以外,它们没有别的用途。
如果要在 T C P / I P 联网中使用接口,必须为它(它们)分配 I P 地 址 , 藉 此 向 网 络 中 的 其 他 机器标识自己。这个地址不同于上面所提的接口名;打个比喻说,如果把接口比作门,那么, 其 I P 地址就是钉在这扇门上的门牌号。
当然,还需要设立别的设备参数;其中之一便是特定的硬件能够处理的数据报的最大字 节数,也叫作“最大传输单元”或 M T U。其他属性,我们将在后续章节中讨论。 
2.2 IP地址
正如前面提到的那样, I P 联网协议能够识别的地址是一个 3 2 位 的 编 号 。 在 网 络 环 境 中 , 为每台机器分配的编号必须是独一无二的。如果你运行的是局域网,而且没有与其他网络进 行 T C P / I P 通信传输,就可以按自己的喜好,为各台机器分配编号。但是,如果运行的是面向 因特网的网站,其编号必须由 ICANN()分配。
为便于理解,I P 地址由四个 8位编号(叫做8位元)组成。比如, q u a r k . p h y s i c s . g r o u c h o . e d u 有 一个 I P 地址是 0 x 9 5 4 C 0 C 0 4 ,该地址表示为 1 4 9 . 7 6 . 1 2 . 4 。 这 一 格 式 就 是 人 们 常 说 的 点 分 四 段 式。
采 用 点 分 四 段 式 的 另 一 个 原 因 是 I P 地 址 由 两 大 部 分 组 成 : 网 络 部 分 ( 即 排 在 前 面 的 8 位元) 和主机部分(其余的)。根据网络的大小,主机编号可大可小。
为适应不同的需求,这里为大家列出了几类 I P 编址,它们定义 I P 地 址 的 不 同 划 分 方 式 :
■ 范围在 1 . 0 . 0 . 0 到 1 2 7 . 0 . 0 . 0 之间的 A 类地址。这类地址的网络部分在第一个 8 位元内。 A 类 编址提供了一个 2 4位的主机编号,也就是说,网络中的主机可以多达 1 6 0 万台。 
■ 范围在 1 2 8 . 0 . 0 . 0 和 1 9 1 . 2 5 5 . 0 . 0 之间的 B 类地址。网络部分在前两个 8 位元中。可接纳 16 320个网络,而每个网络可接纳 65 024台主机
■ 范围在 1 9 2 . 0 . 0 . 0 和 2 2 3 . 2 5 5 . 2 5 5 . 0 之间的 C 类 地 址 , 其 网 络 部 分 在 前 三 个 8 位 元 内 。 可 接 纳近 2 0 0 万个网络, 2 5 4 台主机。
■ D 、 E 和 F 类地址的范围在 2 2 4 . 0 . 0 . 0 和 2 5 4 . 0 . 0 . 0 之 间 。 这 几 类 地 址 尚 处 于 实 验 阶 段 , 或 者 是为将来的应用而保留的,不指定任何网络。
回头看看前一章的示例,我们会发现 1 4 9 . 7 6 . 1 2 . 4 ( Q u a r k 的 I P 地址)指的是 B 类网络 1 4 9 . 7 6 . 0 . 0 中的 1 2 . 4 主机。
需要注意的是,有两个地址是保留地址,它们是: 0 . 0 . 0 . 0 和 1 2 7 . 0 . 0 . 0 。前者称为默认路由, 后者称为回送( l o o p b a c k)地址。默认路由和 I P 协 议 对 数 据 报 的 路 由 方 式 有 关 , 它 主 要 用 于 简 化 I P 路由选择信息,详情参见下一小节。回送地址1 2 7 . 0 . 0 . 0 是为本地主机的 I P 通 信 保 留 的 。 通 常, 1 2 7 . 0 . 0 . 1 这 个 地 址 是 分 配 给 本 地 主 机 上 的 特 殊 接 口 的 , 也 就 是 所 谓 的 “ 回 送 接 口 ” 
( l o o p b a c k i n t e r f a c e )。 回 送 接 口 就 像 一 个 封 闭 式 的 回 路 。 任 何 自 T C P 或 U D P 传 给 该 接 口 的 I P 包 都将被返回始发地,就像它们刚从某个网络返回一样。有了回送接口,就可以在单机主机上 开发和测试联网效果,利用网络软件了。这类情况并不罕见,比如,许多 U U C P 站 点 根 本 就 没 有 I P 连接功能,但人们仍然想在这些站点上运行 I N N新闻系统。
2.3 地址解析
现在,大家已经了解了 I P 地 址 的 构 成 情 况 , 可 能 还 想 进 一 步 了 解 它 们 是 如 何 用 于 以 太 网 , 为不同主机定址的。毕竟,以太网协议按 6 位 8位元编号(和 I P 地 址 完 全 没 有 关 系 ) 来 识 别 主 机。
是的,我们需要一种机制,能把 I P 地 址 映 射 为 以 太 网 地 址 。 这 就 是 所 谓 的 “ 地 址 解 析 协 议”(简称 A R P )。事实上,A R P 的 使 用 并 不 局 限 于 以 太 网 , 它 还 用 于 其 他 类 型 的 网 络 , 比 如 “ 火 腿 无 线 电 网 ”。 A R P 的 基 本 思 路 源 于 此 : 必 须 在 1 5 0 个 人 当 中 寻 找 一 个 名 为 某 某 的 人 , 大 多 
数人都会采用类似的办法— 四处转,高声呼叫他的名字,因为对方听到叫声,肯定会答应。 A R P 想找出与具体 I P 地 址 对 应 的 以 太 网 地 址 时 , 将 利 用 “ 广 播 ” 这 一 以 太 网 特 性 , 这 样 就能将一个数据报同步传递到网络中的各个角落。 A R P 发送的广播数据报中,包含一个 I P 地
址查询。每个收到广播数据报的主机都会将其中的 I P 地 址 和 它 自 己 的 进 行 比 较 , 如 果 相 同 , 就向发出查询的主机返回一个 A R P 应 答 。 这 样 一 来 , 发 出 查 询 的 主 机 就 可 以 从 收 到 的 应 答 中 , 获悉对方的以太网地址。
当然,有些人可能觉得奇怪:全世界的以太网举不胜举,主机是怎样在如此庞大的体系 中找到自己的目标的呢?要解决这一困惑,还需要了解路由选择,有了路由选择,才能够在 网络中找到一台主机的物理位置。这是我们下一小节的主题。
关于 A R P , 我 们 还 有 话 说 。 一 旦 主 机 知 道 了 自 己 想 要 的 以 太 网 地 址 , 它 就 会 把 该 地 址 保 存在它自己的 A R P 缓 冲 区 内 , 这 样 在 下 一 次 查 询 该 地 址 时 , 它 会 直 接 向 目 标 主 机 发 送 数 据 报 。 但是,要想永久性地保留该地址信息是很不明智的;比如说,远程主机的以太网卡可能因为 技 术 上 的 原 因 已 发 生 替 换 , 所 以 你 保 留 的 A R P 条 目 将 毫 无 意 义 。 因 此 , 要 执 行 另 一 次 I P 地址 查询,就应该时不时地丢弃 A R P 缓 冲 区 内 的 条 目 。
有时,还有必要找出与具体以太网地址相关联的 I P 地 址 。 比 如 说 , 想 从 网 络 上 的 一 台 服 务器启动无盘客户机这样的事,在局域网内是家常便饭。但是,无盘客户机事实上根本就没 有任何关于它自己的信息— 除开它自己的以太网地址!所以,它能做的只能是广播一条消 息,请求根服务器将它的 I P 地 址 告 诉 它 。 这 牵 涉 到 另 一 个 协 议 , 名 为 “ 逆 向 地 址 解 析 协 议 ”
(简称 R A R P )。它和 B O O T P 协 议 一 起 , 为 网 络 上 的 无 盘 客 户 机 的 启 动 运 行 定 义 一 个 进 程 。
2.4 IP路由 2.4.1 IP网络
大家可能有这种经历;在写信给某人时,通常会在信封上写明收信人的确切地址,指定 国家、地区、省份,城市以及详细到几栋几号。然后,再把信投入邮箱,邮政服务将把信送 达目的地:先送到指定国家,再由那个国家的邮政服务将其分发到相应的省或地区。邮政服 务的层次结构非常清楚:不管在哪里寄信,本地的邮政主管都知道信件投递路径,并将进行 信件转发,并不注重信件在目标国内的投递方式(注意,邮件投递系统只注重完成任务,而 不管如何去完成任务)。 
I P 网络其实与邮件投递系统类似。整个因特网由无数个称为独立系统的网络构成。每个 这样的系统都会在各自的成员主机之间执行路由,所以投递数据报的任务实际上就是找出通 往目标主机所在网络的路径。也就是说,只要数据报被传到特定网络上的任何一台主机,怎 样到达最终的目标主机,则由这个特定网络自行负责。
2.4.2 子网
我们还可以从被分为网络部分和主机部分的 I P 地址中,看出 I P 网 络 的 结 构 。 默 认 情 况 下 , 目标网络(即目标主机所处的网络)是从 I P 地址的网络部分衍生的。所以, I P 网 络 编 号 相 同 的主机应该处于同一个网络内,反之亦然。但一个独立系统中,往往包含不止一个 I P 网络。
由于一个网络可能由上百个小型网络集合而成,各小型网中还有诸如以太网的更小的物 理网络单元,所以,在这种网络内部提供类似于前面的方案是非常有意义的。这样,我们就 可以把 I P 网 络 分 成 若 干 个 子 网 。
子网主要负责从自己所处的 I P 网络,把数据报投到特定范围内的 I P 地址。 A 、 B 或 C 类地 址的识别,是通过 I P 地 址 的 网 络 部 分 来 完 成 的 。 但 是 现 在 的 网 络 编 号 被 扩 展 到 包 含 主 机 部 分 的位数。这些被视作子网编号的位数就是所谓的子网掩码(或网络掩码)所赋予的。它同样 是一个 3 2 位的编号,用于为 I P 地址的网络编号指定位掩码。 
G r o u c h o M a r x 大学 ( G M U ) 校 园 网 就 是 一 个 很 好 的 范 例 。 它 采 用 的 是 B 类 地 址 , 其 网 络 编 号 是 1 4 9 . 7 6 . 0 0 ,所以其网络掩码是 2 5 5 . 2 5 5 . 0 . 0 。
从其内部结构来说, G M U 大 学 校 园 网 由 若 干 个 小 型 网 组 成 , 比 如 各 个 系 的 局 域 网 。 所 以 , 这个 I P 网 络 被 分 为 2 5 4 个子网, I P 地址在 1 4 9 . 7 6 . 1 . 0 到 1 4 9 . 7 6 . 2 5 4 . 0 之 间 。 举 个 例 子 来 说 , 理 论 物 理 系 分 配 的 I P 地址是 1 4 9 . 7 6 . 1 2 . 0 。 校 园 主 干 网 的 地 址 是 1 4 9 . 7 6 . 1 . 0 。 这 些 子 网 共 享 同 一 个 I P 编号,其中的第三个 8 位元是用来区分它们的。所以,它们的子网掩码将是 2 5 5 . 2 5 5 . 2 5 5 . 0 。
值得注意的是子网只是一个网络内部分区。子网是由网络拥有者(或管理员)一手炮制 的。通常情况下,子网主要用于反映现有的地址边界,用于各子网间的物理上(两个以太网 之间)、管理上(两个系之间)或地理上的边界。但是,这类结构不仅会影响整个网络的内部 行为,而且子网只能本地识别,其地址仍然被看成是标准的 I P 地址。
2.4.3 网关 子网不仅能带来结构上的好处,还时常用来反映硬件边界。具体物理网络上的主机,比 如以太网,是非常受限的:它能够直接与之交谈的主机只能是本网络内的。要对其他的主机 进行访问,只有通过所谓的“网关”来进行。网关是同时连接两个或两个以上物理网络的主 机,被配置为执行网络间的包交换。
对 I P 网络来说,要想轻松识别主机是否在本地网络,不同的物理网络只能属于不同的 I P 网络。比如,网络编号 1 4 9 . 7 6 . 4 . 0是为数学系局域网上的主机保留的。在向 Q u a r k 发送一个数 据 报 时 , E r d o s 主 机 上 的 网 络 软 件 立 即 就 能 知 道 该 数 据 报 来 自 1 4 9 . 7 6 . 1 2 . 4 这个 I P 地 址 , 而 且 其 目标主机处于另一个物理网络上。因此,这个数据报只能通过一个网关(默认设置是 S o p h u s ) 抵达目的地。
S o p h u s本 身 连 接 了 两 个 子 网 : 数 学 系 的 局 域 网 和 校 园 主 干 网 。 它 分 别 通 过 两 个 不 同 的 接 口( e t h 0 和 f d d i 0 ) 访 问 这 两 个 子 网 。 现 在 , 我 们 为 这 个 网 关 分 配 什 么 样 的 I P 地 址 呢 ? 应 该 根 据 1 4 9 . 7 6 . 1 . 0 子网进行分配,还是根据 1 4 9 . 7 6 . 4 . 0 子 网 进 行 分 配 ? 
答案是:两者都要。在提到数学系局域网上的主机时,就应该用 1 4 9 . 7 6 . 4 . 1 这个 I P 地址; 在提及校园主干网上的主机时,就应该用 1 4 9 . 7 6 . 1 . 4 这个地址。
所以,这个网关就有两个 I P 地 址 。 这 两 个 地 址 — 还 有 其 相 应 的 网 络 掩 码 — 都 绑 在 接 口 上 ( 通 过 这 个 接 口 访 问 子 网 )。因此,接口和 S o p h u s 地址之间的对应关系就会像表 2 - 1 列出的 那样。
表 2 - 1 接口和 S o p h u s 地 址 之 间 的 对 应 关 系
最后一条说明的是回送接口 l 0 , 我 们 在 前 面 已 经 介 绍 过 它 。 注 意 , 随 两 个 子 网 上 的 主 机 同 时出现的还有两个地址。
一般说来,把地址附于主机和把地址附于其接口之间有些细微差别,但我们可以忽略它 们之间的差别。对处于同一个网络的主机来说,比如 E r d o s,一般能够很确切地指出主机的 I P 地址是多少。比如说,这是一个以太网接口,它的 I P 地 址 是 这 样 的 。 但 是 在 提 及 网 关 时 , 其 间的区别则是不容忽视的,必须指明地址是附于主机上,还是附于其接口上。
2.5 路由表
接下来的重头戏是:把数据报投到远程网络时, I P 协 议 是 如 何 选 择 网 关 的 。
在此之前,我们曾见过 E r d o s 网关的工作流程:它收到发向 Q u a r k 的 数 据 报 后 , 便 对 其 目 标地址进行检查,并发现其目标主机不在本地网络内。所以,它把该数据报发给默认网关
S o p h u s , 现 在 就 看 网 关 怎 样 运 作 了 。 S o p h u s 识别出 Q u a r k 不 在 它 直 接 连 接 的 任 何 一 个 网 络 内 , 所以,它就开始寻找另一个网关来接替它的工作。于是它选中了 N i e l s, 这 是 通 往 物 理 系 局 域 网的网关。如此一来, S o p h u s 就 需 要 更 多 的 信 息 , 把 目 标 网 络 和 一 个 适 当 的 网 关 关 联 起 用 。 
它采用的路由选择信息 I P 实 际 上 就 是 一 个 表 , 把 网 络 和 准 备 抵 达 的 网 关 链 接 起 来 。 一 般 说来,我们必须提供一个 c a t c h - a l l 条目 ( 默认路由 ) ;它是一个与 0 . 0 . 0 . 0 网 络 关 联 在 一 起 的 网 关 。 发向未知网络的所有包都会通过这个默认路由得以发送。针对 S o p h u s 网 关 , 它 的 路 由 表 就 像 表 2 - 2 一样:
 
对直接与 S o p h u s 连接的网络来说,通向它的路由不需要网关,所以显示的网关条目是“ - ”。
路 由 表 的 建 立 方 式 较 多 。 对 小 型 局 域 网 来 说 , 在 启 动 时 间 ( 参 见 第 3 章),利用 r o u t e 命令, 手工构建路由表并把它们投入 I P 网络,通常是最有效的。对于大型的网络,需要根据路由
d a e m o n, 在 运 行 时 构 建 路 由 表 并 适 时 进 行 调 整 ; 路 由 信 息 运 行 于 网 络 内 的 中 心 主 机 上 , 并 在 其成员网络间实行路由信息交换,从而计算最佳路由。
根据网络的不同大小,可能会用上不同的路由协议。对独立系统(比如 Groucho Marx校 园网)内的路由选择来说,将采用内部路由协议。最优秀的是 R I P 协 议 , 即 路 由 信 息 协 议 。 它 是由 B S D 路由 d a e m o n 实 施 的 。 针 对 独 立 系 统 间 的 路 由 , 则 必 须 使 用 诸 如 E G P ( 外 部 网 关 协 议 ) 或 B G P (边界网关协议)之类的外部路由协议;这类协议(包括 R I P ) 已 经 被 用 于 康 奈 尔 大 学 的通道 d a e m o n 中。 
度量值
基于 R I P 的 动 态 路 由 信 息 将 根 据 网 关 “ 跳 ”( h o p ) 数 来 选 定 抵 达 目 标 主 机 或 网 络 的 最 佳 路 由。也就是说,在抵达目标主机或网络之前,数据报必须经过的网关越少,其 R I P 级 别 就 越 高 。 一个网关即为一个跳。超长路由将被视为不可用路由而被丢弃。
要想利用 R I P来管理本地网络中的路由信息,必须在所有主机上运行 g a t e d (通道)。在启 动时,通道将对所有激活的接口进行检查。如果通道发现激活接口不止一个(不包括回送接 口在内),就会假设主机正在进行不同网络间的包交换,从而主动地进行路由信息的交换和广 播。如若不然,它就会被动地接收 R I P 更 新 信 息 , 更 新 本 地 路 由 表 中 的 信 息 。 
在广播本地路由表中的信息时,通道将对路由长度进行计算,也就是说用与路由表中的 条目关联在一起的度量值来衡量路由长度。这个度量值是系统管理员在配置路由时设置的, 它应该能反映出利用该路由产生的花费。因为,对主机直接连接的子网来说,通向它的路由 之度量值应该始终为 0,而对通过两个网关的路由,其度量值必须是 2。但需要注意的是,在 没有使用 R I P 或通道时,大可不必理睬度量值。

2.6 Internet控制消息协议
I P 还有一个“伴侣”协议。它就是 I n t e r n e t控制消息协议( I C M P ), 它 是 内 核 联 网 程 序 用 以 与错误消息和其他主机进行通信的协议。比方说,假设我们又回到 E r d o s ,并打算登录到 Q u a r k 的 1 2 3 4 5 端口,但这个端口上没有监听进程。所以,发向这个端口的第一个 T C P 包就会抵达 Q u a r k,网络层将认出这个包并立即向 E r d o s返回一条 I C M P 消息,指出“不能抵达指定端口”。
I C M P 能够识别的消息相当多,而且大多数都能对错误情况进行处理。然而,其中有一条非常有意思的消息,叫作“重定向”消息。它是在有更短路由的情况下,发现另一个主机 正把它用作一个网关时,由路由选择模块生成的。例如,在启动之后, S o p h u s的路由表可能 会不完整,其中包含通向数学系局域网和 F D D I 主干网的路由,以及通向 G r o u c h o计 算 中 心 的 网关( g c c 1 ) 的 默 认 路 由 。 因 此 , 任 何 一 个 发 向 Q u a r k 的 包 都 会 被 发 送 到 g c c 1 , 而 不 是 物 理 系 局域网的 N i e l s 网关。在收到这类包后, g c c 1将注意到这一路由非常糟糕,所以在把包转发到 N i e l s 时,向 S o p h u s返回一条 I C M P 重 定 向 消 息 , 并 将 最 佳 路 由 告 诉 它 。
现在看来,手动配置路由似乎比必须设立路由简单的多。但要注意,单纯依赖于动态路 由方案以及 R I P 和 I C M P 重定向消息,始终不是上策。在验证某些路由信息是否真正可靠时, I C M P 重定向消息和 R I P 能 够 提 供 的 选 择 很 少 , 甚 至 没 有 。 这 样 某 些 恶 意 的 、 一 无 是 处 的 包 将 扰乱你的整个网络通信,甚至可能导致网络瘫痪。鉴于此,联网程序有几个版本,对影响网 络路由的重定向消息进行了处理,令其只能对主机路由进行重定向。
2.7 域名系统 2.7.1 主机名解析 
如上所述, T C P / I P 连网协议中的地址利用的是 3 2 位 的 编 号 。 但 是 , 有 几 个 人 能 够 一 口 就 答上来,某某主机的 I P 地 址 是 什 么 呢 ? 因 此 , 主 机 一 般 都 有 一 个 “ 普 通 ” 的 ( 比 如 “ 高 斯 ” 或 “ 异 人 ”) 主 机 名 。 然 后 , 由 特 定 的 应 用 程 序 负 责 找 出 和 这 个 主 机 名 对 应 的 I P 地 址 。 这 个 过 程就叫作“主机名解析”。
对想找出与具体主机名对应的 I P 地址的应用程序来说,不必为主机和 I P 地 址 的 查 找 提 供 它自己的例程。相反地,它依靠大量的库函数进行透明操作,其中有: g e t h o s t b y n a m e ( 3 )和 g e t h o s t b y a d d r ( 3 ) 。按照惯例,这两个函数和大量的相关进程都被归在一个独立的库内,这个 库叫作解析器库; L i n u x 中,它们是属于标准 l i b c 的 。 所 以 说 白 了 , 这 个 函 数 集 合 就 是 “ 解 析 器”。
现在,在像以太网之类的小型网络上,甚至在一个以太网聚簇上,要维护主机名和 I P 地 址的对应表不是件难事。维护信息通常保存在一个名为 / e t c / h o s t s 的 文 件 中 。 在 增 添 或 删 除 主 机名或重新分配 I P 地 址 时 , 只 须 根 据 所 有 的 主 机 , 更 新 主 机 名 即 可 。 显 而 易 见 , 这 对 由 若 干 台机器组成的网络来说,是颇为头疼的。
要 解 决 这 一 问 题 , 方 法 之 一 是 N I S( 网 络 信 息 系 统 ),这是 S u n 公 司 开 发 的 。 简 单 地 说 , 叫 作 Y P 或黄页。 N I S把 主 机 文 件 ( 和 其 他 信 息 ) 保 存 在 一 个 主 要 主 机 的 数 据 库 内 , 客 户 机 如 有 需要,就可从该数据库内提取。但是,这个方法仍然只适用于中等大小的网络,比如局域网, 因为它只对整个主机数据库进行集中维护,并把它分发到各个服务器。
在因特网上,地址信息最初也是保存在一个独立的 H O S T S . T X T 数据库内。这个文件的维护 在“网络信息中心”(N I C)进行,而且必须由所有参与站点进行下载和安装。随着网络的扩大, 这一方案的问题就越来越突出。除了定期安装 H O S T S . T X T涉 及 的 管 理 开 销 外 , 各 个 服 务 器 的 下 载量也越来越大。更为严重的是,所有主机名都必须利用NIC进行注册,以保证主机名不重复。
这就是 1 9 8 4 年新的主机名解析方案出台的原因。它就是域名系统( D N S )。 D N S 是保 罗·莫克皮特里斯设计的,完满解决了上面提到的两大问题。 
 
2.7.2 输入DNS
D N S采 用 域 分 层 结 构 来 管 理 主 机 名 。 一 个 域 是 若 干 个 站 点 的 集 合 , 因 为 这 些 站 点 可 以 组 成 一 个 网 络 ( 例 如 , 校 园 网 内 的 所 有 机 器 , 或 B I T N E T 上 的 所 有 主 机 ), 而 且 因 为 它 们 都 属 于 某个特定的组织(比如美国政府),或仅仅因为它们的地理位置相当接近。例如,所有的大学 可 以 归 为 一 个 . e d u 域 , 而 各 个 大 学 或 学 院 又 分 为 一 个 单 独 的 子 域 。 如 果 为 G r o u c h o M a r x 大学 指定的是 g r o u c h o . e d u域,那么,为数学系局域网分配的域就是 m a t h s . g r o u c h o . e d u 。数学系局 域网内的各台主机分到的域就是再在前面的域名前加上主机名,比如 E r d o s 的就是 e r d o s . m a t h s . g r o u c h o . e d u 。 这 就 是 所 谓 的 “ 完 整 资 格 域 名 ”( F Q D N ), 它 能 够 唯 一 地 标 识 全 球 各地的主机。
这 个 域 分 层 结 构 的 根 是 一 个 单 独 的 点 ( . ), 名 副 其 实 地 称 作 根 域 ( r o o t d o m a i n ), 所 有 的 域都包含在这个根域内。为指明一个主机名的确是一个完整资格域,而不是相对于某一(隐 式)本地域的域名,有时会把它表示成一个追尾点。它表示该名的最后一个组件是根域。
根据其在域名分层结构中的位置,域可以称作顶级域、二级域或三级域。多级子分区不 是没有,但极为罕见。下面是一些大家经常能见到的顶级域:

 
  1.  
    从技术上来讲,前 4 个域属于 I n t e r n e t 的 美 国 部 分 。 但 这 个 域 中 同 样 包 含 有 非 美 国 站 点 。 特
    别是 . n e t 域 中 , 此 类 非 美 国 站 点 比 比 皆 是 。 但 是 , . m i l 和 . g o v 是 美 国 专 用 域 。 除美国外的其他国家都可以使用得名于 I S O - 3 1 6 6 中 定 义 的 两 个 字 母 , 来 作 为 其 顶 级 域 。
    比如芬兰,它使用的是 . f 域;法国使用的是 . f r 域;德国使用的是 . d e 域 ; 澳 大 利 亚 使 用 的 则 是 . a u域 。 在 这 个 顶 级 域 下 , 各 个 国 家 可 按 照 自 己 的 方 式 组 织 主 机 名 。 比 如 澳 大 利 亚 , 它 有 类 似于国际顶级域的二级域,名为c o m . a u和 e d u . a u 。其他的国家,比如德国,则不采用这种结构, 而 是 采 用 一 个 稍 长 的 名 字 直 接 指 向 正 在 运 行 特 殊 域 的 组 织 ( 或 企 业 )。例如, f t p . i n f o r m a t i k和 u n i - e r l a n g e n . d e此类的主机名是很不常见的,但在德国,类似的主机名却非常普遍。
    当然,这些国家域并不能代表这个域下面的主机真正就位于该国;它只是表示这台主机
    在这个国家的 N I C (国家 I n t e r n e t 中 心 ) 已 经 注 了 册 。 比 如 , 一 个 瑞 士 厂 商 可 能 在 澳 大 利 亚 有 一个分部,仍然可以用 . s e 顶 级 域 来 注 册 其 下 属 所 有 主 机 。
     
    现在,对域名分层结构内的域名空间进行组织,就能很好地解决域名唯一性的问题。利 用 D N S ,主机名在其自己所处的域内,必须是独一无二的,这样才能保证它的名字有别于全 球各地的主机。此外,完整资格域名也非常容易记,正因为有了它们,便可将一个大型的域 分成若干个子域。
    但 D N S 还有别的好处:它允许你选择子域内的授权者作为它的管理员。比如, G r o u c h o 计 
    算中心的维护人员可能为各系创建一个子域;我们已见识过数学系和物理系子域。在发现物
    理系局域网太大,太混乱,以至于很难自外部进行管理时(毕竟,学物理的人是出了名的 “ 放 荡 不 羁 ”), 计 算 中 心 的 维 护 人 员 会 把 p h y s i c s . g r o u c h o . e d u 域 的 控 制 权 移 交 给 该 网 络 的 管 理 员。然后,该网络的管理员就可能自由地使用自己喜欢的主机名,并在不与网络外部发生冲
    突的前提下,按照自己的方式为主机分配 I P 地址。 最后,域名空间分为若干个区,每个区都包含在一个域内。注意,区和域之间的细微差
    别: g r o u c h o . e d u 域内涵括 G r o u c h o M a r x 大 学 的 所 有 主 机 , 而 g r o u c h o . e d u 区 内 只 包 括 计 算 中 心 直接管理的主机,比如数学系局域网内的主机。而物理系的主机则属于另一个不同的区,名 为 p h y s i c s . g r o u c h o . e d u。
    2.7.3 利用DNS进行名字查找
    乍一看,域和区几乎令域名解析复杂不堪。毕竟,如果没有集中式授权机构对主机名分 配的控制,小小应用程序怎能识别出这些纷繁复杂的域名?
    现 在 该 来 谈 谈 D N S 的 妙 用 了 。 如 果 想 找 到 E r d o s 主机的 I P 地址, D N S 就 会 说 , 去 问 管 理 这 台主机的人,他们会告诉你的。
    事实上, D N S 是 一 个 巨 大 的 分 布 式 数 据 库 。 它 是 通 过 一 个 所 谓 的 “ 域 名 服 务 器 ” 来 实 现 的,这些域名服务器将提供具体域或域集合相关的信息。对每个区而言,至少有两个域名服 务器中保存有那个区中的所有主机之验证信息。要想获得 E r d o s 的 I P 地址,只须和 g r o u c h o . e d u 区的域名服务器进行沟通,然后,它就会返回你所需要的数据。
    大家可能会这样想:“说时容易,做时难。我怎样才能抵达 Groucho Marx大学的域名服务 器呢?”如果你的计算机没有装地址解析先知, D N S 有。在你的应用程序想查找关于 E r d o s 的 相关信息时,它会与一个本地域名服务器取得联系,该服务器将为此实施所谓的“交互式” 查询。向根域的一个域名服务器发出查询之后,该服务器便要求得到 e r d o s . m a t h s . g r o u c h o . e d u 的 I P 地址。根域名服务器认出这个名字不属于自己的辖区,而是属于 . e d u域 下 面 的 一 个 辖 区 。 所以,它就会要求你与 . e d u 区域名服务器取得联系,并将列有所有 . e d u 域 名 服 务 器 及 其 地 址 的 清单封装起来。然后,你的本地域名服务器将开始对清单中的域名服务器一一进行查找,比 如 a . i s i . e d u 域 名 服 务 器 。 它 采 用 的 方 式 类 似 于 根 域 名 服 务 器 的 方 式 , 它 知 道 g r o u c h o . e d u 处的人 们在运行它们自己的区,并把你引向他们的服务器。最后,本地域名服务器再向其中一个服 务器提出查找 E r d o s, E r d o s 所 在 的 域 名 服 务 器 认 出 它 是 属 于 自 己 这 一 区 之 后 , 便 返 回 其 对 应 的 I P 地址。
    现在看来,查找一个小小的 I P 地 址 似 乎 会 产 生 很 大 的 网 络 开 销 , 但 事 实 上 , 和 目 前 尚 未 解决的 H O S T S . T X T 传 输 比 较 起 来 , 简 直 不 足 一 提 。 但 仍 有 必 要 对 这 一 查 找 进 行 改 进 。 
    为了缩短查找时间,域名服务器将把获得的信息保存在自己的本地缓存内。所以,下一 次你的网络中,有人想查找 g r o u c h o . e d u 域内的主机之 I P 地 址 时 , 你 的 域 名 服 务 器 就 不 必 费 心 了 , 直 接 联 系 g r o u c h o . e d u域 名 服 务 器 即 可 。 如 果 域 名 服 务 器 不 保 存 获 得 的 信 息 , D N S 和其他 的方法一样糟糕,因为每次查找都涉及到根域名服务器。
    当然,域名服务器不会永久性地保存这一信息,隔段时间后,它就会丢弃这一信息。何 时丢弃由生存时间(也就是 T T L )决定。 D N S 数 据 库 中 的 每 项 资 料 都 有 一 个 由 区 管 理 员 分 配 的一个 T T L 。 2.7.4 域名服务器
    容纳某一区内主机信息的域名服务器叫做这个区的验证服务器,有时也被称为主域名服 务器。任何对区内主机的查询最终都会涉及到主域名服务器。
    为了保证整个区的连贯性,其主域名服务器必须能够得到同步更新。这是通过令其中一 个主域名服务器成为首要服务器来实现的。这个首要服务器定期令传输区数据的其他域名服 务器作为其从属服务器,从而从数据文件中载入该区信息。
    要有若干个域名服务器的原因之一是:分担工作负荷。另一个原因是备用。如果一个域 名服务器良性“失效”,比如系统崩溃或丢失网络链接时,所有的查询都会转向其他的服务器。 当然,这一方案并不能有效地避免服务器故障(导致所有的D N S 请 求 做 出 错 误 的 应 答 ) 和 服 务器程序本身出现软件错误。 
    当然,我们也可以设想一些域内不存在作为验证域名服务器的情况(但一个域名服务器 至 少 能 为 本 地 主 机 和 1 2 7 . 0 . 0 . 1 逆 向 查 找 提 供 域 名 服 务 )。 不 管 怎 么 说 , 这 类 服 务 器 都 是 相 当 有 用的,因为它仍然能够针对运行于本地网络的应用程序实施 D N S查 询 。 因 此 , 它 们 通 常 也 被 称为“ c a c h i n g - o n l y ”(只用于缓存)服务器。
    2.7.5 DNS数据库
    由上可知, D N S 不仅能够处理主机的 I P 地 址 , 还 能 够 交 换 关 于 域 名 服 务 器 的 信 息 。 事 实 上, D N S 数据库内可能有整整一打不同类型的条目。
    D N S 数据库内,一条单一的信息叫作一条资源记录,或简称 R R 。 每 条 记 录 都 有 一 个 与 之 关联的类型(描述了该记录代表的数据类别)和一个类(指定该记录适用的网络类型)。后者 可根据不同的编址方案(比如 I P 地址,是 I N 类; H e s i o d 网络则是 M I T ) 需 求 进 行 调 节 。 标 准 的资源记录类型是 A 记录,它把一个完整资格域名和一个 I P 地 址 关 联 在 一 起 。 
    当然,一个主机可以有若干个主机名。但是,必须将其中一个主机名标识为正式名或规 范名,而其他的则是可以代表前者的别名。其间的区别是:规范主机名是 A记录所关联的主机 名,而其他的则只有一条 C A N M E 类 型 的 记 录 , 该 记 录 指 向 规 范 主 机 名 。
    关于所有的记录类型,将留在下一章深入讨论。这里只是简要介绍一下。
    除了 A 和 C N A M E 类记录外,我们还看到文件顶部有一条特殊的记录。这是 S O A 资源记录, 表示Start of Authority,其中容纳服务器所属的区之普通信息。比如,它包含所有记录的默认 T T L 值。
    注 意 , 不 是 以 点 “ . ” 结 尾 的 示 范 文 件 中 , 所 有 主 机 名 都 应 该 被 解 释 为 与 g r o u c h o . e d u 域有 关。 S O A 记录中的特殊名“ @ ” 代 表 这 个 域 本 身 的 域 名 。
    由上可知, g r o u c h o . e d u 域 的 域 名 服 务 器 多 少 应 该 知 道 物 理 区 , 使 之 能 够 将 主 机 查 询 引 向 这些主机各自的域名服务器。这通常是通过两条记录来完成的:指定该服务器之 F Q D N 的 N S 记录和把地址与主机名关联在一起的 A记录。由于这两条记录把域名和空间集中保存在一起, 所有它们通常也被称作“ glue records”。对真正保存子区内主机相关信息的父区来说,它们是 唯一的记录实例。指向 p h y s i c s . g r o u c h o . e d u 域的域名服务器的 g l u e 记录如清单 2 - 1所示。 
    除了查找属于一个主机的 I P 地址外,我们有时还希望查找和 I P 地 址 对 应 的 规 范 主 机 名 。 这就是所谓的“逆向映射”,有几个网络服务用它来验证客户机的身份。在使用一个独立的主 机文件时,逆向查找只在该文件中查找问题中 I P 地址所对应的主机名。如果用 D N S ,当然还 要对问题外的名字空间进行彻底查找。 D N S创建了一个 i n - a d d r. a r p a特殊 域 , 其 中 包 含 所 有 主 机的 I P 地 址 , 这 些 地 址 采 用 的 格 式 是 点 分 四 段 式 。 例 如 , 1 4 9 . 7 6 . 1 2 . 4 这个 I P地 址 对 应 的 主 机 名 是 4 . 1 2 . 7 6 . 1 4 9 . i n - a d d r. a r p a 。把这些域名和其规范主机名链接起来的资源记录类型是 P T R 。具 体程序参见清单 2 - 2 。 

                                                     清单 2 - 2 G M U 采用的程序,摘自 n a m e d . h o s t s 文件     

        
    创建一个特区通常意味着其管理员能够拥有分配 I P 地 址 的 绝 对 支 配 权 。 由 于 他 们 手 中 有 一个或若干个 I P 网络或子网,所以 D N S 区和 I P 网 络 之 间 可 能 会 存 在 一 对 多 的 映 射 关 系 。 比 如 , 物理条由 1 4 9 . 7 6 . 8 . 0、 1 4 9 . 7 6 . 1 2 . 0 和 1 4 9 . 7 6 . 1 4 . 0 三 个 子 网 组 成 。
     
    结果是, i n - a d d r. a r p a 域 内 的 新 区 必 须 随 物 理 区 一 起 创 建 , 而 且 供 该 系 的 网 络 管 理 员 专 用 , 它们是: 8.76.149.in-addr.arpa、12.76.149.in-addr.arpa和14.76.149.in-addr.arpa。否则的话,在 C o l l i d e r 实验室安装一台新主机时,就会要求新区与其父域取得联系,以便将新地址输入它们 的in-addr.arpa区文件。
    子网 1 2 所用的区数据库参见清单 2 - 3 。
    清单2-3 子网12所用的数据库,摘自 in-addr.arpa文件 
     




    上面的记录产生的重要结果是验证区只能被视作 I P 网 络 的 超 级 子 集 , 而 且 更 严 格 地 说 , 这类网络的网络掩码必须根据字节边界来定。 Groucho Marx大学的所有子网的网络掩码都是 2 5 5 . 2 5 5 . 2 5 5 . 0 ,因此,应该为每个字网创建一个 i n - a d d r. a r p a区 。 但 是 , 如 果 各 子 网 的 网 络 掩 码是 2 5 5 . 2 5 5 . 2 5 5 . 1 2 8 ,我们就可以为子网 1 4 9 . 7 6 . 1 2 . 1 2 8 创建验证区,因为无法告知 D N S
    “12.76.149.in-addr.arpa域已经被分为两个特区,所以主机名分别是 1到127,和128到255”。


     
阅读(615) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~