感谢支持
我们一直在努力

iptables nat跳转

1、目的:解决网络跨运营商互访质量不佳的问题,通过一台双网卡连接两个不同的运营商的linux主机,通过iptablse进行nat跳转,从而解决此网络问题。


2、主参考文档Iptables 指南.chm,以下的文档均指它,下载地址:


http://www.linuxidc.com/Linux/2012-07/64851.htm


3、主要的表:
filter:筛选过滤表,不加表时,默认是这个表,用于防火墙规则过滤
nat:转发表,用于IP跳转
mangle:改包的一些属性,用于流控,QOS等,此表用得很少,可以不理它


4、安装:有些系统是自带的,有些不自带或比较老的要下载再编译安装,文档2有介绍


5、打开服务:service iptables start
加入开机启动:chkconfig iptables on


6、查看服务状态(有时显示的不准,如里面一条规则也没有时)
service iptables status –也可以用于查看所有的表链规则


7、为开启路由转发必须执行的命令
echo “1” > /proc/sys/net/ipv4/ip_forward  –这个是开启转发必要的命令,但这样操作是临时的,重启机子就还原了,永久设置见下面
echo “1” > /proc/sys/net/ipv4/tcp_syncookies
echo “1” > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp


8、永久设置转发功能,防止重启失效
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.tcp_syncookies = 1
# sysctl -p (使设置马上生效)


9、语法格式
iptables [-t table] command [match] [target/jump]
–table
如果不写,默认是指filter表


–command
见文档6.3


–match
见文档6.4


–target/jum
见文档6.5


10、单网卡实例:x——〉广州机房(即中转机子)120.132.152.142:9101——〉运营商219.140.165.133:80。-j MASQUERADE智能匹配,但消耗一定的cpu
iptables -t nat -A PREROUTING -p tcp –dport 9101 -j DNAT –to 219.140.165.133:80
iptables -t nat -A POSTROUTING -p tcp –dport 80 -j MASQUERADE


11、双网卡双外网实例:X——〉183.62.178.85:7001——〉158.250.56.154:7001——〉112.90.176.35:7001
iptables -t nat -A PREROUTING -d 183.62.178.85 -p tcp -m tcp –dport 7001 -j DNAT –to-destination 112.90.176.35:7001
iptables -t nat -A POSTROUTING -d 112.90.176.35 -p tcp -m tcp –dport 7001 -j SNAT –to-source 158.250.56.154


12、常用命令:
–清空nat表PREROUTING链,谨慎操作
iptables -t nat -F PREROUTING
–清空nat表POSTROUTING链,谨慎操作
iptables -t nat -F POSTROUTING
–显示明细
iptables -t nat -nvL –line
–删除编号88
iptables -t nat -D PREROUTING 88
–保存
service iptables save  或/etc/sysconfig/iptables save
–重启iptables
service iptables restart


13、配置完生成的文件
/etc/sysconfig/iptables  #当前的配置
/etc/sysconfig/iptables.save   #上次的配置备份


14、telnet测试


–添加静态路由—————
15、双网卡双外网的情况下,不一定所有环境两个网卡都可以ping通,这主要取决于上层网络提供商的设置,一般用户控制改变不了的。只有设置了网关的网卡可以ping通,但却不影响使用。
    如果只有一个能ping通的话,那就必须添加路由的方式来解决跳转的问题。
    如果两个都可以ping通,虽跳转可以成功,但出口都默认只是设置的默认网关出口,相当于网络问题只解决了一半。


16、环境说明:
eth0:IPADDR=183.62.178.85  GATEWAY=183.62.178.94  –电信网络
eth1:IPADDR=58.250.56.154  GATEWAY=58.250.56.1    –联通网络
目的访问:112.90.176.35:7001
测试路径:telnet 183.62.178.85 7001
路径说明:X——〉183.62.178.85:7001——〉158.250.56.154:7001——〉112.90.176.35:7001
设置的跳转命令如上面的11点


17、路由添加:
路由添加:# route add -net 112.90.176.0  netmask 255.255.255.0 gw 58.250.56.1 eth1
        或# route add -net 112.90.176.0/24 gw 58.250.56.1 eth1
删除路由:# route delete -net 112.90.176.0  netmask 255.255.255.0 gw 58.250.56.1 eth1
        或# route delete -net 112.90.176.0/24 gw 58.250.56.1 eth1


18、假设默认网关是电信,且源地址或目的地址是能判断为联通的,那么就必须对这个联通的源地址或目的地址做如上的静态路由。


19、重启机子后,路由会失效,故要把它加到/etc/rc.d/rc.local中,如果不小心重启了网卡,也会让路由失效,此时就得到/etc/rc.d/rc.local找到脚本再运行一下了。

赞(0) 打赏
转载请注明出处:服务器评测 » iptables nat跳转
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏