以前开玩笑说:通讯靠吼,深入通信协议内部,吼绝对是灵魂,大名鼎鼎的DHCP也不能免俗。
1. DHCP流程
1.1 DHCP基本流程
DHCP就像参加饭局。你的名字是MAC,桌位是待分配的IP,司仪就是DHCP服务器(可能不止一位,每位负责一块区域)。
DHCP Discovery:第一次入门,主动给司仪打招呼,我叫XXX,请问我坐哪一桌(源MAC是主机MAC,目的MAC为全F广播地址;源IP填0,目的IP填全F);
DHCP offer:司仪看了下哪里有位置(地址池),然后回复你“第N桌第N位还有位”(源MAC是服务器MAC,目的MAC为全F广播地址;源IP填分配的IP地址,目的IP填全F);至于为啥用广播,是因为虽然确定了主机,但无法确认对应的IP,只能广播发送。
DHCP Request:Offer不止一家,这时候轮到你表态了,我路人甲觉得甲司仪的安排N桌N号很赞,决定接受它的安排(源MAC是主机MAC,目的MAC为全F广播地址;源IP填0,目的IP填全F,载荷说明客户端MAC,租约IP地址,提供租约的DHCP服务器地址)
DHCP ACK:这时候甲司仪霸道总裁附体了,这兄弟已经接受了我的安排,有诗为证(源MAC是服务器MAC,目的MAC为全F广播地址;源IP填分配的IP地址,目的IP填全F。将该IP地址的合法租用信息和其他配置信息都公开)
1.1.1 MAC/IP地址关系
主机(Discovery & Request) | DHCP服务器(Offer & ACK) | |
---|---|---|
源MAC | 主机MAC | 服务器MAC |
目的MAC | FF:FF: FF:FF: FF:FF | FF:FF: FF:FF: FF:FF |
源IP | 0.0.0.0 | 分配IP地址 |
目的IP | 255.255.255.255 | 255.255.255.255 |
1.2 绑定MAC和IP
作为一个老饕,怎么能没有一张专属的桌位呢。此时你发动了你的超级VIP权限,指名道姓说我要坐小孩一桌,谁来都不好使。甲司仪含泪记下你的名字。
2. DHCP中继
前面说到,通讯靠吼。司仪就是吃这碗饭的,已经习惯了,但大家都只是想找个桌位,可不是来听报桌位名的。通信的另外一个传统,分而治之冒出来了。我这大厅有多个门,我一个门口设一个接待,你们在门口小声点嘀咕,然后让接待传纸条给我(由全域广播变成了局域广播+单播),世界安静下来了。
DHCP中继会对DHCP Client发送的报文的源目IP地址进行改动,将原本的广播报文该为单播报文,以使得DHCP报文可以跨三层交换设备传输,示意图如下:
![](https://img.haomeiwen.com/i28728484/553deb0e71a9fd11.png)
3. DHCP Snooping技术
每一次技术的补丁,都凝结着失败的血泪。本次网络维护就出现了这样的问题,新出差来的小伙伴,给虚拟机开了DHCP服务,然后部分小伙伴的电脑选择了阶段性断网,IP地址也偏到舅舅家了。
上述问题才是Snooping技术的正确打开方式,通过设定DHCP的信任接入端口,避免非信任DHCP服务器的干扰。作为一个代码人,不走寻常路才是常理,Snooping将被用来指定端口分配指定IP。
在批量测试中,如何快速的定位故障设备是个问题,最直观的获取有三个:设备信号灯、IP地址、序列号/MAC(唯一标识)。信号灯可能缺乏足够的提示,而唯一标识又臭又长。最简洁的是IP,如何将IP与设备位置绑定成为问题。Snooping技术,可以实现基于端口进行DHCP的分配。
有始有终,吃饭怎么也要凑三顿不是。有个小朋友哭了,不满十岁的年级,分配到全是油腻大叔的世界,吓都吓哭了,哪还有心思吃饭。其他人也觉得跟不相熟的人坐一桌难为情,具体怎么坐,旁边坐谁不关心,但希望不要是不认识的人。这怎么能难倒司仪,安排。
system-view
dhcp server ip-pool vlan100
network 192.168.100.0 mask 255.255.255.0
class pt01 range 192.168.100.101 192.168.100.101
class pt02 range 192.168.100.102 192.168.100.102
class pt03 range 192.168.100.103 192.168.100.103
class pt04 range 192.168.100.104 192.168.100.104
class pt05 range 192.168.100.105 192.168.100.105
class pt06 range 192.168.100.106 192.168.100.106
class pt07 range 192.168.100.107 192.168.100.107
class pt08 range 192.168.100.108 192.168.100.108
class pt09 range 192.168.100.109 192.168.100.109
class pt10 range 192.168.100.110 192.168.100.110
class pt11 range 192.168.100.111 192.168.100.111
class pt12 range 192.168.100.112 192.168.100.112
class pt13 range 192.168.100.113 192.168.100.113
class pt14 range 192.168.100.114 192.168.100.114
class pt15 range 192.168.100.115 192.168.100.115
class pt16 range 192.168.100.116 192.168.100.116
class pt17 range 192.168.100.117 192.168.100.117
class pt18 range 192.168.100.118 192.168.100.118
class pt19 range 192.168.100.119 192.168.100.119
class pt20 range 192.168.100.120 192.168.100.120
class pt21 range 192.168.100.121 192.168.100.121
class pt22 range 192.168.100.122 192.168.100.122
class pt23 range 192.168.100.123 192.168.100.123
class pt24 range 192.168.100.124 192.168.100.124
class pt25 range 192.168.100.125 192.168.100.125
class pt26 range 192.168.100.126 192.168.100.126
class pt27 range 192.168.100.127 192.168.100.127
class pt28 range 192.168.100.128 192.168.100.128
class pt29 range 192.168.100.129 192.168.100.129
class pt30 range 192.168.100.130 192.168.100.130
class pt31 range 192.168.100.131 192.168.100.131
class pt32 range 192.168.100.132 192.168.100.132
class pt33 range 192.168.100.133 192.168.100.133
class pt34 range 192.168.100.134 192.168.100.134
class pt35 range 192.168.100.135 192.168.100.135
class pt36 range 192.168.100.136 192.168.100.136
class pt37 range 192.168.100.137 192.168.100.137
class pt38 range 192.168.100.138 192.168.100.138
class pt39 range 192.168.100.139 192.168.100.139
class pt40 range 192.168.100.140 192.168.100.140
class pt41 range 192.168.100.141 192.168.100.141
class pt42 range 192.168.100.142 192.168.100.142
class pt43 range 192.168.100.143 192.168.100.143
class pt44 range 192.168.100.144 192.168.100.144
class pt45 range 192.168.100.145 192.168.100.145
class pt46 range 192.168.100.146 192.168.100.146
class pt47 range 192.168.100.147 192.168.100.147
class pt48 range 192.168.100.148 192.168.100.148
dns-list 114.114.114.114
expired unlimited
quit
vlan 100
port GigabitEthernet 1/0/1 to GigabitEthernet 1/0/48
quit
interface GigabitEthernet1/0/1
dhcp snooping information enable
dhcp snooping information circuit-id string PT01
quit
interface GigabitEthernet1/0/48
dhcp snooping information enable
dhcp snooping information circuit-id string PT48
quit
dhcp server enable
save
网友评论