配置OSPF伪连接
应用环境
通常情况下,MPLS VPN骨干网通过BGP扩展团体属性在PE间传递site的路由信息。经过骨干网的OSPF路由将作为区域间路由(Inter-Area Route),其优先级低于经过后门(backdoor)链路的区域内路由(Intra-Area Route),不被OSPF优选。
上述情况导致VPN流量总是通过后门路由转发,而不走骨干网。为了避免这一问题,可以在PE路由器之间建立OSPF伪连接(Sham link),使经过MPLS VPN骨干网的路由也成为OSPF区域内路由。
Sham link被看成区域内的一条点到点链路,包含在Type1 LSA中发布。用户可以通过调整度量值在Sham link和backdoor之间进行选路。
配置思路
PE之间要建立MP-IBGP对等体关系,PE与CE运行OSPF协议来建立连接。
PE上创建VPN实例,并绑定与CE相连的接口。
PE上创建Loopback接口,配置32位掩码的地址,用于作为Sham link的端点地址。Sham link的端点地址被BGP作为VPN-IPv4地址发布。
在PE上创建OSPF伪连接。
调整用户网络转发接口的cost值,使它比Sham link的cost值大。
配置注意事项
为了使VPN流量通过MPLS骨干网转发,在配置Sham link时,应保证Sham link的cost值小于通过用户网络转发时OSPF路由的cost值。
同一个OSPF进程的多条Sham link可以共用端点地址,但不同OSPF进程不能拥有两条端点地址完全相同的Sham link。
如果路由经过了Sham link,它就不能再以VPN-IPv4路由的形式被引入到BGP中。
配置实例
组网需求
如下图,CE1和CE2在同一个OSPF区域中,都属于VPN1,分别接入PE1和PE2。假设所有链路的cost值都是1。
要求CE与PE之间运行OSPF,CE1与CE2之间的VPN流量通过MPLS骨干网转发,不使用OSPF的区域内路由。
OSPF伪连接组网示意图
适用产品和版本
采用NE系列路由器,版本为(VRP5.30)及后续版本。
说明
P路由器推荐采用NE5000E、NE80E、NE40E。
PE路由器推荐采用NE80E、NE40E、NE80、NE40、NE20E、NE20、NE16E或NE08E。
CE设备和RT0推荐采用NE80、NE40、NE20E、NE20、NE16E、NE08E或NE05。
配置步骤
步骤 1 配置用户网络上的OSPF
在CE1、RT0、CE2上配置普通OSPF,发布各接口的网段地址。
# 配置CE1。
<Quidway> system-view
[Quidway] sysname CE1
[CE1] interface pos2/0/0
[CE1-Pos2/0/0] ip address 20.1.1.1 24
[CE1-Pos2/0/0] quit
[CE1] interface gigabitethernet1/0/0
[CE1-GigabitEthernet1/0/0] ip address 100.1.1.1 24
[CE1-GigabitEthernet1/0/0] quit
[CE1] ospf
[CE1-ospf-1] area 0
[CE1-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[CE1-ospf-1-area-0.0.0.0] network 100.1.1.0 0.0.0.255
[CE1-ospf-1-area-0.0.0.0] quit
[CE1-ospf-1] quit
# 配置RT0。
<Quidway> system-view
[Quidway] sysname RT0
[RT0] interface pos1/0/0
[RT0-Pos1/0/0] ip address 20.1.1.2 24
[RT0-Pos1/0/0] quit
[RT0] interface pos2/0/0
[RT0-Pos2/0/0] ip address 30.1.1.1 24
[RT0-Pos2/0/0] quit
[RT0] ospf
[RT0-ospf-1] area 0
[RT0-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[RT0-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[RT0-ospf-1-area-0.0.0.0] quit
[RT0-ospf-1] quit
# 配置CE2。
<Quidway> system-view
[Quidway] sysname CE2
[CE2] interface pos2/0/0
[CE2-Pos2/0/0] ip address 30.1.1.2 24
[CE2-Pos2/0/0] quit
[CE2] interface gigabitethernet1/0/0
[CE2-GigabitEthernet1/0/0] ip address 120.1.1.1 24
[CE2-GigabitEthernet1/0/0] quit
[CE2] ospf
[CE2-ospf-1] area 0
[CE2-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[CE2-ospf-1-area-0.0.0.0] network 120.1.1.0 0.0.0.255
[CE2-ospf-1-area-0.0.0.0] quit
[CE2-ospf-1] quit
步骤 2 配置骨干网的基本BGP/MPLS IP VPN,包括:配置骨干网的IGP;配置骨干网的MPLS和LDP;在PE之间建立MP-IBGP对等体关系
# 配置PE1。
<Quidway> system-view
[Quidway] sysname PE1
[PE1] interface loopback 1
[PE1-LoopBack1] ip address 1.1.1.9 32
[PE1-LoopBack1] quit
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] lsp-trigger all
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface pos 2/0/0
[PE1-Pos2/0/0] ip address 10.1.1.1 24
[PE1-Pos2/0/0] mpls
[PE1-Pos2/0/0] mpls ldp
[PE1-Pos2/0/0] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
[PE1] bgp 100
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 1
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
# 配置P。
<Quidway> system-view
[Quidway] sysname P
[P] interface loopback 1
[P-LoopBack1] ip address 2.2.2.9 32
[P-LoopBack1] quit
[P] mpls lsr-id 2.2.2.9
[P] mpls
[P-mpls] lsp-trigger all
[P-mpls] quit
[P] mpls ldp
[P-mpls-ldp] quit
[P] interface pos 1/0/0
[P-Pos1/0/0] ip address 10.1.1.2 24
[P-Pos1/0/0] mpls
[P-Pos1/0/0] mpls ldp
[P-Pos1/0/0] quit
[P] interface pos 2/0/0
[P-Pos2/0/0] ip address 40.1.1.1 24
[P-Pos2/0/0] mpls
[P-Pos2/0/0] mpls ldp
[P-Pos2/0/0] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 40.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE2。
<Quidway> system-view
[Quidway] sysname PE2
[PE2] interface loopback 1
[PE2-LoopBack1] ip address 3.3.3.9 32
[PE2-LoopBack1] quit
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls
[PE2-mpls] lsp-trigger all
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface pos 2/0/0
[PE2-Pos2/0/0] ip address 40.1.1.2 24
[PE2-Pos2/0/0] mpls
[PE2-Pos2/0/0] mpls ldp
[PE2-Pos2/0/0] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 40.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 1
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-af-vpnv4] quit
[PE2-bgp] quit
配置完成后,PE1和PE2应学到对方的Loopback接口路由,并建立MP-IBGP对等体关系。
步骤 3 配置PE与CE的连接:PE与CE间运行OSPF
# 配置PE1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/0
[PE1-GigabitEthernet1/0/0] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/0] ip address 100.1.1.2 24
[PE1-GigabitEthernet1/0/0] quit
[PE1] ospf 100 vpn-instance vpn1
[PE1-ospf-100] domain-id 10
[PE1-ospf-100] import-route bgp
[PE1-ospf-100] area 0
[PE1-ospf-100-area-0.0.0.0] network 100.1.1.0 0.0.0.255
[PE1-ospf-100-area-0.0.0.0] quit
[PE1-ospf-100] quit
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] import-route direct
[PE1-bgp-vpn1] import-route ospf 100
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置PE2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:2
[PE2-vpn-instance-vpn1] vpn-target 1:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface gigabitethernet 1/0/0
[PE2-GigabitEthernet1/0/0] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/0] ip address 120.1.1.2 24
[PE2-GigabitEthernet1/0/0] quit
[PE2] ospf 100 vpn-instance vpn1
[PE2-ospf-100] import-route bgp
[PE2-ospf-100] domain-id 10
[PE2-ospf-100] area 0
[PE2-ospf-100-area-0.0.0.0] network 120.1.1.0 0.0.0.255
[PE2-ospf-100-area-0.0.0.0] quit
[PE2-ospf-100] quit
[PE2] bgp 100
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] import-route direct
[PE2-bgp-vpn1] import-route ospf 100
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
完成上述配置后,在PE路由器上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由是通过用户网络的OSPF路由,不是通过骨干网的BGP路由。
以PE1的显示为例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
20.1.1.0/24 OSPF 10 2 100.1.1.1 GigabitEthernet1/0/0
30.1.1.0/24 OSPF 10 3 100.1.1.1 GigabitEthernet1/0/0
100.1.1.0/24 Direct 0 0 100.1.1.2 GigabitEthernet1/0/0
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoopBack0
120.1.1.0/24 OSPF 10 4 100.1.1.1 GigabitEthernet1/0/0
步骤 4 配置Sham link
说明
为了使VPN流量通过MPLS骨干网转发,在配置Sham link时,应保证Sham link的cost值小于通过用户网络转发时OSPF路由的cost值。因此,常常需要调整用户网络转发接口的cost值,使它比Sham link 的cost 值大。
# 配置CE1。
[CE1] interface pos 2/0/0
[CE1-Pos2/0/0] ospf cost 10
# 配置CE2。
[CE2] interface pos 2/0/0
[CE2-Pos2/0/0] ospf cost 10
# 配置PE1。
[PE1] interface loopback 10
[PE1-LoopBack10] ip binding vpn-instance vpn1
[PE1-LoopBack10] ip address 5.5.5.5 32
[PE1-LoopBack10] quit
[PE1] ospf 100
[PE1-ospf-100] area 0
[PE1-ospf-100-area-0.0.0.0] sham-link 5.5.5.5 6.6.6.6 cost 1
[PE1-ospf-100-area-0.0.0.0] quit
[PE1-ospf-100] quit
# 配置PE2。
[PE2] interface loopback 10
[PE2-LoopBack10] ip binding vpn-instance vpn1
[PE2-LoopBack10] ip address 6.6.6.6 32
[PE2-LoopBack10] quit
[PE2] ospf 100
[PE2-ospf-100] area 0
[PE2-ospf-100-area-0.0.0.0] sham-link 6.6.6.6 5.5.5.5 cost 1
[PE2-ospf-100-area-0.0.0.0] quit
[PE2-ospf-100] quit
验证结果
完成上述配置后,在PE路由器上再次执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由变成了通过骨干网的BGP路由,并且有去往sham-link目的地址的路由。
以PE1的显示为例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
5.5.5.5/32 Direct 0 0 127.0.0.1 InLoopBack0
6.6.6.6/32 BGP 255 0 3.3.3.9 Pos2/0/0
20.1.1.0/24 OSPF 10 11 100.1.1.1 GigabitEthernet1/0/0
30.1.1.0/24 OSPF 100 12 3.3.3.9 Pos2/0/0
100.1.1.0/24 Direct 0 0 100.1.1.2 GigabitEthernet1/0/0
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoopBack0
120.1.1.0/24 BGP 255 0 3.3.3.9 Pos2/0/0
120.1.1.1/32 BGP 255 0 3.3.3.9 Pos2/0/0
在CE路由器上执行display ip routing-table命令,可以看到去往对端CE的OSPF路由开销变为3,下一跳为接入PE的GigabitEthernet接口,即,去往对端的VPN流量将通过骨干网转发。
以CE1的显示为例:
[CE1] display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
5.5.5.5/32 O_ASE 150 1 100.1.1.2 GigabitEthernet1/0/0
6.6.6.6/32 O_ASE 150 1 100.1.1.2 GigabitEthernet1/0/0
20.1.1.0/24 Direct 0 0 20.1.1.1 Pos2/0/0
20.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
20.1.1.2/32 Direct 0 0 20.1.1.2 Pos2/0/0
30.1.1.0/24 OSPF 10 11 100.1.1.2 GigabitEthernet1/0/0
100.1.1.0/24 Direct 0 0 100.1.1.1 GigabitEthernet1/0/0
100.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
120.1.1.0/24 OSPF 10 3 20.1.1.2 Pos2/0/0
120.1.1.1/32 O_ASE 150 1 100.1.1.2 GigabitEthernet1/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
说明
CE1到CE2的OSPF路由开销 = CE1到PE1的开销 + sham link开销 + PE2到CE2的开销= 1 + 1 + 1 =3。
用命令tracert 也可发现CE1发送数据到对端CE2,其下一跳为接入PE1的GigabitEthernet接口,即,去往对端的VPN流量将通过骨干网转发。
[CE1] tracert 120.1.1.1
traceroute to 120.1.1.1(120.1.1.1) 30 hops max,40 bytes packet
1 100.1.1.2 47 ms 31 ms 31 ms
2 120.1.1.2 94 ms 94 ms 94 ms
3 120.1.1.1 125 ms 156 ms 125 ms
[CE1] tracert 30.1.1.2
traceroute to 30.1.1.2(30.1.1.2) 30 hops max,40 bytes packet
1 20.1.1.2 80 ms 60 ms 60 ms
2 30.1.1.2 100 ms 90 ms 130 ms
在PE上执行display ospf sham-link命令可以看到sham-link的建立情况。
以PE1的显示为例:
[PE1] display ospf sham-link
OSPF Process 1 with Router ID 1.1.1.9
Sham Link:
Area NeighborId Source-IP Destination-IP State Cost
OSPF Process 100 with Router ID 100.1.1.2
Sham Link:
Area NeighborId Source-IP Destination-IP State Cost
0.0.0.0 120.1.1.2 5.5.5.5 6.6.6.6 P-2-P 1
执行display ospf sham-link area命令可以看到对端状态为Full:
[PE1] display ospf sham-link area 0
OSPF Process 1 with Router ID 1.1.1.9
OSPF Process 100 with Router ID 100.1.1.2
Sham-Link: 5.5.5.5 --> 6.6.6.6
NeighborID: 100.1.1.2, State: Full
Area: 0.0.0.0
Cost: 10 State: P-2-P, Type: Sham
Timers: Hello 10 , Dead 40 , Retransmit 5 , Transmit Delay 1
在CE路由器上执行display ospf routing命令,可以看到对端CE的路由是作为区域内(Intra Area)路由学到的。
[CE1] display ospf routing
OSPF Process 1 with Router ID 100.1.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
120.1.1.0/24 3 Transit 100.1.1.2 30.1.1.2 0.0.0.0
20.1.1.0/24 10 Stub 20.1.1.1 100.1.1.1 0.0.0.0
30.1.1.0/24 11 Stub 100.1.1.2 30.1.1.2 0.0.0.0
100.1.1.0/24 1 Transit 100.1.1.1 100.1.1.1 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
120.1.1.1/32 1 Type2 3489661028 100.1.1.2 5.5.5.5
6.6.6.6/32 1 Type2 3489661028 100.1.1.2 5.5.5.5
5.5.5.5/32 1 Type2 3489661028 100.1.1.2 6.6.6.6
100.1.1.1/32 1 Type2 3489661028 100.1.1.2 6.6.6.6
Total Nets: 8
Intra Area: 4 Inter Area: 0 ASE: 4 NSSA: 0
配置文件
PE1的配置文件
#
sysname PE1
#
ip vpn-instance vpn1
route-distinguisher 100:1
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
#
mpls lsr-id 1.1.1.9
mpls
lsp-trigger all
#
mpls ldp
#
interface GigabitEthernet1/0/0
ip binding vpn-instance vpn1
ip address 100.1.1.2 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 10.1.1.1 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 1.1.1.9 255.255.255.255
#
interface LoopBack10
ip binding vpn-instance vpn1
ip address 5.5.5.5 255.255.255.255
#
bgp 100
peer 3.3.3.9 as-number 100
peer 3.3.3.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization
peer 3.3.3.9 enable
#
ipv4-family vpnv4
policy vpn-target
peer 3.3.3.9 enable
#
ipv4-family vpn-instance vpn1
import-route direct
import-route ospf 100
#
ospf 1
area 0.0.0.0
network 1.1.1.9 0.0.0.0
network 10.1.1.0 0.0.0.255
#
ospf 100 vpn-instance vpn1
import-route bgp
domain-id 0.0.0.10
area 0.0.0.0
network 100.1.1.0 0.0.0.255
sham-link 5.5.5.5 6.6.6.6 cost 1
#
return
P的配置文件
#
sysname P
#
mpls lsr-id 2.2.2.9
mpls
lsp-trigger all
#
mpls ldp
#
interface Pos1/0/0
link-protocol ppp
ip address 10.1.1.2 255.255.255.0
mpls
mpls ldp
#
interface Pos2/0/0
link-protocol ppp
ip address 40.1.1.1 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 2.2.2.9 255.255.255.255
#
ospf 1
area 0.0.0.0
network 2.2.2.9 0.0.0.0
network 10.1.1.0 0.0.0.255
network 40.1.1.0 0.0.0.255
#
return
PE2的配置文件
#
sysname PE2
#
ip vpn-instance vpn1
route-distinguisher 100:2
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
#
mpls lsr-id 3.3.3.9
mpls
lsp-trigger all
#
mpls ldp
#
interface GigabitEthernet1/0/0
ip binding vpn-instance vpn1
ip address 120.1.1.2 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 40.1.1.2 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 3.3.3.9 255.255.255.255
#
interface LoopBack10
ip binding vpn-instance vpn1
ip address 6.6.6.6 255.255.255.255
#
bgp 100
peer 1.1.1.9 as-number 100
peer 1.1.1.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization
peer 1.1.1.9 enable
#
ipv4-family vpnv4
policy vpn-target
peer 1.1.1.9 enable
#
ipv4-family vpn-instance vpn1
import-route direct
import-route ospf 100
#
ospf 1
area 0.0.0.0
network 3.3.3.9 0.0.0.0
network 40.1.1.0 0.0.0.255
#
ospf 100 vpn-instance vpn1
import-route bgp
domain-id 0.0.0.10
area 0.0.0.0
network 120.1.1.0 0.0.0.255
sham-link 6.6.6.6 5.5.5.5 cost 1
#
return
CE1的配置文件
#
sysname CE1
#
interface GigabitEthernet1/0/0
ip address 100.1.1.1 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 20.1.1.1 255.255.255.0
ospf cost 10
#
ospf 1
area 0.0.0.0
network 100.1.1.0 0.0.0.255
network 20.1.1.0 0.0.0.255
#
return
CE2的配置文件
#
sysname CE2
#
interface GigabitEthernet1/0/0
ip address 120.1.1.1 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 30.1.1.2 255.255.255.0
ospf cost 10
#
ospf 1
area 0.0.0.0
network 30.1.1.0 0.0.0.255
network 120.1.1.0 0.0.0.255
#
return
RT0的配置文件
#
sysname RT0
#
interface Pos1/0/0
link-protocol ppp
ip address 20.1.1.2 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 30.1.1.1 255.255.255.0
#
ospf 1
area 0.0.0.0
network 20.1.1.0 0.0.0.255
network 30.1.1.0 0.0.0.255
#
return
|
|
||
|
|
||
|
|
7月26 |
H3CNE认证 |
热报中 |
8月16 |
H3C-IMC认证 |
热报中 |
7月26 |
H3CNE认证 |
热报中 |
7月26 |
H3CIE+认证 |
热报中 |
8月16 |
H3C-IMC认证 |
热报中 |
7月26 |
H3CNE培训 |
热报中 |
7月26 |
H3CSE认证 |
热报中 |
8月16 |
H3C无线 |
热报中 |
7月26 |
H3CSE培训 |
热报中 |
8月16 |
H3CIMC培训 |
热报中 |
8月16 |
H3C无线培训 |
热报中 |
8月31 |
H3CEAD培训 |
热报中 |
8月16 |
H3CPME认证 |
热报中 |
8月16 |
H3C安全认证 |
热报中 |
8月16 |
H3CIMC培训 |
热报中 |
8月16 |
H3C无线培训 |
热报中 |
8月09 |
H3CEAD培训 |
热报中 |
8月16 |
H3CPME认证 |
热报中 |
8月16 |
H3C安全认证 |
热报中 |
8月16 |
H3CIMC培训 |
热报中 |
8月09 |
H3C无线培训 |
热报中 |
8月09 |
H3CEAD培训 |
热报中 |
8月09 |
H3CPME认证 |
热报中 |
8月09 |
H3C安全认证 |
热报中 |