Nat: Network Address translation
SNAT: change source ip
DNAT: change destination ip
iptable -t nat -L : list
PREROUTING: 修改目标IP DNAT -i eh0
OUTPUT:对本机产生的数据包执行 DNAT
POSTROUTING: 修改来源IP SNAT -o eth0
一对多
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/28 -j SANT --to 10.0.1.2008
如果公网地址不固定
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
多对多,前提条件是你必须有多个公网IP,并且是连续的
iptables -t nat -A POSTROUTING -o etho -s 192.168.0.0/24 -j SNAT --to 10.0.1.200-
10.0.1.205
一对一NAT
处于内网的每个对外服务器都有一个公网IP
主要目的是当把对外服务器部署在内网中时,提供给对外服务主机一个更安全的运行的环境
例如服务器的内网地址是192.168.0.1,8的eth1上有三个IP,启动10.0.1.201是192.168.0.1
的对应外网地址
数据包从NAT进入对外服务器8
iptables -t nat -A PREROUTING -i eth0 -d 10.0.1.201 -j DNAT --to 192.168.0.1
如果用户需要在这台服务器上访问因特网,
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.1 -j SNAT --to 10.0.1.201
如果并不是每个处于内网的服务器都有一个公网IP呢,,我们可以用端口来区分
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to
192.168.0.1:80
iptables -t nat -a PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to
192.168.0.1:443
NAT Manage机制
1. 修改TTL的值
windows:128
linux: 64
2. 修改IP包的DSCP值对特定的数据包设置特征
iptables -t mangle -A OUTPUT -p tcp --dport 22 -j DSCP --set--dscp 43