发现有劫持之后就开始抓包,发现抢答的回应非常像正常的回应,很难找到什么特点来过滤.
但是反过来发现 aliDNS 自己的回应很有特点:没有填写校验和,UDP 的校验和是可选的.
那么接下来的工作就简单了,我就做了点微小的工作
把 aliDNS 地址回应的包有校验和的包全部丢弃.
iptables -A INPUT -s 223.5.5.5 -p udp --sport 53 -m u32 ! --u32 "0x0>>0x16&0x3c@4&0xFFFF=0" -j DROP
iptables -A INPUT -s 223.6.6.6 -p udp --sport 53 -m u32 ! --u32 "0x0>>0x16&0x3c@4&0xFFFF=0" -j DROP
iptables -A FORWARD -s 223.5.5.5 -p udp --sport 53 -m u32 ! --u32 "0x0>>0x16&0x3c@4&0xFFFF=0" -j DROP
iptables -A FORWARD -s 223.6.6.6 -p udp --sport 53 -m u32 ! --u32 "0x0>>0x16&0x3c@4&0xFFFF=0" -j DROP