Twitterにも書いたけど忘れそうなのでメモしておく。

下記の図のような構成でns2のveth2とveth3にXDPのプログラムをアタッチし、 XDP_REDIRECT でns1とns3の間でパケットが往復できるかどうかテストしていたときにTCPのパケットだけ通らなかった。

network-diagram network-diagram

ググったところ下記のメールスレッドが見つかり、結論としてはGeneric XDPではTCPのパケットがPASSされていて、アタッチしたXDPのプログラムを通らない。

Generic XDP and veth

実際のソースは ここ でXDPのプログラムに入る前に XDP_PASS している。

回避策としては、Native XDPをサポートしているNICを使うか、下記のパッチをカーネルに当てるかで、カーネルのパッチで回避ができることは確認した。

cilium/cilium#3077 (comment)


このエントリーをはてなブックマークに追加

Comments

comments powered by Disqus