MPLS VPN中PE-CE 之间OSPF路由属性问题
2008/11/03 21:42 by datao 本站原创
CE1---------------PE1---------P--------PE2--------------CE2
OSPF | MPLS Domain | OSPF
在MPLS VPN中,PE-CE端的路由可以有很多种,比如静态路由、RIPv2、EIGRP、ISIS、BGP和OSPF,比较常见的就是用OSPF来实现CE路由的导入和导出,如果你不经意你会发现,当我们将OSPF路由通过MP-BGP导入到PE的VRF后,CE端看到OSPF的路由有的时候OE类型的外部路由,有的时候是OIA的内部区域间路由,其实仔细观察发现这种现象并不是偶然现象。产生这个问题的原因主要是在MPLS VPN中针对OSPF有个Domain-ID的问题,如果两端PE的Domain-ID不同,那么从一侧导入另一侧的时候就当成外部路由来看待,这样我们从CE端看到的就是OE的外部路由,这就使得OSPF本身自有的属性都消失了,在客户看来VPN两端的网络这好像并不是一个公司网络,倒像是两个网络通过再发布来实现路由互通,如果经过我们的MPLS VPN让客户觉得他们的网络是被VPN隔开的,而并非是一个整体这当然不好,这样造成的结果可能客户对另外一端的网络一无所知了。当然如果客户觉得VPN两边通就可以,对OE或者OIA无任何要求,那我们就省事多了,可是什么方法能实现VPN的两端看起来是一个网络,路由是通过OIA来标识的呢?
其实很简单,在MPLS VPN中,OSPF把MPLS VPN的域看做是一个Superbackbone,所以,PE与CE之间做OSPF的时候,你可以把直连的区域宣告到任意一个区域中,比如area 1 甚至是area 0,都可以。因为在MPLS VPN看来superbackbone是最高级的。
在做PE与CE之间OSPF的时候,PE上面的ospf进程号默认情况下就是我们所说的Domain-ID了,比如,如果在router ospf 1 vrf vpna那么这个PE OSPF的domain-id就是0.0.0.1,而另外一个PE如果用router ospf 2 vrf vpna,那么domain-id就是0.0.0.2,当他们从MP-BGP导入OSPF路由的时候就会把路由的domain-id与自己的domain-id相比较,如果两个domian-id相同那么就认为是一个域的,传递过去的就是以OIA的形式,在对端看来就是一个区域间路由,如果domian-id不同那么就认为是一个外部路由,传递过去的就是OE路由,是一个外部类型5的路由。所以,你在PE上面配置OSPF的时候还是挺有说到的,你把他们的进程号设置的相同,domain-id就相同,那么如果我们都以配置好了OSPF,不能对此修改有没有办法可以把domian-id设置成一样呢?这个当然可以,我们可以在OSPF的VRF路由模式下操作,例如:
router ospf 2 vrf a
domain-id 0.0.0.1
修改成两端一样就可以啦!这样我们从CE端看到的路由就是OIA的路由了,这里面要说的不是所有的路由都是OIA类型的,比如CE2端有个RIP再发布进OSPF形成类型5的路由,这样通过我们VPN到达CE1端的时候依然是类型5的路由,说白了就是domain-id相同的情况下,我们保证OSPF在通过VPN的时候原来的属性是没有变化的!!!
还有,在MP-BGP下把ospf vrf的路由再发布的时候记得match啊,如果你不加match,默认只把internal路由再发布到MP-BGP,如果想把external 1 external 2的也通过MP-BGP传递到对端CE的话,我们必须要加个match参数:
r1(config-router-af)#redistribute ospf 1 vrf a match internal external 1 external 2
切记:收到的OSPF路由是和自己本身的Domian-id比较!!!
OSPF | MPLS Domain | OSPF
在MPLS VPN中,PE-CE端的路由可以有很多种,比如静态路由、RIPv2、EIGRP、ISIS、BGP和OSPF,比较常见的就是用OSPF来实现CE路由的导入和导出,如果你不经意你会发现,当我们将OSPF路由通过MP-BGP导入到PE的VRF后,CE端看到OSPF的路由有的时候OE类型的外部路由,有的时候是OIA的内部区域间路由,其实仔细观察发现这种现象并不是偶然现象。产生这个问题的原因主要是在MPLS VPN中针对OSPF有个Domain-ID的问题,如果两端PE的Domain-ID不同,那么从一侧导入另一侧的时候就当成外部路由来看待,这样我们从CE端看到的就是OE的外部路由,这就使得OSPF本身自有的属性都消失了,在客户看来VPN两端的网络这好像并不是一个公司网络,倒像是两个网络通过再发布来实现路由互通,如果经过我们的MPLS VPN让客户觉得他们的网络是被VPN隔开的,而并非是一个整体这当然不好,这样造成的结果可能客户对另外一端的网络一无所知了。当然如果客户觉得VPN两边通就可以,对OE或者OIA无任何要求,那我们就省事多了,可是什么方法能实现VPN的两端看起来是一个网络,路由是通过OIA来标识的呢?
其实很简单,在MPLS VPN中,OSPF把MPLS VPN的域看做是一个Superbackbone,所以,PE与CE之间做OSPF的时候,你可以把直连的区域宣告到任意一个区域中,比如area 1 甚至是area 0,都可以。因为在MPLS VPN看来superbackbone是最高级的。
在做PE与CE之间OSPF的时候,PE上面的ospf进程号默认情况下就是我们所说的Domain-ID了,比如,如果在router ospf 1 vrf vpna那么这个PE OSPF的domain-id就是0.0.0.1,而另外一个PE如果用router ospf 2 vrf vpna,那么domain-id就是0.0.0.2,当他们从MP-BGP导入OSPF路由的时候就会把路由的domain-id与自己的domain-id相比较,如果两个domian-id相同那么就认为是一个域的,传递过去的就是以OIA的形式,在对端看来就是一个区域间路由,如果domian-id不同那么就认为是一个外部路由,传递过去的就是OE路由,是一个外部类型5的路由。所以,你在PE上面配置OSPF的时候还是挺有说到的,你把他们的进程号设置的相同,domain-id就相同,那么如果我们都以配置好了OSPF,不能对此修改有没有办法可以把domian-id设置成一样呢?这个当然可以,我们可以在OSPF的VRF路由模式下操作,例如:
router ospf 2 vrf a
domain-id 0.0.0.1
修改成两端一样就可以啦!这样我们从CE端看到的路由就是OIA的路由了,这里面要说的不是所有的路由都是OIA类型的,比如CE2端有个RIP再发布进OSPF形成类型5的路由,这样通过我们VPN到达CE1端的时候依然是类型5的路由,说白了就是domain-id相同的情况下,我们保证OSPF在通过VPN的时候原来的属性是没有变化的!!!
还有,在MP-BGP下把ospf vrf的路由再发布的时候记得match啊,如果你不加match,默认只把internal路由再发布到MP-BGP,如果想把external 1 external 2的也通过MP-BGP传递到对端CE的话,我们必须要加个match参数:
r1(config-router-af)#redistribute ospf 1 vrf a match internal external 1 external 2
切记:收到的OSPF路由是和自己本身的Domian-id比较!!!
COMMENT[1]
flickxie
2008/12/17 13:22
CE通过PE学来的远端CE路由,即便配置在同一区域,过来以后也是inter area 路由。只有PE间配置了sham link以后才会成为intra area路由
不见得啊,Domain-ID确实可以导致路由属性的变化
分页: 1/1
1
1


