目录
注:本次文章中忽略IP地址配置,请自行配置
一、配置公网隧道步骤一
1)配置公网IGP路由协议。
目标:使所有PE和P设备可以互相学到32位loopback址路由。
IGP路由协议可以选择OSPF、ISIS、甚至静态路由等等。
以OSPF为例:PE1、P和PE2设备之间建立OSPF邻居。
PE1:
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 100.0.0.0 0.0.0.3
P:
ospf 1 router-id 1.1.1.3
area 0.0.0.0
network 1.1.1.3 0.0.0.0
network 100.0.0.0 0.0.0.3
network 100.0.0.4 0.0.0.3
PE2:
ospf 1 router-id 1.1.1.2
area 0.0.0.0
network 1.1.1.2 0.0.0.0
network 100.0.0.4 0.0.0.3
注:
公网上的IGP路由协议,可以根据用户的实际需求进行选择,只要能达到以下这个目的,也就是公网上所有的设备可以学习到各个PE设备的Loopback 地址的明细路由。需要注意的是,为了建立PE和PE之间端到端的隧道,不能将PE的Loopback地址路由加以聚合。本文以OSPF为例,在公网设备间建立起OSPF 邻居,并发布PE设备的Loopback 地址的路由,相关配置步骤如上图所示。
2) 查看邻居建立状态
[PE1]display ospf peer
OSPF Process 1 with Router ID 1.1.1.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
1.1.1.3 100.0.0.2 1 35 Full/DR GE1/0/3
[P]display ospf peer
OSPF Process 1 with Router ID 1.1.1.3
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
1.1.1.1 100.0.0.1 1 33 Full/BDR GE1/0/1
1.1.1.2 100.0.0.6 1 34 Full/BDR GE1/0/2
[PE2]display ospf peer
OSPF Process 1 with Router ID 1.1.1.2
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
1.1.1.3 100.0.0.5 1 32 Full/DR GE1/0/1
注:如果使用的IBG未建立成功请先检查IGP协议(本次案例中以OSPF作为IGP协议)
二、配置公网隧道步骤二
1)配置使能MPLS及MPLS LDP。
目标:所有PE和P设备之间建立LDPsession,建立起到达对端PE的LSP隧道
需要在设备全局模式及公网接口上均使能MPLS及MPLS LDP
PE1设备:
mpls lsr-id 1.1.1.1 //全局设定mpls lsr-id
mpls ldp //全局使能mpls ldp功能
interface GigabitEthernet1/0/3 //进入接口视图
mpls enable //使能mpls功能
mpls ldp enable //使能mpls ldp功能
P设备:
mpls lsr-id 1.1.1.3
mpls ldp
interface GigabitEthernet1/0/1
mpls enable
mpls ldp enable
interface GigabitEthermet1/0/2
mpls enable
mpls ldp enable
PE2:
mpls lsr-id 1.1.1.2
mpls ldp
interface GigabitEthermet1/0/1
mpls enable
mpls ldp enable
注:
建立公网隧道的第二步就是要在公网设备及其公网接口上使能MPLS及MPLS LDP协议。所以配置分为两个部分,一是在P和PE的系统模式下全局使能MPLS LDP;二是在Р和PE设备的公网接口上使能MPLS及MPLS LDP。在系统模式下使能MPLS LDP之前,还需要为该公网设备配置MPLS的 LSRID,如上图所示,为了确保LSRID唯一,通常选用该公网设备的Loopback地址作为LSR ID。
2)查看LDP建立情况
[PE1]display mpls ldp peer
Total number of peers: 1
Peer LDP ID State Role GR MD5 KA Sent/Rcvd
1.1.1.3:0 Operational Passive Off Off 13/13
[P]display mpls ldp peer
Total number of peers: 2
Peer LDP ID State Role GR MD5 KA Sent/Rcvd
1.1.1.1:0 Operational Active Off Off 15/15
1.1.1.2:0 Operational Active Off Off 15/15
[PE2]display mpls ldp peer
Total number of peers: 1
Peer LDP ID State Role GR MD5 KA Sent/Rcvd
1.1.1.3:0 Operational Passive Off Off 17/17
注:如MPLS LDP邻居建立异常,请检查当前LDP配置是否正确
三、配置本地VPN步骤一
1)配置VPN,按照用户互访需求配置VPN的RD和RT
此步配置需要仔细分析用户互访需求,设计各PE上每个VPN的RD和RT属性;
根据本案例的组网需求设计做如下配置:
PE1:
ip vpn-instance vpnl
route-distinguisher 100: 1 //配置vpn1的RD值为100:1
vpn-target 100: 1 export-extcommunity
vpn-target 100: 1 import-extcommunity
#
ip vpn-instance vpn2
route-distinguisher 100: 2 //配置vpn2的RD值为100:2
vpn-target 100: 2 export-extcommunity
vpn-target 100: 2 import-extcommunity
PE2:
ip vpn-instance vpnl
route-distinguisher 100: 1 //配置vpn1的RD值为100:1
vpn-target 100: 1 export-extcommunity
vpn-target 100: 1 import-extcommunity
#
ip vpn-instance vpn2
route-distinguisher 100: 2 //配置vpn2的RD值为100:2
vpn-target 100: 2 export-extcommunity
vpn-target 100: 2 import-extcommunity
注:
按照本文给出的组网需要,在PE1和 PE2上都需要创建两个VPN,即 VPN1和VPN2。其中 PE1上的VPN1需要和PE2上的VPN1互通,于是可以设计PE1和 PE2上的VPN1的RT参数import target和 export target属性值均为100:1;同时PE1上的VPN2需要和PE2上的VPN2互通,于是可以设计PE1和PE2上的VPN2的RT参数import target和 export target属性值均为200:1。在这样的设计下,因为RT值的关系,PE1上的VPN1和 PE2上的VPN1路由可以互相学习,可以互通;同时PE1上的VPN1和 PE2上的VPN2路由也可以交互,也可以互通;相反VPN1 和VPN2路由将不能互相学习,VPN1用户和VPN2用户不能互通,均满足用户的互访关系要求。
2)查看VPN建立情况
[PE1]display ip vpn-instance
Total VPN-Instances configured : 2
VPN-Instance Name RD Create time
vpn1 100:1 2022/10/13 16:40:38
vpn2 100:2 2022/10/13 16:40:38
[PE2]display ip vpn-instance
Total VPN-Instances configured : 2
VPN-Instance Name RD Create time
vpn1 100:1 2022/10/13 16:40:52
vpn2 100:2 2022/10/13 16:40:52
查看标签转发表
[PE1]display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A - unavailable
FECs: 3 Ingress: 2 Transit: 2 Egress: 1
FEC In/Out Label Nexthop OutInterface/LSINDEX
1.1.1.1/32 3/-
-/1151(L)
1.1.1.2/32 -/1150 100.0.0.2 GE1/0/3
1150/1150 100.0.0.2 GE1/0/3
1.1.1.3/32 -/3 100.0.0.2 GE1/0/3
1151/3 100.0.0.2 GE1/0/3
[PE2]display mpls ldp lsp
Status Flags: * - stale, L - liberal, B - backup, N/A - unavailable
FECs: 3 Ingress: 2 Transit: 2 Egress: 1
FEC In/Out Label Nexthop OutInterface/LSINDEX
1.1.1.1/32 -/1151 100.0.0.5 GE1/0/1
1151/1151 100.0.0.5 GE1/0/1
1.1.1.2/32 3/-
-/1150(L)
1.1.1.3/32 -/3 100.0.0.5 GE1/0/1
1150/3 100.0.0.5 GE1/0/1
注:如果检查PE间不存在LSP,那么请先检查相关配置
四、配置本地VPN步骤二
1)配置私网接口与VPN的绑定:
将与对应用户相连的接口与对应的VPN进行绑定;
对端CE设备无需感知VPN的存在,仅需做普通的接口地址等配置。
PE1:
interface GigabitEthemet1/0/1
ip binding vpn-instance vpnl
ip address 192.168.1.1 255.255.255.252
#
interface GigabitEthemet1/0/2
ip binding vpn-instance vpn2
ip address 172.32.1.1 255.255.255.252
PE2:
interface GigabitEthemet1/0/2
ip binding vpn-instance vpnl
ip address 192.168.2.1 255.255.255.252
#
interface GigabitEthemet1/0/3
ip binding vpn-instance vpn2
ip address 172.32.2.1 255.255.255.252
注:配置本地VPN的第二步就是要将PE的私网接口与对应VPN PE1的eth0/1接口与VPN1的用户相连,则需要将该接口与VPN1进行绑定。如上图所示.绑定的方法就是在该接口下配置绑定VPN的命令。需要提醒的是,在配置将接口与VPN绑定时,接口下原有的IP地址等配置将会丢失,需要重新进行配置,正确的配置步骤应该是先进行接口与VPN的绑定,在完成接口的IP地址等配置。接口与VPN绑定的配置只需要在PE设备上进行,与PE相连的CE设备无法感知到VPN的存在,也无需做任何配置,只是一个普通的接口。
五、配置本地VPN步骤三
1)配置PE和CE之间的路由协议
目标:PE设备能学习到本端相连的用户路由,如PE1学习到用户1的路由,并能与用户1互通;
PE和相连的CE设备之间运行路由协议,其中PE设备上的路由协议需要与对应的VPN进行绑定,也就是运行路由协议多实例;
路由协议可以选择OSPF ISIS、EBGP、RIP、静态等;
本例中以OSPF为例,且以PE1和CE1及CE2、PE2和CE3及CE4之间的配置为例:
PE1:
PE1:
ospf 11 vpn-instance vpn1
area 0.0.0.0
network 192.168.1.0 0.0.0.3
#
ospf 12 vpn-instance vpn2
area 0.0.0.0
network 172.32.1.0 0.0.0.3
CE1:
ospf 11
area 0.0.0.0
network 192.168.1.0 0.0.0.3
network 192.168.254.1 0.0.0.0
CE2:
ospf 12
area 0.0.0.0
network 172.32.1.0 0.0.0.3
network 172.32.254.1 0.0.0.0
PE2:
PE2:
ospf 11 vpn-instance vpn1
area 0.0.0.0
network 192.168.2.0 0.0.0.3
#
ospf 12 vpn-instance vpn2
area 0.0.0.0
network 172.32.2.0 0.0.0.3
CE3:
ospf 11
area 0.0.0.0
network 192.168.2.0 0.0.0.3
network 192.168.255.1 0.0.0.0
CE4:
ospf 12
area 0.0.0.0
network 172.32.2.0 0.0.0.3
network 172.32.255.1 0.0.0.0
查看邻居建立状态
[PE1]display ospf 11 peer
OSPF Process 11 with Router ID 192.168.1.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
192.168.254.1 192.168.1.2 1 30 Full/DR GE1/0/1
[PE1]display ospf 12 peer
OSPF Process 12 with Router ID 172.32.1.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
172.32.254.1 172.32.1.2 1 32 Full/DR GE1/0/2
[PE2]display ospf 11 peer
OSPF Process 11 with Router ID 192.168.2.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
192.168.255.1 192.168.2.2 1 38 Full/DR GE1/0/2
[PE2]display ospf 12 peer
OSPF Process 12 with Router ID 172.32.2.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
172.32.255.1 172.32.2.2 1 35 Full/DR GE1/0/3
注:
配置本地VPN的最后一个步骤,就是要在PE和 CE之间运行某种路由协议,使得PE和CE之间可以交互路由信息,完成PE和本地VPN用户的路由交互。如以本文的案例,PE1需要能够与其本地相连的用户1可以互通。在PE和CE之间运行路由协议时,PE侧相对特殊,其运行的路由协议需要与对应的VPN进行绑定,也就是要运行路由协议的多实例。如在PE1上,当他需要与CE1交互路由时,需要运行某种路由协议的一个实例,该实例需要与VPN1进行绑定,这样从CE1学习到的路由才会记录到VPN1的路由表。而在CE1上感知不到VPN的存在,只要运行普通的路由协议即可。
六、配置MP-BGP 步骤一
- 配置PE之间MP-BGP邻居
PE之间建立起MP-BGP传递BGP MPLS VPN的私网路由,也就是VPNv4路由
建立MP-BGP邻居的方法是,进入BGP VPNV4族,使能对应的BGP邻居
PE1:
bgp 100
peer 1.1.1.2 as-number 100
peer 1.1.1.2 connect-interface LoopBack0
#
address-family vpnv4
peer 1.1.1.2 enable
PE2:
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
#
address-family vpnv4
peer 1.1.1.1 enable
配置完成后查看MP-BGP邻居建立情况
[PE1]display bgp peer vpnv4
BGP local router ID: 1.1.1.1
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
* - Dynamically created peer
^ - Peer created through link-local address
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
1.1.1.2 100 82 79 0 2 01:09:35 Established
[PE2]display bgp peer vpnv4
BGP local router ID: 1.1.1.2
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
* - Dynamically created peer
^ - Peer created through link-local address
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
1.1.1.1 100 80 83 0 2 01:10:14 Established
注:
PE之间需要使能BGP协议传递VPNv4路由的能力,也就是配置PE之间的MP-BGP邻居关系,这是配置 MP-BGP的关键步骤。建立MP-BGP 邻居关系的方法是在BGP视图下进入VPNv4地址族,并使能该邻居。具体配置步骤如上所示
七、配置MP-BGP步骤二
1)配置本地VPN路由与MP-BGP之间的路由引入引出
本地的私网路由需要引入BGP,才能通过BGP传给远端CE;通过BGP学习到的远端私网路由需要引入本地PE与CE之间的路由协议,才能传递给本地的CE。
[PE1]bgp 100
[PE1-bgp-default]ip vpn-instance vpn1
[PE1-bgp-default-vpn1]address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1]import-route ospf 11
#
[PE1]bgp 100
[PE1-bgp-default]ip vpn-instance vpn2
[PE1-bgp-default-vpn1]address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1]import-route ospf 12
[PE1]ospf 11 vpn-instance vpn1
[PE1-ospf-11]import-route bgp
#
[PE1]ospf 12 vpn-instance vpn2
[PE1-ospf-11]import-route bgp
[PE2]bgp 100
[PE2-bgp-default]ip vpn-instance vpn1
[PE2-bgp-default-vpn1]address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1]import-route ospf 11
#
[PE2]bgp 100
[PE2-bgp-default]ip vpn-instance vpn2
[PE2-bgp-default-vpn1]address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1]import-route ospf 12
[PE2]ospf 11 vpn-instance vpn1
[PE2-ospf-11]import-route bgp
#
[PE2]ospf 12 vpn-instance vpn2
[PE2-ospf-11]import-route bgp
注:
配置MP-BGP的最后一步尤为关键,也常常是配置BGP MPLS VPN时最容易被遗漏的,那就是配置本地VPN私网路由和 MP-BGP路由的互相引入。
八、配置验证
1)查看CE1中是否学习到CE3的私网路由
[CE1]display ip routing-table
Destinations : 17 Routes : 17
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.1.0/30 Direct 0 0 192.168.1.2 GE1/0/1
192.168.1.0/32 Direct 0 0 192.168.1.2 GE1/0/1
192.168.1.2/32 Direct 0 0 127.0.0.1 InLoop0
192.168.1.3/32 Direct 0 0 192.168.1.2 GE1/0/1
192.168.254.0/24 Direct 0 0 192.168.254.1 Vlan1
192.168.254.0/32 Direct 0 0 192.168.254.1 Vlan1
192.168.254.1/32 Direct 0 0 127.0.0.1 InLoop0
192.168.254.255/32 Direct 0 0 192.168.254.1 Vlan1
192.168.255.0/24 O_INTER 10 4 192.168.1.1 GE1/0/1
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
可以看到去往192.168.255.0/24的路由是从ospf学习到的外部路由,接着测试网络连通效果
[PC8]ping 192.168.255.1
Ping 192.168.255.1 (192.168.255.1): 56 data bytes, press CTRL_C to break
56 bytes from 192.168.255.1: icmp_seq=0 ttl=252 time=4.000 ms
56 bytes from 192.168.255.1: icmp_seq=1 ttl=252 time=3.000 ms
56 bytes from 192.168.255.1: icmp_seq=2 ttl=252 time=3.000 ms
56 bytes from 192.168.255.1: icmp_seq=3 ttl=252 time=4.000 ms
56 bytes from 192.168.255.1: icmp_seq=4 ttl=252 time=3.000 ms
--- Ping statistics for 192.168.255.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 3.000/3.400/4.000/0.490 ms
[H3C]%Oct 13 18:19:06:994 2022 H3C PING/6/PING_STATISTICS: Ping statistics for 192.168.255.1: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 3.000/3.400/4.000/0.490 ms.
2)查看CE2中是否学习到CE4的私网路由
[CE2]dis ip routing-table
Destinations : 17 Routes : 17
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
172.32.1.0/30 Direct 0 0 172.32.1.2 GE1/0/1
172.32.1.0/32 Direct 0 0 172.32.1.2 GE1/0/1
172.32.1.2/32 Direct 0 0 127.0.0.1 InLoop0
172.32.1.3/32 Direct 0 0 172.32.1.2 GE1/0/1
172.32.254.0/24 Direct 0 0 172.32.254.1 Vlan1
172.32.254.0/32 Direct 0 0 172.32.254.1 Vlan1
172.32.254.1/32 Direct 0 0 127.0.0.1 InLoop0
172.32.254.255/32 Direct 0 0 172.32.254.1 Vlan1
172.32.255.0/24 O_INTER 10 4 172.32.1.1 GE1/0/1
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
可以看到172.32.255.0/24的路由是从ospf学习到的外部路由,接着测试网络连通效果
[PC9]ping 172.32.255.1
Ping 172.32.255.1 (172.32.255.1): 56 data bytes, press CTRL_C to break
56 bytes from 172.32.255.1: icmp_seq=0 ttl=252 time=5.000 ms
56 bytes from 172.32.255.1: icmp_seq=1 ttl=252 time=6.000 ms
56 bytes from 172.32.255.1: icmp_seq=2 ttl=252 time=4.000 ms
56 bytes from 172.32.255.1: icmp_seq=3 ttl=252 time=5.000 ms
56 bytes from 172.32.255.1: icmp_seq=4 ttl=252 time=5.000 ms
--- Ping statistics for 172.32.255.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 4.000/5.000/6.000/0.632 ms
[H3C]%Oct 13 18:22:40:229 2022 H3C PING/6/PING_STATISTICS: Ping statistics for 172.32.255.1: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 4.000/5.000/6.000/0.632 ms.
本次实验就到此为止,如果有不懂的地方建议自己翻阅相关资料多加学习