首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GRE隧道TTL数

GRE隧道TTL数
EN

Server Fault用户
提问于 2017-01-19 09:46:27
回答 1查看 3.6K关注 0票数 7

以下是服务器A上的设置:

代码语言:javascript
复制
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上设置:

代码语言:javascript
复制
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":

代码语言:javascript
复制
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":

代码语言:javascript
复制
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不存在时,究竟是什么原因导致了这些"*“问题?

EN

回答 1

Server Fault用户

发布于 2017-11-24 07:25:01

TTL代表活下去的时候。它是IP包报头中的一个字段。该值最初由发送方设置,通常设置为64,然后由每个路由器减少一个。当在到达最终目的地之前到达0时,路由器会丢弃数据包,并将ICMP时间超过的消息发送回原始源。这种TTL处理对于防止不可路由的IP数据包永远在IP网络上被转发,消耗资源是非常重要的。

Traceroute使用这种TTL行为来确定到达目的地的路径上有哪些跳和多少个跳(路由器)。它按以下顺序发送带有小TTL的探测IP数据包: TTL=1、TTL=2、TTL=3,第一个路由器丢弃TTL=1,第一个路由器转发TTL=2,第二个路由器丢弃TTL=2等等。如果traceroute收到来自路由器的ICMP时间超过的消息,它将显示其IP地址。如果探测超时,则显示星号。

为了回到你所看到的效果,这是因为GRE隧道是如何与TTL有关的。对于IPv4 GRE隧道,默认情况是将TTL从隧道包复制到IPv4 GRE数据包。这可以被ttl选项重写,就像您所做的那样。手册的有关摘录:

代码语言:javascript
复制
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时,traceroute用TTL=1发送的探针将被封装到带有TTL=255的GRE IPv4数据包中。这将由所有中间路由器转发并到达隧道端点,并由最终目的地接收和处理。当您不使用ttl 255时,默认情况是ttl inherit。这意味着带有TTL=1的traceroute探针将被封装在带有TTL=1的GRE IPv4数据包中,由第一个路由器丢弃。但是,被丢弃的是GRE数据包,如果路由器发送的时间超过ICMP,那么它将引用封装数据包(GRE),而不是封装的traceroute探针。因此,traceroute进程将不会收到任何ICMP错误,探针超时,并显示星号(*)。当TTL足够大到GRE封装包到达隧道端点时,最终探针也到达最终目的地,并显示其IP地址。

因此,最后,你真的没有问题,但事情完全按照他们的工作!

票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/827239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档