原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nanjingzhonglei.blog.51cto.com/5890022/1294804


一:MPLS IN BGP的理论


no mpls ip propagate-ttl [forwarded|local]

注:这条命令只需要在入口PE上配置即可!


如果想隐藏公网中P路由器、及出口PE路由器(入口PE除外)不被私网中的traceroute跟踪发现可使用该命令。

默认情况下当IP数据包到达入口PE时,IP包头中的TTL值在减1后被复制到新插入的标签TTL中。如果使用该命令则不再复制IP包头中的TTL值,而是将标签中的TTL值设置为255. 这样公网的P和出PE就隐藏起来了。


命令:no mpls ip propagate-ttl forwarded 只对流进PE的流量生效

no mpls ip propagate-ttl local 只对本PE生成的流量生效

no mpls ip propagate-ttl 对所有流量生效。



No MPLS IP Propagate-TTL的原理图:

213601502.jpg


二:MPLS IN BGP的理论的实验验证

1.PE1上配置no mpld ippropagate-ttl之前后对比:

213603971.png

213606683.png

可以得出结论:在实际的工作过程中,配置该条命令仅仅只会隐藏公网中的IP路由器,并不会隐藏出口的PE,这一点与理论是有不同的。


2.对出接口进行抓包说明:


说明:针对TRACEROUTE PING

1.Traceroute 发包使用UDP,收包使用时ICMP

2.MPLS环境中,默认的Traceroute值为1



R1上,traceroute 10.1.2.1(CE2环回口)

1.CE1 S0/0口抓包:

213608418.jpg

结论:

1.UDP由于是不可靠的传输,所以每个包都发送了3次;

2.traceroute UDP包,仅仅作为一种探查使用,探查的是到达目标网段需要的TTL值是多少。显然,由于配置了隐藏命令,所以经过PE1,PE2,CE2就可以到达10.1.2.1/32的网段,共3跳;

3.UDP起始TTL值是1,通过ICMP的回包不可达,累加TTL值,直到累加至可以到达目标网段的TTL值。



2.PE1口的S0/0抓包

213615267.jpg

3.R1s0/0口抓包:

213617640.jpg

4.R2s0/0口抓包:

213619376.jpg

5.PE2s0/0口抓包:

213622681.jpg

结论:

1.公网ip路由器(不包括出口PE上,由MPLSTTL值从255递减,IP TTL值不变;

2.出口PE上,MPLSTTL值消失,IP TTL不会变化;

3.入口PE上,IP TTL值会变化,减一。