小编给大家分享一下iptables中mangle表应用如何实现策略路由,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
mangle表主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)指以及为数据包设置Mark标记,以实现Qos(Quality Of Service,服务质量)调整以及策略路由等应用,由于需要相应的路由设备支持,因此应用并不广泛。
mangle 表对应的内核模块为 iptable_mangle。
修改IP包头的TTL值伪装系统版本;
修改IP包头的DSCP值或对特定的数据包设置QOS;不同业务的传送优先级、带宽使用率都可以设置。
下面就来案例说明一下实用且常用的用途吧:
案例1、
iptables网关服务器三块网卡:eth0(网通ip:10.0.0.1)、eth2(电信ip:20.0.0.1);eth3:网关192.168.10.1。
要求:公司内网要求192.168.10.1—100以内的ip使用 10.0.0.1 网关上网(网通),其他IP使用 20.0.0.1 (电信)上网;
iptables网关服务器配置如下:
ip route add default gw 20.0.0.1 ip route add table 10 via 10.0.0.1 dev eth0 #eth0 是10.0.0.1所在的网卡,10 是路由表的编号 ip rule add fwmark 10 table 10 #fwmark 10 是标记,table 10 是路由表10。 标记了 10 的数据使用table10 路由表 iptables -A PREROUTING -t mangle -i eth3 -s 192.168.10.1 - 192.168.10.100 -j MARK --set-mark 10 #使用iptables给相应的数据打上标记
mangle应用顺序要高于nat、filter哈。
案例2、
iptables网关服务器三块网卡:eth0(网通ip:10.0.0.1)、eth2(电信ip:20.0.0.1);eth3:网关192.168.10.1。
要求:公司内网要求员工访问外面的网站服务;使用 10.0.0.1 网关上网(网通),其他IP使用 20.0.0.1 (电信)上网;
iptables -t mangle -A PREROUTING -i eth3 -p tcp --dport 80 -j MARK --set-mark 20 ip route add default gw 20.0.0.1 ip route add table 20 via 10.0.0.1 dev eth0 ip rule add fwmark 20 table 20