DHCP技术整理版Word文档下载推荐.docx
《DHCP技术整理版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DHCP技术整理版Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
用IPHelperAddresses命令配置DHCP中继服务
1典型配置命令
Theiphelper-addressconfigurationcommandallowstheroutertoforwardlocalDHCPrequeststooneormorecentralizedDHCPservers:
Router1#configureterminal
Enterconfigurationcommands,oneperline.EndwithCNTL/Z.
Router1(config)#interfaceEthernet0
Router1(config-if)#iphelper-address172.25.1.1/*指定dhcp服务器的地址,表示通过Ethernet0向该服务器发送DHCP请求包*/
Router1(config-if)#iphelper-address172.25.10.7/*作用同上*/
Router1(config-if)#end
Router1#
关于以上配置的讨论
1在客户端设备和DHCP服务器不再同一广播域内的时候,中间设备即路有器(路有功能的设备)必须要能够转发这种广播包,具体到cisco的设备上,则启用iphelper-address命令,来实现这种中继。
2DHCP服务器要给终端设备分配地址则需要掌握两个重要的信息,第一,该客户端设备所在网络的子网掩码,DHCP服务器依据子网掩码的信息来判断,服务器该分配哪个IP地址,以使得该ip地址在那个子网内,第二,DHCP服务器必须知道客户端的MAC地址,以维护DHCP服务器的ip地址和MAC之间的映射关系,由此保证同样一台客户机,每次启动后能获得和前一次相同的ip地址。
3配置了iphelper-address命令之后的路由器在中继DHCP请求时的工作过程如下
a,DHCP客户端发送请求,由于没有ip地址,所以自己的源IP地址为0.0.0.0,而且也不知道目的DHCP服务器的地址,所以为广播255.255.255.255。
该数据报中当然还包含其他信息,比如二层的信息,源mac地址,和目的mac地址FFFFFFFFFFFF。
b,当路由器接收到该数据报的时候,他就用自己的接口地址(接收到数据报的接口)来取代源地址0.0.0.0,并且用iphelp-address命令中指定的地址(上例中为172.25.1.1以及172.25.10.7)来取代目的地址255.255.255.255
TheroutermustreplacethesourceaddresswithitsownIPaddress,fortheinterfacethatreceivedtherequest.Anditreplacesthedestinationaddresswiththeaddressspecifiedintheiphelper-addresscommand.Theclientdevice'
sMACaddressisincludedinthepayloadoftheoriginalDHCPrequestpacket,sotherouterdoesn'
tneedtodoanythingtoensurethattheserverreceivesthisinformation.
c当DHCP服务器接收到路有器转发过来的DHCP请求包时,他有了足够的信息,(由源IP地址中的地址,确定客户机所在的子网掩马,由此分配相应地址池中的空闲地址,并且知道了客户记得MAC地址,把它写入自己的数据库,建立IP地址和MAC的映射关系)然后DHCP服务器做出响应,并且由路有器把数据报转发会客户端。
(整个过程应该在客户机和服务器之间还有一次会话,由于这不是路由器DHCP配置的讨论重点,这里不谈)
4例子中配置了两个DHCP服务器,我们必须分别用iphelper-address命令指明,路有器会转发DHCP请求包到所有的DHCP服务器上。
很多企业的做法都是至少有两台DHCP服务器,有提高冗余和可靠性的作用。
此时,如果客户端受到几个来自不同DHCP服务器的应答,则只选择最先接收到的应答数据报。
5必须要注意的是;
iphelper-address命令不仅仅是只转发DHCP请求包,事实上,在默认情况下,他还转发其他的UDP报(比如DNS请求)到iphelper-address命令所指定的服务器上,所以这种额外的数据流量可能会增加DHCP服务器链路的负担以及服务器CPU负担,可能会引起问题,关于解决办法,将在后面讨论。
最后用showipinterface显示相关的iphelp-address配置信息:
Router1#showipinterfaceEthernet0
Ethernet0isup,lineprotocolisup
Internetaddressis192.168.30.1/24
Broadcastaddressis255.255.255.255
Addressdeterminedbysetupcommand
MTUis1500bytes
Helperaddressesare172.25.1.3
172.25.1.1
Directedbroadcastforwardingisdisabled
在配置了dhcp中继的路由器上,禁止无意义udp广播报的转发
问题的提出:
正如前面章节说描述的那样,路由器上配置IPhelperaddresses命令后,默认情况下路由器不仅转发dhcp请求,同时也转发其他的udp报,这样很可能会增加DHCP服务器所在链路的负担,同时也增加了DHCP服务器的CPU利用率,这可能会引起很严重的网络通信问题。
所以cisco的ios提供了限制iphelpe-address命令所带来的负面影响的方法。
解决实例;
CISCO路由器允许用noipforward-protocoludp命令来禁止对所无意义的UDP`数据报的转发
Router1(config)#noipforward-protocoludptftp
//禁止转发tftp请求数据报文
Router1(config)#noipforward-protocoludpnameserver
//禁止转发nameserver请求数据报文
Router1(config)#noipforward-protocoludpdomain
//禁止转发domain请求数据报文
Router1(config)#noipforward-protocoludptime
//禁止转发time请求数据报文
Router1(config)#noipforward-protocoludpnetbios-ns
//禁止转发netbios-ns请求数据报文
Router1(config)#noipforward-protocoludpnetbios-dgm
//禁止转发netbios-dgm请求数据报文
Router1(config)#noipforward-protocoludptacacs
//禁止转发tacacs请求数据报文
Router1(config)#end
关于配置的相关讨论;
1配置了DHCP中继的路由器,默认情况下也转发下列udp广播报文.
2尤其是在windows的网络环境中,在没有配置noipforward-protocoludp的情况下,DHCP服务器会接受到来自各个不同网段的大量的NetBIOS请求报文,这通常是引起网络拥挤,阻塞的一个很大的原因,所以作为一个基本的配置准则,我们推荐你使用noipforward-protocoludpnetbios-ns和noipforward-protocoludpnetbios-dgm这两条配置命令来限制路由器向DHCP服务器转发NetBIOS请求报文。
3上面的实例中禁止了所有不必要的协议的转发,在实际的应用中,很多大公司通常只禁止NetBIOS请求报文的转发,这主要是因为NetBIOS报文是引起网络问题的关键原因所在。
4必须认识到,配置了udp中继(iphlpe-addressx.x.x.x.)的路由器并没有实现针对不同协议,转发到不同的(或者说指定的服务器上)的功能。
她会傻傻的,一古脑儿的把所有的协议(上表中所列的协议),义无反顾的发往所有的服务器。
例如,有server1为dhcp服务器(1.1.1.1)server2为dns服务器(2.2.2.2)
在路由器上配置如下后
Router1(config-if)#iphelper-address1.1.1.1
Router1(config-if)#iphelper-address2.2.2.2
Router1#
实际效果是,不管是server1还是server2都将接收到包括dhcp请求,dns请求,以及其他udp的请求报文。
配置路由器为DHCP客户端,使之动态获取ip地址
有时候,你会希望自己的网络中的路由器动态获取ip地址(即配置路由器作为dhcp服务的客户端),这种情况通常是不多见的,我们也强烈不建议这么做,因为路由器作为网络中间设备需要有高度的可管理性以及可靠性,而动态地址是我们的路由器管理变得更加复杂和不稳定。
但是,有一种情况比较适合配置路由器为dhcp客户端,那就是路由器作为局域网(或者说内部网)的边界连接到isp的时候。
用ipaddressdhcpclient-id命令来配置路由器为DHCP的客户端,由此动态获取ip地址
Router1#configureterminal
Router1(config-if)#ipaddressdhcpclient-idEthernet0//开启DHCP的客户端,以使得该接口动态的从DHCP服务器端获得IP地址
InterfaceEthernet0assignedDHCPaddress172.25.1.57,mask255.255.255.0
1CISCO的IOS在版本12.1
(2)T之后,加入了DHCP客户端以及DHCP服务器端功能,也就是说,在这之前的IOS只能配置DHCP的中继功能(iphelper-address)。
2和普通的DHCP客户端一样,路由器配置为DHCP客户端后,也可以自动获得除ip地址以外的相关配置信息,例如网络掩码,默认网关,域名,DNSSERVER的ip地址。
但是,要记住如果路由器本身用命令静态配置了域名,则路由器自身静态配置的域名为最终配置结果,而对于DNSSERVER的信息,则是把动态获取的DNSSERVERip地址以追加的方式加入到静态配置表中去。
3下面的输出是路由器动态获得默认路由的情况下的输出,输出显示由DHCP动态获得的路由条目为S(静态),AD(管理距离为254),这里值得注意的是AD自动被设置为254,由此保证由DHCP获得的路由是作为最后路由被路由器选择的,也就是说只有在静态路由,以及其他动态路由协议的路由表中不存在相应的路由条目的时候才被选择。
Router1#showiproute
Codes:
C-connected,S-static,I-IGRP,R-RIP,M-mobile,B-BGP
D-EIGRP,EX-EIGRPexternal,O-OSPF,IA-OSPFinterarea
N1-OSPFNSSAexternaltype1,N2-OSPFNSSAexternaltype2
E1-OSPFexternaltype1,E2-OSPFexternaltype2,E-EGP
i-IS-IS,L1-IS-ISlevel-1,L2-IS-ISlevel-2,ia-IS-ISinterarea
*-candidatedefault,U-per-userstaticroute,o-ODR
P-periodicdownloadedstaticroute
Gatewayoflastresortis172.25.1.1tonetwork0.0.0.0
172.25.0.0/24issubnetted,1subnets
C172.25.1.0isdirectlyconnected,Ethernet0
S*0.0.0.0/0[254/0]via172.25.1.1
4在ISP的解决方案中,一般都会给路由器分配域名以及DNSserver地址等信息。
可用showhost命令来查看相关的信息;
下面的例子显示了通过dhcp获得域名,以及DNSserver地址等信息;
Router1#showhost
Defaultdomainis
Name/addresslookupusesdomainservice
Nameserversare255.255.255.255,172.25.1.1
HostPortFlagsAgeTypeAddress(es)
None(temp,OK)0IP192.168.22.57
5一般可以用showipinterface命令来查看路由器通过dhcp获得的ip地址等相关信息,看下面的例子
Router1#showipinterface
Internetaddressis172.25.1.57/24
AddressdeterminedbyDHCP
6最后,再次强调不推荐把路由器配置为dhcp的客户端。
当然下面两种情况除外,
■ 就是当路由器作为网络边界设备连接进isp的时候,可以考虑(比如现在很流行的adsl服务,往往就采用动态获取地址,这是不是一个很迷你的应用呢?
)
■作为funs的娱乐手段,如果你却是觉得这个技术很有意思,想在其中遨游一番,你不妨躲进实验室好好的享受享受。
7很遗憾,到现在为止cisco的路由器在配置为dhcp客户端的时候,并没有提供一种指定所要获取的信息的方法,也没有提供如何察看现有的动态获得的ip地址的所剩租期。
相信,CISCO马上会在这方面有所改进。
配置路由器为DHCP服务器,使之给dhcp客户端动态分配ip地址
把路由器配置为dhcp的服务器端,以对路由器下所连接的客户工作站进行ip地址的分配。
(这可真是一个了不起的改进!
路由器从此腰身一变,看上去更加多姿多彩了)
下面的配置命令,可以配置路由器为DHCP服务器,用以给DHCP客户端动态分配ip地址。
Router1(config)#servicedhcp//开启DHCP服务
Router1(config)#ipdhcppool172.25.1.0/24//定义DHCP地址池
Router1(dhcp-config)#network172.25.1.0255.255.255.0//用network命令来定义网络地址的范围
Router1(dhcp-config)#default-router172.25.1.1//定义要分配的网关地址
Router1(dhcp-config)#exit
Router1(config)#ipdhcpexcluded-address172.25.1.1172.25.1.50//该范围内的ip地址不能分配给客户端
Router1(config)#ipdhcpexcluded-address172.25.1.200172.25.1.255//该范围内的ip地址不能分配给客户端
1CISCO路由器的dhcp服务器功能也是在ios12.0
(1)T.以后才出现的,这一功能的出现,使我们没有必要在专门网络的中心(或者说企业本部)另外配置一台DHCPserver,从而降低了网络构建成本。
2在路由器上直接配置dhcp服务器相比于传统的在专门服务器上实现dhcp有其独到的优点。
比如
A由于传统的构建方法是,在企业的总部设立DHCP服务器,各分支机构通过路有器去获取ip地址,所以当dhcp服务器出现问题的时候,整个企业的网络都会受到影响,