Labs: JUNOS OSPF多区域配置 – Part 1

junos_ospf_multiarea

实验演示: JNCIP Labs 1.1: JUNOS OSPF多区域配置 第一部分

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

如果你正在阅读JUNOS101系列,不用担心,我会继续把这个项目完成。只是为了在Juniper101研讨会的实验演示前,预先把第一个OSPF实验的笔记放上来。在《互联自由之路》第一卷中的OSPF部分,我将几个之前一直在CCIE实验室考试中占据着重要比重的必备实验剔除了出去,而首当其冲的便是对于Routing and Switching CCIE考生而言,最为关键及挑战性的OSPF在NBMA网络环境中的几种解决方案。原因很简单,它们落伍了。假如你仍然为CCIE而努力的话,我建议你最好将这经典的一页全部读完 ─ 或许这已经不是最好的建议。回到实验上,我们从最简单的OSPF多区域配置开始,本实验包含的目标如下所示:

  1. 使用Loopback接口地址作为路由器ID(RID)
  2. 所有Loopback接口地址应该能够通过OSPF学习并访问
  3. 骨干区域内的路由器Loopback接口以LSA-3形式在区域0.0.0.1产生
  4. T1与R3之间的链路以域内路由形式在区域0.0.0.0产生;同时,保证该链路上不会产生OSPF邻接关系

先完成初步配置,这对于大部分接触过JUNOS的人来说应该不难,略去相关叙述,仅把5台路由器的OSPF部分相关配置列出。根据拓扑所示,我们只需要直观的将相关接口放置在对应区域通告即可,并没有什么挑战性;唯一需要注意的一点是:区别于IOS通过通告IP网段至某个区域,JUNOS采用组织架构将接口归纳入各个区域里面通告,即便日后需要修改IP网段地址,也无需重新更改OSPF路由协议的通告设置。

R3 JUNOS初步配置:

protocols {
    ospf {
        area 0.0.0.0 {
            interface fxp1.34;
            interface fxp1.35;
        }
    }
}

R4 JUNOS初步配置:

protocols {
    ospf {
        area 0.0.0.0 {
            interface fxp2.34;
            interface fxp1.45;
        }
    }
}

R5 JUNOS初步配置:

protocols {
    ospf {
        area 0.0.0.0 {
            interface fxp2.35;
            interface fxp2.45;
        }
        area 0.0.0.1 {
            interface fxp1.56;
            interface fxp1.57;
        }
    }
}

R6 JUNOS初步配置:

protocols {
    ospf {
        area 0.0.0.1 {
            interface fxp2.56;
            interface fxp2.67;
        }
    }
}

R7 JUNOS初步配置:

protocols {
    ospf {
        area 0.0.0.1 {
            interface fxp1.67;
            interface fxp2.57;
        }
    }
}

接着我们做初步的检查测试OSPF接口及邻居状态。

[edit logical-routers]
nigel@www.itaalab.com# run show ospf interface 
logical-router r5

Interface  State   Area       DR ID      BDR ID  Nbrs
fxp2.35    DR     0.0.0.0    10.0.3.5   10.0.3.3   1
fxp2.45    DR     0.0.0.0    10.0.3.5   10.0.3.4   1
fxp1.56    BDR    0.0.0.1    10.0.9.6   10.0.3.5   1
fxp1.57    BDR    0.0.0.1    10.0.9.7   10.0.3.5   1

输出结果显示:R5共有4个接口在OSPF里面通告,同时下划线标示部分显示在区域0.0.0.0和区域0.0.0.1当中,R5分别通告了两个接口。另外每个接口均建立起一个邻居关系,我们可以通过下面的命令进一步确认。

[edit logical-routers]
nigel@www.itaalab.com# run show ospf neighbor 
logical-router r5

Address      Interface    State    ID         Pri  Dead
10.0.2.2   fxp2.35        Full    10.0.3.3   128   37
10.0.2.10  fxp2.45        Full    10.0.3.4   128   35
10.0.8.5   fxp1.56        Full    10.0.9.6   128   35
10.0.8.10  fxp1.57        Full    10.0.9.7   128   38

1. JUNOS OSPF路由器ID(RID)特性

[edit]
nigel@www.itaalab.com# run show route protocol ospf
logical-router r5 | match /32
10.0.3.3/32        *[OSPF/10] 04:23:47, metric 10
10.0.3.4/32        *[OSPF/10] 04:23:47, metric 10
10.0.9.6/32        *[OSPF/10] 04:23:41, metric 10
10.0.9.7/32        *[OSPF/10] 04:23:42, metric 10
224.0.0.5/32       *[OSPF/10] 04:49:45, metric 1

查看R5路由表,我们发现,在之前的配置当中,虽然我们并没有将各台路由器的环回接口通过OSPF发布,然而除R5本地环回接口地址以外,其他4台路由器环回接口地址均通过OSPF被R5学习并且安装至路由表当中。

[edit]
nigel@www.itaalab.com# run ping 10.0.3.3 logical-router 
r5 source 10.0.3.5 rapid
PING 10.0.3.3 (10.0.3.3): 56 data bytes
!!!!!
--- 10.0.3.3 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.400/0.448/0.477/0.027 ms

同时,我们在R5上使用本地环回接口IP地址作为源地址发送PING包到R3上面,不难发现R3实际上也通过OSPF学习到R5的环回接口地址并且安装进入路由表当中。这里需要了解JUNOS在OSPF路由协议当中对于RID网段的特性。对于JUNOS路由守护进程(RPD)而言,它优先选择本地环回接口地址作为第一地址而被应用为OSPF路由器ID.因此,即便我们没有手动指定每台路由器的RID地址,JUNOS依然会自动为我们挑选每台路由器的环回接口地址作为OSPF的RID. 默认情况之下,JUNOS自动为被选举成为RID的IP网段产生一条末节路由,并通过OSPF通告。因此,尽管我们在之前的配置当中并没有明确通告每台路由的的环回接口地址到OSPF区域当中,所有OSPF路由器依然能够学习到其他路由器的环回接口地址。我们可以通过查看OSPF数据库,通过另外一个角度进行验证。

[edit]
nigel@www.itaalab.com# run show ospf database logical-router
r5 router lsa-id 10.0.3.3 detail 

    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  0x8000000f  1868  0x2  0xd6cd  60
  bits 0x0, link count 3
  id 10.0.2.6, data 10.0.2.5, Type Transit (2)
  TOS count 0, TOS 0 metric 10
  id 10.0.2.1, data 10.0.2.2, Type Transit (2)
  TOS count 0, TOS 0 metric 10
  id 10.0.3.3, data 255.255.255.255, Type Stub (3)
  TOS count 0, TOS 0 metric 0

2. OSPF手动指定RID

我们可以为R3手动指定另外一个物理接口,而不是环回接口作为OSPF路由器ID,此时JUNOS对于环回接口IP网段自动通告的特性将会失效。假如我们依然需要访问R3的环回接口,我们需要手工将环回接口在OSPF协议下进行通告。

[edit logical-routers r3]
nigel@www.itaalab.com# set routing-options router-id 10.0.2.5 

[edit logical-routers r3]
nigel@www.itaalab.com# commit
commit complete

nigel@www.itaalab.com# run restart routing logical-router r3
r3 started, pid 3223

nigel@www.itaalab.com# run show ospf neighbor logical-router r5
Address      Interface    State    ID            Pri  Dead
10.0.2.2   fxp2.35         Full    10.0.2.5      128   33
10.0.2.10  fxp2.45         Full    10.0.3.4      128   33
10.0.8.5   fxp1.56         Full    10.0.9.6      128   34
10.0.8.10  fxp1.57         Full    10.0.9.7      128   35

由于修改了OSPF路由器ID,我们需要重新启动R3路由进程,当R5与R3重新建立邻居关系以后,R3的路由器ID从10.0.3.3修改为我们手工指定的10.0.2.5,同时查看R5的路由表和OSPF数据库,原R3路由器ID的IP网段 ─ 10.0.3.3/32网段,也没有被自动通告。

nigel@www.itaalab.com# run show route logical-router r5
10.0.3.3/32  | count
Count: 0 lines

nigel@www.itaalab.com# run show ospf database logical-router
r5 router lsa-id 10.0.2.5 extensive 

    OSPF link state database, area 0.0.0.0
 Type    ID     Adv Rtr   Seq          Age  Opt  Cksum  Len
Router 10.0.2.5 10.0.2.5  0x8000000a   351  0x2  0x3e89  48
  bits 0x0, link count 2
  id 10.0.2.6, data 10.0.2.5, Type Transit (2)
  TOS count 0, TOS 0 metric 10
  id 10.0.2.1, data 10.0.2.2, Type Transit (2)
  TOS count 0, TOS 0 metric 10
  Aging timer 00:54:09
  Installed 00:05:48 ago, expires in 00:54:09, 
  sent 00:05:48 ago

2 thoughts on “Labs: JUNOS OSPF多区域配置 – Part 1

  1. Juniper JUNOS OSPF域外(外部)路由/LSA « 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