HSRP, VRRP, GLBP是网络中很重要的redundancy协议,特别是HSRP,是Cisco重点推荐的。
和传统router一样,很多人都会把HSRP部署到UCS中,结果发现,HSRP的VIP一直不能被外面设备所ping成功,而外面设备ping这个active CSR1000V以及standby CSR1000V都是成功的,这点,是相当让人费解的。
为什么呢?
其实,2个router的HSRP都是正确配置的,HSRP状态也是对的,抓包显示,HSRP心跳等都是正常。
原因就是在HSRP的协议本身,2个router协商好状态后,active会发送一个免费的ARP公告出来,交换机学习这个公告。
此时,外面的设备ping这个HSRP GROUP的VIP, VMAC,数据包正常到达UCS,由于hypervisor不能理解这个VMAC,他只知道物理MAC,这样,hypervisor就丢了这个ping echo request消息,自然,active router无法响应ping echo response了。
怎么解决呢?
就是把UCS的物理接口设置成混杂模式。
promiscucous mode就是不对MAC地址进行校验,所有数据包就上报到VM。这样做的一个很大的缺点,那就是网口丢失了2层数据包校验功能,无论什么数据包都网上丢,VM收到无数无用数据包。
配置方法:
1. 选中UCS
2. 选择networking
3. 选中相应的物理接口
4. 选中vswitch选择编辑,或者选择响应的vlan,然后选择edit
5. 选中security
6. promiscucous mode设置成Accept,默认是Reject
一举搞定。
此外,还有一种解决方法就是standby use-bia,使用物理接口的MAC地址来作为VMAC,这样做,未必所有的设备都能处理免费ARP。
http://www.cisco.com/c/en/us/support/docs/ip/hot-standby-router-protocol-hsrp/9281-3.html