我在eks kubernetes(v1.11)中有一个吊舱。我想从特定的源端口(例如:42000)将UDP数据包从此pod发送到群集之外的计算机。 Kubernetes转换数据包的源端口。有什么方法可以禁用此功能(仅适用于给定的pod)?
iptable规则:
Chain KUBE-POSTROUTING (1 references)
target prot opt source destination
MASQUERADE all -- anywhere anywhere /* kubernetes service traffic requiring SNAT */ mark match 0x4000/0x4000
使用netcat从此pod发送数据包(pod位于具有公共ip 2.3.4.5的节点上):
netcat -u -p 42000 1.2.3.4 31007
在另一台计算机上接收数据包(1.2.3.4):
netcat -v -u -l -p 31007
connect to 10.100.0.1 from ec2-2-3-4-5.eu-west-1.compute.amazonaws.com [2.3.4.5] 41639
删除iptables规则后,接收端显示:
netcat -v -u -l -p 31007
connect to 10.100.0.1 from ec2-2-3-4-5.eu-west-1.compute.amazonaws.com [2.3.4.5] 42000
因此很明显,此规则更改了udp数据包的源端口。