web-dev-qa-db-ja.com

GREトンネルTTL数値

サーバーAの設定は次のとおりです。

iface serverA_gre0 inet tunnel
        address 172.24.0.85
        mode gre
        endpoint x.x.x.x
        dstaddr 172.24.0.86
        netmask 255.255.255.252
        ttl 255

サーバーBでの設定:

iface serverB_gre0 inet tunnel
        address 172.24.0.86
        mode gre
        endpoint x.x.x.x
        dstaddr 172.24.0.85
        netmask 255.255.255.252
        ttl 255

「ttl 255」なし:

traceroute to 172.24.0.86 (172.24.0.86), 30 Hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  172.24.0.86  54.507 ms  62.888 ms  51.369 ms

「ttl 255」の場合:

traceroute to 172.24.0.86 (172.24.0.86), 30 Hops max, 60 byte packets
 1  172.24.0.86  51.123 ms  51.733 ms  51.943 ms

TTL 255が存在しない場合、これらの「*」の問題を正確に引き起こすのは何ですか?

7
Thomas G. Lau

[〜#〜] ttl [〜#〜]Time to Live の略です。これは、IPパケットヘッダーに存在するフィールドです。値は最初に送信者によって設定され、多くの場合64に設定され、ルーターごとに1ずつ減分されます。最終的な宛先に到達する前に0に到達すると、ルータはパケットをドロップし、ICMP Time Exceededメッセージを元の送信元に送り返します。このTTL処理は、ルーティング不可能なIPパケットがIPネットワーク上に永久に転送されてリソースを消費することを防ぐために重要です。

Tracerouteは、このTTL動作を使用して、宛先へのパス上にあるホップとルーター(ルーター)の数を把握します。小さいTTLのプローブIPパケットを順番に送信します:TTL = 1 、TTL = 2、TTL =3。TTL= 1は最初のルーターによってドロップされ、TTL = 2は最初のルーターによって転送され、2番目のルーターによってドロップされ、以下同様に続きます。tracerouteがルーターからICMP時間超過メッセージを受信した場合、IPアドレスが表示されます。プローブがタイムアウトになると、アスタリスクが表示されます。

表示されている効果に戻ると、GREトンネリングがTTLに関してどのように機能するかが原因です。 IPv4 GREトンネルの場合、デフォルトでは、TTL=がトンネルパケットからIPv4 GREパケットにコピーされます。これは、ttlオプションで上書きすることができます。関連する抜粋マニュアルから:

ttl N
hoplimit N

    set a fixed TTL (IPv4) or hoplimit (IPv6) N on tunneled
    packets. N is a number in the range 1--255. 0 is a special
    value meaning that packets inherit the TTL value. The default
    value for IPv4 tunnels is: inherit. The default value for IPv6
    tunnels is: 64.

したがって、ttl 255を使用すると、TTL = 1のtracerouteによって送信されたプローブは、TTL = 255のGRE IPv4パケットにカプセル化されます。これは、すべての中間ルーターによって転送され、トンネルエンドポイントに到達し、最終的な宛先によって受信および処理されます。 ttl 255を使用しない場合、デフォルトはttl inheritです。つまり、TTL = 1のtracerouteプローブは、TTL = 1のGRE IPv4パケットにカプセル化されます。最初のルーターによってドロップされます。ただし、ドロップされるのはGREパケットであり、ルーターがICMP時間を超えて送信した場合、カプセル化されたtracerouteプローブではなく、カプセル化パケット(GRE)を参照します。したがって、tracerouteプロセスはICMPエラーを受信せず、プローブがタイムアウトし、アスタリスク(*)が表示されます。 TTLがGREカプセル化パケットがトンネルエンドポイントに到達するのに十分な大きさである場合、最後にプローブも最終宛先に到達し、そのIPアドレスが表示されます。

結論として、あなたは本当に問題はありませんが、物事は正しく動作します!

4
Anton