内核设置数据包nfmark值的流程分为两步:(1)首先,内核会先用mask预处理数据包原来的nfmark,处理方法是:如果mask的第N位(二进制)为1,那么将数据包的nfmark第的N位(二进制)设置为0 ,nfmark其他的位保持不变(2)接着,再用上面预处理后的nfmark和value做异或操作,得到数据包最后的nfmark值。 举个例子:假设我...
iptables -t mangle -A PREROUTING -p tcp -m mark --mark 1 -j CONNMARK --save-mark 在PREROUTING链上mangle表中,所有tcp报文,报文mark为1的报文,保存到contract的mark上。 5)将contract上的mark 复制到skb的mark iptables -t mangle -A POSTROUTING -m mark --mark 0/0x000000FF -j CONNMARK --res...
–or-mark value 数据包的nfmark值和value进行按或与运算。 3)MARK match的选项 选项 功能 [!] –mark value[/mask] 数据包的nfmark值与value进行匹配,其中mask的值为可选的 先说说CONNMARK和MARK的区别: 同样是打标记,但CONNMARK是针对连接的,而MARK是针对单一数据包的...
iptable 中配置-j MARK --set-mark 用于给匹配规则的数据包,打上标签。-m mark 用于匹配规则。 使用iptables -j mark --help 命令查看,设置规则: 使用iptables -m mark --help 查看匹配规则: 设置mask掩码,用于设置相应的标志位。 上面的规则,标示匹配mark为0x2掩码为0x3的标记。在匹配规则的时候,先用skb...
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2 如何匹配mark iptables -t mangle -A INPUT -m mark --mark 1 -m 即match匹配的意思。 mark的格式是--mark value[/mask],如上面的例子是没有掩码的,带掩码的例子如--mark 1/1。如果指定了掩码,就先把mark值和掩码取...
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; 数据包经过 PREROUTING 链后,将要进入路由选择模块,为了对其进行策略路由,执行以下两条命令,添加相应的规则: ...
[!] --mark value[/mask] 将数据包与给定的无符号标记值匹配(如果指定了掩码,则在比较之前将其与掩码进行逻辑“与”运算)。 mh (IPv6-specific) 如果指定了“--protocol ipv6 mh”或“--proto mh”,则加载此扩展。 它提供以下选项: [!] --mh-type type[:type] ...
2、规则中处理动作:ACCEPT(接受)、REJECT(拒绝但会回复被拒原因)、DROP(直接丢弃无响应)、REDIRECT(端口重定向)、MASQUERADE(源地址动态伪装)、LOG(记录日志而后继续向下匹配规则)、DNAT(目的IP转换)、SNAT(源IP转换)、MIRROR、QUEUE、RETURN、MARK。【详细介绍】 ...
Mangle表:修改数据包,改变包头中内容(TTL, TOS, MARK ) (1)TOS :设置改变数据包的服务类型,不要使用TOS设置发往Internet的包除非打算依赖TOS来路由,不能在表中配置任何过滤。SNAT、DNAT (2)TTL:改变数据包的生存时间,可以让数据包只有一个特殊的TTL,欺骗ISP,有些ISP并不希望多台计算机共享一个连接访问Internet...