3. VPN-Instance:
4. MP-BGP:
5. MPLS-VPN原理:
①R6访问5.5.5.5/32,将数据包送给PE设备R4,由于是从实例中传递过来的数据包,查看实例FIB表,Tunnel ID不为0,封装标签,根据Tunnel ID对应的LIM表压入标签,得知下一跳等行为
②压入出标签1038,下一跳地址G0/0/0,目标地址为1.1.1.1,由于1.1.1.1为全局地址,默认MPLS VPNv4默认使用隧道迭代功能,访问VPNv4路由的标签使用迭代标签(BGP环回口地址),所以查看全局的FIB表,Tunnel ID不为0,继续压入标签
④数据包在ISP传递中,ISP中的P设备查看数据包的外层标签进行转发,由于默认存在PHP行为,所以最后一跳路由器只收到存在内层标签的数据包,根据内层标签得知对应的VPN实例,将数据包送入VPN实例中,VPN实例通过实例IGP路由对数据包进行转发,送往TE设备
注1:如果ISP中的设备有的链路没有启动LDP协议,则无法实现LSP的建立,由于PE之间可以通过IGP路由协议将路由传递给对端,MPLS默认采用有序的模式下发标签,如果中间的MPLS LDP不生效,由于VPNv4属性中没有Next-Hop属性,而是使用Label得知下一跳,PE设备无法得知LSP的下一跳地址标签,导致MP-BGP路由不优化,不会放入实例转发表中
注3:如果在中间的P设备行做路由汇总,则导致/32的FEC消失,变为一条粗路由,导致LSP关于目标PE/32的FEC的LSP消失,BGP的路由条目下一跳地址不可达,最终BGP的VPNv4路由不会进入实例路由表中,可以使用静态LSP解决,目标FEC必须是/32
6. MPLS VPN配置:
① ISP中启用IGP路由协议
② ISP中配置MPLS,并启用LDP
③ ISP边界路由器配置MP-BGP,并使用环回口建立邻居:
R2:
[Huawei]bgp 100
[Huawei-bgp]undo default ipv4-unicast---关闭IPv4单播功能
[Huawei-bgp]peer 5.5.5.5 as-number 100
[Huawei-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[Huawei-bgp]ipv4-family vpnv4
[Huawei-bgp-af-vpnv4]peer 5.5.5.5 enable--激活与对端5.5.5.5的VPNv4功能
[Huawei-bgp-af-vpnv4]peer 5.5.5.5 advertise-community—传递团体属性(默认开启)
R5:
[Huawei]bgp 100
[Huawei-bgp]undo default ipv4-unicast---关闭IPv4单播功能
[Huawei-bgp]peer 2.2.2.2 as-number 100
[Huawei-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[Huawei-bgp]ipv4-family vpnv4
[Huawei-bgp-af-vpnv4]peer 2.2.2.2 enable--激活与对端2.2.2.2的VPNv4功能
[Huawei-bgp-af-vpnv4]peer 5.5.5.5 advertise-community—传递团体属性(默认开启)
注:使用命令[Huawei]display bgp vpnv4 all peer查看VPNv4邻居建立
④ 配置VPN Instance:
R2:
[Huawei]ip vpn-instance huawei
[Huawei-vpn-instance-huawei]route-distinguisher 100:1---配置RD值
[Huawei-vpn-instance-huawei-af-ipv4]vpn-Target 100:1 both配置RT值
[Huawei]inter g0/0/0
[Huawei-GigabitEthernet0/0/0]ip binding vpn-instance Huawei—接口绑定实例
[Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 24---重新配置IP
R5:
[Huawei]ip vpn-instance huawei
[Huawei-vpn-instance-huawei]route-distinguisher 100:1---配置RD值
[Huawei-vpn-instance-huawei-af-ipv4]vpn-Target 100:1 both配置RT值
[Huawei]inter g0/0/0
[Huawei-GigabitEthernet0/0/0]ip binding vpn-instance Huawei—接口绑定实例
[Huawei-GigabitEthernet0/0/0]ip add 192.168.5.1 24---重新配置IP
注:使用命令<Huawei>display ip routing-table vpn-instance huawei查看实
例路由表
⑤ PE与CE之间启用IGP路由协议:
R2:
[Huawei]ospf 10 vpn-instance huawei---配置OSPF进程10为实例huawei服务
[Huawei-ospf-10]area 1
[Huawei-ospf-10-area-0.0.0.1]network 192.168.1.1 0.0.0.0
R1:
[Huawei]ospf 10
[Huawei-ospf-10-area-0.0.0.1]network 0.0.0.0 255.255.255.255
R5:
[Huawei]ospf 10 vpn-instance huawei---配置OSPF进程10为实例huawei服务
[Huawei-ospf-10]area 1
[Huawei-ospf-10-area-0.0.0.1]network 192.168.5.1 0.0.0.0
R6:
[Huawei]ospf 10
[Huawei-ospf-10-area-0.0.0.1]network 0.0.0.0 255.255.255.255
注:PING测试需要增加VPN选项<Huawei>ping -vpn-instance huawei 1.1.1.1
⑥将Site中的路由放入MP-BGP中传递,将MP-BGP路由传递给Site:
R2:
[Huawei]bgp 100
[Huawei-bgp]ipv4-family vpn-instance Huawei
[Huawei-bgp-huawei]import-route ospf 10
此时R2便将VPNv4实例路由放入MP-BGP传递给对端邻居,对端邻居R5收到后,根据VPNv4路由中的Export属性和本地的IN-port属性进行比对,如果相同,将VPNv4变为普通的IPv4路由放入对应的BGP的VPN实例中。
注::使用引入命令将BGP VPN实例中的路由放入OSPF的实例中
R5:
[Huawei]ospf 10 vpn-instance Huawei
[Huawei-ospf-10]import-route bgp
同理在R5上将ospf vpnv4路由引入BGP vpnv4路由中,在R2上将BGP vpnv4路由引入OSPF vpnv4路由中。
注:PE接收对端PE发送过来的路由时,首先比较路由中的RT值(Label是否存在于BGP标签转发表中),如果RT未知,PE将直接丢弃所传递过来的路由信息。在特殊,ISP中部署RR时,RR的VPN实例不需要配置RT和RD值,只需要转发所有的VPNv4路由即可,此时需要关闭RT的过滤功能
并且RR上不要配置Next-Hop-Local命令,此命令对VPNv4路由生效,RR再将VPNv4路由传递给对端PE设备时,下一跳地址为自身,此时实际数据平面传输过程中数据流经过了两段LSP,一段目标FEC为RR环回口地址,一段目标FEC为PE的环回口地址
[Huawei]bgp 100
[Huawei-bgp]ipv4-family vpnv4
[Huawei-bgp-af-vpnv4]undo policy vpn-target—关闭VPNv4的RT过滤功能
此时,只要有VPNv4路由传递过来,路由器会直接放入BGP的VPNv4路由表中,不在检查
RT属性
7. CE与PE建立:(1)静态建立:
①PE:
[Huawei]ip route-static vpn-instance huawei 1.1.1.1 32 g0/0/0 10.1.12.1
[Huawei-bgp]ipv4-family vpn-instance huawei
[Huawei-bgp-huawei]import-route direct-----导入直连,否则PE-CE线路直连网络不存在
[Huawei-bgp-huawei]import-route static
②CE:
[Huawei]ip route-static 0.0.0.0 0.0.0.0 192.168.1.1
(2)RIP建立:
①PE:
[Huawei]rip 1 vpn-instance huawei
[Huawei-rip-1]network 192.168.1.0
[Huawei-rip-1]undo summary
[Huawei-rip-1]import-route bgp
[Huawei-rip-1]bgp 100
[Huawei-bgp]ipv4-family vpn-instance huawei
[Huawei-bgp-huawei]import-route rip 1
②CE:
[Huawei]rip 1
[Huawei-rip-1]network 192.168.1.0
[Huawei-rip-1]network 1.0.0.0
[Huawei-rip-1]undo summary
(3)IS-IS建立:
①PE:
[Huawei]isis vpn-instance huawei
[Huawei-isis-1]network-entity 49.0001.0000.0000.2222.00
[Huawei-isis-1]import-route bgp
[Huawei-isis-1]inter g0/0/1
[Huawei-GigabitEthernet0/0/1]isis enable
[Huawei]bgp 100
[Huawei-bgp]ipv4-family vpn-instance huawei
[Huawei-bgp-huawei]import-route isis 1
②CE:
[Huawei-isis-1]network-entity 49.0001.0000.0000.2222.00
[Huawei]inter g0/0/0
[Huawei-GigabitEthernet0/0/0]isis enable
[Huawei-GigabitEthernet0/0/0]inter loo 0
[Huawei-LoopBack0]isis enable
(4)BGP建立:
BGP建立时,在PE设备上直接在BGP的VPN实例中建立邻居,此时路由直接在BGP实例中传递,无需互相引入。
①PE:
[Huawei]bgp 100
[Huawei-bgp]ipv4-family vpn-instance huawei
[Huawei-bgp-huawei]peer 192.168.1.2 as-number 200
②CE:
[Huawei]bgp 200
[Huawei-bgp]peer 192.168.1.1 as-number 100
在BGP建立中会存在问题,两个企业边界路由器可能会使用相同的AS号码,此时当一个CE收到另一端CE的私网路由时,查看AS-Path属性,如果AS-Path号码相同,则会拒绝此路由。
解决方法:
①在对端PE设备上使用命令[Huawei-bgp-huawei]peer 12.12.12.12 substitute-as,此时原先的AS号码会变成ISP的AS200
②在CE设备上使用命令[Huawei-bgp]peer 1.1.1.1 allow-as-loop,不检查AS号码,直接接受路由
(5)OSPF建立:①Super-Backbone:
如果PE和CE之间配置的为OSPF,并且PE和CE设备之间都存在于Area0,则PE—PE之间称为Super-Backbone,如果PE-CE之间有的区域不在Area0,则为普通骨干区域,PE设备虽然做了引入动作,但他的角色是ABR和ASBR他们在使用BGP传递OSPF路由时,会使用Community团体属性(Domain-ID)标识OSPF进程号,用于路由重构
Ø 如果PE设备两端的OSPF进程ID一致,则PE为ABR设备,收到对端PE设备的Type1、Type2、Type3的LSA会议Type3的LSA将路由放入路由表中;将Type5、Type7的LSA以原类型放入路由表中
Ø 如果PE设备两端的OSPF进程ID不一致,则PE为ASBR设备,收到对端PE设备的Type1、Type2、Type3 Type5、Type7的LSA将以Type5或Type7的LSA将路由放入路由表中
注1:华为设备默认使用Domain-ID映射进程ID,并且为Null,即使两端的进程ID不一致,也会将3类LSA以原始类型放入路由表中
使用命令在PE设备上修改Domain ID:[Huawei-ospf-10]domain-id 0.0.0.1
注2:此时PE与PE区域为骨干0,如果PE与CE之间运行的OSPF属于普通区域,并且企业内部存在骨干区域,则企业骨干区域和PE-PE骨干区域被PE-CE普通区域分割,形成两个分离的骨干区域,由于3类LSA水平分割的原因,所以造成路由不传递现象
Extended Community:
Ø RT:Router Traget值
Ø Domain-ID:域ID,映射OSPF进程ID,华为默认为Null
Ø OSPF RT:
a) 0.0.0.0:区域ID
b) 1:LSA类型
c) 0:如果LSA类型为5或7,使用此位表示外部开销类型
Ø OSPF Router ID:PE设备的Router ID
②Sham-Link:
企业网络在部署MPLS VPN时,为了保证冗余性,可能会在两个分部的边界路由器增加一条低速链路,如果低速链路和连接ISP的链路为同一区域:
Ø 低速链路传递的路由为1类和2类,开销值最大
Ø MPLS VPN传递的路由为3类或5类,开销值最小
此时根据OSPF的选路规则,会选择串行链路进行数据的传递,为了解决这种问题,使用Sham-Link进行解决。
Sham-Link原理:
Ø 创建/32的环回接口
Ø 在BGP实例中宣告该环回接口
Ø 在OSPF实例中建立Sham-Link连接
Ø Sham-Link通过BGP路由走LSP通告形成连接
Ø 两端的PE-CE的OSPF区域必须一致,两个PE形成邻居关系,两个区域变为一个区域,路由信息由3类LSA变为1类和2类LSA
注:一定要注意不能将Loo口放入OSPF实例中,负责由于OSPF的优先级优于BGP,此时建立Sham-Link链路时会选择后门低速链路建立,Sham-Link达到Full的条件为使用BGP链路建立,所以此时状态会卡在down状态
配置:
PE
[Huawei]inter loo 1
[Huawei-GigabitEthernet0/0/0]ip binding vpn-instance Huawei
[Huawei-LoopBack1]ip add 22.2.2.2 32---创建新的环回口用于Sham Link的建立
[Huawei]bgp 100
[Huawei-bgp]ipv4-family vpn-instance Huawei
[Huawei-bgp-huawei]network 22.2.2.2 32---将环回口放入BGP实例中
[Huawei]ospf 10 vpn-instance huawei
[Huawei-ospf-1]area 0
[Huawei-ospf-10-area-0.0.0.0]sham-link 22.2.2.2 55.5.5.5—建立本端与对端的Sham-Link连接
8. MPLS VPN环路防护:
企业为了加强冗余性,通常企业会连接多个PE设备
这种部署方式会带来环路问题:
①对端企业路由引入产生的环路
②本端企业路由引入产生的环路
① 无法实现附载分担问题
① 对端企业路由引入产生的环路和抖动:
BGP路由同时被两端PE引入IGP协议中:
Ø 如果AR3和AR4在同一时刻将BGP路由引入到IGP路由中:
a) 两端的PE设备同时使用IGP协议将8.8.8.8/32的路由在企业网络中传递
b) 这两台PE设备同时也会受到对端PE发送过来的关于8.8.8.8/32的IGP路由,由于任何一种IGP协议的优先级都大于BGP协议优先级,所以收到对端关于8.8.8.8/32的IGP路由时,会将BGP路由关于8.8.8.8/32的路由重路由表中撤销,使用IGP8.8.8.8/32的路由条目
c) IGP从BGP协议中引入,所以BGP消失,IGP路由也消失,此时两端的PE设备又会同时发送撤销路由,再次使用BGP路由,又收到对端的IGP路由,再次使用,形成路由抖动问题
Ø 如果一端的引入快于另外一端:
a) AR4首先将8.8.8.8/32BGP路由引入的IGP路由中,AR3收到IGP路由后,优于BGP路由,选用此条IGP路由协议,并将这条IGP路由协议引入到BGP中在BGP中传递
b) 如果这条从AR4传递过来并在AR3上引入到BGP的8.8.8.8/32的路由条目的BGP属性高于产生着AR8传递给AR7的BGP属性,则AR6优选AR3的8.8.8.8/32的BGP路由
c) AR8将路由通告给AR4,形成环路
②本端企业路由引入产生的环路:
a) AR3和AR4会将本端企业路由传递给RR,RR从中根据BGP选路规则选择出一条最优路由,传递回AR3和AR4
b) AR3和AR4将这条路由条目重新回灌到企业内网,如果这条链路出现故障,因为收敛不及时,可能会出现环路
③无法实现附载分担行为:
a) AR8想要访问1.1.1.1,默认RR收到AR3和AR4两个PE相同的VPNv4路由,只会从中选择一条最优的传递给AR8
b) AR8访问时只存在一条路由,所以不会形成附载分担
c) 将AR3和AR4配置成不同的VPn-实例,或修改RD值,此时传递给RR,RR会认为这是两条不同的VPnv4路由,同时传递给AR7
d) AR7收到后,私网地址一致,但是目标地址为两个(两个PE地址),如果钱9条BGP属性相同并且开启负载分担,此时一条链路上使用两条LSP,目标地址分别为3.3.3.3/32和4.4.4.4/32
e) 在经过RR时,两条流量形成了附载分担
(1)OSPF防环:
Site内运行OSPF,对于OSPF协议的防环时自动完成。对于双PE双出口的链路,以下情况形成环路:
Ø MPLS VPN域中的PE通过OSPF接收到三类LSA通过另一端的PE在重新倒灌给企业,会形成3类LSA或5类LSA环路
Ø MPLS VPN域中的PE通过OSPF接收到三类LSA通过运行RIP的PE重新再次引入到另一端的PE,会形成五类LSA的环路
Ø 而针对本地始发的路由,只能通过路由策略来消除,比如使用Community值,在另一端PE上引入到ISIS时先Deny掉这些路由,防止他们重新回灌到Site中
①Type 3 LSA的Down-bit:
PE从另一端PE收到Type 3 LSA,会在Option字段里会置位Option中的Down-bit位,其他PE的VPN实例接收到Down-bit位的Type 3 LSA,仅将其保存在数据库中,不放入路由表中
②Type 5 LSA的Domain-Tag:
华为设备LSA5类中也存在DN bit,和LSA3一样,PE设备收到Down bit置位的5类LSA也不会放入路由表中
从PE的VPN实例通告出去的Type 5 LSA,会将其TAG字段填写为本VPN实例的Domain Tag,默认情况下Domain-Tag为该PE的AS号,如果PE的VPN实例接收到一条Type 5 LSA,并且其TAG值与本地BGP的AS号相等,则仅将其保存在数据库中,并不进行任何计算。
注:Domain ID一共32bit,前8bit固定值为0XD000,后16bit表示本端BGP AS号(16进制)
2)IS-IS防环:
Ø IS-IS中也是包含DN位,再将BGP路由引入到ISIS VPN实例中时,会将DN位置位,所以传递给另一端PE时,由于DN置位,另一端PE不会接受
Ø 而针对本地始发的路由,只能通过路由策略来消除,比如使用Community值,在另一端PE上引入到ISIS时先Deny掉这些路由,防止他们重新回灌到Site中
(3)BGP防环:
在网络部署中,一般PE使用的为公有AS ID配置BGP,企业Site之间使用的都是私有AS,如果多个Site之间的AS号相同,则此时需要依靠配置SOO(Site of Origin,扩展团体属性)进行防环。
AR1和AR2之间建立IBGP邻居
②AR3、AR4建立IBGP邻居,如果存在多Site,建议启用IBGP邻居关系,不然在配置时会将BGP路由引入到Site的IGP路由中,则会丧失BGP路由属性,AS-Path消失,导致环路问题
③AR3、AR4与AR1、AR2分别建立EBGP邻居
①Site AS不同:
Ø 则此时PE将VPNv4路由传递到对端CE,CE在AS-Path中本路由器的AS ID,传递到对端CE(IBGP),对端CE在传递给EBGP邻居PE,此时由于双PE之间的AS ID相同,所以AS-Path中包含了本路由器的AS ID,所以pe不会接受这份从Site中传递过来的这份BGP路由,所以通过AS-Path可以防止对端PE传递过来的路由通过双PE产生的环路问题
Ø 针对Site中始发的路由,双PE互相传递也可以直接通过AS-PATH解决,AR1、AR2将IGP路由引入到BGP中,并将其AS ID放入到AS PATH中(两者ID相同),传递给各自的EBGP邻居PE设备,两个PE通过IBGP邻居关系将其传递给对端PE,再将其传递给CE,但是在传递给CE之前压入本AS ID,但是CE收到不会接受这份路由,原因在于AS PATH中包含了本设备的AS ID(对端CE的AS ID和本端相同)
②Site AS相同:
当多个Site之间的AS相同时,在PE传递给对端CE路由时,由于AS-PATH中的ID和本端的AS ID相同,所以不会接受,导致两端Site之间无法学到对端Site的私网路由,针对此问题,在CE设备上使用命令忽略AS PATH的检查,这样CE就可以接受对端Site的路由,但是会出现环路问题,如果是本地始发的路由,通过PE设备重新传回另一端CE设备,由于不检查AS-PATH,所以此条路由又会重新回到Site中,出现环路
Ø 针对对端PE出现的环路问题,是可以通过常规的AS Path检测避免的,因为PE是检查AS Path的,CE在AS-Path中本路由器的AS ID,传递到对端CE(IBGP),对端CE在传递给EBGP邻居PE,此时由于双PE之间的AS ID相同,所以AS-Path中包含了本路由器的AS ID,所以pe不会接受这份从Site中传递过来的这份BGP路由
Ø 而针对Site本端始发的BGP路由,由于不开启检查,会重新回到Site内,此时可以在PE上配置SOO,对CE发送过来的BGP路由压入TAG值,两端PE设置的SOO相同,所以PE再将Site中的路由通过IBGP邻居传递给对端PE,对端PE不会接受,因为SOO相同。
[Huawei-bgp-huawei]peer 5.5.5.5 soo 100:1---在PE设备上,Peer CE时设置SOO
9. 多AS组网:
如果VPN骨干网跨越多个AS,则需要部署跨域VPN
①跨域Option A:PE上的VPN数量较少时采用,要求ASBR支持VPN实例。
② 跨域Option B:PE上的VPN数量相对较多且ASBR没有足够的接口为每个跨域VPN专用时采用,要求ASBR支持VPN-IPv4路由的维护和发布。
③ 跨域Option C:每个AS都有大量的VPN路由需要交换时采用,防止ASBR成为阻碍网络进一步扩展的瓶颈。
(1)Option A:
①在两个AS边界路由器之间使用“实例路由协议”进行连接,将一端AS看作另一端的客户端
②此时,AS边界路由器在传递路由和数据时使用的时纯IPv4报文给对端
③对端收到后放入实例路由表,引入到MP-BGP中传递给真正的企业机构
缺点:由于互联的线路只能存在一个VPN-Instance中,所以如果存在多个企业,需要多根链路进行连接,可以使用子接口解决
(2)Option B: