扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
假如想进一步了解他的工作原理,NAT其实就是一种IP包欺诈,也可以说是对IP报头的修改,请看下表
4位版本
4位首部长度
8位服务类型
16位总长度(字节数)
16位标识
3位标志
13位片偏移
8位生存时间(ttl)
8位协议
16位首部校验和
32位源ip地址
32位目的ip地址
其他选项
携带数据
IP数据包格式和报头中的各字段
NAT网关(外202.204.208.5;内192.168.0.1)收到本地局域网内的客户机(192.168.0.2),发来的ip数据,先判断是否是本地子网中发来的,假如通过,则按照她的目的ip地址查找本地路由表进行转发,NAT在包被继续向前送出之前转换32位源地址 192.168.0.1成202.204.208.5。相应的,IP包往回传时依据相同的地址进行转换。
2.2.2 NAT设置
我们知道了NAT的原理,就可以进行NAT的配置了,我们前面说过了NAT就是防火墙,在RED HAT9.0下自带防火墙 IPTABLS
我们在做好网络设置后,假如要实现客户端(win98)通过服务端上网(静态NAT),可以在命令行下直接打入
iptables -t nat -A POSTROUTING -o eth1 -j SNAT - to 202.204.208.5
说明:
-t nat : 调用nat表,调用这个表说明遇到了产生新的连接的包。
-A :该命令将一条规则附加到链的末尾。
POSTROUTING:指定正当信息包打算离开防火墙时改变它们的规则。
-o eth1:输出接口为ETH1
-j SNAT:跳转,也叫触发条件,当满足Snat规则是便发生跳转
整条语句的意思为: 当防火墙遇到产生新的连接的包,则在他要离开防火墙时改变他的源ip为202.204.208.5并且从ETH1出口送出。
nat的规则指定完成后,还要打开IP转发功能:
echo 1 >/proc/sys/net/ipv4/ip_forward
这样,客户端就可以通过208.5上网了。
假如208.5的客户端192.168.0.2开设了80端口的web服务,如何让外部访问到这个局域网内部的服务呢?
这就用到了Dnat(也叫反向nat,端口跳转),在命令行下打入:
iptables -t nat -A PREROUTING -i eth1 -d 202.204.208.5 -p tcp -dport 80 -j DNAT -to-destination 192.168.0.2:80
语句说明:当有通过eth1接口的tcp协议访问202.204.208.5的80端口的时候,则触发跳转,跳转至局域网的192.168.0.2的80端口。
但是这同时也出现一个问题,在同一局域网内的机器,无法访问202.204.208.5的80端口。以下是原因:
假设192.168.0.3不通过http://192.168.0.2:80这种方式进行浏览
在命令行下打入:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。