Странная проблема одноадресной передачи UDP через vxlan - PullRequest
0 голосов
/ 02 апреля 2020

Я установил кластер Openstack с vxlan в качестве сетевой инфраструктуры клиента. Он отлично работает для трансляции TCP и UDP (DHCP OK), но не для одноадресной передачи UDP.

Вот что я попробовал:

[root@node-0 ~]# tcpdump -vv -i eth0 port 5493
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:19:59.531490 IP (tos 0x0, ttl 64, id 36530, offset 0, flags [DF], proto UDP (17), length 110)
    host-10-40-1-75.openstacklocal.45867 > host-10-40-1-118.openstacklocal.5493: [bad udp cksum 0x177c -> 0x74fa!] UDP, length 82
11:19:59.531526 IP (tos 0x0, ttl 64, id 28839, offset 0, flags [DF], proto UDP (17), length 110)
    host-10-40-1-75.openstacklocal.53556 > host-10-40-3-61.openstacklocal.5493: [bad udp cksum 0x1943 -> 0x552a!] UDP, length 82
11:20:00.129339 IP (tos 0x0, ttl 64, id 36894, offset 0, flags [DF], proto UDP (17), length 110)
......
    host-10-40-1-75.openstacklocal.45867 > host-10-40-1-118.openstacklocal.5493: [bad udp cksum 0x177c -> 0x74fa!] UDP, length 82
11:20:01.922018 IP (tos 0x0, ttl 64, id 30521, offset 0, flags [DF], proto UDP (17), length 110)
    host-10-40-1-75.openstacklocal.53556 > host-10-40-3-61.openstacklocal.5493: [bad udp cksum 0x1943 -> 0x552a!] UDP, length 82
11:20:02.519302 IP (tos 0x0, ttl 64, id 37962, offset 0, flags [DF], proto UDP (17), length 110)

5493 - это порт, который прослушивает corosyn c, экземпляры corosyn c, работающие на другом хосте, должны периодически общаться друг с другом. , но, как вы можете видеть, есть только исходящий трафик c с плохой ukp cksum.

Следующее, что я сделал, отключил аппаратную разгрузку:

ethtool --offload eth0 rx off tx off

Тогда я получил это:

[root@node-0 ~]# tcpdump -vv -i eth0 port 5493
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:20:58.086820 IP (tos 0x0, ttl 64, id 223, offset 0, flags [DF], proto UDP (17), length 110)
    host-10-40-1-75.openstacklocal.45867 > host-10-40-1-118.openstacklocal.5493: [udp sum ok] UDP, length 82
11:20:58.086853 IP (tos 0x0, ttl 64, id 61454, offset 0, flags [DF], proto UDP (17), length 110)
    host-10-40-1-75.openstacklocal.53556 > host-10-40-3-61.openstacklocal.5493: [udp sum ok] UDP, length 82
11:20:58.684525 IP (tos 0x0, ttl 64, id 428, offset 0, flags [DF], proto UDP (17), length 110)
    ......
    host-10-40-1-75.openstacklocal.53556 > host-10-40-3-61.openstacklocal.5493: [udp sum ok] UDP, length 82
11:20:59.879485 IP (tos 0x0, ttl 64, id 1003, offset 0, flags [DF], proto UDP (17), length 110)
    host-10-40-1-75.openstacklocal.45867 > host-10-40-1-118.openstacklocal.5493: [udp sum ok] UDP, length 82
11:20:59.879511 IP (tos 0x0, ttl 64, id 62372, offset 0, flags [DF], proto UDP (17), length 110)

Плохая ошибка udp cksum исчезла, но corosyn c все еще не работает даже после того, как я сделал то же самое в одноранговом хосте.

Я гуглил несколько часов, но все еще Понятия не имею, любая помощь будет оценена!

...