ccna60d/d14-DHCP-and-DNS.md
2020-11-24 16:46:30 +08:00

23 KiB
Raw Blame History

第14天 DHCP及DNS

DHCP and DNS


Gitbookccna60d.xfoss.com

你可以在 https://github.com/gnu4cn/ccna60d 上 fork 本项目,并提交你的修正。

本书结合了学习技巧,包括阅读、复习、背书、测试以及 hands-on 实验。

本书译者用其业余时间完成本书的翻译工作,并将其公布到网上,以方便你对网络技术的学习掌握,为使译者更有动力改进翻译及完成剩下章节,你可以 捐赠译者


第14天任务

  • 阅读今天的课文
  • 复习昨天的课文
  • 完成今天的实验
  • 阅读ICND1记诵指南
  • 花15分钟在subnetting.org

主机使用动态主机配置协议Dynamic Host Configuration Protocol, DHCP紧接着加电启动后收集到包括了IP地址、子网掩码及默认网关等初始配置信息。因为所有主机都需要一个IP地址以在IP网络中进行通信而DHCP就减轻了手动为每台主机配置一个IP地址的管理性负担。

域名系统Domain Name System, DNS将主机名称映射到IP地址使得你可www.in60days.com输入到web浏览器中而无需输入寄存该站点的服务器IP地址。

今天将学到以下内容。

  • DHCP操作, DHCP operations
  • 配置DHCP, configuring DHCP
  • DHCP故障排除, troubleshooting DHCP issues
  • DNS操作, DNS operations
  • 配置DNS, configuring DNS
  • DNS故障排除, troubleshooting DNS issues

本课对应了以下CCNA大纲要求。

  • 配置和验证DNSIOS路由器
    • 将路由器接口配置为使用DHCP, configure router interfaces to use DHCP
    • DHCP选项, DHCP options
    • 排除的地址, excluded addresses
    • 租期lease time

DHCP功能

DHCP Functionality

DHCP操作

DHCP Operations

DHCP通过在网络上给主机自动分配IP信息简化了网络管理任务。分配的信息可以包括IP地址、子网掩码及默认网关且通常实在主机启动时。

在主机第一次启动时如其已被配置为采用DHCP大多数主机都是这样的它就会发出一个询问分配IP信息的广播报文。该广播将为DHCP服务器收听到同时该信息会被中继。

Farai指出 -- "这是假定主机和DHCP服务器实在同一子网的情形而如它们不在同一子网就看下面的ip helper-address命令。"

主机请求IP配置信息

图14.1 -- 主机请求IP配置信息

DHCP具体使用UDP端口6768来在网络上通信同时尽管在需要时路由器也可实现DHCP功能但通常都会使用具体服务器作为DHCP服务器。在需要时路由器同样可以配置为从DHCP服务器取得其接口IP地址但很少这样做。配置这个特性的命令如下。

Router(config-if)#ip address dhcp

客户端的DHCP状态如下

  • 初始化initialising
  • 选择selecting
  • 请求requesting
  • 绑定bound
  • 更新renewing
  • 重绑定rebinding

DHCP服务器可被配置为在一个名为租期的特定时期赋予某台主机一个IP地址。租期可以是几个小时或几天。对于那些不能在网络上分配给主机的IP地址可以也应该予以保留。这些保留的IP地址将是已被路由器接口或服务器所使用的地址。如未能保留这些地址就会看到网络上的重复IP地址告警因为DHCP服务器已将配置给路由器或服务器的地址分配给了主机。

下面的图14.2中可以看到完整的DHCP请求和分配过程。

DHCP请求和分配过程 图14.2 -- DHCP请求和分配过程

  1. DHCP发现数据包DHCP Discover packet当某台设备启动后同时其被配置为通过DHCP取得一个地址时就会发出一个自UDP端口68(UDP port 68, bootpc到UDP端口67(UDP port 67, bootps的广播数据包。该数据包将到达网络上的所有设备包括任何位处网络上的可能的DHCP服务器。

    DHCP提议数据包DHCP Offer packet本地网络上的DHCP服务器看到由客户端发出的广播发现报文the broadcasted Discover message就用UDP源端口bootps 67及目的端口bootpc 68, 同样以广播地址的形式发回一个响应就是DHCP提议数据包。之所以同样以广播地址形式是因为客户端此时仍然没有IP地址而无法接收单播数据包。

  2. DHCP请求数据包DHCP Request packet, 一旦客户端工作站收到由DHCP服务器做出的提议an offer made by the DHCP server它就会发出一个广播用于告知所有DHCP服务器它已接受了来自某台服务器的提议DHCP请求报文到某台特定的DHCP服务器并再度使用UDP源端口bootpc 68及目的端口bootps 67客户端可能会收到来自多台DHCP服务器的提议但它只需单独一个IP地址所以它必需选择一台DHCP服务器(基于服务器标识),而选择通常都是按照"先到,先服务"原则完成的on a "first-come, first-served" basis

  3. DHCP确认数据包DHCP ACK packet, 选中的那台DHCP服务器发出另一个广播报文来确认给那台特定客户端的地址分配再度用到UDP源端口bootps 67及目的端口bootpc 68

DHCP的预订

DHCP Reservations

DHCP服务器可被配置为以几种不同方式提供IP地址包括下面这些。

  • 动态分配, Dynamic allocation
  • 自动分配, Automatic allocation
  • 静态分配, Static allocation

动态分配

Dynamic allocation

通过DHCP指派地址的一个十分常用方法就是采用动态分配过程在此过程中DHCP服务器配置为有着一个大的IP地址池且根据客户端的请求而为其分配地址池中的一个IP地址。在设备租期超时或设备离开网络时该特定IP地址就被交还给DHCP服务器之后就可被分配给另一客户端。

自动分配

automatic allocation

采用DHCP服务器分配IP地址的另一方式叫做自动分配该方式跟动态分配极为相似但采用此种方式DHCP服务器尝试维护一个所有过往分配地址清单而如有某台"旧有"客户端请求一个IP地址该客户端就会分配到一个跟以前一样的IP地址也就是说其曾于此前请求过一个IP地址。自动分配是一种较为低效的分配IP地址方式但如有着一个极大的可用IP地址池这就是一种总能确保某网络中的客户端在每次开机时获得同样IP地址的巧妙方法。

静态分配

Static allocation

DHCP服务器的IP地址静态分配是指定义出一些期望在网络上出现的MAC地址并手动为这些MAC地址都分配上一个唯一IP地址因此就管理性地建立起一张MAC-to-IP关联表。这通常在服务器环境中用到因为服务器必须使用可预期的IP地址以可供访问。

DHCP范围

DHCP Scopes

打算配置一台DHCP服务器的网络管理员作为配置过程的一部分也需要配置DHCP范围。范围就是网络某个特殊部分的一组IP地址A scope is a grouping of IP addresses for a particular section of the network。而每个子网通常有着自己的范围。

范围也可以是可供DHCP服务器分配的一个连续地址池a contiguous pool of addresses。大多数DHCP服务器都提供了从地址池中排除一些地址的功能以避免将这些地址动态地分配给客户端。这些排除的地址就通常是那些手动分配给网络中服务器及网络设备的IP地址。

在定义的DHCP范围内部可以配置诸如下面的一些参数。

  • IP地址范围, IP address range
  • 子网掩码, subnet mask
  • 租约持续时间lease duration
  • 默认网关default gateway
  • DNS服务器DNS server
  • WINS服务器WINS server

依据所使用的DHCP服务器也可以使用不同参数创建出不同的范围而这通常与不同子网有关。

DHCP租期

DHCP Leases

DHCP所提供的主要优势之一就是租借IP地址的能力也就是说1P地址的分配是临时的。通常当客户端离开网络时其所分配到的特定IP地址将变成可用并由DHCP服务器分配给其它设备。

DHCP租期关乎每次DHCP分配限定允许用户使用一个分配到的1P地址多长时间。通常是在DHCP范围内对该参数进行管理性配置。每当有客户端重启后它都必须再次从DHCP服务器请求一个IP地址。而DHCP服务器又通常被配置为给那台特定主机再度分配同样的地址并扩展租期。

工作站也能手动释放其IP地址比如在以下情况下。

  • 设备无限期关机the device is turned off indefinitely
  • 设备移至另一子网比如从有线网络移到无线网络the device moves to another subnet(e.g, to a wireless network from a wired network)

租借过程有几个相关的计时器因此可以肯定在所有网络设备上总是会有一个更新过的IP地址。下面是两个重要的DHCP计时器。

  • 续借(T1)计时器renewal(T1) timer, 默认是租期的一半在工作站取得一个IP地址后此计时器就开始计时当到达租期的50%DHCP客户端将向来源DHCP服务器重申租约。
  • 重新绑定(T2)计时器rebinding(T2) timer, 默认是租期的87.5%这第二个计时器用在DHCP服务器未有在续借计时器超时后进行回应或确认的情形。该计数器指出如租期已过7/8, 那么客户端将尝试找到发出一个DHCP请求另一能够提供DHCP地址的DHCP服务器。

有了租借过程及上述有关计时器就可以肯定总是会及时拥有一个IP地址且连带不会有任何停止时间同时自动地有着一种构建于DHCP过程中的冗余机制。

图14.3中展示了T1T2计时器与租期的关系。

DHCP租期计时器

图14.3 -- DHCP租期计时器

DHCP选项

DHCP Options

在DHCP中有一个特殊字段可用于帮助扩展一些自动配置过程的性能。可在此字段中放入在DHCP RFC中给出的许多不同配置选项。

**注意:**BOOTP选项曾被称作“厂商扩展”。

DHCP提供了256选项值,其中仅254个是可用的,因为0是垫底选项,而255是最后选项0 is the pad option and 255 is the end option。许多DHCP选项都是通常所了解的经常使用到的参数包括下面这些。

  • 子网掩码subnet mask
  • 域名服务器domain name server
  • 域名domain name

这些年来已加入一些额外的DHCP选项尤其是VoIP用途的那些选项比如下面这些。

  • 选项129: 呼叫服务器IP地址
  • 选项135: 话机相关应用的HTTP代理服务器

所有这些选项都是直接在DHCP服务器上配置但不是所有DHCP服务器都提供了设置DHCP选项的能力。如网络管理员要用到这些特性就应该采用一种企业级别的DHCP服务器。在将小型路由器作为家庭办公环境的DHCP服务器是就可能不会有这些功能上的益处。

配置DHCP

Configuring DHCP

思科路由器上的DHCP服务器

DHCP Servers on Cisco Routers

第一步就是在路由器上开启DHCP服务。这是通过使用service dhcp命令完成的如下面所示as exemplified below

Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#service dhcp

下一步就是创建一个DHCP池该DHCP池定义出将分配给客户端的IP地址池。在本例中名为SUBNET_A的池将提供来自范围192.168.1.0/24的IP地址。

Router(config)#ip dhcp pool SUBNET_A
Router(dhcp-config)#network 192.168.1.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.1.1
Router(dhcp-config)#dns-server 8.8.8.8
Router(dhcp-config)#domain-name Network+
Router(dhcp-config)#lease 30

该DHCP池配置模式the DHCP Pool Configuration mode同时也是配置其它DHCP选项的地方。在上面的配置输出中配置了以下这些参数。

  • 默认网关:192.168.1.1(指派到将该路由器作为DHCP服务器所服务网络中的路由器接口地址)
  • DNS服务器8.8.8.8
  • 域名:Network+
  • 租期:30

在需要时,也可以配置一些从192.168.1.0/24范围中排除的地址。我们就说要排除路由器接口IP地址192.168.1.1)及192.168.1.250192.168.1.255地址范围,从该范围就可手动为网络中的服务器分配地址。这是通过下面的配置完成的。

Router(config)#ip dhcp excluded-address 192.168.1.1
Router(config)#ip dhcp excluded-address 192.168.1.250 192.168.1.255

可使用下面的命令来查看当前由该路由器DHCP服务器所服务的客户端。

Router#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address      Client-ID/  Lease expiration    Type    Hardware address/
192.168.1.2     Mar 02 2014 12:07 AM       Automatic    0063.6973.636f.2d63

在上面的输出中由该DHCP服务器服务的是单独一台客户端同时分到到DHCP范围的第一个非排除IP地址192.168.1.2。还可以看到租期超时日期及设备MAC地址。

思科路由器上的DHCP客户端

DHCP Clients on Cisco Routers

除了DHCP服务器功能思科路由器同样允许将其接口配置为DHCP客户端。这就是说接口将使用标准DHCP过程请求到一个地址而在特定子网上的任何服务器都能分配该IP地址。

将一个路由器接口配置为DHCP客户端的命令如下。

Router(config)#int FastEthernet0/0
Router(config-if)#ip address dhcp

一旦某台DHCP服务器分配了一个IP地址在路由器控制台上就可以看到下面的通知消息该消息包含了地址和掩码

*Mar 1 00:29:15.779: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 10.10.10.2, mask 255.255.255.0, hostname Router

使用命令show ip interface brief就可以观察到该DHCP分配方式。

Router#show ip interface brief
Interface       IP-Address  OK? Method  Status                  Protocol
FastEthernet0/0 10.10.10.2  YES DHCP    up                      up
FastEthernet0/1 unassigned  YES unset   administratively down   down

DHCP数据包分析

DHCP Packet Analysis

为实际掌握在本模块中介绍的这些知识点将生成一些上述示例中涉及到设备的流量捕获。在配置好DHCP服务器及客户端工作站启动起来后就会发生4步的DHCP过程可在下面的截屏中观察到。

DHCP 4步过程

图14.4 -- DHCP 4步过程

下面可以观察到DHCP发现数据包所包含的部分。

DCHP发现数据包

图14.5 -- DHCP发现数据包

正如你在截屏中看到的该数据包DHCP Discover packet是由客户端发出将其广播到网络上目的地址是255.255.255.255。同时还看到其报文类型为“Boot Request1)”。

下一个数据包就是DHCP提议数据包DHCP Offer packet如下面所示。

DHCP提议数据包

图14.6 -- DHCP提议数据包

该数据包是由服务器源IP192.168.1.1)发出到广播地址(目的地址:255.255.255.255,同时包含了提议的IP地址192.168.1.2。同时也可看到报文类型为“Boot Reply(2)”。

第三个数据包是DHCP请求数据包DHCP Request packet

DHCP请求数据包

图14.7 -- DHCP请求数据包

DHCP请求数据包是由客户端发出到广播地址。可以看到报文类型是Boot Request(1)。该数据包与最初的DHCP发现数据包类似但包含了一个非常重要的字段就是50选项: 被请求的IP地址192.168.1.2a very important field, which is Option 50: Requested IP Address(192.168.1.2)。这就是在DHCP提议数据包中由DHCP服务器所提供的同一IP地址而该客户端对其进行了确认和接受。

DHCP分配过程的最后数据包就是由服务器发出的DCHP确认数据包了(the DHCP ACK packet)。

DHCP确认选项数据包

图14.8 -- DHCP确认选项数据包

该数据包发自DHCP服务器并被广播到网络上其同样包含了在上面的截屏中所看到的一些额外字段。

  • DHCP服务器标识该DHCP服务器的IP地址192.168.1.1
  • 路由器上配置的所有选项。
    • 租期:30天(以及派生出的早前讨论的过续租时间和重新绑定时间值)
    • 子网掩码:255.255.255.0
    • 默认网关(路由器): 192.168.1.1
    • DNS服务器8.8.8.8
    • 域名:Network+

DHCP故障排除

Troubleshooting DHCP Issues

跟NAT一样DHCP故障基本上总是因为错误配置造成的开玩笑说就是第8层问题意思是人为疏忽jokingly referred to as Layer 8 issue, meaning somebody messed up

命令service dhcp默认是开启的,但有些时候其已被网络管理员因为某些原因关闭了。(作者就曾遇到过有管理员在他们的路由器上敲入no ip routing命令后因为紧急的路由故障打电话给思科 -- 真的!)

如在另一子网上使用一台服务器来管理DHCP配置就要允许路由器放行DHCP数据包。在地址分配过程中DHCP用到广播报文而路由器是不会转发广播报文的那么就需要将DHCP服务器的IP地址加入到路由器以令到路由器将该广播报文作为单播数据包进行转发。**命令ip helper-address**就可以实现这点。这是另一个考试喜欢的问题哦。

同样可以使用下面的debug命令作为排错过程中的部分。

debug ip dhcp server events
debug ip dhcp server packet

DNS操作

DNS Operations

DNS将主机名映射到IP地址而不是反过来。这就允许你在web浏览器中浏览一个网址而无需输入服务器IP地址。

在主机或路由器想要将一个域名解析到IP地址或反过来将IP地址解析到域名时DNS用到UDP 53号端口。而在两台DNS服务器之间打算同步或分享它们的数据库时就使用TCP 53号端口。

配置DNS

Configuring DNS

如想要容许路由器找到web上的某台DNS服务器就使用命令ip name-server 1.1.1.1,或是服务器相应的地址。

也可以将某个主机名设置到路由器上的一个IP地址表中来节省时间或是令到更易于记住要ping的或是连接到的哪台设备,如下面的输出所示。

Router(config)#ip host R2 192.168.1.2
Router(config)#ip host R3 192.168.1.3
Router(config)#exit
Router#ping R2
Router#pinging 192.168.1.2
!!!!!

DNS故障排除

Troubleshooting DNS Issues

路由器配置默认将会有一个ip domain-lookup命令。如此命令已被关闭则DNS将不工作。某些时候路由器管理员会因避免在输入错误命令时等待路由器执行数秒DNS查询而关闭该命令。可通过下面的命令关闭DNS查询。

Router(config)#no ip domain-lookup

访问控制清单access control lists, ACL常常拦阻DNS那么这是另一个故障原因。使用命令debug domain可在路由器上对DNS进行调试。

第14天问题

  1. DHCP simplifies network administrative tasks by automatically assigning _______ to hosts on a network.
  2. DHCP uses UDP ports _______ and _______.
  3. What are the six DHCP states for clients?
  4. Which command will prevent IP addresses 192.168.1.1 to 192.168.1.10 from being used in the pool?
  5. Which command will set a DHCP lease of 7 days, 7 hours, and 7 minutes?
  6. Which command will enable the router to forward a DHCP Broadcast as a Unicast?
  7. DNS uses UDP port _______.
  8. Which command will set a DNS server address of 192.168.1.1 on your router?
  9. If the _______ _______-_______ command has been disabled on your router, then DNS wont work.
  10. Which command will debug DNS packets on your router?

第14天问题答案

  1. IP information (IP addresses).
  2. 67 and 68.
  3. Initialising, Selecting, Requesting, Bound, Renewing, and Rebinding.
  4. The ip dhcp excluded-address 192.168.1.1 192.168.1.10
  5. The lease 7 7 7 command under DHCP Pool Configuration mode.
  6. The ip helper-address command.
  7. The ip name-server 192.168.1.1 command.
  8. ip domain-lookup.
  9. The debug domain command.

第14天实验

路由器上的DHCP实验

拓扑

路由器上的DHCP实验拓扑图

实验目的

学习可如何将路由器用作DHCP服务器。

实验步骤

  1. 如你使用着家用电脑或笔记本电脑就将网络适配器设置为自动获取IP地址。在Packet Tracer中也可这样设置。让后使用交叉线将PC连接到路由器的以太网端口。

网络适配器设置

  1. 将IP地址172.16.1.1 255.255.0.0加入到路由器接口。如忘记了这个怎么配置,就请看看前面的实验。要确保no shut该接口。

  2. 配置DHCP地址池。接着为地址配置一个33小时5分的租期。最后将110的地址排除在分配给主机的地址之外。假设这些地址已为其它服务器或接口使用。

Router#conf t
Router(config)#ip dhcp pool 60days
Router(dhcp-config)#network 172.16.0.0 255.255.0.0
Router1(dhcp-config)#lease 3 3 5    ← command wont work on Packet Trer
Router1(dhcp-config)#exit
Router(config)#ip dhcp excluded-address 172.16.1.1 172.16.1.10
Router(config)#
  1. 执行一个ipconfig /all命令查看是否有IP地址分配到PC。如旧地址仍在使用就需要执行一下ipconfig /renew命令。
PC>ipconfig /all
Physical Address................: 0001.C7DD.CB19
IP Address......................: 172.16.0.1
Subnet Mask.....................: 255.255.0.0
Default Gateway.................: 0.0.0.0
DNS Servers.....................: 0.0.0.0
  1. 如想要的话可回到DHCP地址池配置模式DHCP Pool Configuration mode加入一个默认网关及DNS服务器地址它们也将在主机PC上得到设置。
Router(config)#ip dhcp pool 60days
Router(dhcp-config)#default-router 172.16.1.2
Router(dhcp-config)#dns-server 172.16.1.3
PC>ipconfig /renew
IP Address......................: 172.16.0.1
Subnet Mask.....................: 255.255.0.0
Default Gateway.................: 172.16.1.2
DNS Server......................: 172.16.1.3

路由器上的DNS实验

DNS on a Router lab

在一台有着某种到互联网连通性的路由器上完成此实验。确保该路由器可以ping通比如Google公司的DNS服务器8.8.8.8这样的公网IP地址。将该地址配置为一个名字服务器。

ip name-server 8.8.8.8

接着尝试解析一些公网网站名字,比如通过ping www.cisco.com

请访问www.in60days.com, 观看我是怎么完成这个实验的。