• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    V5 OSPF Router id的选举原则

    作者:  |  上传时间:2009-11-18  |  关键字:V5 OSPF Router id的选举原则

    /苏艳梅

    router id 用来唯一表示ospf 网络中的一个节点,其选择规则RFC2328上有明确规定,但是各厂商在实现的过程中又有所不同,下面将介绍H3C Comware V5平台ospf router id 的选举规则。

    1           具体规则

    1.1                规则一

         OSPF任意一个进程都必须有一个非零的ROUTER IDOSPF进程使用的Router ID可以通过手工配置或者使用系统公用的ROUTER ID,如果出现既没有手工配置又没有系统公用的ROUTER ID可供使用的情况,则OSPF进程将处于休眠状态,不运行任何协议功能。

    1.2                规则二

    OSPF进程手工配置的ROUTER ID具有最高优先级,通过以下命令给OSPF进程配置的ROUTER ID优于其它所有方式产生的ROUTER ID,具体配置如下:

    [Router] ospf 1 router-id ?

         X.X.X.X  OSPF Private router ID value

    1.3                规则三

    在全局模式下配置的公用ROUTER ID的优先级仅次于直接给OSPF进程手工配置ROUTER ID,即它具有第二优先级,具体配置如下:

    [Router] router id ?

      X.X.X.X  Router ID for routing protocols

    1.4                规则四

     如果既没有给OSPF进程手工配置ROUTER ID,也没有在全局模式下配置公用ROUTER ID,则OSPF会使用系统从可用的IP地址中自动选举出来的公用ROUTER ID,即接口IP地址自动选举产生的公用ROUTER ID具有最低优先级。具体规则如下:

    1)、在初始状态下,如果没有loopback 接口IP地址,将选择接口IP地址大的为ROUTER ID,如果有loopback接口IP地址,将选择loopback接口IP地址为ROUTER ID

    但是有如下情况可能使你困惑:

    <Router>display ip interface brief

    Interface                                Physical   Protocol   IP Address

    Aux0                                    down       down     unassigned

    Ethernet0/0                               down       down     20.1.1.1

    Ethernet0/0.100                            down       down     10.1.1.1

    Ethernet0/1                               *down      down     unassigned

       [Router] ospf 100  //没有配置进程的router id 也没有配置全局的router id 所以要选择接口IP地址为ROUTER ID

    [Router]display ospf 100 peer

                OSPF Process 100 with Router ID 20.1.1.1   //选择接口IP地址大的为ROUTER ID

       现在配置loopback接口,并配置ip 地址,具体如下:

    [Router]interface LoopBack 0

    [Router-LoopBack0]ip address 1.1.1.1 32

    [Router-LoopBack0]

    [Router-LoopBack0]display this

    interface LoopBack0

     ip address 1.1.1.1 255.255.255.255

    [Router-LoopBack0]

        再察看ospf 100ROUTER ID还是20.1.1.1,并没有变为loopback接口的IP地址1.1.1.1

     [Router]display ospf 100 peer

                OSPF Process 100 with Router ID 20.1.1.1  

      

    现在把ospf 100删掉,在重新配置以及reset ospf 100都不能使ospf 100ROUTER ID 改变,具体如下:

    [Router]undo ospf 100

    Warning : Undo OSPF process? [Y/N]:y

    [Router]ospf 100

    [Router]dis ospf 100 peer

                       OSPF Process 100 with Router ID 20.1.1.1

     [Router]

    <Router>reset ospf 100 process

    Warning : Reset OSPF process? [Y/N]:y

    <Router>display ospf 100 peer                   OSPF Process 100 with Router ID 20.1.1.1

    遇到上述现象,大家可能会困惑,为什么reset ospf 进程以及删除ospf 进程再重新配置都不能使ospf router id 重新选择呢?

    具体原因是:公用的router id不是由OSPF选择的,而是路由管理来选择(因为公用router id BGP也要使用),它的存在与OSPF存不存在没有关系。所以即使OSPF进程undo掉了,但公用的router id仍然没有变化.重新配上OSPF仍会选择先前选择的公用的router id

    2)、为了保证ROUTER ID的稳定性,一旦通过选举产生公用的ROUTER ID之后,不管是否有更高优先级的接口IP地址产生,例如新配置了Loopback接口IP地址或者比现有被选为ROUTER ID更大的IP地址等都不会再重新选举公用的ROUTER ID,除非被选作公用ROUTER ID的接口IP地址本身发生变化,例如IP地址被删除或者接口被删除等才会进行重新选举。举例:

    [Router]interface ethernet 0/0

    [Router-Ethernet0/0]undo ip address

    %Apr  6 10:45:30:13 2007 292 RM/3/RMLOG:OSPF 100 226: New Router ID elected, ple

    ase restart OSPF if you want to make the new Router ID take effect. //router id 重新选择

    [Router-Ethernet0/0]           

    3)、OSPF进程只能使用自己所属的VPN实例选举出来的公用ROUTER ID,例如OSPF 1属于VPN 1,则OSPF 1只能使用VPN 1选举出来的公用ROUTER ID,而不能使用其它VPNROUTER ID

    每个VPN实例只能从本实例中选取一个接口IP地址作ROUTER ID,例如VPN 1的公用ROUTER ID只能从VPN 1所有的接口IP地址中进行选举,而不能使用其它VPN的接口IP地址;在相同VPN的接口IP地址中首先优选Loopback接口IP地址;在没有Loopback接口IP地址的情况下优选相同VPN中最大的IP地址。

    1.5                规则五

    为了保证OSPF协议在运行过程中的稳定性,当OSPF进程正在使用的ROUTER ID需要发生变化时系统并不会自动使用新的ROUTER ID,例如有更高优先级的ROUTER ID产生或者正在使用的ROUTER ID本身被修改或者删除,此时系统还是会仍然使用旧的ROUTER ID,如果用户希望新的ROUTER ID生效,必须通过重起进程来实现ROUTER ID的更新。

    2           建议

    2.1                对相同VPN实例下的多个OSPF进程手工配置不同的ROUTER ID

    如果没有给OSPF进程手工配置ROUTER ID,则OSPF进程会选用在全局模式下配置的公用ROUTER ID或者自己所属的VPN实例选举出来的公用ROUTER ID,因此当多个OSPF进程属于同一个VPN实例的情况下,每个进程会使用相同的ROUTER ID。为了避免由于组网不当造成相同自治系统中ROUTER ID冲突的情况,建议在这种情况下用以下命令给每一个OSPF进程手工指定ROUTER ID

    [Router] ospf 1 router-id ?

    X.X.X.X  OSPF Private router ID value