当前位置: 首页 > news >正文

linux vrf icmp reply /vrf icmp 响应错误消息

static inline void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
{__icmp_send(skb_in, type, code, info, IPCB(skb_in));
}

  

static inline void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
{__icmp_send(skb_in, type, code, info, IPCB(skb_in));
}

  

内核协议栈中:

  ip_rcv_coreIPCB(skb)->iif = skb->skb_iif;vrf_ip_rcvskb->dev = vrf_dev;skb->skb_iif = vrf_dev->ifindex;IPCB(skb)->flags |= IPSKB_L3SLAVE;
  • 保存现场: 当数据包刚被网卡接收时,ip_rcv_core 会立即把当前的入接口索引(skb->skb_iif)备份到控制块(IPCB(skb)->iif)中。

  • VRF 干扰: 随后,如果配置了 VRF,VRF 驱动(drivers/net/vrf.c)会接管数据包,并修改 skb->skb_iif 为 VRF 虚拟设备的索引。

  • 恢复现场: 当需要发送 ICMP 错误消息时(比如在 icmp.c 中),skb->skb_iif 已经被改写了,不再是物理接口。这时,代码就会去读之前备份在 parm->iif 中的原始值,从而向正确的接口报告错误。

  当内核生成 ICMP 错误消息时,它去读 skb->skb_iif,读到的是 VRF 设备。结果就是,ICMP 消息的源 IP 变成了 VRF 设备的 IP(或者 VRF 下其他端口的 IP),而不是真正接收数据包的物理接口 IP。

  运行 traceroute 时,显示的路径节点 IP 是错的

 

bugfix:

  • 核心逻辑: 不要直接读取已经被 VRF 修改过的 skb->skb_iif

  • 新方法: 改为读取**控制块(Control Block)**中的 iif 字段。

 

http://www.zskr.cn/news/81658.html

相关文章:

  • python —— 满二叉树的构建
  • 2025 最新箱包五金配件厂家 TOP5 评测!高端定制 + 全链服务权威榜单发布,技术赋能重构箱包五金生态 - 全局中转站
  • 1010000
  • 1001101
  • 1001011
  • 1001100
  • 1001001
  • 1001010
  • 1000010
  • 1000100
  • 2025 最新高端五金辅料厂家TOP5 评测!箱包等高端五金配件优质供应商,品质铸就 + 定制赋能权威榜单发布,技术创新引领行业新生态 - 全局中转站
  • 2025年高口碑LED生产厂家推荐,助你寻找可靠LED供应商 - 讯息观点
  • twemproxy请求限流:保护后端服务器的流量控制 - 详解
  • 双向链表及双向循环链表(C语言)
  • 2025年潜水搅拌机源头工厂推荐品牌:双曲面/框式/桨式/立式/絮凝/混凝/加药/折桨/混合搅拌机哪家强? - 品牌推荐大师1
  • Unity 协程
  • 2025年高压试验变压器/核相仪/电加热器/接地电阻测试仪/串联谐振耐压试验装置等电力试验设备厂家推荐 - 品牌推荐大师
  • 微软印度投资175亿 | NEO发布 | 阿里推出QwenCodev0.3.0 | Google推AI眼镜要来了
  • 2025凝胶电泳仪/琼脂糖电泳仪/进口替代仪器/分子生物仪器/生命科学仪器/WB/核酸/ecl凝胶成像分析系统哪家性价比高?认准实力制造商/源头厂家 - 品牌推荐大师1
  • 2025年冷热冲击试验箱/氙灯老化试验箱/高低温冲击试验箱/紫外老化试验箱/高低温试验箱哪家好?优质厂家排名比较好的推荐 - 品牌推荐大师1
  • Spring Boot Web 开发入门:分层架构、解耦设计与 IOC 核心思想
  • 2025年国产水质分析仪厂家推荐:多参数/四参数/便携式/氨氮/总磷/总氮/余氯/COD水质分析仪哪个品牌好? - 品牌推荐大师1
  • 2025年晶圆烘箱厂家推荐,国内品牌哪个好?哪家性价比高? - 品牌推荐大师
  • 深入解析:CV三大核心任务:目标检测、图像分割、关键点检测
  • Alientech KESS V3/KESS3 Slave: Activate Bike, ATV UTV Bench-Boot Protocols for Tuning Diagnostics
  • 2025年实验室通风系统/实验室气路系统公司/厂家推荐:实验室通风系统/实验室气路系统哪家好?哪家专业? - 品牌推荐大师
  • 超微粉碎机十大知名品牌推荐/行业领先企业/中药超微粉碎机源头厂家/灵芝超微粉碎机靠谱制造商/头部企业/实力生产商哪家好/优质供应商哪家强/生产商口碑推荐 - 品牌推荐大师1
  • 实用指南:C++中有双向映射数据结构吗?Key和Value能否双向查找?
  • 高级程序语言第九次
  • 12月10日