复杂网络架构导致的诡异网络问题排查分享
2012-07-03 15:55:44 来源:我爱运维网 评论:0 点击:
诡异的故障现象:1、计划在IDC机房中启用的一组新的LoadBalance(LB:负载均衡)服务器,该LB服务需要使用Keepalived,已在多个机房架构,没...
诡异的故障现象:
1、计划在IDC机房中启用的一组新的LoadBalance(LB:负载均衡)服务器,该LB服务需要使用Keepalived,已在多个机房架构,没有任何问题。但该机房的LB服务器只开启keepalived后网络就不正常,互相ping严重丢包,但关闭keepalived后马上即恢复正常。
2、核心Cisco交换机65XX的CPU使用率很高,见下图:
背景网络架构说明:
1台Cisco65XX是IDC核心网交换机,直连骨干互联网出口;
2台华为57XX是城域网业务交换机,直连城域网出口;其下面分别接的是为城域网用户服务的业务服务器,配置城域网IP;由于城域网IP只能通电信城域网,而业务需要回源同步数据,此时需要借用核心网的互联网IP,因此网络上在Cisco65XX和华为57XX之间通过3根网线做了捆绑互连;
实际上,城域网网络另外配置还有50M的互联网带宽,原来考虑带宽太小,一直没有使用。
示意如下:
故障排查过程:
1、在核心交换机上查看arp和mac表,发现只要服务器一开启keepalived,mac地址就会在GE3/2和Port-channel10之间飘移,关闭keepalived后mac地址就只在GE3/2端口:
show arp| include ip.ip.ip.ip1
Internet ip.ip.ip.ip1 1 14fe.b5d3.68b8 ARPA Vlan1
show mac address-table | include 68b8
14fe.b5d3.68b8 dynamic ip GigabitEthernet3/2
show mac address-table | include 68b8
14fe.b5d3.68b8 dynamic ip Port-channel10
2、Mac地址飘移,说明网络中存在二层环路
3、Keepalived会发送组播报文,交换机在没有组播路由表的时候,会将组播报文当做广播处理,由于存在环路,该组播报文会从其他端口回到交换机,出现mac地址飘移。
4、进一步排查,发现核心Cisco65XX交换机上与业务华为57XX互联的3个端口做了聚合,而华为57XX的3个端口没有做聚合,这样组播报文从Cisco65XX的端口到达华为57XX后,又从其他2个端口回到Cisco65XX,造成mac地址飘移。
示意如下:
故障解决:
理论上在华为57XX上面将3个端口做聚合即可解决
为了彻底解决问题,避免核心网络受到城域网业务的影响,将所有业务服务器的回源IP改为独立50M互联网带宽,然后关闭核心网络与城域网业务互联的3根网线后,LB服务器可以正常启用keepalived。
同时发现Cisco65XX交换机的CPU恢复到正常水平,环路及mac地址飘移正是导致CPU过高的原因(见下图)。
为何关闭keepalived就正常?
正常情况下,服务器发的是单播报文,有确定的目的mac,交换机会根据单播mac表进行正确的转发,因此虽然有环路,也不会出现mac地址飘移。
1、计划在IDC机房中启用的一组新的LoadBalance(LB:负载均衡)服务器,该LB服务需要使用Keepalived,已在多个机房架构,没有任何问题。但该机房的LB服务器只开启keepalived后网络就不正常,互相ping严重丢包,但关闭keepalived后马上即恢复正常。
2、核心Cisco交换机65XX的CPU使用率很高,见下图:
背景网络架构说明:
1台Cisco65XX是IDC核心网交换机,直连骨干互联网出口;
2台华为57XX是城域网业务交换机,直连城域网出口;其下面分别接的是为城域网用户服务的业务服务器,配置城域网IP;由于城域网IP只能通电信城域网,而业务需要回源同步数据,此时需要借用核心网的互联网IP,因此网络上在Cisco65XX和华为57XX之间通过3根网线做了捆绑互连;
实际上,城域网网络另外配置还有50M的互联网带宽,原来考虑带宽太小,一直没有使用。
示意如下:
故障排查过程:
1、在核心交换机上查看arp和mac表,发现只要服务器一开启keepalived,mac地址就会在GE3/2和Port-channel10之间飘移,关闭keepalived后mac地址就只在GE3/2端口:
show arp| include ip.ip.ip.ip1
Internet ip.ip.ip.ip1 1 14fe.b5d3.68b8 ARPA Vlan1
show mac address-table | include 68b8
14fe.b5d3.68b8 dynamic ip GigabitEthernet3/2
show mac address-table | include 68b8
14fe.b5d3.68b8 dynamic ip Port-channel10
2、Mac地址飘移,说明网络中存在二层环路
3、Keepalived会发送组播报文,交换机在没有组播路由表的时候,会将组播报文当做广播处理,由于存在环路,该组播报文会从其他端口回到交换机,出现mac地址飘移。
4、进一步排查,发现核心Cisco65XX交换机上与业务华为57XX互联的3个端口做了聚合,而华为57XX的3个端口没有做聚合,这样组播报文从Cisco65XX的端口到达华为57XX后,又从其他2个端口回到Cisco65XX,造成mac地址飘移。
示意如下:
故障解决:
理论上在华为57XX上面将3个端口做聚合即可解决
为了彻底解决问题,避免核心网络受到城域网业务的影响,将所有业务服务器的回源IP改为独立50M互联网带宽,然后关闭核心网络与城域网业务互联的3根网线后,LB服务器可以正常启用keepalived。
同时发现Cisco65XX交换机的CPU恢复到正常水平,环路及mac地址飘移正是导致CPU过高的原因(见下图)。
为何关闭keepalived就正常?
正常情况下,服务器发的是单播报文,有确定的目的mac,交换机会根据单播mac表进行正确的转发,因此虽然有环路,也不会出现mac地址飘移。
分享到:
收藏
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)