【博客561】利用隧道和conntrack实现NAT网关
创始人
2024-04-25 17:34:20
0

利用隧道和conntrack实现NAT网关

场景:实现一个NAT网关来转发其它node的出外网流量

如:图中的2节点充当NAT网关来转发1的出外网流量
在这里插入图片描述

利用隧道和conntrack实现NAT网关

节点ip:

node1是172.17.158.48,node2是172.17.158.46

1、配置1节点的隧道:

ip tun add tun0 mode gre remote 172.17.158.46 local 172.17.158.48 ttl 64 
ip link set tun0 up
ip addr add 100.64.0.1 peer 100.64.0.2 dev tun0

2、在1节点添加路由项,使得本地去往第三方站点的流量,都走这条路由,也就是通过隧道到达虚拟机 2,然后 2 来转发报文:

ip route add 110.242.68.0/24 via 100.64.0.2 dev tun0

3、虚拟机 2 上面也需要做对等的隧道配置:

ip tun add tun0 mode gre remote 172.17.158.48 local 172.17.158.46 ttl 64 
ip link set tun0 up 
ip addr add 100.64.0.2 peer 100.64.0.1 dev tun0

4、虚拟机 1 把报文发到虚拟机 2,但是如果后者不做配置,默认是会丢弃这些报文的,所以
还需要在 2 上开启 ip_forward:

sysctl net.ipv4.ip_forward=1

5、在 2 上启用 SNAT

iptables -t nat -A POSTROUTING -d 110.242.68.0/24 -j MASQUERADE

要不然出去的报文源 IP 是 100.64.0.1,回包也会回这
个地址,显然回不到 2 了在这里插入图片描述

6、验证:在1上发起百度的请求,能够正常被转发
在这里插入图片描述

原理:

  • 通过隧道和默认路由,在1节点上将其访问百度的包送到了2节点

  • 2节点收到隧道包后进行拆解,然后根据目的地址百度发起请求,且通过conntrack进行snat,将出去的src ip由原来的1节点隧道设备的ip改为自己出外网网卡的ip,收到回复后再进行conntrack reverse,将dst ip由自己出外网网卡的ip改为1节点隧道设备的ip,此时再通过隧道回到1节点

  • 1节点通过隧道收到了百度的回包

在这个过程中,我们使用了MASQUERADE进行snat,MASQUERADE会自动会回包进行reverse,不需要你再下发dnat规则来恢复了

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...