同じリモートIPアドレスを使用しますが、同じ(デフォルト)ネットワーク名前空間で異なるポートを使用して複数のGUEトンネルを作成するには?
これまで、各名前空間にGUEトンネルが正常に作成されました。 1トンネル/名前空間デッドロックの回避策として、トンネルごとにnetnsを設定し、そのポート番号に基づいてパケットを転送しました。
ただし、同じリモートおよびローカルIPを持つ最大1つのGUEインターフェイスがある可能性があるため、デフォルトのネームスペースに戻るようにネットワークネームスペース間で転送パケットを維持する必要はありません。単一の名前空間(デフォルトの名前空間)内では、FOUはエラーなしで他のポートでリッスンするように設定できます。
sudo ip fou show
port 1037 gue local 10.0.0.252 peer REMOTE_IP peer_port 1037 dev eth0
port 1036 gue local 10.0.0.252 peer REMOTE_IP peer_port 1036 dev eth0
ただし、最初のポート1036がすでに同じ(デフォルト)netnsに設定されている場合は、2番目のGUEデバイスを追加するとエラーが返されます。
sudo ip link add name guetun1 type ipip remote REMOTE_IP local 10.0.0.252 encap fou encap-sport 1037 encap-dport 1037 mode ipip dev eth0
RTNETLINK answers: File exists
これは、以前のGUEトンネルが確立されている場合にのみ失敗し、それ以外の場合は有効です。これは、他のネットワークに設定するときにも機能します。上記のコマンドが機能するには、既存のgueリンクを削除するだけですsudo ip link del guetun0
。
リンクの名前を変更すると(gue0からguetun0、tunl0からtunnel0へ)、エラーは削除されません。
これまで、ポート番号を無視しながら、ローカルおよびリモートIPアドレスに基づいてGUEおよびFOUインターフェイスを識別するバグがLinuxカーネルにあると思います。しかし、これを解決する方法はありますか?