web-dev-qa-db-ja.com

Linux GRE-IPトンネルvs IPリンク

トンネル(GRE、IPIP、VXLANなど)の構成に関して、誰かがlinux ip tunnelとip linkコマンドの違いを説明できますか?

たとえば、次の2つの方法でGREトンネルを構成できることがわかります。

  1. ip link add gre1 type gre ...
  2. ip tunnel add gre1モードgre ...

作成されたLinuxリソース、パフォーマンスなどに関して、2つの違いはありますか?古い方法の1つはおもしろいですか?

乾杯。

3
FitzChivalry

Iproute2のコマンドは両方とも同じカーネルと対話し、これらの通信以外は何も実装していません。つまり、パフォーマンスの点で違いはないと予想されます。

関連するコミット からわかるように、ip linkは、rtnl_linkと比較して、より新鮮なカーネルインターフェイス— ip tunnelを使用します:「…

「ip link」コマンドでアクセスできます。以前のトンネル構成インターフェース「ip tunnel」はそのまま残り、古いカーネルとの互換性のために保持する必要があります。 …

…」

2
poige

(コメントとすべきものの代わりに回答を入力すると申し訳ありません。コメントが長すぎて収まりません...)

少し前にあなたとまったく同じ質問があったので、iproute2のソースコードを読みました。 poigeが言うように、ip linkip tunnelとは異なるインターフェースを使用します。 ip tunnelはioctl SIOCGETTUNNELSIOCADDTUNNELなどを使用しますが、ip linkrtnl_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軽量トンネル

0
Damien Robert