测试过程可以发现当qos与portal功能都开启的时候,会导致已经放行的设备也无法正常上网。
在portal和qos的设计中,各自都遵循了iptables默认的通用规范,所以双方都没有做错:
- mangle 表通常用于修改数据包的某些属性,如服务类型(TOS)、生存周期(TTL)以及设置标记(mark)。
- nat表主要处理数据包的地址转换和端口映射。
- filter 表则主要用于决定数据包的命运,ACCEPT、DROP、REJECT会放在filter表里面做。
portal认证的iptables规则流程如下:
qos的iptables规则流程如下:
根据上面的规则流程可以分析到具体的原因如下:
由于portal和qos用的方法都是使用mark原理,将数据流标记后,再通过标记匹配做出不同的动作,mark的动作都处于mangle表中。
根据上图数据流可以看到,portal先将mark设置成0x2,然后被qos又设置成0xff,所以portal就匹配不到