在论坛上看见一个核心交换机和汇聚交换机接口第二IP通信的问题,值得思考。
当核心交换机配置第二IP,汇聚交换机的通过trunk连接到核心交换机,并且配置的接口IP和第二IP一个网段,当汇聚交换机没有启用3层路由功能的时候,它们之间可以正常通信,但当汇聚交换机启用3层路由功能之后,核心交换机反而不能访问汇聚交换机了。
为了验证这种现象,用了两台路由模拟器,用IOS的那种。发现模拟汇聚的路由器,使用ip default-gateway而不是ip route 0.0.0.0 0.0.0.0的时候,模拟核心的路由器无法ping通汇聚,使用指定源ping的话可以,反之汇聚倒是可以ping通核心,如果用ip route 0.0.0.0 0.0.0.0则可以。通过抓包发现,核心路由器ping过来的包,是有的,但是没有应答包,打开debug ip icmp,发现汇聚路由器是有应答的,但是接口没有包发出来,换成ip route 0.0.0.0 0.0.0.0就发出来了。看上去似乎和论坛帖子相左。ip route 0.0.0.0 0.0.0.0是启用了路由,ip default-gateway是没启用,但是毕竟路由器和交换机从机理上还是有区别的。按照要求配置了3560G和2960S,当然2层的2960只能配ip default-gateway,的确是可以完全通信,没有任何问题,看来交换机和路由器的机制真的不一样。交换机的通信是CAM表,不是路由表。打开2960的ip arp,发现刚才和交换机通信的并不是和交换机的IP一个网段的地址,也竟然都赫然在列,真正体现了2层交换,通信不靠IP路由,直接IP地址对应的就是mac地址,不是一个网段的也是这样,所以2层交换机可以在2层的状态下,以2层的mac地址来通信,而启用了ip routing之后,按照3层的路由规则,反而不行了。
反观问题点,应该是汇聚交换机启用了路由,可能没有用ip route 0.0.0.0 0.0.0.0的命令。