JNCIP案例分析 – Juniper/Cisco OSPF互操作 Part4

3. JUNOS与IOS OSPF NSSA设置及区域认证:

kangaroo

  1. 区域0.0.0.1内不会出现LSA-3或者LSA-5;
  2. 区域0.0.0.0使用MD5加密认证,密码为“jnx”;

根据区域1对LSA类型的过滤要求,我们需要将区域1设置为TNSSA,在ABR R3/R4上除了要在设置NSSA的同时加入no-summary参数并向NSSA注入默认路由以外;还需要保证被注入的默认路由以LSA-7的形式出现。在R3上JUNOS配置我们在之前的实验中已经演示过。

nigel@junos7.2# show r3 protocols ospf area 1
nssa {
    default-lsa {
        default-metric 1;
        type-7;
    }
    no-summaries;
}

在R3上采用正确的策略,不难将LSA3/4/5全部过滤掉。应用策略后,查看R1/R2的OSPF数据库,均确认在NSSA 1内没有通过R3接收到以上三类LSA。

nigel@junos7.2# run show ospf database logical-router r1
advertising-router 10.0.3.3    

    OSPF link state database, area 0.0.0.1
 Type       ID       Adv Rtr  Seq      Age Opt Cksum Len
Router   10.0.3.3  10.0.3.3 0x80000009 749 0x0 0x14b0 48
Network  10.0.4.13 10.0.3.3 0x80000004 444 0x0 0x1ff0 32
NSSA     0.0.0.0   10.0.3.3 0x80000004 660 0x0 0xe35b 36

nigel@junos7.2# run show ospf database logical-router r2
netsummary advertising-router 10.0.3.3  | count
Count: 0 lines

然而另一挑战则来自于从IOS将LSA3/4/5从区域1内完全过滤掉。在IOS中,为保障NSSA内部路由器到域间及域外网段的连通性,ABR会在不同的情况下产生两种类型的缺省路由LSA。当我们需要过滤域间LSA-3的时候,ABR将以LSA-3的形式向NSSA注入默认路由。此时,尽管其他域间LSA-3被全部过滤掉,却依然留下默认路由为LSA-3的痕迹。无论通过查看R2的OSPF数据库,还是路由表中OSPF的Preference值均能确认这一点。

r4(config-router)#area 1 nssa no-summary 

nigel@junos7.2# run show ospf database logical-router r2
netsummary advertising-router 10.0.3.3    

    OSPF link state database, area 0.0.0.1
 Type       ID      Adv Rtr  Seq      Age Opt Cksum Len
Summary  0.0.0.0  10.0.3.4 0x80000001 235 0x2 0xb173 28

nigel@junos.2# run show route logical-router r2 0.0.0.0 

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

0.0.0.0/0          *[OSPF/10] 00:09:36, metric 2
                    > to 10.0.4.9 via fxp2.24

而假如我们希望接收LSA-7形式的默认路由,则可以将no-summary参数改为no-redistribution,该参数主要用于避免同时充当ASBR的NSSA ABR路由器将其本地重分布进入OSPF域内的外部路由以LSA-5注入骨干区域的同时,以LSA-7的方式注入NSSA内部。JUNOS在更新的版本上使用no-nssa-abr命令达到类似的目的。此时IOS将把默认路由以LSA-7的形式注入NSSA内部。不幸的是,当我们成功避免了默认路由以LSA-3出现的时候,却无法过滤源自于OSPF的域间路由LSA-3。结果更多的LSA-3被引入区域1。

r4(config-router)#no area 47 nssa
r4(config-router)#are 1 nssa no-redistribution
default-information-originate

nigel@junos7.2# run show route logical-router r2 0.0.0.0                    

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

0.0.0.0/0          *[OSPF/150] 00:45:37, metric 2, tag 0
                    > to 10.0.4.1 via fxp2.23

nigel@junos7.2# run show ospf database logical-router r2
netsummary | count
Count: 13 lines

由于IOS本身并没有提供如JUNOS那样转换缺省路由LSA类型的设置,即便我们将两个参数结合在一起使用,ABR将同时产生两条0.0.0.0默认路由,分别以LSA-3与LSA-7同时注入NSSA。由于两者在JUNOS上Preference的差异以及IOS优选域间LSA甚于外部LSA,Juniper与Cisco两者均无法在数据库内摒除LSA-3并且路由表优选其成为活跃的默认路由。

r4(config-router)#area 1 nssa no-summary no-redistribution
default-information-originate

nigel@junos7.2# run show ospf database logical-router r2
lsa-id 0.0.0.0 

    OSPF link state database, area 0.0.0.1
 Type       ID     Adv Rtr  Seq       Age Opt Cksum Len
Summary  0.0.0.0 10.0.3.4 0x80000002  660 0x2 0xaf74 28
NSSA     0.0.0.0 10.0.3.3 0x8000000b 1263 0x0 0xd562 36
NSSA     0.0.0.0 10.0.3.4 0x80000001  660 0x2 0xa6e2 36

单纯依靠IOS的NSSA功能无法达成实验目标,我们需要考虑新的思路。由于NSSA内一旦使用no-summary对LSA-3进行过滤,产生的默认路由必然是LSA-3。因此我们只能抛弃采用no-summary参数过滤域间LSA-3,而选择no-redistribution保证NSSA域内的默认路由LSA类型为LSA-7。然后再通过另外的途径过滤其余的域间路由。我们引用IOS域间基于prefix-list的路由过滤特征来达到这个目的,通过定义prefix-list,仅允许默认路由进入区域1,从而将其他域间路由全部过滤掉,因此在设置前缀列表的时候应该将它设置在区域1的in方向。结合这NSSA和前缀列表两种过滤功能,分别实现对LSA-5以及LSA-3的过滤,而由于R4上并没有域外路由被重分布进入OSPF,no-redistribution在这里仅仅充当产生LSA-7默认路由的功能。完成配置后,我们终于可以看到区域1内已经不存在任何LSA-3及LSA-5,并且默认路由以LSA-7的形式被安装进入OSPF数据库内。

r4(config-router)#area 1 nssa no-redistribution
default-information-originate

r4(config-router)#area 1 filter-list prefix
only-default-route in

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

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

nigel@junos7.2# run show ospf database logical-router r2
lsa-id 0.0.0.0      

    OSPF link state database, area 0.0.0.1
 Type       ID     Adv Rtr  Seq      Age Opt Cksum Len
NSSA     0.0.0.0 10.0.3.3 0x80000010 228 0x0 0xcb67 36
NSSA     0.0.0.0 10.0.3.4 0x80000001 427 0x2 0xa6e2 36

接下来的认证比较简单,只需要在骨干区域路由器上启用区域认证并且在骨干区域接口内输入相同的Key ID以及密码即可完成认证配置,我们仅把关键配置摘录下来。

[edit logical-routers]
nigel@junos7.2# show r5 protocols ospf area 0
authentication-type md5;
interface lo0.5;
interface fxp2.45 {
    authentication {
        md5 10 key "$9$IBIhyKsYoaUH"; ## SECRET-DATA
    }
}
interface fxp2.35 {
    authentication {
        md5 10 key "$9$j8kmTOBEhrv"; ## SECRET-DATA
    }
}

r4#wr t
!
interface FastEthernet0/0.34
 encapsulation dot1Q 134
 ip address 10.0.2.6 255.255.255.252
 ip mtu 1496
 ip ospf message-digest-key 10 md5 jnx
!
interface FastEthernet0/0.45
 encapsulation dot1Q 145
 ip address 10.0.2.10 255.255.255.252
 ip mtu 1496
 ip ospf message-digest-key 10 md5 jnx
!
router ospf 64
 router-id 10.0.3.4
 log-adjacency-changes
 area 0 authentication message-digest
 area 1 nssa no-redistribution
default-information-originate
 area 1 filter-list prefix only-default-route in
!

验证骨干区域认证配置正常的最快方式可以在R5上查看区域0内的两给邻居R3/R4是否已经达到FULL状态,并且任选在R3/R4上使用环回接口互相traceroute,确认彼此环回接口之间使用最短路径访问及回访即可。

r4#traceroute 10.0.3.3 source 10.0.3.4

Type escape sequence to abort.
Tracing the route to 10.0.3.3

  1 10.0.3.3 20 msec 24 msec 8 msec

发表评论

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