一、DNS服务及协议
我们通常在配置网络设备时提供一个或者多个 DNS 服务器地址,DNS 客户端可以使用该地址进行域名解析。Internet 服务供应商往往会为 DNS 服务器提供地址。当用户的应用程序请求通过域名连入远程设备时,DNS 客户端将向某一域名服务器请求查询,获得域名解析后的数字地址。
用户还可以使用操作系统中名为 nslookup 的实用程序手动查询域名服务器,来解析给定的主机名。该实用程序也可以用于检修域名解析的故障,以及验证域名服务器的当前状态。
DNS 服务器使用域名守护程序(通常简称为 named 守护程序)提供域名解析。
DNS 服务器中存储不同类型的资源记录,用来解析域名。这些记录中包含域名、地址以及记录的类型。
这些记录有以下类型:
- A 记录 — 终端设备地址
- NS 记录 — 权威域名服务器
- CNAME 记录 — 别名的规范域名(或称为完全合格域名);适用环境是单一网络地址对应多个服务,但每个服务在 DNS 服务器上都有各自条目。
- MX 记录 — 邮件交换记录;它将域名映射到用于该域的一系列邮件交换服务器上。
当客户端提出查询请求时,服务器的 named 守护进程将首先检索自己的记录,以查看是否能够自行解析域名。如果服务器不能通过自身存储的记录解析域名,它将连接其它服务器对该域名进行解析。
该解析请求将会发送到很多服务器,因此需要耗费额外的时间,而且耗费带宽。当检索到匹配信息时,当前服务器将该信息返回至源请求服务器,并将匹配域名的数字地址临时保存在缓存中。
因此,当再次请求解析相同的域名时,第一台服务器就可以直接调用域名缓存中的地址。通过缓存机制,不但降低了 DNS 查询数据网络的流量,也减少了上层服务器工作的负载。在安装了 Windows 系统的个人电脑中,DNS 客户端服务可以预先在内存中存储已解析的域名,从而优化 DNS 域名解析性能。在 Windows XP 或者 Windows 2000 操作系统中,输入 ipconfig /displaydns 命令可以显示所有 DNS 缓存条目。
域名系统采用分级系统创建域名数据库,从而提供域名解析服务。该层级模型的外观类似一棵倒置的树,枝叶在下,而树根在上。
位于最高层的根域名服务器维护最高级域名服务器记录,而后者维护下一级域名服务器的记录,以此类推。
不同的顶层域有不同的含义,分别代表着组织类型或起源国家/地区。请参见如下顶级域名实例:
- .au — 澳大利亚
- .co — 哥伦比亚
- .com — 商业或行业
- .jp — 日本
- .org — 非营利组织
顶级域名下层为二级域名,二级域名下层还有其它更低级的域名。
每个域名的组成都是按照层级树由上而下的顺序排列。
例如,如图所示,根域名服务器可能并不知道电子邮件服务器 (mail.cisco.com) 的位置,但是它仍会把顶级域名中的“com”保存在域名记录中。“com”域中的服务器中也可能没有“mail.cisco.com”的记录,但这些服务器同样会保存“cisco.com”域名记录。由此,cisco.com 域中的服务器就可以拥有域名 mail.cisco.com 的记录(精确的 MX 记录)。
域名系统正是依靠这些分散的、分层级的服务器来保存并维护资源记录的。服务器根据资源记录中的域名列表解析域名,而备用服务器也可以处理域名解析请求。如果指定服务器中有与其域级别相对应的资源记录,则该服务器可以称为这些记录的主域名服务器。
例如,对于 mail.cisco.com 记录而言,它位于比 cisco.netacad.net 更高层级的服务器上(尤其是 cisco.com 域中的服务器上)。因此,cisco.netacad.net 域中的某个域名服务器就不是 mail.cisco.com 记录的主域名服务器。
二、分配地址
1、规划网络地址分配
规划 IPv4 编址方案的一个重要部分是确定使用私有地址的时间及其使用位置。
应该考虑的事项包括:
- 准备连接到网络的设备是否多于 ISP 为该网络分配的公有地址数?
- 是否需要从本地网络外部访问这些设备?
- 如果分配了私有地址的设备需要访问 Internet,网络能否提供网络地址转换 (NAT) 服务?
2、为其它设备分配地址
- 服务器和外围设备的地址
如图所示,任何网络资源(如服务器或打印机)都应该有一个静态 IPv4 地址。客户端使用这些设备的 IPv4 地址来访问这些资源。因此,每台此类服务器和外围设备都需要可以预测的地址。
服务器和外围设备是网络流量密集点。这些设备的 IPv4 地址发送和接收的数据包数量极大。网络管理员使用 Wireshark 之类工具监控网络流量时,需要具备快速识别这些设备的能力。对这些设备使用统一的编号系统有助于提高识别能力。
- 可以从 Internet 访问的主机的地址
在大多数网际网络中,只有少数设备可供企业外部的主机访问。通常,这些设备多半是某种类型的服务器。如同提供网络资源的所有网络设备一样,这些设备的 IPv4 地址也应该是静态地址。
对于可以通过 Internet 访问的服务器,每台服务器都必须有一个与之关联的公有空间地址。此外,任何此类设备的地址发生变更都将导致无法通过 Internet 访问此设备。在许多情况下,此类设备所在的网络都使用私有地址编号。这表示位于该网络边界的路由器或防火墙必须配置为将该服务器的内部地址转换为公有地址。鉴于边界中间设备中的这种额外配置,更加说明这些设备必须具有可以预测的地址。
- 中间设备的地址
中间设备也是网络流量密集点。网络内部或不同网络之间的所有流量几乎都要经过某种形式的中间设备。因此,这些网络设备是网络管理、网络监控和网络安全的理想位置。
大多数中间设备都分配了第 3 层地址,用于设备管理或满足其工作需要。集线器、交换机和无线接入点等设备作为中间设备运行时并不需要 IPv4 地址。但是,如果需要使用这些设备作为主机来配置网络、监控网络运行或排除运行故障,则需要为其分配地址。
由于我们需要知道与中间设备通信的途径,因此其地址应该可以预测。所以,通常我们会手动分配它们的地址。此外,这些设备的地址应该与用户设备地址位于网络地址块中不同的范围内。
- 路由器和防火墙
与上文提到的其它中间设备不同,路由器和防火墙设备的每个接口都分配了一个 IPv4 地址。每个接口位于不同的网络中并充当该网络中主机的网关。路由器接口一般使用网络中的最小地址或最大地址。企业内部所有网络之间的这种分配应该统一,这样,无论网络人员处理的是哪个网络,他们始终都能知道该网络的网关。
路由器和防火墙接口是传入和传出该网络的流量密集点。由于每个网络中的主机使用一个路由器或防火墙设备接口作为传出网络的网关,所以会有大量数据包流经这些接口。因此,这些设备可以在网络安全方面发挥重要作用,根据源 IPv4 地址和(或)目的 IPv4 地址过滤数据包。将不同类型的设备划分为逻辑地址组可以提高地址分配和这种数据包过滤操作的效率。
4、终端用户设备的静态和动态地址
- 用户设备的地址
在大部分数据网络中,数量最多的主机包括 PC、IP 电话、打印机和 PDA 之类的终端设备。由于这些主机是网络中数量最多的设备,因此应该将数量最多的地址分配给这些主机。
可以静态或动态的方式分配 IP 地址。
- 静态地址分配
采用静态方式分配时,网络管理员必须手动配置主机的网络信息。
与动态地址相比,静态地址具有一些优点。例如:对于打印机、服务器以及网络上的客户端需要访问的其它网络设备而言,静态地址就很实用。如果主机通常访问某个 IP 地址的服务器,如果该地址改变,就会导致一些问题。此外,静态分配地址信息还可以提高对网络资源的控制能力。但是,在每台主机上输入信息却非常耗时。
使用静态 IP 编址时,必须维护一份准确的清单,列出分配给每台设备的 IP 地址。这些地址是固定地址,因此通常不能重复使用。
- 动态地址分配
由于静态地址管理存在诸多问题,通常会使用动态主机配置协议 (DHCP) 为终端用户设备动态分配地址。
DHCP 可以自动分配 IP 地址、子网掩码、默认网关等地址信息和其它配置信息。DHCP 服务器的配置需要定义一个地址块,称为地址池,用于分配给网络中的 DHCP 客户端。应该规划分配给此地址池的地址,以便排除用于其它设备类型的所有地址。
在大型网络中,DHCP 一般是分配主机 IP 地址的首选方法,因为它可降低网络支持人员的工作负担,而且几乎可以杜绝任何输入错误。
DHCP 的另一个优点是,地址并非固定分配给主机而只是“租用”一段时间。如果主机关闭或离开网络,该地址就可返回池中供再次使用。此特征特别有助于在网络中进进出出的移动用户。
5、ISP
- ISP 的作用
大部分公司或组织从 ISP 获取 IPv4 地址块。ISP 通常将少量可用的 IPv4 地址(6 个或 14 个)作为服务的一部分提供给自己的客户。在确有合理需要并且支付额外服务费用的情况下,可以获取地址更多的地址块。
从某种意义而言,ISP 将这些地址出借或出租给组织使用。如果我们转而选择另一家 ISP 提供 Internet 连接,新的 ISP 将从其已经获得的地址块中为我们提供地址,而前一家 ISP 则将以前借用给我们的地址块收回,然后再分配给其他客户。
- ISP 服务
要访问 Internet 服务,必须通过 Internet 服务提供商 (ISP) 将数据网络连接到 Internet。
ISP 自己有一组内部数据网络,用于管理 Internet 连接并提供相关服务。ISP 通常还为客户提供其它服务,其中包括 DNS 服务、电子邮件服务和网站。取决于所需的服务级别和可用性,客户使用的 ISP 级别也不同。
- ISP 级别
根据 ISP 连接到 Internet 主干的等级,可以为 ISP 指定不同的层级。如图所示,较低的每级通过连接到上一级 ISP 而连接到主干。
- 第 1 级
第 1 级 ISP 位于 ISP 层级结构的顶端。这些 ISP 是直接连接到 Internet 的大型全国 ISP 或大型国际 ISP。第 1 级 ISP 的客户是下级 ISP 或大型公司与组织。由于他们位于 Internet 连接的顶端,因此需要设计高度可靠的连接和服务。用于支持这种可靠性的技术包括与 Internet 主干的多种连接。
对于第 1 级 ISP 的客户而言,主要优点是可靠性和速度。由于这些客户与 Internet 之间只有一个连接,因此发生故障或流量瓶颈的概率较低。第 1 级 ISP 客户的缺点是成本高。
- 第 2 级
第 2 级 ISP 从第 1 级 ISP 获取 Internet 服务。第 2 级 ISP 的服务对象一般集中于企业客户。第 2 级 ISP 提供的服务通常多于另外两级 ISP。这些第 2 级 ISP 一般都有 IT 资源,用于运行自己的服务,如 DNS、电子邮件服务器和 Web 服务器等。第 2 级 ISP 提供的其它服务包括网站开发和维护、电子商务和 VoIP。
与第 1 级 ISP 相比,第 2 级 ISP 的主要缺点是 Internet 接入速度较慢。由于第 2 级 ISP 距离 Internet 主干至少要远一个连接,因此其可靠性常常也低于第 1 级 ISP。
- 第 3 级
第 3 级 ISP 向第 2 级 ISP 购买 Internet 服务。这些 ISP 的业务重点是特定地区的零售和家庭市场。第 3 级客户通常不需要第 2 级客户所需的多项服务。他们需要的主要是连接和支持。
通常,这些客户具备的计算机或网络专业知识极少或根本不懂。第 3 级 ISP 常常将 Internet 连接作为他们与客户之间网络和计算机服务合同的一部分捆绑销售。尽管他们的带宽没有第 1 级和第 2 级提供商高,可靠性也较低,但却通常是中小型公司的理想选择。
6、子网划分--将网络划分为适当大小的多个子网
企业或组织网际网络中的每个网络都用于支持限定数量的主机。
有些网络(如点对点 WAN 链路)最多只需要两台主机。而其它网络(如大型建筑或部门内的用户 LAN)却可能需要支持数百台主机。网络管理员需要设计网间编址方案,以满足每个网络的最大主机数量需求。每个部分的主机数量还应该支持主机数量的增长。
- 确定主机总数
首先要考虑整个企业网际网络所需的主机总数。必须使用足以支持所有企业网络中全部设备的地址块。这些设备包括终端用户设备、服务器、中间设备和路由器接口。
请参阅图示的步骤 1。
以需要支持位于四个地点的 800 台主机的企业网际网络为例。
- 确定网络的数量和大小
接下来,根据主机的常规分组考虑网络的数量和每个网络所需的大小。
请参阅图示的步骤 2。
将网络划分为子网,以此解决地点、大小和控制存在的问题。在设计编址方案时,要考虑以前讨论过的主机分组因素:
a) 按照同一个地理位置分组
b) 将用于特定用途的主机分为一组
c) 根据所有权分组
每条 WAN 链路是一个网络。我们会为互连不同地理位置的 WAN 创建子网。连接不同地点时,我们使用路由器来解决 LAN 和 WAN 之间存在的硬件差异。
虽然通常是位于同一个地理位置的主机组成一个地址块,但我们也可能需要将此地址块划分为子网,从而在每个地点另行组成一些网络。如果不同地点的一些主机用于满足共同的用户需要,我们也需要在这些地点创建子网。可能还有其他用户组需要大量网络资源,或者有许多用户需要自己的子网。此外,服务器之类的特殊主机可能也有子网。在计算网络数量时,需要考虑上述所有因素。
我们还必须考虑要求额外网络的任何特殊安全需要或管理所有权需要。
在规划地址的这个过程中,网络图是一种很实用的工具。通过网络图可以直观地查看网络并更加准确地计算。
要在该公司的四个地点支持 800 台主机,我们使用二进制算法来分配 /22 地址块 (2^10-2=1022)。
- 分配地址
我们已算出了网络的数量和每个网络的主机数量,现在就需要着手从整个地址块中分配地址。
请参阅图示的步骤 3。
此过程首先要为特殊网络所在的地点分配网络地址。从需要最多主机的地点开始,然后是点到点链路。此过程可以确保将足够大的地址块用于支持这些地点的主机和网络。
在划分和分配可用子网时,务必要将足够大小的地址块用于较大的需求。此外还应仔细规划,确保分配给子网的地址块不存在范围重叠。
三、OSI网络层
1、设备参数--支持网络外部的通信
在一个网络或一个子网内部,主机之间的相互通信无需任何网络层中间设备。但当主机需要与其它网络通信时,则需要中间设备(即路由器)来充当通往其它网络的网关。
作为主机配置的一部分,每台主机都有指定的默认网关地址。如图所示,此网关地址是连接到该主机所在网络的路由器接口的地址。
切记,一台特定主机不可能知道 Internet 上它必须与之通信的每台设备的地址。为了与其它网络中的设备通信,主机使用此网关的地址(即默认网关)将数据包转发到本地网络外。
路由器也需要一个路由来定义数据包的下一个转发目的。这称为下一跳地址。如果路由器有可用路由,就会将数据包转发到能够提供通往目的网络路径的下一跳路由器。
2、网关--网络的出口
如果没有路由,就无法转发数据包。无论数据包是由主机发出的还是由中间设备转发的,该设备都必须使用路由来标识数据包的转发目的。
主机必须根据情况将数据包转发到本地网络中的主机或转发到网关。要转发数据包,主机必须具有代表这些目的的路由。
路由器负责对到达网关接口的每个数据包作出转发决定。此转发过程称为路由。要将数据包转发到目的网络,路由器需要通往该网络的路由。如果不存在通往目的网络的路由,则无法转发该数据包。
目的网络可能距离网关多个路由器或若干跳。通往该网络的路由只会指示该数据包要被转发到的下一跳路由器,而不指示最终路由器。路由过程使用路由将目的网络地址映射到下一跳,然后将数据包转发到这个下一跳地址。
3、路由--通信网络的路径
添加数据包通往远程目的地的路由时,使用默认网关地址作为下一跳。通过配置也可以为主机手动添加路由,但这种做法并不常见。
与终端设备一样,路由器也将其连接的网络的路由添加到自己的路由表中。当路由器接口配置了 IP 地址和子网掩码时,此接口就成为该网络的一部分。此时,该网络会作为直接连接的网络包含于路由表中。但是,所有其它路由则必须配置或通过路由协议获取。要转发数据包,路由器必须知道它的发送目的。此信息在路由表中作为路由提供。
路由表存储了有关连接的网络和远程网络的信息。连接的网络直接连接到路由器接口之一。这些接口是不同本地网络中主机的网关。远程网络是不直接与该路由器连接的网络。通往这些网络的路由可以由网络管理员在路由器上手动配置,也可以使用动态路由协议自动获取。
路由表中的路由有三个主要特点:
- 目的网络
- 下一跳
- 度量
路由器将数据包报头中的目的地址与路由表中某个路由的目的网络匹配,然后将数据包转发到该路由指定的下一跳路由器。如果有两个或多个路由均可到达同一个目的网络,则使用度量来决定应在路由表中显示的路由。
如图所示,使用 show ip route 命令可以检查 Cisco 路由器中的路由表。
注意:路由过程和度量的作用属于以后课程的主题,届时将详细介绍。
我们已经学过的,路由器如果没有路由就无法转发数据包。如果代表目的网络的路由不在路由表中,该数据包将会被丢弃(即不转发)。匹配的路由可能是连接的路由或通往远程网络的路由。路由器也可使用默认路由来转发数据包。当路由表中的所有其它路由都不代表目的网络时,就会使用默认路由。
- 主机路由表
主机要创建用于转发其发送的数据包的路由。这些路由源于连接的网络和默认网关的配置。
主机会将所有连接的网络自动添加到路由。本地网络的这些路由可以使数据包传送到与这些网络连接的主机。
主机还需要本地路由表才能确保网络层数据包转发到正确的目的网络。与路由器中包含本地路由和远程路由的路由表不同,主机的本地路由表一般包含的是其直接连接或与网络之间的连接以及自己到网关的默认路由。在主机上配置默认网关地址就会创建本地默认路由。
在命令行中发出 netstat -r、route 或 route PRINT 命令可以检查计算机主机的路由表。
在某些情况下,您可能希望主机指示更加具体的路由。使用 route 命令的下列选项可以修改路由表的内容:
route ADD
route DELETE
route CHANGE
4、目的网络
- 默认路由
路由器可以配置默认路由。默认路由是可以匹配所有目的网络的路由。在 IPv4 网络中,地址 0.0.0.0 用于此用途。默认路由用于转发路由表中没有条目代表其目的网络的数据包。如果数据包的目的网络地址与路由器中比较具体的路由不匹配,则会被转发到与默认路由相关联的下一跳路由器。
5、下一跳
下一跳是下一步要处理数据包的设备的地址。对网络中的主机而言,默认网关(路由器接口)的地址是以其它网络为目的地址的所有数据包的下一跳。
在路由器的路由表中,每条路由都会列出该路由包含的每个目的地址的下一跳。每个数据包到达路由器时,路由器都会检查其目的网络地址并将之与路由表中的路由对比。确定了匹配的路由后,会使用该路由的下一跳地址将数据包转发到其目的地址。然后,该路由器从下一跳路由器连接的接口将数据包转发出去。下一跳路由器是通往中间目的以外网络的网关。
因为直接连接到路由器的网络与该路由器之间不存在第 3 层中间设备,所以此类网络没有下一跳地址。路由器可以从接口将数据包直接转发到该网络中的目的主机。
有些路由可能有多个下一跳。这表示有多条路径可以通往同一个目的网络。这些路径是路由器可用于转发数据包的并行路由。
6、数据包转发--将数据包发往目的主机
路由过程是逐个数据包逐跳完成的。沿途的每台路由器会分别处理每个数据包。在每一跳,路由器都要检查每个数据包的目的 IP 地址,然后检查路由表,查找转发信息。
路由器将对数据包执行以下三种操作之一:
a) 将其转发到下一跳路由器
b) 将其转发到目的主机
c) 丢弃
- 数据包检查
作为中间设备,路由器在网络层处理数据包。但是,到达路由器接口的数据包将封装成数据链路层(第 2 层)PDU。如图所示,该路由器首先要丢弃第 2 层封装才能检查数据包。
- 选择下一跳
路由器要检查数据包报头中的目的地址。如果路由表中的匹配路由显示目的网络与该路由器直接连接,则将数据包转发到该网络连接的接口。在此情况下不存在下一跳。要将数据包转发到连接的网络上,首先必须由第 2 层协议对其重新封装,然后再将它从接口转发出去。
如果与数据包的目的网络匹配的路由是远程网络,则将数据包转发到该路由指示的接口,由第 2 层协议封装,然后发送到下一跳地址。
- 使用默认路由
如图所示,如果路由表中没有更具体的路由条目适用于抵达的数据包,则将该数据包转发到默认路由(如果存在)所指示的接口。该数据包在此接口由第 2 层协议封装,然后发送到下一跳路由器。默认路由也称为最后选用网关。.
此过程可能要发生多次,直至数据包到达其目的网络。每一跳路由器只知道下一跳的地址;它并不知道前往远程目的主机的路径的详细信息。此外,前往同一目的地址的所有数据包在每台路由器上也不一定会转发到相同的下一跳。沿途的路由器在通信发生时可能了解到新的路由并将此后的数据包转发到不同的下一跳。
默认路由的重要性在于,网关路由器不可能具有通往 Internet 上所有网络的路由。如果使用默认路由转发数据包,它最终应该到达一台路由器,它具有一条通往目的网络的具体路由。此路由器可能是该网络连接的路由器。这时,此路由器会通过本地网络将数据包转发到目的主机。
当数据包经过网际网络中的每一跳时,每台路由器都需要路由才能转发数据包。在任一台路由器处,如果路由表中找不到代表目的网络的路由,而且也不存在默认路由,则将丢弃该数据包。
IP 并未规定在特定路由器无处可发送数据包时将该数据包返回前一台路由器。这种功能会降低协议的效率并增加开销。报告此类错误要使用其它协议。