1-11 ICMP协议

ICMP协议  

       IP不提供可靠的传输服务,也不提供端到端或点到点的确认,如果出错可以通过ICMP报告来看,它在IP模块中实现。TCP/IP协议设计了ICMP就是为了弥补IP协议的不足。

       它是TCP/IP协议族的一个子协议,用于在IP主机。路由器之间专递控制消息。控制消息指网络通不通,主机可以否达,路由是否可用等。这些控制消息传递的并不是用户数据,但是对用户数据的传输起到了重要的作用。

    作用:负责差错控制,拥塞控制,传输控制。

    工作过程:

           ping是ICMP协议的工作过程。

           本机发送一个ICMP Echo Request的包,包含64个字节

           接受方返回一个ICMP Echo Reply,包含了接受到数据拷贝和一些其他指令

           tracert命令也是基于ICMP协议的

ICMP报文是包含在IP数据报中,属于IP一个用户,所以IP报头就在ICMP报文前面

ICMP报文包括:IP头部、ICMP头部和ICMP报文。

IP头部中Protocol=1说明ICMP报文

ICMP头部中type说明ICMP报文的作用和格式。code说明报文的类型

ICMP报文格式:

 

转载于:https://www.cnblogs.com/buzhidaojiaoshenmoleya/p/5152034.html

为了阻止特定类型的 ICMP 响应(例如 ICMP 类型 0,即 `echo-reply`)通过 `iptables`,可以使用以下规则来实现。这些规则将阻止传出的 ICMP 类型 0 响应: ```bash iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP ``` 此规则会匹配所有协议ICMP 且类型为 `echo-reply` 的传出数据,并将其丢弃,从而阻止这些响应通过网络接口发送出去[^1]。 如果你希望阻止所有类型的 ICMP 响应,可以使用以下规则: ```bash iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP ``` 此外,如果你想阻止特定接口上的 ICMP 响应,可以在规则中指定接口名称。例如,以下规则将阻止通过 `eth0` 接口的 ICMP 类型 0 响应: ```bash iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j DROP ``` 这些规则可以根据具体需求进行调整,以满足不同的网络安全性要求。在实际应用中,建议在测试环境中验证规则的效果,以确保不会影响正常的网络通信[^1]。 ### 阻止特定 ICMP 类型的示例 假设你只想阻止 ICMP 类型 0(`echo-reply`),而不影响其他 ICMP 类型的流量,可以使用以下规则: ```bash iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP ``` 这条规则将仅阻止传出的 ICMP 回显响应,而不会影响其他类型的 ICMP 流量(如 `echo-request` 或其他 ICMP 错误消息)。 如果你需要阻止多个特定类型的 ICMP 响应,可以为每个类型添加单独的规则。例如,以下规则将阻止 ICMP 类型 0 和类型 3(`destination-unreachable`)的响应: ```bash iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -j DROP ``` 这些规则可以根据需要扩展,以覆盖更多 ICMP 类型或特定的网络场景。 ### 注意事项 - **规则顺序**:`iptables` 的规则是按顺序匹配的,因此确保这些规则的位置合理,以免被其他规则覆盖。 - **持久化保存**:修改后的 `iptables` 规则在系统重启后会失效,建议使用 `iptables-save` 和 `iptables-restore` 工具将规则持久化保存。 - **测试与验证**:在应用规则之前,建议在测试环境中验证规则的行为,以避免意外中断网络通信。 ### 示例代码 以下是一个完整的示例脚本,用于阻止特定类型的 ICMP 响应: ```bash #!/bin/bash # 阻止所有接口上的 ICMP 类型 0 (echo-reply) iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP # 阻止 eth0 接口上的 ICMP 类型 0 (echo-reply) iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j DROP # 阻止 ICMP 类型 0 和类型 3 的响应 iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -j DROP ``` 运行此脚本后,`iptables` 将根据规则阻止相应的 ICMP 响应。请根据实际需求调整规则内容[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值