ethtoolを介してigmpパケットをカーネルで明示的に起動しようとしています。
ethtool -U ens1f0 flow-type ip4 l4proto 2 action 0
rmgr: Cannot insert RX class rule: Protocol not supported
すべてのプロトコル(tcp4、udp4)を実行すると、同じ結果が返されます。インターフェイスでntuple-filtersを有効にしました。 --show-featuresの出力は次のとおりです。
ethtool --show-features ens1f0
Features for ens1f0:
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: on
tx-checksum-ip-generic: off [fixed]
tx-checksum-ipv6: on
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp6-segmentation: on
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: on
rx-vlan-offload: off [fixed]
tx-vlan-offload: on
ntuple-filters: on
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-mpls-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
busy-poll: on [fixed]
このルールを追加するのを防ぐ理由についてのアイデアはありますか?とても感謝しています!
答え1
igmpパケットがカーネルに転送されるかどうかを確認する方法を見つけました。
ethtool -U $A_INTERFACE flow-type ether dst 01:00:5e:00:00:01 action 0
ethtool -U $A_INTERFACE flow-type ether dst 01:00:5e:00:00:16 action 0
igmpマルチキャスト宛先の宛先MACアドレスは一定です。
マルチキャストアドレスをMACアドレスにマッピングするには、次を参照してください。 https://technet.microsoft.com/en-us/library/cc957928.aspx
IPマルチキャストアドレスをMAC層マルチキャストアドレスにマッピングするには、IPマルチキャストアドレスの下位23ビットをMAC層マルチキャストアドレスの下位23ビットに直接マッピングします。 IPマルチキャストアドレスの最初の4桁はClass Dルールに従って固定されているため、IPマルチキャストアドレスの5桁はMAC層マルチキャストアドレスにマップされません。したがって、ホストは自分のグループに属さないMAC層マルチキャストパケットを受信できます。ただし、宛先 IP アドレスが決定されると、これらのパケットは IP ごとに廃棄されます。
たとえば、マルチキャストアドレス224.192.16.1は01-00-5E-40-10-01になります。下位23ビットを使用するには、最初のオクテットは使用せず、2番目のオクテットの最後の7ビットのみを使用します。 3番目と4番目のオクテットは16進数に直接変換されます。 2番目のオクテットの2進数192は11000000です。上位ビットを削除すると、1000000、64(10進数)、または0x40(16進数)になります。次のオクテットの場合、16進数16は0x10です。最後のオクテットの場合、16進数1は0x01です。したがって、224.192.16.1に対応するMACアドレスは01-00-5E-40-10-01になります。