Layer3 OSPF的路由选路

session 1 OSPF的路由选路
OSPF的同区域路由,如果AD、COST相同,负载均衡。
一、O路由:区域内部路由

1、修改负载路由的管理距离AD
R1环回接口area0区域1.1.1.1,R4环回接口area1区域4.4.4.4。按照上述拓扑默认情况下R1到达4.4.4.4是负载均衡的。
R1#show ip route ospf
         34.0.0.0/24 is subnetted, 1 subnets
O IA       34.1.1.0 [110/74] via 13.1.1.3, 00:10:26, FastEthernet0/1
         4.0.0.0/32 is subnetted, 1 subnets
O IA    4.4.4.4 [110/75] via 13.1.1.3, 00:10:36, FastEthernet0/1            形成冗余链路都出现在路由表中
                       [110/75] via 12.1.1.2, 00:10:36, FastEthernet0/0

         24.0.0.0/24 is subnetted, 1 subnets
O IA       24.1.1.0 [110/74] via 12.1.1.2, 00:10:36, FastEthernet0/0
      默认情况下会怎么走呢?在R1的两条链路上抓包发现默认的R1会走R3到达4.4.4.4,但是R4回包会走R2到R1,也就是说去的路径和回来的路径不一致:1.1.1.1------4.4.4.4 去的时候走R3,回来的时候走R2。(R4默认到1.1.1.1是默认走R2,回来的时候走R3,刚好和R1的路径匹配)
      这路看到R1去往4.4.4.4的两条路径的AD和cost都相同,其中AD不用修改因为修改会两条同改变,没意义。控制选路的参数就是接口的cost(到达目的的出接口的cost)
修改AD管理距离无效:
R1(config)#router ospf 1
R1(config-router)#distance 120 3.3.3.3 0.0.0.0                       修改R3传来的路由的AD为120(R-ID和精确匹配),此命令中的R-ID:根据路由器IOS的版本不同,会选择R-ID小的(12.4)或者大的(15.1)才生效(两条路由的AD才会改变)。
R1(config-router)#do show ip rou os
         34.0.0.0/24 is subnetted, 1 subnets
O IA       34.1.1.0 [ 120/74] via 13.1.1.3, 00:00:03, FastEthernet0/1             两条路由AD同时变为120
         4.0.0.0/32 is subnetted, 1 subnets
O IA       4.4.4.4 [ 120/75] via 13.1.1.3, 00:00:03, FastEthernet0/1
                               [ 120/75] via 12.1.1.2, 00:00:03, FastEthernet0/0
         24.0.0.0/24 is subnetted, 1 subnets
O IA       24.1.1.0 [110/74] via 12.1.1.2, 00:00:03, FastEthernet0/0
 
2、通过cost来控制路由:查看目的路由的metric方法
R1#show ip route ospf
         34.0.0.0/24 is subnetted, 1 subnets
O IA       34.1.1.0 [110/74] via 13.1.1.3, 00:10:26, FastEthernet0/1
         4.0.0.0/32 is subnetted, 1 subnets
O IA    4.4.4.4 [110/75] via 13.1.1.3, 00:10:36, FastEthernet0/1            形成冗余链路都出现在路由表中
                       [110/75] via 12.1.1.2, 00:10:36, FastEthernet0/0

         24.0.0.0/24 is subnetted, 1 subnets
O IA       24.1.1.0 [110/74] via 12.1.1.2, 00:10:36, FastEthernet0/0
看到4.4.4.4路由的metric是75,怎么算出来的?使用:
R1#show ip ospf interface f0/0                                                                                                                      自己到达4.4.4.4的出接口
FastEthernet0/0 is up, line protocol is up
   Internet Address 12.1.1.1/24, Area 0
    Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10          自己的出接口cost10
   Transmit Delay is 1 sec, State BDR, Priority 1
   Designated Router (ID) 2.2.2.2, Interface address 12.1.1.2
   Backup Designated router (ID) 1.1.1.1, Interface address 12.1.1.1
   Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
       oob-resync timeout 40
       Hello due in 00:00:00
   Supports Link-local Signaling (LLS)
   Index 1/1, flood queue length 0
   Next 0x0(0)/0x0(0)
   Last flood scan length is 1, maximum is 2
   Last flood scan time is 0 msec, maximum is 0 msec
   Neighbor Count is 1, Adjacent neighbor count is 1
       Adjacent with neighbor 2.2.2.2   (Designated Router)
   Suppress hello for 0 neighbor(s)
 
R1#show ip ospf database summary 4.4.4.4                                                                     R1上查看收到的到达4.4.4.4的LSA3信息
                       OSPF Router with ID (1.1.1.1) (Process ID 1)
                               Summary Net Link States (Area 0)
   Routing Bit Set on this LSA
   LS age: 1131
   Options: (No TOS-capability, DC, Upward)
   LS Type: Summary Links(Network)
    Link State ID: 4.4.4.4 (summary Network Number)                       R2告诉我(R1)它到达4.4.4.4的cost65
    Advertising Router: 2.2.2.2
   LS Seq Number: 80000002
   Checksum: 0x1FC3
   Length: 28
   Network Mask: /32
                TOS: 0  Metric: 65                                                                                                                                        R2告诉我(R1)它到达4.4.4.4的cost65
 
   Routing Bit Set on this LSA
   LS age: 1564
   Options: (No TOS-capability, DC, Upward)
   LS Type: Summary Links(Network)
    Link State ID: 4.4.4.4 (summary Network Number)                      R3告诉我(R1)它到达4.4.4.4的cost65
  Advertising Router: 3.3.3.3

   LS Seq Number: 80000003
   Checksum: 0xFEDE
   Length: 28
   Network Mask: /32
                TOS: 0  Metric: 65                                                                                                                                      R3告诉我(R1)它到达4.4.4.4的cost65
 
      那么R1的两条路由的metric就是自己出接口的cost+下一跳的metric=10+64=74,再加R4自己的环回接口的cost=1,就是74+1=75。默认两条路由的metric都是75,但是R1到达4.4.4.4默认走了R3,要想R1走R2的话,就将R1到达R3的接口的cost改的比到R2的接口的cost值大就可以,这样R1走R2到达4.4.4.4的metric就会比R1走R3到达4.4.4.4的metric小,那么R1就会只把R2的下一跳的路由放进RIB,而把R3下一跳的放进数据库备用,如下:
R1(config)#interface f0/1
R1(config-if)#ip ospf cost 20
 
R1#show ip ospf interface f0/1
FastEthernet0/1 is up, line protocol is up
   Internet Address 13.1.1.1/24, Area 0
    Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 20          R1连接R3的接口cost改为20
   Transmit Delay is 1 sec, State BDR, Priority 1
   Designated Router (ID) 3.3.3.3, Interface address 13.1.1.3
   Backup Designated router (ID) 1.1.1.1, Interface address 13.1.1.1
   Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
       oob-resync timeout 40
       Hello due in 00:00:00
   Supports Link-local Signaling (LLS)
   Index 2/2, flood queue length 0
   Next 0x0(0)/0x0(0)
   Last flood scan length is 1, maximum is 2
   Last flood scan time is 0 msec, maximum is 0 msec
   Neighbor Count is 1, Adjacent neighbor count is 1
       Adjacent with neighbor 3.3.3.3   (Designated Router)
   Suppress hello for 0 neighbor(s)
      这样R1从R3到达4.4.4.4的metric就是R1的出接口cost20+R3到达4.4.4.4的metric64+R4的环回接口cost1=20+64+1=85,比R1走R2到达4.4.4.4的75大,所以R1就会把这条路由从RIB中删除放入数据库中形成备份路由,而使用下一跳是R2的路径。
R1#show ip route ospf
         34.0.0.0/24 is subnetted, 1 subnets
O IA       34.1.1.0 [120/84] via 13.1.1.3, 00:00:49, FastEthernet0/1
     4.0.0.0/32 is subnetted, 1 subnets
O IA    4.4.4.4 [110/75] via 12.1.1.2, 00:00:49, FastEthernet0/0             使用了下一跳是R2的路由
     24.0.0.0/24 is subnetted, 1 subnets

O IA       24.1.1.0 [110/74] via 12.1.1.2, 00:00:49, FastEthernet0/0
 
R1#traceroute 4.4.4.4 source 1.1.1.1
Type escape sequence to abort.
Tracing the route to 4.4.4.4
   1 12.1.1.2 8 msec 0 msec 0 msec                                                                                                               走R2路由到达4.4.4.4了
   2 24.1.1.4 40 msec 96 msec 64 msec
这里只是控制R1去往4.4.4.4(R4)方向的路由,但是抓包发现R4的回包依然是走R3,而不是走R2。这就形成了去和回的路径不一致,所以要想R4的回包也走R2的话就需要再R4上也做相应的到达1.1.1.1的metric的修改,让R4选择R2为下一跳。(方法与R1上修改出接口cost一样)
 
二、OIA路由:区域间路由
同区域的路由负载均衡与O路由一样,只是当一个路由器从一个area0和一个非area0学到相同的路由,永远优先选择area0区域的路由,与AD、cost都无关(修改也无效),除非是area0的路由down才会选择非area0的备用路由。也就是说只能主备,无法负载均衡。(OIA路由负载均衡IOS12.4与15.1都一样)
 
三、OE路由:区域外部路由
1、修改负载路由的管理距离AD
R1(config)#router ospf 1
R1(config-router)#distance 120 3.3.3.3 0.0.0.0                        修改R3传来的路由的AD为120(R-ID和精确匹配),此命令中的R-ID:修改R-ID大的生效(两条路由的AD才会改变),修改的R-ID小的无效,不分区IOS版本。
 
2、修改负载路由的metric的cost来选路
在OE2路由中选路的原则是:优先比较重分步外部OE路由的ASBR重分步的两条路由的metric,选择重分步metric小的,不看内部R到达ASBR的cost值。如果ASBR重分布进来的负载路由的metric相同,那么才比较R到达ASBR的metric的cost值(这里就与O、OIA相同了),优先选择到达ASBRmetric小的路由。
而在OE1路由中选路原则与O、OIA相同,以路由的总体metric为考量依据(OE1路由有真实的metric)
Layer3 OSPF的路由选路_第1张图片
R1#show ip interface brief
Interface                                   IP-Address           OK? Method Status                               Protocol
FastEthernet0/0                       12.1.1.1               YES manual up                                       up         
FastEthernet1/0                       13.1.1.1               YES manual up                                       up         
R1#show run | s ospf
  router ospf 1
  log-adjacency-changes
  network 12.1.1.1 0.0.0.0 area 0
  network 13.1.1.1 0.0.0.0 area 1
R1#
R2#show ip interface brief
Interface                                   IP-Address           OK? Method Status                               Protocol
FastEthernet0/0                       12.1.1.2               YES manual up                                       up 
Loopback0                  10.1.1.1        YES manual up                    up                             R2上模拟LSA5外部路由
R2#show run | s ospf
router ospf 1
  router-id 2.2.2.2
  log-adjacency-changes
 redistribute connected subnets                                                                    重分布直连路由,metric默认
  network 12.1.1.2 0.0.0.0 area 0
R3#show ip interface brief
Interface                                   IP-Address           OK? Method Status                               Protocol
FastEthernet1/0                       13.1.1.3               YES manual up                                       up
Loopback0                  10.1.1.1        YES manual up                    up                              R3上模拟LSA5外部路由
R3#show run | s ospf
router ospf 1
  router-id 3.3.3.3
  log-adjacency-changes
 redistribute connected subnets                                                                    重分布直连路由,metric默认
  network 13.1.1.3 0.0.0.0 area 1
R3#
 
R1#show ip route ospf                                                                                AD与metric相同,所以10.1.1.1/32的路由形成负载均衡
         10.0.0.0/32 is subnetted, 1 subnets
O E2       10.1.1.1 [110/20] via 13.1.1.3, 00:15:59, FastEthernet1/0
                                                 [110/20] via 12.1.1.2, 00:15:59, FastEthernet0/0
R1#show ip ospf database external                                     两条10.1.1.1/32的路由都是默认的OE2路由的metric20
                       OSPF Router with ID (13.1.1.1) (Process ID 1)
                               Type-5 AS External Link States
   Routing Bit Set on this LSA
   LS age: 1873
   Options: (No TOS-capability, DC)
   LS Type: AS External Link
   Link State ID: 10.1.1.1 (External Network Number )
   Advertising Router: 2.2.2.2
   LS Seq Number: 80000001
   Checksum: 0x883
   Length: 36
   Network Mask: /32
               Metric Type: 2 (Larger than any link state path)
               TOS: 0
                Metric: 20
               Forward Address: 0.0.0.0
               External Route Tag: 0
 
   Routing Bit Set on this LSA
   LS age: 1050
   Options: (No TOS-capability, DC)
   LS Type: AS External Link
   Link State ID: 10.1.1.1 (External Network Number )
   Advertising Router: 3.3.3.3
   LS Seq Number: 80000003
   Checksum: 0xE59F
   Length: 36
   Network Mask: /32
               Metric Type: 2 (Larger than any link state path)
               TOS: 0
                Metric: 20
               Forward Address: 0.0.0.0
               External Route Tag: 0
首先修改内部cost让R1选路,到达10.1.1.1/32走R2,把连接R3的接口cost改大(100M链路默认是cost=1)
R1#show ip ospf interface f1/0 | include Cost
   Process ID 1, Router ID 13.1.1.1, Network Type BROADCAST, Cost: 1
R1(config)#interface f1/0
R1(config-if)#ip ospf cost 2
R1#show ip ospf interface f1/0 | include Cost
   Process ID 1, Router ID 13.1.1.1, Network Type BROADCAST,  Cost: 10
R1#show ip route ospf
         10.0.0.0/32 is subnetted, 1 subnets
O E2    10.1.1.1 [110/20] via 12.1.1.2, 00:01:04, FastEthernet0/0           优选从R2走
R1#
      在不修改外部路由默认metric的情况下,通过修改内部的接口cost来控制ospf的选路,从R2到达10.1.1.1的metric=1+20=21,而从R3到达10.1.1.1的metric=10+20=30(RIB中对于OE2的路由显示的不是真实的metric,默认永远是20,除非手工修改),那么R1就会优选R2到达10.1.1.1而把从R3走的路由作为备用路由。
下面修改外部OE2路由的默认metric:让R1到达10.1.1.1走R3
R3(config)#router ospf 1
R3(config-router)#redistribute connected subnets metric 19
            在ASBR上修改OE2路由的默认metric  
在R1上查看
R1#show ip ospf database external                                                             不同ASBR的重分布的路由metric不同了
                       OSPF Router with ID (13.1.1.1) (Process ID 1)
                               Type-5 AS External Link States
   Routing Bit Set on this LSA
   LS age: 987
   Options: (No TOS-capability, DC)
   LS Type: AS External Link
   Link State ID: 10.1.1.1 (External Network Number )
   Advertising Router: 2.2.2.2
   LS Seq Number: 80000002
   Checksum: 0x684
   Length: 36
   Network Mask: /32
               Metric Type: 2 (Larger than any link state path)
               TOS: 0
                Metric: 20
               Forward Address: 0.0.0.0
               External Route Tag: 0
 
   Routing Bit Set on this LSA
   LS age: 67
   Options: (No TOS-capability, DC)
   LS Type: AS External Link
   Link State ID: 10.1.1.1 (External Network Number )
   Advertising Router: 3.3.3.3
   LS Seq Number: 80000005
   Checksum: 0xD7AC
   Length: 36
   Network Mask: /32
               Metric Type: 2 (Larger than any link state path)
               TOS: 0
                Metric: 19                                                                                                                                              R3上重分布的已经修改为19
               Forward Address: 0.0.0.0
               External Route Tag: 0
R1#show ip ospf interface f0/0 | include Cost                   内部cost依然保持刚才的cost
   Process ID 1, Router ID 13.1.1.1, Network Type BROADCAST, Cost: 1
R1#show ip ospf interface f1/0 | include Cost
   Process ID 1, Router ID 13.1.1.1, Network Type BROADCAST, Cost: 10
R1#
R1#show ip route ospf
         10.0.0.0/32 is subnetted, 1 subnets
O E2    10.1.1.1 [110/19] via 13.1.1.3, 00:03:43, FastEthernet1/0        优选了从R3走
R1#
所以当修改了OE2外部路由的metric后,内部的cost就对路由没有影响了:
R1---R2----10.1.1.1 metic=1+20=21
R1---R3----10.1.1.1metric=10+19=29,但是R1优选了R3到达10.1.1.1,所以当外部metric不一样以外部metric为准,内部接口cost无效。
OE1路由选路与O、OIA相同,只选路由总体的metric小的,与OE2的选路考量不同,不会优先考量外部metric
 
四、ON路由:NSSA区域外部路由
Layer3 OSPF的路由选路_第2张图片

1、修改负载路由的管理距离AD
R1(config)#router ospf 1
R1(config-router)#distance 120 3.3.3.3 0.0.0.0                      修改R3传来的路由的AD为120(R-ID和精确匹配),此命令中的R-ID:所属area号大的R-ID才生效(两条路由的AD才会改变,不分区IOS版本。也就是必须要修改两条负载路由中NSSA区域号大的发送R的R-ID才能修改AD管理距离(也就是area13中的R3的R-ID)。
 
2、修改负载路由的metric的cost来选路
ON路由的选路规则与OE路由相对应,ON1的选路规则对应OE1的选路规则,ON2的选路规则对应OE2的选路规则。
OE2的选路规则在OE路由的选路中已经验证了,所以ON2也是相同的规则。
这里以ON1路由为例(与OE1选路规则一致:比较路由的总体metric值,优选小的。而不以重分布metric为准)
为了看出实验效果,需要将R1连接R2与R3的接口ospf的默认cost从1(100Mbit)修改为10,不然接口cost最小为1不能再下调了。
R1#show ip interface brief
Interface                                   IP-Address           OK? Method Status                               Protocol
FastEthernet0/0                       12.1.1.1               YES manual up                                       up         
FastEthernet1/0                       13.1.1.1               YES manual up                                       up   R1#show ip route ospf
         10.0.0.0/32 is subnetted, 1 subnets
O N1    10.1.1.1 [110/30] via 13.1.1.3, 00:00:37, FastEthernet1/0             到达10.1.1.1两条路由负载均衡
                          [110/30] via 12.1.1.2, 00:00:37, FastEthernet0/0

R2#show ip interface brief
Loopback0                  10.1.1.1        YES manual up                    up          模拟外部LSA7的ON路由
R2#show run | s ospf
router ospf 1
  router-id 2.2.2.2
  log-adjacency-changes
 area 12 nssa                                                                     area12是NSSA区域
 redistribute connected metric-type 1 subnets               将直连外部LSA7重分布为ON1路由
  network 12.1.1.2 0.0.0.0 area 12

R3#show ip interface brief
Loopback0                  10.1.1.1        YES manual up                    up          模拟外部LSA7的ON路由
R3#show run | s ospf
router ospf 1
  router-id 3.3.3.3
  log-adjacency-changes
 area 13 nssa                                                                     area13是NSSA区域
 redistribute connected metric-type 1 subnets                将直连外部LSA7重分布为ON1路由
  network 13.1.1.3 0.0.0.0 area 13
 
首先修改外部LSA7默认metric,让R1到达10.1.1.1/32走R2
R2(config)#router ospf 1
R2(config-router)#redistribute connected subnets metric-type 1 metric 19
R1# show ip route ospf
         10.0.0.0/32 is subnetted, 1 subnets
O N1    10.1.1.1 [110/29] via 12.1.1.2, 00:00:21, FastEthernet0/0            优选了R2下一跳
R1#
R1#show ip ospf database nssa-external
                       OSPF Router with ID (1.1.1.1) (Process ID 1)
                               Type-7 AS External Link States (Area 12)
   Routing Bit Set on this LSA
   LS age: 254
   Options: (No TOS-capability, Type 7/5 translation, DC)
   LS Type: AS External Link
   Link State ID: 10.1.1.1 (External Network Number )
   Advertising Router: 2.2.2.2
   LS Seq Number: 80000002
   Checksum: 0x9D54
   Length: 36
   Network Mask: /32
               Metric Type: 1 (Comparable directly to link state metric)
               TOS: 0
                Metric: 19
               Forward Address: 12.1.1.2
               External Route Tag: 0

                               Type-7 AS External Link States (Area 13)
                 
   Routing Bit Set on this LSA
   LS age: 1422
   Options: (No TOS-capability, Type 7/5 translation, DC)
   LS Type: AS External Link
   Link State ID: 10.1.1.1 (External Network Number )
   Advertising Router: 3.3.3.3
   LS Seq Number: 80000002
   Checksum: 0xA248
   Length: 36
   Network Mask: /32
               Metric Type: 1 (Comparable directly to link state metric)
               TOS: 0
                Metric: 20
               Forward Address: 13.1.1.3
               External Route Tag: 0
 
然后修改R1内部cost,使R1从R3到达10.1.1.1/32的总体metric小于R1从R2走的总体metric,从而实现R1到达10.1.1.1/32走R3为下一跳
R1(config)#interface f1/0
R1(config-if)#ip ospf cost 5                          
 修改了内部cost后R1从R3到达10.1.1.1/32的总体metric为25
R1#show ip route ospf
         10.0.0.0/32 is subnetted, 1 subnets
O N1    10.1.1.1 [110/25] via 13.1.1.3, 00:00:01, FastEthernet1/0            优选了R3下一跳,metric25<29
R1#
 
session 2 不同LSA之间的路由选择
在R1与R3配置loopback0,并且ip相同,让R2同时有2条路由到达相同的目的网络。

一、IOS15.2版本
O路由(LSA1)永远优于O IA路由
O IA路由(LSA3)永远优于OE路由(LSA5)
O IA路由永远优于ON路由(LSA7)
metric-type(ON1与OE1、ON2与OE2)相同:ON路由默认优于OE路由,但是如果metric不同,那么优选metric小的,AD不会成为选路参数。
metric-type(ON1与OE2、ON2与OE1)不同:metric-type1永远优于metric-type2
 
二、IOS12.4版本   
O路由(LSA1)永远优于O IA路由
O IA路由(LSA3)永远优于OE路由(LSA5)
O IA路由永远优于ON路由(LSA7)
metric-type(ON1与OE1、ON2与OE2)相同:OE路由默认优于ON路由,但是如果metric不同,那么优选metric小的,AD不会成为选路参数。
metric-type(ON1与OE2、ON2与OE1)不同:metric-type1永远优于metric-type2
 
三、以上都是在一个ospf进程中,如果有2个ospf进程,那么ospf选路会将先up的路由条目放进RIB中,而不会比较LSA的类型,因为LSA的比较仅仅限于同一个进程中。
如上图中在R2上配置2个ospf进程,R2与R1配置为ospf1,R2与R3配置为ospf2。那么R1学到R3的路由就是OIA的路由。而相同目的地的路由选择就是看那边的目的路由先up就会放入路由表,剩下的备份。

你可能感兴趣的:(Layer3 OSPF的路由选路)