注意:本机路由转发的时候,才配置FORWARD转发链!
#iptables –A FORWARD –s 192.168.0.0/24 –j ACCEPT
#iptables –A FORWARD –d 192.168.0.0/24 –j ACCEPT
上面只是打通了局域网通过此机的Forward的通道,也就是打通了局域网与外网的链路,实际上并起不到任何的作用,因为在内核里面的转发文件并没有打开,因为我们要手工修改/proc/sys/net/ipv4/ip_forward 的值,将默认的0改为1!(1为打开,0为关闭)
例:#10.0.0.241 -----< 202.96.209.5
内网在访问外网的时候,包在到达外网后,外网不知道也没有办法回应此包给内网的主机,从而使得内外网无法实现通信;所以在网关上要在一个地址转换(NAT)将局域网地址翻译成互联网地址,它是通过NAT表(Network Address Trastation)来实现的。
#iptables –t nat –L –n
Prerouting是在routing之前的,在数据包进入routing之前就可以翻译数据包的目标地址,如果目标确定好了,发出去了,这时要经过postrouting链。( Prerouting是routing之前所经过的链,而postrouting是routing之后所经过的链 )
一、SNAT(源地址转换)
一个包如果目标不是自己,在通过Forward的时候,把源翻译成自己的地址。
源地址转换,只是把源的地址换成了自己的地址,它只能发生在postrouting上,不能发生在prerouting上。
二、DNAT(目标地址转换)
当一个包在进入routing之前,也就是在prerouting的时候,转换它的目标地址。
三、SNAT应用
10.0.0.241主机的网关为10.0.0.254,主机241发送的数据包都要经过254进行转换.
#iptables –t nat –A postrouting –s 10.0.0.0/24 –j SNAT --to-source 192.168.0.254
#iptables –t nat –L –n
在10.0.0.241上访问192.168.0.1 #ping 192.168.0.1 通的.
拨号网关: #iptables –t nat –A postrouting –s 10.0.0.0/24 –j MASQUERADE (伪装)
四、DNAT应用
DNAT保护局域网
#iptables –t nat –A prerouting –d 10.0.254 –p tcp –dport 80 –j NAT --to-destination 192.168.0.1
总结:SNAT(源地址转换)发生在postrouting的时候;
DNAT(目标地址转换)发生在prerouting的时候;