我们可以通过以下方式在IP地址的基础上标记数据包 –
iptables -A FORWARD -t mangle -s 123.2.3.4 -j MARK --set-mark 1
如何根据主机名标记数据包? 我试过这个 –
iptables -A FORWARD -t mangle -s google.co.in -j MARK --set-mark 1
但iptables utitlity从DNS获取google.co.in的IP地址,并将条目添加到mangle表中。 如何标记来自google.co.in所有数据包,而不仅仅是来自Google的单一服务器。 由于有数以千计的服务器,手动添加所有IP地址也是不可能的。
有没有办法读取数据包并获取主机名并将其标记?
谢谢。
防火墙规则不在DNS级别运行。 在某些情况下,iptables将会为你做一个DNSparsing,但是结果不会是你正在寻找的,也不会跟随和DNS名字上的IP变化。
相反,您需要一个HTTP代理(如Squid及其传出包标记( http://www.squid-cache.org/Doc/config/tcp_outgoing_mark/ ))来处理这种行为。
对于传入stream量,如果您对GoogleBot特别感兴趣,可以查看非官方的IP范围列表,例如https://evert.meulie.net/faqwd/googlebot-ip-ranges/并为此设置您的iptables。
“由于有数以千计的服务器,手动添加所有IP地址也是不可能的。”
您可以构build和维护所有谷歌AS的小列表,然后根据这些networking范围添加防火墙规则。
也许你甚至可以在互联网上find所有的谷歌AS。
(看一下