我有三个主机与以下configuration:
Host A: IP:192.168.1.1/24 Host B: IP:192.168.1.2/24 Host C: IP:192.168.3.1/24
一切都在CentOS 6上进行,所有的接口都有VLAN标记(如果这里有什么区别的话)。
我在方向B->A
和C->A
发送UDP通信。 这是纯粹的单向stream量,所以没有在主机A上configuration任何路由
为什么C->A
方不接受stream量,除非路由到Cconfiguration在A上 。 (它在tcpdump级别可见,但没有被socket接收)
我花了很多时间排除故障。 我期待了很多原因:iptables,selinux,甚至rp_filter设置,但解决scheme非常简单。
我想听听这种行为的原因是什么,如果有UDP的情况下需要有源路由的configuration。
您可能会使用Linux的uRPFfilter,该filter旨在避免数据包欺骗,但会中断非对称路由设置。 禁用它
sysctl net.ipv4.conf.all.rp_filter=0 sysctl net.ipv4.conf.eth0.rp_filter=0
(是的,您需要禁用all
条目和特定于接口的条目。)