MPLS第二话:根底概念和一个简略的试验51CTO博客 - 娱乐之横扫全球

MPLS第二话:根底概念和一个简略的试验51CTO博客

2019年02月26日14时29分20秒 | 作者: 起运 | 标签: 标签,根底,运用 | 浏览: 784

 1.       一些基本概念

标签(label):MPLS技能的要害。这是一个32位的字段,20bit的标签位,1bit的栈底显现位,3bit的EXP位,8bit的TTL。插在第二层包头和第三层包头中心,能够刺进多个标签完结其他的MPLS技能。   TDP与LDP:TDP和LDP都是MPLS下的标签交流协议,TDP是Cisco公司的私有技能,LDP是公有技能。LDP是从TDP是承继而来的,他们之间的许多不同仅仅名词上的不同。   帧形式与信元形式:简单说,传统的IP路由下运转MPLS就是帧形式,在ATM上运转MPLS就是信元形式。他们之间有在运用TDP/LDP的时分有许多不同!(由于试验环境的约束,我首要在学习帧形式)。  

FIB:转发信息库,这是敞开CEF后构成的一个表,这个表结合了路由表,ARP表,它使得数据包转发的时分不需求再查询路由表,不再需求递归路由查询,直接依据FIB转发即可。留意:由于Cisco CEF是仅有运用FIB表的第三层交流机制,运转MPLS首要就要敞开ip cef。

 

LIB:标签信息库,这张表里边保存了FEC对应的一切标签信息,运用show mpls ip binding检查

 

LFIB:标签转发信息库,这张表是当时正在运用的标签信息,运用show mpls forward检查

  FEC:MPLS就是针对FEC来打标签。FEC的划分在IGP中依据每个路由条目,在BGP中依据下一跳。  

LSR:标签交流路由器,就是启用了标签交流的路由器。

 

2.       试验演示

1)         拓扑

 

描绘:四台路由器直连 R1ß-àR2ßàR3ßàR4,四台路由器各开一个loopback 0口宣告进EIGRP 

2)         根底装备

R1#sh ip int brief

Interface                  IP-Address      OK? Method Status                Protocol Serial0/0                  12.1.1.1        YES manual up                     up        Loopback0                  1.1.1.1         YES manual up                    up     

R1#sh run | b router eigrp 10

router eigrp 10  passive-interface Loopback0  network 1.1.1.1 0.0.0.0  network 12.1.1.1 0.0.0.0  no auto-summary R2,R3,R4装备略  

3)         验证网络树立状况

R2#sh ip eigrp 10 nei

IP-EIGRP neighbors for process 10

H   Address  Interface       Hold Uptime   SRTT   RTO Q Seq

                            (sec)         (ms)            Cnt Num

1   23.1.1.3   Se0/1         12 00:08:34     82     492  0   10

0   12.1.1.1   Se0/0         10 00:09:01    101   606   0    3

R2#sh ip route eigrp 10

     34.0.0.0/24 is subnetted, 1 subnets

D       34.1.1.0 [90/2681856] via 23.1.1.3, 00:08:40, Serial0/1

     1.0.0.0/32 is subnetted, 1 subnets

D       1.1.1.1 [90/2297856] via 12.1.1.1, 00:09:08, Serial0/0

     3.0.0.0/32 is subnetted, 1 subnets

D       3.3.3.3 [90/2297856] via 23.1.1.3, 00:08:37, Serial0/1

     4.0.0.0/32 is subnetted, 1 subnets

D       4.4.4.4 [90/2809856] via 23.1.1.3, 00:08:21, Serial0/1

  树立一个测验脚本进一步验证网络 R2#tclsh

R2(tcl)#foreach address {

+>(tcl)#1.1.1.1

+>(tcl)#2.2.2.2

+>(tcl)#3.3.3.3 +>(tcl)#4.4.4.4

+>(tcl)#} {

+>(tcl)#ping $address source loopback 0

+>(tcl)#}  

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 28/41/52 ms

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 28/36/64 ms

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 60/68/80 ms

通了,根底装备完结。  

4)         树立MPSL网络

1.         首要启用CEF,这个是有必要的。

2.         界说标签交流运用的协议。

3.         界说标签的规模。

4.         界说树立LDP对等体运用的接口(TDP/LDP都是依据TCP来树立对等体的,与BGP相同,安全可靠,主张运用loopback接口,由于永久不会当掉)。

5.         在接口下启用mpls。

6.         验证街坊树立状况。

7.         检查FIB,LFIB。

8.         测验标签交流。

  1-à5:根底装备 下面给出R1上的相关装备 ip cef

mpls label protocol ldp

mpls label range 100 199

mpls ldp router-id Loopback0 force

 

interface Serial0/0

 description **->R2:S0/0**  ip address 12.1.1.1 255.255.255.0  mpls ip    上面五步现已完结了上面的五步。其实有些指令是默许的,比方说第二步能够不写,那么默许就是用TDP(cisco);第三步不写一般就是随机了(cisco:<16-1048575>),第四步也能够不写,那么就是用直衔接口;第1步与第5步是有必要的!   6:验证街坊树立状况          R2#sh mpls ldp neighbor

    Peer LDP Ident: 1.1.1.1:0; Local LDP Ident 2.2.2.2:0

        TCP connection: 1.1.1.1.646 - 2.2.2.2.39114

        State: Oper; Msgs sent/rcvd: 23/23; Downstream

        Up time: 00:11:53         LDP discovery sources:           Serial0/0, Src IP addr: 12.1.1.1         Addresses bound to peer LDP Ident:           12.1.1.1        1.1.1.1        

    Peer LDP Ident: 3.3.3.3:0; Local LDP Ident 2.2.2.2:0

        TCP connection: 3.3.3.3.24687 - 2.2.2.2.646

        State: Oper; Msgs sent/rcvd: 22/23; Downstream

        Up time: 00:11:02         LDP discovery sources:           Serial0/1, Src IP addr: 23.1.1.3         Addresses bound to peer LDP Ident:           23.1.1.3        34.1.1.3        3.3.3.3                  如上输出所示,R2别离与R1,R3树立了LDP peer。         Peer LDP Ident: 1.1.1.1:0; Local LDP Ident 2.2.2.2:0 这句话的意思是说peer间树立LDPpeer运用的ID,就是咱们前面界说的loopback 0。

TCP connection: 1.1.1.1.646 - 2.2.2.2.39114

  TCP connection: 1.1.1.1.646 - 2.2.2.2.39114 这句话的意思是说树立peer是TCP是怎么衔接的,留意这儿的1.1.1.1和2.2.2.2与上面的ID并不一定要相同,有时分就会不同,在后续的文章中会有讨论。这儿运用了两个port,646是LDP运用的端口,39114是随机端口,安全起见。  

Addresses bound to peer LDP Ident:

         12.1.1.1        1.1.1.1

这句话的意思说明晰对等体的端口IP。这儿我研讨不多。   其他的字面意思都够清楚了,不再赘言。   7.检查FIB,LFIB

R1#sh mpls ldp bindings

 tib entry: 1.1.1.1/32, rev 4         local binding: tag: imp-null

        remote binding: tsr: 2.2.2.2:0, tag: 201

 tib entry: 2.2.2.2/32, rev 6         local binding: tag: 101

        remote binding: tsr: 2.2.2.2:0, tag: imp-null

 tib entry: 3.3.3.3/32, rev 8         local binding: tag: 102

        remote binding: tsr: 2.2.2.2:0, tag: 202

 tib entry: 4.4.4.4/32, rev 10         local binding: tag: 103

        remote binding: tsr: 2.2.2.2:0, tag: 203

 tib entry: 12.1.1.0/24, rev 14         local binding: tag: imp-null

        remote binding: tsr: 2.2.2.2:0, tag: imp-null

 tib entry: 23.1.1.0/24, rev 12         local binding: tag: 104

        remote binding: tsr: 2.2.2.2:0, tag: imp-null

 tib entry: 34.1.1.0/24, rev 2         local binding: tag: 100

        remote binding: tsr: 2.2.2.2:0, tag: 200

  在根底概念中现已提到过,FIB就是存储的是一切的标签信息,也就是路由表中的一切条目的信息。 tib entry: 1.1.1.1/32, rev 4

        local binding:  tag: imp-null

        remote binding: tsr: 2.2.2.2:0, tag: 201

tib:其实就是FIB,仅仅一个不同的叫法。

Local bingding:tag: imp-null本地绑定为空

由于1.1.1.1是R1本身的直连网段,现已抵达目的地了,就不必再给自己打标签了。可是你在debug的时分仍是会发现他给自己的peer布告一个不在空装备标签规模内的标签。如下所示:

*Mar 1 01:18:20.291: tagcon: peer 1.1.1.1:0 (pp 0x64962BDC): advertise 2.2.2.2/32(Default-IP-Routing-Table), label 3 (imp-null) (#6)

这个标签值是3.这个标签代表一个空标签,pop tag就是依据这个标签值来完结的。详细的内容会在后边的有叙述。

 

Remote binding:tsr: 2.2.2.2:0, tag: 201 长途绑定:标签交流路由器(tsr):2.2.2.2,打标签201

这句话的意思就是,通知2.2.2.2这个tsr,到1.1.1.1这个网段,你打标签201后再转发过来。 本地绑定和长途绑定是一个相对的概念,本身网段的本地绑定就是自己街坊针对这个网段的长途绑定。 咱们看看R2的FIB中1.1.1.1条目

R2#sh mpls ip bind

 1.1.1.1/32

        in label:    201      

        out label:    imp-null lsr: 1.1.1.1:0        inuse

        out label:    30        lsr: 3.3.3.3:0

(….OMITED) 如上所示,长途绑定为空。   再看看一个非直连网段是怎么打标签的

 tib entry: 2.2.2.2/32, rev 6

        local binding: tag: 101

        remote binding: tsr: 2.2.2.2:0, tag: imp-null

2.2.2.2是从R2接收到的,本地绑定是101,长途绑定为空。本地绑定为101就是说假如我要发一个包到2.2.2.2,那么我就打上标签101然后发出去。长途绑定为空,这是由于2.2.2.2是R2的直连网段,所以R2没有给自己的网段打标签。 再来看一个非直连网段,且不是与自己直连街坊的直连网段怎么打标签 tib entry: 3.3.3.3/32, rev 8

        local binding: tag: 102

        remote binding: tsr: 2.2.2.2:0, tag: 202

3.3.3.3是R3的直连网段,所以这儿的长途绑定不再是空了。R1要去往这个网段要通过R2,本地绑定是102,长途绑定是202,那么R1假如发送一个数据包去3.3.3.3,该怎么绑定呢? 它会打上202然后发送出去。 102会发送给其他的街坊,假如R1后边还有其他peer需求通过R1抵达R3的话,这个102就会出现在他们的长途绑定中。   更深化的内容会在后续的文章中渐渐讨论。标签是怎么打的怎么交流的很重要,今后能够独自单间一个复杂点的环境细细的研讨一下。   再看LFIB。

R2#sh mpls forwarding-table

Local Outgoing    Prefix            Bytes tag Outgoing   Next Hop   

tag    tag or VC   or Tunnel Id      switched   interface             

200    Pop tag     34.1.1.0/24       0          Se0/1      point2point 

201    Pop tag     1.1.1.1/32        0          Se0/0      point2point 

202    Pop tag     3.3.3.3/32        0          Se0/1      point2point 

203    32          4.4.4.4/32        0          Se0/1      point2point

清新多了! 这儿要要点学习pop tag,即“倒数第二跳弹出”机制,为了供给转发功率。在上面的输出中,R2是抵达1.1.1.1,3.3.3.3,34.1.1.0的倒数第二跳,那么咱们还打一个标签转发到目的地有没有必要?没必要!由于多了一道拆包的工序啊,先拆标签,再拆第三层IP包头,没必要啊,直接拆IP包头就能够了,横竖这一步是少不了的。那么拆标签这道工序就是无谓的,能够省掉。也就是说,最终一跳路由器通知倒数第二跳路由器,“我现已是目的地了,你发一个空标签过来就行了”。那么倒数第二跳路由器就会pop tag! Pop tag后发送曩昔的是一个空标签,这个标签运用的是一个特别的标签值:3。在本文的稍前部分曾引用过一个debug输出如下所示:

*Mar 1 01:18:20.291: tagcon: peer 1.1.1.1:0 (pp 0x64962BDC): advertise 2.2.2.2/32(Default-IP-Routing-Table), label 3 (imp-null) (#6)

这是R2发给peer R1的,意思就是通知R1,2.2.2.2是我的直连网段,你今后发送抵达这个网段的数据包合格签定饿时分,打空标签! 空标签有隐式空标签和显式空标签之分。后者是为了完结EXP位的功用,即MPLS中的QoS。详细内容在《MPLS技能架构》中有描绘。   还能够检查CEF对某个详细网段的转发信息,在学习MPLS ***的时分会得到很有用的信息。 R2#sh ip cef 4.4.4.4

4.4.4.4/32, version 21, epoch 0, cached adjacency to Serial0/1

0 packets, 0 bytes

 tag information set

    local tag: 203

    fast tag rewrite with Se0/1, point2point, tags imposed: {32}

 via 23.1.1.3, Serial0/1, 0 dependencies

    next hop 23.1.1.3, Serial0/1

    valid cached adjacency

tag rewrite with Se0/1, point2point, tags imposed: {32}

  8.测验标签交流 R1#tra 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4

 1  12.1.1.2 [MPLS: Label 203 Exp 0] 148 msec 72 msec 112 msec

 2  23.1.1.3 [MPLS: Label 32 Exp 0] 140 msec 72 msec 112 msec

 3  34.1.1.4 92 msec * 68 msec   下面是整个LSP的标签交流的LFIB R1#sh mpls for | in 4.4.4.4
108    203         4.4.4.4/32        0          Se0/0      point2point R2#sh mpls for | in 4.4.4.4
203    32          4.4.4.4/32        432        Se0/1      point2point R3#sh mpls for | in 4.4.4.4

32     Pop tag     4.4.4.4/32    1224       Se0/2      point2point 

R4#sh mpls for | in 4.4.4.4 (none)   这样就不难理解了。 好,今日告一段落! 附件:http://down.51cto.com/data/2356834
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章