9.3.3 mangle表应用举例
来源:互联网 发布:诲女知之乎阅读答案 编辑:程序博客网 时间:2024/06/04 18:08
9.3.3 mangle表应用举例
前面介绍的防火墙规则其所在的规则链都位于filter表,下面再看一个有关mangle表的使用例子。mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。
图9-9所示的是一种典型的网络结构,内网的客户机通过Linux主机连入Internet,而Linux主机与Internet连接时有两条线路,它们的网关如图所示。现要求对内网进行策略路由,所有通过TCP协议访问80端口的数据包都从ChinaNet线路出去,而所有访问UDP协议53号端口的数据包都从Cernet线路出去。
图9-9 利用mangle表进行策略路由的例子网络结构
这是一个策略路由的问题,为了达到目的,在对数据包进行路由前,要先根据数据包的协议和目的端口给数据包做上一种标志,然后再指定相应规则,根据数据包的标志进行策略路由。为了给特定的数据包做上标志,需要使用mangle表,mangle表共有5条链,由于需要在路由选择前做标志,因此应该使用PREROUTING链,下面是具体的命令。
iptables -t mangle -A PREROUTING -i eth0 -p tcp --dport 80 -j MARK --set- mark 1
iptables -t mangle -A PREROUTING -i eth0 -p udp --dprot 53 -j MARK --set- mark 2
以上命令在mangle表的PREROUTING链中添加规则,为来自eth0接口的数据包做标志,其匹配规则分别是TCP协议、目的端口号是80和UDP协议、目的端口号是53,标志的值分别是1和2。数据包经过PREROUTING链后,将要进入路由选择模块,为了对其进行策略路由,执行以下两条命令,添加相应的规则。
ip rule add from all fwmark 1 table 10
ip rule add from all fwmark 2 table 20
以上两条命令表示所有标志是1的数据包使用路由表10进行路由,而所有标志是2的数据包使用路由表20进行路由。路由表10和20分别使用了ChinaNet和Cernet线路上的网关作为默认网关,具体设置命令如下所示。
ip route add default via 10.10.1.1 dev eth1 table 10
ip route add default via 10.10.2.1 dev eth2 table 20
以上两条命令在路由表10和20上分别指定了10.10.1.1和10.10.2.1作为默认网关,它们分别位于ChinaNet和Cernet线路上。于是,使用路由表10的数据包将通过ChinaNet线路出去,而使用路由表20的数据包将通过Cernet线路出去。
上面介绍了有关mangle表在策略路由上的应用,有关策略路由的具体内容,可参见8.3节。
- 9.3.3 mangle表应用举例
- iptables之mangle表应用实现策略路由+(案例)
- iptables 的mangle表
- iptables mangle 表,链
- mangle
- 顺序表应用举例
- 链表应用举例
- 顺序表应用举例
- 线性表应用举例
- 顺序表的应用举例
- 顺序表的应用举例
- 顺序表的应用举例
- 单向链表的应用举例
- glib 中hash表应用举例
- xpath应用举例
- jasperReport应用举例
- 变长参数应用举例
- PIX 防火墙应用举例
- 明天还要考四级
- 怎样使用Excel填充柄的作用与功能
- 软件工程学习心得
- 优化数据库大幅度提高Oracle的性能
- 9.3.2 保护内部客户机的防火墙规则
- 9.3.3 mangle表应用举例
- mysql驱动研究之通用数据转发器
- 怎样创建邮件服务器?
- 9.4 iptables防火墙的NAT配置
- PyDev for Eclipse
- 9.4.1 NAT简介
- Quartz在WEB项目中实用,配置文件调用
- 困扰的脚本错误
- WPF: Animations in XAML and code-behind