私はHurricane ElectricのIPv6トンネリングプロキシ用にマイコンピュータ(Debian Busterを実行)を設定しています。いくつかの設定方法のガイドラインを提供しますが、以下はテスト目的で使用したiproute2のガイドラインです。
ip tunnel add he-ipv6 mode sit remote 216.66.22.2 local <local-IP-addr> ttl 255
ip link set he-ipv6 up
ip addr add <IPv6-addr>/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr
これにより、sit0
不思議なインターフェースも表示されます。明らかに、これは6in4トンネリングに関連していますが、それ以外はこれに関する詳細情報を見つけることができません。これはちょっと特別です。そしてsit
モジュールがロードされるたびに存在します。。気になるので、新しいインターフェイスを作成する代わりにトンネルプロキシに合わせて設定してみましたが、そうではないようです。
このデバイスは何ですか?
答え1
私が見つけた情報に基づいてRed Hatのブログ投稿です。、目的を理解すると思います。 (私はLinuxネットワーキングの専門家ではないので、知識のある人が間違っていることを発見した場合は、コメントで私のコメントを訂正するか、答えを投稿してください。)
まず、背景知識は次のとおりです。
アプライアンスは、sit
IPv6トラフィックを取得し、IPv4パケットにカプセル化/カプセル化し、IPv4インターネットを介して他のホスト(IPv6トンネリングプロキシなど)に送受信する仮想ネットワークデバイスです。外部パケットには特別なプロトコル番号41があります。 (これはポート番号に似ていますが、TCP / UDP層ではなくIP層にあります。)
転送は非常に簡単です。
sit
デバイスには接続されたローカルおよびリモートIPv4アドレスがあり、これらのアドレスは外部IPv4ヘッダーの送信元アドレスと宛先アドレスになります。 (ソースアドレスは「any」または0.0.0.0です。この場合、Linuxはカプセル化されたパケットを送信したIPv4インターフェイスに基づいてソースアドレスを選択します。)受信は少し複雑です。プロトコル41パケットが到着すると、Linuxは
sit
そのパケットが属するデバイスを確認する必要があります。これは、パケットの外部 IPv4 送信元と宛先アドレスを確認することによって行われます。このアドレスを各デバイスのローカルアドレスとリモートアドレスと比較し、一致するデバイスがsit
パケットを取得してカプセル化を解除するデバイス。
sit0
仕組み:
sit
Linuxがどのデバイスとも一致しないプロトコル41パケット(たとえば、任意のアドレスからのパケット)を受け取るとどうなりますか?この場合に渡されますsit0
。
sit0
sit
これらのパケットを処理するためにカーネルモジュールによって設定された特別な「バックアップ」デバイス。ローカルアドレスとリモートアドレスは0.0.0.0(つまり「すべて」)に設定され、特定の物理デバイスに接続されていないため、他のデバイスで未処理のプロトコル41パケットを許可しますsit
。
これはうまくいきますか?特定のケースかもしれませんが、ほとんどの場合、そのようなパケットをドロップしたいと思います。そのような包括的なデバイスを作成する必要があるかどうかを管理者に判断させるべきではない理由はわかりません。おそらくいくつかの歴史的な理由があるでしょう。