JNCIP实验视频: JUNOS OSPF路由汇总及LSA管理03

junos-ospf-address-summary-and-inter-area-lsa-filtering-3
youtube

JNCIP实验: OSPF地址汇总及域间LSA管理 Part03/03

点击上文↑链接至YouTube收看高清版本实验视频

可能你会发现,当我们在R5上完成了对区域1和6/22网段进行汇总与过滤以后,R5在向骨干区域注入10.0.8/23汇总路由,以及将6/22网段内所有子网隔离在区域1以内的同时,在R5的本地路由表里面同时也生成了两条Metric均为16777215,分别指向10.0.8/23;6.0.0/22的Discard路由,正好与我们的汇总路由网段相同。

nigel@junos# run show route protocol ospf logical-router
r5 

inet.0: 25 destinations, 25 routes (25 active,
0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

3.0.0.0/8          *[OSPF/150] 03:19:40, metric 14, tag 0
                    > to 10.0.2.10 via fxp2.45
6.0.0.0/22         *[OSPF/10] 02:50:47, metric 16777215
                    Discard
6.0.0.0/24         *[OSPF/10] 06:38:36, metric 2
                    > to 10.0.8.5 via fxp1.56

…………
10.0.8.0/23        *[OSPF/10] 03:10:22, metric 16777215
                    Discard
10.0.8.0/30        *[OSPF/10] 07:00:06, metric 2
                    > to 10.0.8.5 via fxp1.56
                      to 10.0.8.10 via fxp1.57

Discard路由的存在是JUNOS为了避免路由环路或者黑洞的一种典型手段。正如我们一开始的时候讨论过的,并非所有汇总路由当中的子网都存在于网络当中,而当汇总路由器同时存在默认路由的时候,潜在的路由环路便有可能出现。因此,每当我们手动对OSPF域间路由进行汇总,JUNOS都会在进行汇总的路由器上面安装一条与汇总路由相同,Metric无限大的Discard路由。每当有匹配该路由的数据包到达,路由器便直接将其丢弃。

如果R5通过区域0连接到POP(Point of Presence)路由器R3/R4上面,在向区域0注入10.0.8/23汇总路由的同时,也存在指向R3/R4的默认路由,以通过R3/R4到达外部BGP路由目标网段上面。另一方面,虽然R5为了减轻OSPF数据库计算负担而将6/22网段LSA屏蔽在骨干区域之外,然而为了使得骨干区域内路由器能够访问该网段,也有可能通过在骨干区域路由器上配置静态路由以达到这个目的。那么当10.0.8/23或者6/22两条汇总路由网段内的任何一个子网/链路失效的时候,由于其他明细路由的存在,R5只会在本地路由表上剔除失效的网段路由,而不会停止向骨干区域发布汇总LSA-3.那么当骨干区域路由器R3/R4通过汇总或者静态路由尝试通过R5访问10.0.8/23或是6/22内的失效子网的时候。假如不存在Discard路由,R5将使用默认路由将数据包重新返回到骨干区域当中……如此形成路由环路。

手动过滤Juniper路由器OSPF NSSA LSA-7

过滤3/8网段路由,这个需求的有趣之处在于一方面在JUNOS当中,NSSA LSA-7是唯一一种能够被进一步过滤或者汇总的域外路由类型。JUNOS的OSPF里面没有也没有必要提供像IOS的summary-address那样对于LSA-5域外路由的汇总机制。首先,对于域外路由的汇总JUNOS可以先使用aggregate汇总外部路由,然后再将aggregate的路由重分布进入OSPF内形成LSA-5;再次,通过控制LSA-7到LSA-5的转换,JUNOS同样能够实现外部路由在区域边界的过滤。另外一个有趣的地方在于NSSA的汇总/过滤命令area-range需要在区域配置层次下的NSSA内配置 : [edit logical-routers r3 protocols ospf area 0.0.0.10 nssa],你有可能同时在两个层次下看到area-range命令。我们在R3/R4上进行相同的配置:

area 0.0.0.10 {
    nssa {
        default-lsa {
            default-metric 10;
            type-7;
        }
        no-summaries;
        area-range 3.0.0.0/8 restrict;
    }
    area-range 10.0.4.0/22;
    interface fxp2.13 {
        metric 2;
    }

上面的配置可以看到在区域0.0.0.10层次内出现两次area-range命令,其中在area 0.0.0.10层次下的area-range是对域间路由LSA-3的汇总,而进一步在[nssa]层次底下的area-range则是对NSSA LSA-7的汇总。完成整个实验以后,我们最后查看压缩后的区域0 OSPF数据库。注意为了保证未来潜在出现的LSA-7能被内部OSPF路由器正常访问,指向NSSA内ASBR的LSA-4依然被保留存在于OSPF数据库当中。

nigel@junos# run show ospf database logical-router r5 
area 0 

    OSPF link state database, Area 0.0.0.0
 Type       ID       Adv Rtr   Seq     Age  Opt Cksum Len
Router   10.0.3.3  10.0.3.3 0x80000055 261 0x22 0xd576 60
Router   10.0.3.4  10.0.3.4 0x8000006a 261 0x22 0xec36 60
Router  *10.0.3.5  10.0.3.5 0x80000058 260 0x22 0xf449 60
Network  10.0.2.2  10.0.3.3 0x80000016 227 0x22 0x9057 32
Network  10.0.2.6  10.0.3.4 0x80000055 827 0x22 0xd1d2 32
Network  10.0.2.10 10.0.3.4 0x80000013 227 0x22 0x4a96 32
Summary  10.0.4.0  10.0.3.3 0x8000000b 827 0x22 0x5eb5 28
Summary  10.0.4.0  10.0.3.4 0x80000009 527 0x22 0x52c3 28
Summary *10.0.8.0  10.0.3.5 0x8000004b  14 0x22 0x9b32 28
ASBRSum  10.0.6.1  10.0.3.3 0x8000004b 260 0x22 0xaa24 28
ASBRSum  10.0.6.1  10.0.3.4 0x80000061 260 0x22 0x783f 28
ASBRSum *10.0.9.7  10.0.3.5 0x8000004b 259 0x22 0x378d 28
    OSPF AS SCOPE link state database
 Type       ID       Adv Rtr   Seq     Age  Opt Cksum Len
Extern 200.200.0.0 10.0.9.7 0x8000007e 527 0x22 0xa6e2 36

看起来效果不错!由于3/8已经被限制在区域10以内,我们可以卸载实验1.3关于到3/8网段实现per-packet load balance的相关配置。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s