linux源地址转换

文章来源: https://blog.51cto.com/codekong/1739968

linux iptables 源地址转换实验

 个人理解:该实验模拟的三台机器实际用途中的角色扮演可以这样理解:Intranet为内网主机,iptables为通外网的代理主机,其中172.16.100.1可以理解为代理主机的公网IP,Internet为互联网。

1.环境准备

    在试验前我首先准备了三台linux主机,使用的操作系统是:CentOS,三台主机的网络规划如下:

    

    第一台主机:Intranet,模拟内网主机,网络连接方式使用的是桥连接,IP:192.168.10.2

    第二台主机:Internet,模拟外网主机,网络连接方式使用的是仅主机模式,IP:172.16.100.2

    第三台主机:iptables,模拟路由转发,其中有两块网卡,第一块网卡(eht1)IP:192.168.10.1,第二块网卡(eth2)IP:172.16.100.1

    

2.开始实验

    此时在同一网络的主机可以相互通信,可以用ping命令来验证。若想让Intranet访问iptables的172.16.10.1,需要为Intranet和Internet指定网关:

    给Intranet指定网关:route add default 192.168.10.1

    给Internet指定网关:route add default 172.16.100.1

 

    指定好网关后需要将iptables的转发功能打开:

    echo 1 > /proc/sys/net/ipv4/ip_forward   临时有效,重启网络服务或主机失效。

    vim /etc/sysctl.conf  将net.ipv4.ip_forward = 1 修改即可,永久有效。

    

    此时Intranet 可以访问 Internet主机,但是源地址是Intranet:192.168.10.2。若进行源地址转换,需要在iptables主机中加入防火墙规则:

    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth2 -j SNAT --to-source 172.16.100.1

    加入规则后,来自Intranet的数据包的地址,都被转换成172.16.100.1

posted @ 2019-09-04 09:39  骑猪少年  阅读(1121)  评论(0编辑  收藏  举报