多网卡模式下Golang应用的流量从指定网卡流入流出方案( 二 )
注意:网桥的流量流出也是通过iptables的snat进行实现的 。 针对特定容器的iptables规则一定要在该网桥的规则前面 。
方案三 DNAT/SNAT技术实现方案思路是创建两个虚拟网卡或网桥br-eip1(172.19.0.100)和br-eip2(172.19.0.101) 。 go应用分别监听网卡br-eip1和网卡br-eip2 。 通过DNAT技术将来eth0的流量导向br-eip1 , 将来自eth1的流程导向br-eip2 。 通过SNAT技术将从br-eip1流出的外部流量导向eth0 , br-eip2流出的流量导向eth1
创建虚拟网卡apt-get install bridge-utils // 安装brctlsudo brctl addbr br-eip1 // 添加网桥sudo ip link set br-eip1 up // 激活网桥sudo ifconfigbr-eip1 172.19.0.100 // 指定br-eip1网桥的ipsudo brctl addbr br-eip2 // 添加网桥sudo ip link set br-eip2 up // 激活网桥sudo ifconfigbr-eip2 172.19.0.101 // 指定br-eip2网桥的ip复制代码
DNAT配置流量流入sudo iptables -t nat -I PREROUTING -d 172.31.0.8/32 ! -i br-eip1 -p tcp -m tcp --dport 8090 -j DNAT --to-destination 172.19.0.100:8090sudo iptables -t nat -I PREROUTING -d 172.31.0.14/32 ! -i br-eip2 -p tcp -m tcp --dport 8090 -j DNAT --to-destination 172.19.0.101:8090复制代码
SNAT配置流量流出sudo iptables -t nat -I POSTROUTING -p all -s 172.19.0.100 -j SNAT --to-source 172.31.0.8sudo iptables -t nat -I POSTROUTING -p all -s 172.19.0.101 -j SNAT --to-source 172.31.0.14复制代码
作者:tink链接:来源:掘金著作权归作者所有 。 商业转载请联系作者获得授权 , 非商业转载请注明出处 。
- GB|备货充足要多少有多少,5000mAh+128GB,红米新机首销快速现货
- 占营收|华为值多少钱
- 查询|数据太多容易搞混?掌握这几个Excel小技巧,办公思路更清晰
- 商品|问道自有品牌,山姆多方博弈
- 抖音小店|抖音进军电商,短视频的商业模式与变现,创业者该如何抓住机遇?
- 垫底|5G用户突破2亿:联通垫底,电信月增700万,中国移动有多少?
- 色卡|双人场景/多机位色彩匹配,色卡很重要
- 砍单|iPhone12之后,拼多多又将iPhone12Pro拉下水
- 打响|拼多多打响双12首枪,iPhone12降到“mini价”,苹果11再见
- 不到|苹果赚了多少?iPhone12成本不到2500元,华为和小米的利润呢?