当前位置: 代码迷 >> 综合 >> Linux-系统管理-nat实现跨网段跨运营商代理
  详细解决方案

Linux-系统管理-nat实现跨网段跨运营商代理

热度:68   发布时间:2023-09-19 13:27:32.0

通过防火墙nat表实现内外网的转发。扩展:通过两层转发实现跨网段、跨运营商代理等功能。

逻辑图:

Linux-系统管理-nat实现跨网段跨运营商代理

实验环境:

client:外网ip:111.206.12.22
nat:
电信外网入口ip:180.149.157.167
电信内网出口ip:10.127.3.167
网通内网入口ip:10.127.132.24
网通外网出口ip:111.206.12.162
server:外网ip:119.167.157.154


实现效果:

电信client 去访问 电信外网入口的50011端口,经过nat转发最后数据包从网通外网出口发向 网通server外网的3733端口
数据包流向:

111.206.12.22 → 180.149.157.167:50011 → 10.127.3.167 → 10.127.132.24 → 111.206.12.162 → 119.167.157.154:3733

具体步骤:

step1:打开电信入口、网通出口 两台机器 的内核转发开关

修改配置文件

vim /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1     #0为关闭,1为打开sysctl -p     #在线加载

查看打开状态

[root@BJ-132-10 sysconfig]# sysctl -a | grep ip_forwardnet.ipv4.ip_forward = 1

step2:电信入口服务器上:

#设置防火墙nat表
#将访问 180.149.157.167 的 50000:60000 端口范围的包转给目标ip:10.127.132.24
-A PREROUTING -d 180.149.157.167 -p tcp -m tcp -- dport 50000:60000 -j DNAT --to-destination 10.127.132.24
#将要发往10.127.132.24 的包 由此 10.127.3.167ip发出
-A POSTROUTING -d 10.127.132.24 -p tcp -m tcp --dport 50000:60000 -j SNAT --to-source 10.127.3.167
############################
#设置filter表
-A INPUT -p tcp -m tcp -dport 50000:60000 -j ACCEPT
-A OUTPUT -d 10.127.132.24 -p tcp -m tcp -j ACCEPT

加载防火墙,使之生效
iptables-restore < iptables

step3:网通出口服务器上:

#设置防火墙nat表
#将访问10.127.132.24:50011端口的包转发到 111.206.12.162:3733
-A PREROUTING -d 10.127.132.24 -p tcp -m tcp --dport 50011 -j DNAT --to-destination 119.167.157.154:3733
#将 发出的tcp包 都由 111.206.12.162 发出
-A POSTROUTING -p tcp -m tcp --dport 3700:3800 -j SNAT --to-source 111.206.12.162
############################
#设置filter
-A INPUT -s 10.127.3.167/32 -p tcp -m tcp -j ACCEPT
-A OUTPUT -d 119.167.0.0/16 -p tcp -m tcp -j ACCPET

加载防火墙,使之生效
iptables-restore < iptables


至此nat就实现了,可以测试一下