服务器1和服务器2(Centos 7)都承载相同的应用程序,它监听UDP端口1514.服务器1在此端口上接收stream量。 目标是服务器2上的应用程序接收此stream量的副本。
服务器1使用iptables复制UDP 1514上的stream量并将其发送到服务器2:
iptables -t mangle -A PREROUTING -i ens160 -p udp -dport 1514 -j TEE -gateway 10.88.72.40 [server 2]
服务器2上的tcpdump显示所有进入的stream量; 但是,目标IP仍然是10.88.72.41,所以侦听应用程序不检测stream量。 请帮我找一个解决scheme,以便第二台服务器上的应用程序可以检测到这个stream量。 在服务器2上,我试过这个策略来重写传入数据包的目标IP地址:
iptables -t nat -A PREROUTING -p udp -d 10.88.72.41 –dport 1514 -j NETMAP –10.88.72.40
在服务器1上,我尝试了类似的命令来重写(或DNAT)传出数据包的目标IP地址。 我一直在为此工作 – 如果你能解决这个问题,我将永远感激!
你陛下,是一个学者,一个绅士,一个圣人! 在我的第二台服务器上,我添加了第一台服务器IP的虚拟回送设备,而且它是活着的! 以下是如何在Centos 7中添加虚拟环回设备:
cd /etc/sysconfig/network-scripts cp ifcfg-lo ifcgf-lo:1 vi ifcfg-lo:1
并放入该文件中:
DEVICE=lo:1 IPADDR=10.88.72.41 NETMASK=255.255.255.255 NETWORK=10.88.72.41 BROADCAST=10.88.72.41 ONBOOT=yes NAME=loopback:1 NM_CONTROLLED="no"
然后做:
ifup lo:1 ifconfig # you should see lo:1 in there
在服务器1上,为服务器2添加静态arp条目:
arp -s <server2 IP> <server 2 MAC>