JNCIP实验: OSPF NSSA区域配置 – Part 1

configurate-juniper-junos-ospf-stub-tsa-nssa-area

OSPF末节区域不会从骨干区域接收外部LSA-5,这样的好处在于有效减少OSPF数据库的大小,然而对于LSA-5的过滤实际上是切断双向的发送:无论LSA-5是来自从骨干区域到末节区域的方向上,还是从末节区域产生而向骨干区域发送的方向上;从而,末节区域既不会接收来自骨干区域的LSA-5,同时也无法向骨干区域注入外部路由。OSPF Not-So-Stubby Area (NSSA) 在这样的背景下产生,通过定义一种新的外部路由LSA – LSA-7并且在NSSA内泛洪,这样一方面能够有效过滤来自骨干区域的LSA-5,另一方面则允许NSSA内存在ASBR,以及该ASBR由外部注入路由向骨干区域注入。默认情况下,NSSA与骨干区域的ABR将执行LSA-5进入NSSA的过滤,同时将来自NSSA的外部路由LSA-7转换成LSA-5注入骨干区域当中。

正如末节区域路由的OSPF数据包头激活Option域中的“E”位,NSSA路由器的OSPF数据包Option域也会激活“N”位。尽管RFC 1587一再强调:OSPF域间路由LSA-3应该同时被注入到NSSA当中,以防止NSSA内部路由器因为没有LSA-3而优选外部次优路由连接到本来就已经在OSPF域内产生的路由目标网段上。然而无论JUNOS还是IOS,均允许NSSA区域过滤OSPF域间路由LSA-3,从而形成TNSSA。本实验包含的目标如下所示:

  1. 区域10内不能出现LSA-3/4/5
  2. 在R1上手动向OSPF注入3/8外部路由,该路由初始Metric值为10,并且保证所有OSPF路由器根据自身到达R1的距离重新调整该Metric值,并在本地路由表中体现出来
  3. 区域10内所有路由器能够到达所有OSPF域间路由以及其他外部路由网段上
  4. 除第2点手动注入的3/8路由以外,不应该在区域10内配置其他静态路由

定义JUNOS策略,注入OSPF Type-7 LSA

与在之前Juniper JUNOS OSPF末节区域(Stub Area)配置实验中,定义的手动注入外部路由LSA-5类似,首先在R1上手动创建静态路由,并且将其导出至OSPF路由协议中。

policy-options {
    policy-statement 3/8 {
        term 1 {
            from {
                protocol static;
                route-filter 3.0.0.0/8 exact;
            }
            then {
                metric 10;
                external {
                    type 1;
                }
                accept;
            }
        }
    }
}

nigel@junos7.2# set r1 protocols ospf export 3/8

配置JUNOS OSPF Not-So-Stubby Area (NSSA)

与刚才设置的策略稍有不同,首先,我们在策略term 1之后并没有跟上另外一个带有“reject”的term 2,实际上在上面的例子中term 2也是不需要的。因为在JUNOS中,无论你的策略串当中包含多少个term,每一个策略串最后都包含一个默认策略,该默认策略是accept还是reject取决于路由器的默认行为。如我们现在的这个策略,将R1路由表当中来自静态路由,前缀为3,掩码严格控制为8位的路由导出到OSPF路由协议中发布,那么路由表中其他不符合以上规定的路由将采用默认策略决定。由于路由器默认不会将路由表当中来自不同路由协议的路由进行交换,因此,默认策略已经为reject。所以其实我们不需要加入term 2来reject来自其它路由协议(如Direct)的路由。其次,根据实验目标对3/8外部路由的需求,我们需要为注入的路由手工指定初始化的Metric值为10,同时为了保证该路由在对每个OSPF路由器均能反映其到ASBR R1的距离,我们还需要修改路由的OSPF外部路由类型,从默认的类型2修改为类型1,以便OSPF域内的COST值累加到初始的Metric值10之上。由于在上一个实验中,我们将区域10设置为TSA,因此当前区域10里面不存在包括LSA-5或者LSA-7在内的任何外部LSA。

nigel@junos7.2# run show ospf database logical-router r1
external | count
Count: 0 lines 

[edit logical-routers]
nigel@junos7.2# run show ospf database logical-router r1
nssa | count
Count: 0 lines

因此,我们需要设置区域10为NSSA。

nigel@junos7.2# set r1 protocols ospf area 10 nssa 

[edit logical-routers]
nigel@junos7.2# set r2 protocols ospf area 10 nssa    

[edit logical-routers]
nigel@junos7.2# set r3 protocols ospf area 10 nssa    

[edit logical-routers]
nigel@junos7.2# set r4 protocols ospf area 10 nssa    

[edit logical-routers]
nigel@junos7.2# commit 

等邻居建立后,确认区域10通告LSA-7,通告路由器为R1,初始Metric为10,类型为1;而且区域10当中并未包含任何LSA-5,因为不存在LSA-5,自然不会有LSA-4的存在。

nigel@junos7.2# run show ospf database logical-router r3
nssa extensive 

    OSPF link state database, Area 0.0.0.10
Type   ID       Adv Rtr    Seq     Age  Opt  Cksum  Len
NSSA 3.0.0.0 10.0.6.1 0x80000001   125  0x28 0x8477  36
  mask 255.0.0.0
  Type 1, TOS 0x0, metric 10, fwd addr 10.0.6.1,
  tag 0.0.0.0
  Aging timer 00:57:55
  Installed 00:01:24 ago, expires in 00:57:55
  Last changed 00:01:24 ago, Change count: 1

nigel@junos7.2# run show ospf database logical-router r3
area 10 external | count
Count: 0 lines
Advertisements

3 thoughts on “JNCIP实验: OSPF NSSA区域配置 – Part 1

  1. JNCIP实验: OSPF NSSA区域外部路由负载均衡 « JUNIPER JUNOS & CISCO IOS 互联路由

  2. JNCIP实验视频: OSPF NSSA配置及Metric Mania « JUNIPER JUNOS & CISCO IOS 互联路由

发表评论

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