トンネル(GRE、IPIP、VXLANなど)の構成に関して、誰かがlinux ip tunnelとip linkコマンドの違いを説明できますか?
たとえば、次の2つの方法でGREトンネルを構成できることがわかります。
作成されたLinuxリソース、パフォーマンスなどに関して、2つの違いはありますか?古い方法の1つはおもしろいですか?
乾杯。
Iproute2のコマンドは両方とも同じカーネルと対話し、これらの通信以外は何も実装していません。つまり、パフォーマンスの点で違いはないと予想されます。
関連するコミット からわかるように、ip link
は、rtnl_link
と比較して、より新鮮なカーネルインターフェイス— ip tunnel
を使用します:「…
「ip link」コマンドでアクセスできます。以前のトンネル構成インターフェース「ip tunnel」はそのまま残り、古いカーネルとの互換性のために保持する必要があります。 …
…」
(コメントとすべきものの代わりに回答を入力すると申し訳ありません。コメントが長すぎて収まりません...)
少し前にあなたとまったく同じ質問があったので、iproute2
のソースコードを読みました。 poigeが言うように、ip link
はip tunnel
とは異なるインターフェースを使用します。 ip tunnel
はioctl SIOCGETTUNNEL
、SIOCADDTUNNEL
などを使用しますが、ip link
はrtnl_link
インターフェースを使用します。
これにより、インターフェースのモードが少し変更されます。
$ Sudo ip tunnel add ipiptun mode ipip local 10.3.3.3 remote 10.4.4.4 ttl 64 dev eno1
$ Sudo ip link add ipiptun2 type ipip local 10.6.6.6 remote 10.7.7.7 ttl 64 dev eno1 #curiously the mode is any/ip here
ipiptun: ip/ip remote 10.4.4.4 local 10.3.3.3 dev eno1 ttl 64
ipiptun2: any/ip remote 10.7.7.7 local 10.6.6.6 dev eno1 ttl 64
トンネルを作成するさらに新しい方法があることに注意してください。これは、軽量ルートトンネルを使用することです。ここで私の質問を参照して、それらを理解しようとしています: Linux軽量トンネル