华为MPLS Virtual PN option C1(有/无RR)配置wireshark抓包分析
一、MPLS V3PN跨域OptionC1(无RR)
1.配置思路
1)IGP打通
2)在PE创建vpn实例,配置RT、RD绑定物理接口,双向重分布(为了CE-PE学习到路由)
3)建立PE-对端PE之间的BGP-VPNv4邻居关系
4)接着配置MPLS LDP(防止路由黑洞)
5)在ASBR-PE之间建立BGP-IPv4邻居,通告本端PE路由信息,接口开启MPLS(标签识别)
6)在ASBR-PE配置上对本端PE和对端ASBR-PE的路由图(为了打上标签),同时PE与ASBR-PE都开启标签分发功能
由于ASBR-PE无法识别发送过来的私网路由,因此需要BGP标签来
2.配置
PE:
<R1>dis cu
#
ip vpn-instance A
ipv4-family
route-distinguisher 1:1
vpn-target 7:9 export-extcommunity
vpn-target 7:9 import-extcommunity
#
ip vpn-instance B
ipv4-family
route-distinguisher 2:2
vpn-target 8:10 export-extcommunity
vpn-target 8:10 import-extcommunity
#
mpls lsr-id 1.1.1.1
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/0
ip binding vpn-instance A
ip address 2.2.17.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip binding vpn-instance B
ip address 2.2.18.1 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 1.1.12.1 255.255.255.0
ospf enable 1 area 0.0.0.0
mpls
mpls ldp
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
ospf enable 1 area 0.0.0.0
#
bgp 1
peer 3.3.3.3 as-number 1
peer 3.3.3.3 connect-interface LoopBack0
peer 6.6.6.6 as-number 2
peer 6.6.6.6 ebgp-max-hop 15 (因为与对端PE建立,所以跳数多点,否则默认为1)
peer 6.6.6.6 connect-interface LoopBack0
#
ipv4-family unicast
peer 3.3.3.3 enable
peer 3.3.3.3 label-route-capability(标签方法能力)
undo peer 6.6.6.6 enable (建立vpn对等体就把ipv4地址族关闭)
#
ipv4-family vpnv4
policy vpn-target
peer 6.6.6.6 enable
#
ipv4-family vpn-instance A
import-route ospf 2
#
ipv4-family vpn-instance B
import-route rip 1
#
ospf 1
area 0.0.0.0 //不开启的话ospf无法建立邻居
#
ospf 2 router-id 1.1.1.1 vpn-instance A
import-route bgp
area 0.0.0.0
network 2.2.17.0 0.0.0.255
#
rip 1 vpn-instance B
undo summary
version 2
network 2.0.0.0
import-route bgp
ASBR:
#
mpls lsr-id 3.3.3.3
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/0
ip address 1.1.23.3 255.255.255.0
ospf enable 1 area 0.0.0.0
mpls
mpls ldp
#
interface GigabitEthernet0/0/1
ip address 1.1.34.3 255.255.255.0
mpls(开启标签识别功能)
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
ospf enable 1 area 0.0.0.0
#
bgp 1
peer 1.1.1.1 as-number 1
peer 1.1.1.1 connect-interface LoopBack0
peer 1.1.34.4 as-number 2
#
ipv4-family unicast
network 1.1.1.1 255.255.255.255
peer 1.1.1.1 enable
peer 1.1.1.1 route-policy a2p export
peer 1.1.1.1 label-route-capability
peer 1.1.34.4 enable
peer 1.1.34.4 route-policy a2a export
peer 1.1.34.4 label-route-capability (路由图打标签的发出调用和标签分发能力开启)
#
ospf 1
area 0.0.0.0
#
route-policy a2a permit node 10
apply mpls-label
#
route-policy a2p permit node 10
if-match mpls-label
apply mpls-label (路由图的打标签)
#
route-policy a2p permit node 20 (可能有允许的路由通过)
配置疑问:
Q1: 为什么需要 apply mpls-label?
答:MPLS 网络依赖标签转发,BGP 路由默认不带标签,需显式分配。
Q2: if-match mpls-label 用在什么情况?
答:用于匹配已带标签的路由(如跨域场景),避免重复打标签。
Q3: node 20 不加条件会不会导致安全问题?
答:不会,它只是放行剩余路由,实际安全依赖前序节点的精确匹配(如 node 10)。
3.数据包转发分析
标签分发 详细过程
(CE1访问CE2)
①CE2通告IPv4路由给PE2,PE2收到之后转为VPNv4并且打上VPN标签发送给PE1,下一跳为PE2
②ASBR2将去往PE2的路由转发给ASBR1并且打上BGP标签,吓一跳为ASBR2
③ASBR1收到之后将去往PE2的路由转发给PE1,并替换BGP标签,吓一跳为ASBR1
④P2,ASBR2打上去往PE2的MPLS LDP
⑤P1,PE1打上去往ASBR1的MPLS LDP
标签转发图
(R7访问R9)
二、MPLS V3PN跨域OptionC1(有RR)
1.配置思路
1)基础配置(IGP、PE与CE创建VPN实例,绑定接口,双向重分布)
2)RR与对端RR建立BGP-VPNv4邻居关系,ASBR之间建立BGP-IPv4邻居关系,同时通告RR
3)ASBR需与RR建立BGP-IPv4邻居关系并且设置下一跳为自己,路由图(打标签)调用,标签分发能力和公网开启MPLS LDP
4)PE与RR建立BGP-VPNv4邻居关系,RR关闭对RT的识别,RR开启反射,PE、ASBR设置为客户端,同时ASBR需要通告PE路由
5)PE与RR设置下一跳为自己,开启标签分发能力
2.配置
里面为何需要保持下一跳不变是因为AS内传递是会保持下一跳不会,但是如果经过RR或者EBGP传递那么下一跳就会修改为自己。
②配置CE-PE的路由可达
1.创建vpn实例,绑定接口
2.启用IGP(双向重分布)/EBGP
[R6]bgp 2
[R6-bgp]ipv4-family vpn-instance A
[R6-bgp-A]peer 1.1.69.9 as-number 9
[R6-bgp]ipv4-family vpn-instance B
[R6-bgp-B]peer 1.1.106.10 as-number 10
重分布
[R1]ospf 2 vpn-instance A
[R1-ospf-2]import-route bgp
[R1-ospf-2]bgp 1
[R1-bgp]ipv4-family vpn-instance A
[R1-bgp-A]import-route ospf 2
③RR之间起EBGPvpnv4邻居关系,ASBR之间建立普通的EBGP关系,同时通告RR,路由图
(由于RR路由不可达则需ASBR传递)
1.配置RR邻居关系
[R11]bgp 1
[R11-bgp]undo default ipv4-unicast
[R11-bgp]peer 12.12.12.12 as-number 2
[R11-bgp]peer 12.12.12.12 connect-interface lo1
[R11-bgp]peer 12.12.12.12 ebgp-max-hop 15
[R11-bgp]ipv4-family vpnv4
[R11-bgp-af-vpnv4]peer 12.12.12.12 enable
(右边同理)
2.ASBR之间邻居关系,通告RR
[R3]bgp 1
[R3-bgp]peer 1.1.34.4 as-number 2
[R3-bgp]network 11.11.11.11 32
(右边同理)
3.开启mpls标识,创建路由图
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]mpls
路由图
[R3]route-policy a2a permit node 10
[R3-route-policy]apply mpls-label
[R3]route-policy a2p permit node 10
[R3-route-policy]if-match mpls-label
[R3-route-policy]apply mpls-label
[R3]route-policy a2p permit node 20
(右边同理)
④ASBR和RR建立普通EBGP,路由图调用,同时开启标签分发协议,开启MPLS LDP(防止路由黑洞)
1.ASBR和RR建立邻居,路由图调用,同时开启标签分发
[R3]bgp 1
[R3-bgp]peer 11.11.11.11 as-number 1
[R3-bgp]peer 11.11.11.11 connect-interface lo1
[R3-bgp]peer 11.11.11.11 label-route-capability
[R11]bgp 1
[R11-bgp]peer 3.3.3.3 as-number 1
[R11-bgp]peer 3.3.3.3 connect-interface lo1
[R11-bgp]ipv4-family unicast
[R11-bgp-af-ipv4]peer 3.3.3.3 enable
[R11-bgp]peer 3.3.3.3 label-route-capability
(右边同理)
路由图调用
[R3-bgp]peer 1.1.34.4 route-policy a2a export
[R3-bgp]peer 11.11.11.11 route-policy a2p export
(右边同理)
2.开启MPLS LDP
[R11]mpls lsr-id 11.11.11.11
[R11]mpls
[R11]mpls ldp
[R11-mpls-ldp]int g0/0/0
[R11-GigabitEthernet0/0/0]mpls
[R11-GigabitEthernet0/0/0]mpls ldp
3.PE需要将邻居的下一跳保持不变
(否则传递给对端RR时下一跳为对端RR导致对端PE以为到达对端RR即可)
ipv4-family vpnv4
peer 12.12.12.12 next-hop-invariable
有学习到但邻居未建立起来是因为吓一跳不可达
但我在R3、R4上开启了标签分发之后就可以了
[R3]bgp 1
[R3-bgp]peer 1.1.34.4 label-route-capability
[R4]bgp 2
[R4-bgp]peer 1.1.34.3 label-route-capability
⑤PE与RR之间建立BGPvpnv4
1.PE-RR建立vpnv4
[R1]bgp 1
[R1-bgp]peer 11.11.11.11 as-number 1
[R1-bgp]peer 11.11.11.11 connect-interface lo1
[R1-bgp]ipv4-family vpnv4
[R1-bgp-af-vpnv4]peer 11.11.11.11 enable
[R11]bgp 1
[R11-bgp]peer 1.1.1.1 as-number 1
[R11-bgp]peer 1.1.1.1 connect-interface lo1
[R11-bgp]ipv4-family vpnv4
[R11-bgp-af-vpnv4]peer 1.1.1.1 enable
(右边同理)
2.RR关闭对RT的识别(为了接收私网路由)
[R11-bgp]ipv4-family vpnv4
[R11-bgp-af-vpnv4]undo policy vpn-target
3.开启路由反射
(此目的是为了将对端的路由信息反射给本端PE)(ASBR需要通告PE的路由)-----此时产生了次优路径(经过RR)
[R11-bgp]peer 3.3.3.3 reflect-client
[R11-bgp]ipv4-family vpnv4
[R11-bgp-af-vpnv4]peer 1.1.1.1 reflect-client
[R3]bgp 1
[R3-bgp]network 1.1.1.1 32
右边同理
经过RR设备(并没有设置下一跳保持不变)
⑥将RR与PE建立邻居时候下一跳保持不变
[R11-bgp]ipv4-family vpnv4
[R11-bgp-af-vpnv4]peer 1.1.1.1 next-hop-invariable
(右边同理)
⑦建立BGP邻居关系(任何)都需要开启标签分发能力
[R11-bgp]peer 1.1.1.1 enable
[R11-bgp]peer 1.1.1.1 label-route-capability
[R1-bgp]peer 11.11.11.11 label-route-capability
-
默认行为:BGP 路由器在向 eBGP 邻居通告路由时,会自动修改下一跳为自己的出口地址(遵循 RFC 4271)。路由反射器(RR)默认会修改下一跳
3.数据包转发分析
见上面文章
OptionC1与C2的区别
MPLS VPN OptionC2与C1的差别在于怎么对待ASBR之间的关系
C1是在ASBR上引入BGP标签形式,而C2是直接将ASBR之间的EBGP路由直接引入到IBGP并且开启LSR
lsp-trigger bgp-label-route
:
指定 仅对带有 BGP 标签的路由触发 LSP(标签交换路径)的建立,而不是对所有 IGP 路由都建立 LSP。