SNAT端口转发配置
需求说明
在只有外网地址的机器上也能正常访问内网地址
配置过程
环境网络信息
网络名称 | 网络地址 |
---|---|
外网 | 192.168.200.0/24 (网关:192.168.200.251) |
内网 | 92.0.0.0/24 |
SNAT服务器信息
# ip addr show ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:4a:b3:8b brd ff:ff:ff:ff:ff:ff
inet 92.0.0.10/24 brd 92.0.0.255 scope global ens3
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe4a:b38b/64 scope link
valid_lft forever preferred_lft forever
# ip addr show ens4
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:6a:e2:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.200.10/24 brd 192.168.200.255 scope global ens4
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe6a:e2ff/64 scope link
valid_lft forever preferred_lft forever
# ip route
default via 192.168.200.1 dev ens4
92.0.0.0/24 dev ens3 proto kernel scope link src 92.0.0.10
169.254.0.0/16 dev ens3 scope link metric 1002
169.254.0.0/16 dev ens4 scope link metric 1003
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.200.0/24 dev ens4 proto kernel scope link src 192.168.200.10
开启转发
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
添加转发规则
### ens3为内网网卡,ens4为外网网卡
# iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
### 内网到外网需要建立连接才放行
# iptables -A FORWARD -i ens3 -o ens4 -m state --state RELATED,ESTABLISHED -j ACCEPT
### 外网到内网直接放行
# iptables -A FORWARD -i ens4 -o ens3 -j ACCEPT
# iptables-save > /etc/sysconfig/iptables.save
验证配置
### 在外网机器上添加路由
# ip route add 92.0.0.0/24 via 192.168.200.10