最近有朋友在问我我写iptables中有一句什么意思,如下:
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 2/sec -j ACCEPT
其实这个就是icmp的请求响应限制速,就是我们平时所说的ping某一台主机,icmp是一个错误与报告的机制,它所收发的数据包都是用来检测网络状态的,而常见的icmp类别如下:
类别代码 | 类别定义 |
---|---|
0 | Echo Reply(响应消息) |
3 | Destination Unreachable(目的地不可达) |
4 | Source Quench(当路由高负载时,用此拒绝源地址发送信息) |
5 | Redirect(重新定向路由路径) |
8 | Echo Request(请求响应信息) |
B(即11) | Time Exceeded(数据包在路由中超时的时候,告知源地址忽略的信息) |
C(即12) | Parameter Problem(当icmp数据包重复之前的错误时,回复源地址相关的参数错误信息) |
D(即13) | Timestamp Request(要求对方给出时间戳,用以计算路由时间差异,用来满足同步性协议的要求) |
E(即14) | Timestamp Reply(时间戳的回复,就是以上的响应回复用的) |
F(即15) | Info Request(开机取得网络信息的请求,在有rarp协议之前) |
G(即16) | Info Reply(响应信息请求,以上的请求的回复) |
H(即17) | Address Mask Request(查询子网掩码的信息) |
I(即18) | Address Mask Reply(回复查询子网掩码的的信息) |
可以看出icmp包的数据多用于网络的检测,在以上的除了8需要做限制或者是禁用外,其它都不应该关闭。iptables中的意思是对8进行限制流量,因为如果网络中大量的ip对主机进行长时间的ping也会造成DDOS,所以在实际生成环境中我们对icmp 的8的请求都要做相应的限制,当然如果想知道更多的icmp的信息建议用新系统中的man icmp查看。
时间: 2024-10-28 20:08:25