本问题来自于网友:咸菜包子
老实说,这个问题也是我凭着印象去胡诌了,给这位网友的答疑也是抱着试一试的态度。结果这次居然让我蒙对了,先小小窃喜一下……
先上图:
该网友在拓扑图的左上角使用Windows Server 2008搭建了一个DHCP Server,与两台核心交换机互联,目的是为局域网内的10.141.10.0/24,10.141.20.0/24,10.141.28.0/24分配IP地址。
他在设计网络的时候,在两个核心交换机L3SW-1和L3SW-2之间配置了VRRP,使用虚拟地址作为DHCP Server的网关。而在DHCP Server上,两张网卡E0和E1做桥接。但是这么做出了问题:
捷哥看了一下他给的图,在通过他的描述,基本上已经猜到了他的问题:
1、 DHCP Server的E0口与E1口桥接为二层接口,分别与L3SW-1的E1/2和L3SW-2的E1/3互联,由于这些接口都是二层接口,进而得知DHCP Server与L3SW-1、L3SW-2之间的链路都是二层链路。
2、 L3SW-1、L3SW-2上对DHCP Server的网关配置了VRRP,这也就要求DHCP的E0、E1与L3SW-1、L3SW-2两台交换机之间的链路都是一个VLAN。
3、 于时,L3SW-1、L3SW-2上和DHCP Server之间,就形成了一个三角形的环状结构,加上交换机有开启了生成树,你说他这图上,没有端口被BLOCK那就是怪事了。
所以:故障原因结论:
DHCP Server桥接二层接口,与L3SW-1和L3SW-2之间形成了环路,端口被BLOCK是生成树所致。
出现该问题的原因是:链路设置不合理。
【改进方案】
如果想让DHCP Server通过冗余链路为局域网内的主机分配IP地址,并且消除环路和VRRP震荡,捷哥给的方案是这样的:
捷哥的意思是说:
1、 L3SW-1、L3SW-2对DHCP Server之间的链路改为三层链路。L3SW-1的E1/2接口改为三层接口,配置一个IP地址作为DHCP Server E0网卡的网关;L3SW-2的E1/3接口改为三层接口,配置一个IP地址作为DHCP Server E1网卡的网关,如图所示:
地址规划如下表所示:
DHCP E0网卡 | L3SW-1 E1/2接口 | DHCP E1网卡 | L3SW-1 E1/3接口 |
10.115.128.2/30 | 10.115.128.1/30 | 10.115.128.6/30 | 10.115.128.5/30 |
改好DHCP的IP地址以后,在L3SW-1和L3SW-2上把对DHCP Server的网段发布到路由表中(这里我倒是没管他用的什么路由协议)
然后,在交换机的所有VLAN接口中,添加:
ip helper-address 10.115.128.2
ip helper-address 10.115.128.6
把DHCP服务器中继了,就解决问题。
【结果】
捷哥本来是蒙的,没想到就这样蒙对了。
网友把结果发给了我,他的DHCP Server用的是10.141.27.2和10.141.29.2,没有用我给他指定的地址,不过那也没关系,哈哈。
【点评】
该网友“咸菜包子”这是第二次给我提问了,捷哥我都非常乐意为他解答问题。为啥呢?
1、 他提的问题都很有代表性,非常考验各位同行的经验。(他之前提的问题是NAT、SLA联动的问题,如果不是对NAT和SLA技术非常熟,这个问题谁也看不出来。)
2、 他本人在设计实验的时候,网络结构都是非常合理的,有核心有接入,有冗余链路而且广播范围成三角形,如图所示:
3、 他在做实验的时候,选择的IP地址也都不是垃圾IP(192.168.0.0或192.168.1.0),说明他在设计IP地址的时候,对现网环境的地址规划应用也有一些功底。说真的,他自称他是小白,但是捷哥我本人感觉到,此人如果继续专注于网络技术,将来绝对有成为超级大佬的潜质。
原文地址:http://blog.51cto.com/wzjxzht/2113219