带有QinQ的ICMPv6 RA“IPV6头未find”日志

我正面临着一些 – 我想 – 在Linux主机中使用IPV6和QinQ的奇怪问题,可能是某人面临类似的问题(或者可能提供提示)。

我有一些虚拟机在主机(KVM)中运行,每当有虚拟机发送ICMP6路由器通告时,我们会在syslog中获得以下日志:

Aug 10 11:18:36 Hostname kernel: [1722430.045240] IPv6 header not found 

对于stream量来说,我使用QinQ(两个标签都是802.1Q),内层标签在tap中设置为OVS,外层设置为vlantypes,方法如下:

 +-------------------------------------------------------+ | +-----------+ HOST | | | | Unbuntu 16.04 | | | VM-1 | 4.4.0-62-generic | | | | | +----+------+ | | | | | |TAG=1 | | +-----------------------+ | | | OVS | | | +---------+-------------+ | | | veth1.203 | | | | | | | | +veth0 | | +---------------------+ | | | Bridge | | | +-------+-------------+ | | | | | | | | +--+----+ | | |ens11f1| | +-------------------------------------------------------+ 

“正常stream量”(非ICMP6)似乎正常工作,问题发生显然只有路由器广告。

我检查了写日志的代码,我认为它在'kernel / net / ipv6 / exthdrs_core.c'

 if (*offset) { struct ipv6hdr _ip6, *ip6; ip6 = skb_header_pointer(skb, *offset, sizeof(_ip6), &_ip6); if (!ip6 || (ip6->version != 6)) { printk(KERN_ERR "IPv6 header not found\n"); return -EBADMSG; } start = *offset + sizeof(struct ipv6hdr); nexthdr = ip6->nexthdr; } 

但协议和协议版本似乎在tcpdump中是正确的:

  11:28:38.675686 02:00:40:00:21:31 > 33:33:00:00:00:01, ethertype 802.1Q (0x8100), length 158: vlan 203, p 0, ethertype 802.1Q, vlan 49, p 0, ethertype IPv6, fe80::40ff:fe00:2131 > ff02::1: ICMP6, router advertisement, length 96 `....`:...........@...!1................... @...............@.!1..........@.... ........*.. ..!1................*.. ..!1............. '. 11:28:39.300076 02:00:40:00:23:2a > 33:33:00:00:00:01, ethertype 802.1Q (0x8100), length 158: vlan 204, p 0, ethertype 802.1Q, vlan 193, p 0, ethertype IPv6, fe80::40ff:fe00:232a > ff02::1: ICMP6, router advertisement, length 96 `....`:...........@...#*...................%@...............@.#*..........@.... ........*.. ..#*................*.. ..#*............. 

我已经禁用(以防万一)以太网卡中的所有卸载function。

问题:

  • 有什么办法可以validation哪些数据包被丢弃? (哪些数据包导致'头未find'日志)
  • 内核支持QinQ吗? 有没有configuration参数,我应该改变启用?
  • 任何暗示可能是什么原因? QinQ与ICMP6?

任何帮助/提示trully赞赏!

问候。