加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-kernel – ICMP数据包的源和目标端口

发布时间:2020-12-14 01:18:29 所属栏目:Linux 来源:网络整理
导读:我正在netfilter中编写数据包过滤器.有没有办法可以获得ICMP数据包的源端口和目的端口? 我从sk_buff结构中提取了icmp_hdr.但我没有看到来自源地址和目的地址的任何属性? 解决方法 端口号是TRANSPORT层识别哪个数据包属于终端系统中的哪个进程的方式. 他们
我正在netfilter中编写数据包过滤器.有没有办法可以获得ICMP数据包的源端口和目的端口?

我从sk_buff结构中提取了icmp_hdr.但我没有看到来自源地址和目的地址的任何属性?

解决方法

端口号是TRANSPORT层识别哪个数据包属于终端系统中的哪个进程的方式.
他们习惯于让流程到流程的交付工作;但从功能的角度来看,ICMP不是传输层协议.

ICMP是网络层的消息传递协议(在IP之上; but not really in the transport layer),它有很多责任,但它们都没有与进程到进程交付有关,因此有一个端口号不会有道理.

举一个例子,当你ping(ping使用ICMP echo消息)一个IP地址时,你真正在ping哪个端口?
答案是:没有端口,你正在ping全站,看看它是否还活着.

现在,ICMP有很多types of messages;如果要过滤掉例如ping消息,则应检查字段类型,如果它等于ICMP_ECHO,则可以返回NF_DROP.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读