POD间网络不通 VXLAN网络模式 canal网络插件 测试以下场景
通过Rancher UI检查system项目下canal网络插件是否运行正常。
在对应项目下以daemonset方式启动多个POD,分布到不同节点,POD内进行ping测试。
POD内直接ping对端宿主机的flannel.1网卡。
在POD所在宿主机上ping对应POD ip。
主机上udp 8472端口是否监听
macvlan网络插件
端口单vlan通过场景验证 找2台机器worker1和worker2,在2台机器中,分别给需要支持macvlan的网卡手动添加一个IP,假如网卡为eth0。 添加IP 在worker1中执行如下命令
1 ip address add 192.168.1.2/24 dev eth0
在worker2中执行如下命令
1 ip address add 192.168.1.3/24 dev eth0
检查IP是否添加成功 以worker1为例,添加前
1 2 3 4 5 6 7 8 9 10 11 12 13 ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000 link/ether 0a:06:7c:64:b7:f6 brd ff:ff:ff:ff:ff:ff inet 172.31.15.100/20 brd 172.31.15.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::806:7cff:fe64:b7f6/64 scope link valid_lft forever preferred_lft forever
添加后
1 2 3 4 5 6 7 8 9 10 11 12 13 14 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000 link/ether 0a:06:7c:64:b7:f6 brd ff:ff:ff:ff:ff:ff inet 172.31.15.100/20 brd 172.31.15.255 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.1.2/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::806:7cff:fe64:b7f6/64 scope link valid_lft forever preferred_lft forever
检查路由规则 给网卡添加IP时,会自动添加路由规则,可通过route -n查看。
添加前
1 2 3 4 5 route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.31.0.1 0.0.0.0 UG 0 0 0 eth0 172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
添加后
1 2 3 4 5 6 route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.31.0.1 0.0.0.0 UG 0 0 0 eth0 172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
跨主机互ping验证 只要跨主机在网卡上添加ip且互相可以ping通,说明iaas层就没问题,此时worker1和worker2上的eth0网卡详情如下
worker1 eth0
1 2 3 4 5 6 7 8 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000 link/ether 0a:06:7c:64:b7:f6 brd ff:ff:ff:ff:ff:ff inet 172.31.15.100/20 brd 172.31.15.255 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.1.2/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::806:7cff:fe64:b7f6/64 scope link valid_lft forever preferred_lft forever
worker2 eth0
1 2 3 4 5 6 7 8 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000 link/ether 0a:16:e4:de:a5:68 brd ff:ff:ff:ff:ff:ff inet 172.31.1.41/20 brd 172.31.15.255 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.1.3/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::816:e4ff:fede:a568/64 scope link valid_lft forever preferred_lft forever
从worker1上ping worker2机器使用macvlan ip进行互ping
端口多vlan通过场景验证 验证方式与单端口一致,唯一区别在于多vlan情况下,交换机端口配置的是trunk模式,允许多个vlan通过,也就是交换机本身不会对端口打vlan-tag了,需要通过软件层面给对应的网卡的数据包打上vlan-tag,否则不能通信,在linux操作系统中可以通过建立子vlan口的方式将IP地址配置在子vlan口上,对应的数据包经过子vlan口后会自动打上vlan-tag 实现使用以下方式:
在需要测试的两台worker节点上按下述方法创建好子vlan口,然后在子vlan口上配置ip,互相ping测试。 测试跨子网通信,则需要提前配置好路由,手动添加静态路由由即可。
安装vconfig命令
给eth0设置vlan 404
1 2 vconfig add eth0 404 //添加eth0.404子接口
1 ip address add 192.168.1.101 dev eth0.404 //设置IP
测试路由
1 ip route add 192.168.1.0/24 dev eth0.404
//设置路由,192.168.1.0网段的从eth0.404发出
删除方式
实际生产环境中建议配置使用多网卡做Bond方式,保证网卡的高可用,一般推荐模式为Bond1模式即为主备模式,需要提前验证Bond配置是否生效。
验证
查看bond状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 #当前主接口 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: Unknown //openstack虚拟化网卡默认不显示速率 Duplex: Unknown //openstack虚拟化网卡默认不显示双工 Link Failure Count: 0 Permanent HW addr: fa:16:3e:47:c7:a0 Slave queue ID: 0
测试方法 Down掉当前主接口,进行测试,看是否会进行网卡切换,网络是否会中断。
模拟容器内macvlan网络测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # 创建namespace ip netns add ns1 ip netns add ns2 # 基于物理网卡创建macvlan网卡 ip link add mv1 link eno1 type macvlan mode bridge ip link add mv2 link eno1 type macvlan mode bridge # 将网卡挂载到对应namespace中(若trunk模式,需要配置子vlan口,将子vlan口加入) ip link set mv1 netns ns1 ip link set mv2 netns ns2 # 启动网卡 ip netns exec ns1 ip link set dev mv1 up ip netns exec ns2 ip link set dev mv2 up # 设置IP地址 ip netns exec ns1 ifconfig mv1 192.168.1.50/24 up ip netns exec ns2 ifconfig mv2 192.168.1.60/24 up # 查看端口详细情况 ip netns exec ns1 ip a ip netns exec ns2 ip a # ping测试 ip netns exec ns1 ping -c 4 192.168.1.60 # 清除 ip netns del ns1 ip netns del ns2