IPv6用iproute2を使用してトランスポートGUEトンネルを設定する方法

IPv6用iproute2を使用してトランスポートGUEトンネルを設定する方法

次のように、LinuxでIPV6アドレスを使用してGREをヘッダーとして使用するトランスポートGUEトンネルを追加しようとしています。

ip -6 link add name gue1 type ip6gre remote $REMOTE_IPV6 local $LOCAL_IPV6 dev eth0 encap gue encap-dport 42424

$ REMOTE_IPV6と$LOCAL_IPV6はどちらも有効なIPV6アドレスです。しかし、引き続き次のエラーが発生します。

RTNETLINK answers: Invalid argument

削除すると、encap gueカプセル化されていないタイプがデフォルト値なので、対応するエラーは発生しません。ただし、ヘルプテキストは、ip link help ip6gre有効なカプセルタイプがあることを示唆しているようですencap { fou | gue | none }。カプセルタイプが無効になる問題は何ですか?

ベストアンサー1

簡単に言うと:

まずこれを実行してください:

modprobe fou6

詳しくは

Linuxカーネル5.10.xでテスト済み

2つの問題があります。 1つは設定の問題(エラーは発生しませんが、将来の正しい動作を妨げる可能性があります)で、もう1つはマイナーなバグであると仮定できます。

  • GUE受信ポートを最初に宣言する必要があるようです。

    などのオンラインブログによるとLinux仮想インターフェースについて:トンネリング|:

    # ip fou add port 5555 gue
    # ip link add name tun1 type ipip remote 192.168.1.1 local 192.168.1.2 ttl 225 encap gue encap-sport auto encap-dport 5555
    

    これは、IPIPバインディングのGUE受信ポートを5555に設定し、GUEカプセル化用のIPIPトンネルを設定します。

    したがって、受信ポートは最初にコマンドを使用して宣言する必要があり、ip fou add port XXXX gueポートencap-dport XXXXは2番目のコマンドセクションで再利用されます。最初のコマンドの説明については、次を参照してください。ip fou(8)さらに制限を追加する必要がある場合。

  • しかし、ip fou add port 42424 gueそれも動作しません

    # ip fou add port 42424 gue
    RTNETLINK answers: No such file or directory
    Error talking to the kernel
    

    これは私にとってバグのようです。カーネルモジュールはfouこのコマンドを使用して自動的にロードされません。 GUEは、同じカーネルモジュールによって処理されるFOUの追加モードですfou

    # modprobe fou
    # ip fou add port 42424 gue
    # ip -6 link add name gue1 type ip6gre remote $REMOTE_IPV6 local $LOCAL_IPV6 dev eth0 encap gue encap-dport 42424
    RTNETLINK answers: Invalid argument
    

    fou6IPv6部分にロードされたカーネルモジュールもありません...

    実際には、-6このオプションをコマンドに追加する必要がありますip fou。それ以外の場合、ポートはIPv4ソケットで開きます。

    # modprobe fou6
    # ip -6 fou add port 42424 gue
    # ip -6 link add name gue1 type ip6gre remote $REMOTE_IPV6 local $LOCAL_IPV6 dev eth0 encap gue encap-dport 42424
    #
    

おすすめ記事