运维案例:实现网段之间的主机通过指定外网IP共享上网
《运维案例:实现网段之间的主机通过指定外网IP共享上网》要点: 运维需求:172.16.1.0/24段所有主机通过124.32.54.26外网IP共享上网 解决方案:iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT –to-source 124.32.54.26 注释说明:一、参数说明: 1.-t:指定对应的iptables表 2.-A:新增规则到某个规则链中,该规则将会成为规则链中的最后一条规则 3.-s:用来比对封包的来源 IP,可以比对单机或网络,比对网络时请用数字来表示屏蔽,例如:-s 192.168.0.0/24,比对 IP 时可以使用 ! 运算子进行反向比对,例如:-s ! 192.168.0.0/24 4.-j:参数用来指定要进行的处理动作 5.SNAT:源地址转换,目标地址不变,重新改写源地址,并在本机建立NAT表项,当数据返回时,根据NAT表将目的地址数据改写为数据发送出去时候的源地址,并发送给主机 6.–to-souce:意思就是将-s后面的地址,转换成–to后面的地址,这个就是地址转发的作用(NAT) 7.POSTROUTING:路由之后指定相应的iptables链,意思为在NAT TABLE的路由后改做什么处理 二、规则说明 echo 1 > /proc/sys/net/ipv4/ip_forward 注释: 1.完成nat的实现,数据要经过prerouting—forword–postrouting这3个链,要想实现ip转发,需要将内核参数ip_forward的值改为1,这样允许iptalbes FORWARD. 2.设置ip转发许可 方法一:echo 1 > /proc/sys/net/ipv4/ip_forward 方法二:在内核参数文件/etc/sysctl.conf中增加如下内容,然后执行:sysctl -p net.ipv4.ip_forward = 1 iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT –to-source 124.32.54.26 注释: 1.当172.16.1.0/24网段的IP想访问外网的时候,iptables会将源地址进行转换成124.32.54.26,实现上外网 2.SNAT,目前大多都是解决内网用户用同一个公网地址上网的情况(具体请看上面参数说明) iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE 注释: 1.在解释这条规则之前,首先提出一个问题,如果不是固定的124.32.54.26怎么办? 解答:我们都知道当我们使用联通或者电信上网的时候,一般它都会在每次你开机的时候随机生成一个外网的IP,意思就是外网地址是动态变换的.这时我们就要将外网地址换成 MASQUERADE(动态伪装):它可以实现自动寻找到外网地址,而自动将其改为正确的外网地址. 注意:地址伪装并不适用于所有的地方哦! 相信大家看了上面这个问题之后,就明白这条规则了!
(编辑:ASP站长网) |