一、SRv6 Policy 操作实例
L3VPNv4 over SRv6 Policy
拓扑图如下:
一、组网需求:SRv6 Policy承载L3VPNv4业务路由
1.PE1和PE2设备各有一个CE属于VPN实例vpna。
2.在骨干网络中部署L3VPN迭代SRv6 Policy,使得CE1和CE2的loopback1接口可以相互通信。
二、配置思路
配置思路:
1.完成设备接口IPv6地址及IS-IS配置。
2.在PE1与PE2之间建立MP-BGP对等体关系。
3.骨干网上使能Segment Routing,建立SRv6 Policy路径。
4.PE上配置使能IPv4地址族VPN实例,PE之间配置MP-IBGP交换路由信息。
5.配置隧道策略,引入私网流量。
6.结果验证。
三、配置过程:
步骤1.完成设备接口IPv6地址及IS-IS配置。
PE1配置
interface Ethernet3/0/1
undo shutdown
ipv6 enable
ip address 10.1.12.1 255.255.255.0
ipv6 address 2001:DB88:12::1/96
isis enable 65000
isis ipv6 enable 65000
#
interface Ethernet3/0/2
undo shutdown
ip address 10.1.14.254 255.255.255.0
#
#
interface LoopBack0
ipv6 enable
ip address 1.1.1.1 255.255.255.255
ipv6 address 2001:DB8:1000::111/128
isis enable 65000
isis ipv6 enable 65000
#
#
isis 65000
is-level level-2
cost-style wide
network-entity 49.0000.0000.0001.00
#
ipv6 enable topology ipv6
#
P1配置
[P1]dis cur int
#
interface Ethernet3/0/0
undo shutdown
ipv6 enable
ip address 10.1.12.2 255.255.255.0
ipv6 address 2001:DB88:12::2/96
isis enable 65000
isis ipv6 enable 65000
#
interface Ethernet3/0/1
undo shutdown
ipv6 enable
ip address 10.1.23.2 255.255.255.0
ipv6 address 2001:DB88:23::2/96
isis enable 65000
isis ipv6 enable 65000
#
#
interface LoopBack0
ipv6 enable
ip address 2.2.2.2 255.255.255.255
ipv6 address 2001:DB8:2000::222/128
isis enable 65000
isis ipv6 enable 65000
#
[P1]dis cur con isis
#
isis 65000
is-level level-2
cost-style wide
network-entity 49.0000.0000.0002.00
#
ipv6 enable topology ipv6
#
PE2配置
PE2
interface Ethernet3/0/1
undo shutdown
ipv6 enable
ip address 10.1.23.3 255.255.255.0
ipv6 address 2001:DB88:23::3/96
isis enable 65000
isis ipv6 enable 65000
#
interface Ethernet3/0/2
undo shutdown
ip address 10.0.35.254 255.255.255.0
#
interface LoopBack0
ipv6 enable
ip address 3.3.3.3 255.255.255.255
ipv6 address 2001:DB8:3000::333/128
isis enable 65000
isis ipv6 enable 65000
#
[PE2]dis cur con isis
#
isis 65000
is-level level-2
cost-style wide
network-entity 49.0000.0000.0003.00
#
ipv6 enable topology ipv6
#
#
显示ISIS邻居关系是否正常,以PE1为例
PE1 dis isis peer
检查ISIS路由
PE1:dis ipv6 routing-table protocol isis
步骤2:在PE1和PE2之间建立MP-IBGP邻居关系
PE1配置
[PE1-bgp]peer 2001:DB8:3::3 as-number 100
[PE1-bgp]peer 2001:DB8:3::3 connect-interface LoopBack 0
[PE1-bgp]ipv4-family vpnv4
[PE1-bgp-af-vpnv4]peer 2001:DB8:3::3 enable
Warning: This operation will reset the peer session. Continue? [Y/N]:y
[PE1-bgp-af-vpnv4]
PE2配置
[PE2-bgp]peer 2001:DB8:1::1 as-number 100
[PE2-bgp]peer 2001:DB8:1::1 connect-interface LoopBack 0
[PE2-bgp]ipv4-family vpnv4
[PE2-bgp-af-vpnv4]peer 2001:DB8:1::1 enable
Warning: This operation will reset the peer session. Continue? [Y/N]:y
[PE2-bgp-af-vpnv4]
Tips:
(1)PE在配置VPNV4邻居关系时,需要加Y
检查PE1 bgp vpnv4邻居关系:
命令: dis bgp vpnv4 all peer
步骤3:在PE设备上使能IPv4地址族的vpn实例,将CE连接PE
PE1配置
[PE1]ip vpn-instance vpna
[PE1-vpn-instance-vpna]dis th
#
ip vpn-instance vpna
ipv4-family
route-distinguisher 1:100
apply-label per-instance
vpn-target 1:111 export-extcommunity
vpn-target 1:111 import-extcommunity
#
return
[PE1-Ethernet3/0/2]dis th
#
interface Ethernet3/0/2
undo shutdown
ip binding vpn-instance vpna
ip address 10.0.14.254 255.255.255.0
#
return
PE2配置
[PE2-vpn-instance-vpna]dis th
#
ip vpn-instance vpna
ipv4-family
route-distinguisher 1:200
apply-label per-instance
vpn-target 1:111 export-extcommunity
vpn-target 1:111 import-extcommunity
#
[PE2-Ethernet3/0/2]dis th
#
interface Ethernet3/0/2
undo shutdown
ip binding vpn-instance vpna
ip address 10.0.35.254 255.255.255.0
#
检查:PE设备vpn实例情况
命令:PE1-dis ip vpn-instance verbose
步骤4:在PE和CE建立ebgp邻居关系,并发布路由
CE1配置
[AR1-bgp]dis th
#
bgp 65000
private-4-byte-as enable
peer 10.0.14.254 as-number 100
#
ipv4-family unicast
network 10.1.4.4 255.255.255.255
peer 10.0.14.254 enable
#
return
[AR1-bgp]dis cur int g0/0/0
#
interface GE0/0/0
ip address 10.0.14.1 255.255.255.0
#
PE1配置
[PE1-bgp]dis th
#
bgp 100
router-id 1.1.1.1
private-4-byte-as enable
peer 2001:DB8:3::3 as-number 100
peer 2001:DB8:3::3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
#
ipv4-family vpnv4
policy vpn-target
peer 2001:DB8:3::3 enable
#
ipv4-family vpn-instance vpna
import-route direct
peer 10.0.14.1 as-number 65000
#
CE2配置
[AR2-bgp]dis th
#
bgp 65001
private-4-byte-as enable
peer 10.0.35.254 as-number 100
#
ipv4-family unicast
network 10.1.5.5 255.255.255.255
peer 10.0.35.254 enable
#
PE2配置
[PE2-bgp-vpna]dis th
#
ipv4-family vpn-instance vpna
import-route direct
peer 10.0.35.1 as-number 65001
#
return
检查:在PE上检查PE和CE之间的EBGP邻居关系
命令:dis bgp vpnv4 all peer
从上图可知,
PE和CE之间的vpn实例vpna之间的EBGP邻居关系已经建立完成
PE之间的vpnv4 的邻居关系也已经建立完成
PE上查看vpn实例的路由表
命令:dis ip routing-table vpn-instance vpna
步骤5:骨干网使能SR,并建立SRv6 Policy路径
配置SRv6 SID
PE1配置
SR配置
[PE1-segment-routing-ipv6]dis th
#
segment-routing ipv6
encapsulation source-address 2001:DB8:1::1
locator srv6 ipv6-prefix 2001:DB8:1000:: 64 static 32
opcode ::111 end psp
#
BGP配置
[PE1-bgp-af-vpnv4]peer 2001:DB8:3::3 prefix-sid
[PE1-bgp-af-vpnv4]dis th
#
ipv4-family vpnv4
policy vpn-target
peer 2001:DB8:3::3 enable
peer 2001:DB8:3::3 prefix-sid
#
ISIS配置
[PE1-isis-65000]segment-routing ipv6 locator srv6 auto-sid-disable
PE2配置
SR配置
[PE2-segment-routing-ipv6]dis th
#
segment-routing ipv6
encapsulation source-address 2001:DB8:3::3
locator srv6 ipv6-prefix 2001:DB8:3000:: 64 static 32
opcode ::333 end psp
#
BGP配置
[PE2-bgp-af-vpnv4]dis th
ipv4-family vpnv4
peer 2001:DB8:1::1 prefix-sid
ISIS配置
isis 65000
segment-routing ipv6 locator srv6 auto-sid-disable
P1配置
SR配置
[P1-segment-routing-ipv6]dis th
#
segment-routing ipv6
encapsulation source-address 2001:DB8:2::2
locator srv6 ipv6-prefix 2001:DB8:2000:: 64 static 32
opcode ::222 end psp
#
[P1-isis-65000]dis th
isis 65000
segment-routing ipv6 locator srv6 auto-sid-disable
#
手工配置END类型的SRv6 SID
segment-routing ipv6
encapsulation source-address 2001:DB8:2::2
locator srv6 ipv6-prefix 2001:DB8:2000:: 64 static 32
opcode ::222 end psp
*****重要命令****
segment-routing ipv6
/使能IPv6转发平面的Segment Routing功能,并且进入SRv6视图/
encapsulation source-address X.X.X.X
/配置SRv6的报文源地址,一般是loopback0的地址/
opcode ::111 end psp
/配置静态End SID的Opcode/
locator srv6 ipv6-prefix 2001:DB8:1000:: 64 static 32
/配置SID的节点路由段。配置的Locator指定了SID静态段长度,动态SID分配会在去除静态段的SID范围内申请,确保SID不会冲突/
BGP配置
ipv4-family vpnv4
peer 2001:DB8:3::3 prefix-sid
执行命令peer ipv6-address prefix-sid,使能与指定IPv6对等体之间交换IPv4 Prefix SID信息。
ISIS配置
isis 65000
segment-routing ipv6 locator srv6 auto-sid-disable
执行命令segment-routing ipv6 locator locator-name [ auto-sid-disable ],
使能VPN私网路由携带SID属性。
如果没有配置auto-sid-disable参数,表示支持动态SID分配。此时如果locatorname下存在静态SID,则使用静态SID,没有静态SID时则使用动态分配的SID。
如果配置auto-sid-disable参数,则BGP不会动态分配SID。
检查 SRv6的locator 信息
命令:dis segment-routing ipv6 locator srv6 verbose
检查SRv6的Locator SID信息表
命令:dis segment-routing ipv6 local-sid end forwarding
从SRv6的 Locator SID信息表可知:
SID:2001:DB8:1000::111/128
FuncType:类型 END
Flavor:PSP
LocatorName:srv6
ProtocolType:协议类型 Static静态
步骤6:PE上使能IPv4地址族vpn实例,PE之间配置MP-IBGP交换路由信息,
配置SRv6 SID、同时在PE上配置VPN私网路由携带SID属性
PE1配置
[PE1-bgp-vpna]dis th
#
ipv4-family vpn-instance vpna
import-route direct
segment-routing ipv6 locator srv6
segment-routing ipv6 traffic-engineer best-effort
peer 10.0.14.1 as-number 65000
#
PE2配置
[PE2-bgp-vpna]dis th
#
ipv4-family vpn-instance vpna
import-route direct
segment-routing ipv6 locator srv6
segment-routing ipv6 traffic-engineer best-effort
peer 10.0.35.1 as-number 65001
#
***重要命令****
segment-routing ipv6 locator srv6
/执行命令segment-routing ipv6 locator locator-name ,使能公网路由携带SID属性。/
/使能VPN私网路由携带SID属性/
segment-routing ipv6 traffic-engineer best-effort
执行命令segment-routing ipv6 traffic-engineer [ best-effort ] ,使能根据路由携带的SID属性进行私网路由迭代。
当网络中存在SRv6 BE路径时,可以配置best-effort参数,这样当SRv6 TE Policy隧道故障时业务可以使用SRv6 BE路径作为逃生路径
步骤7:配置SRv6 TE Policy,建立SRv6 Policy路径
PE1配置
[PE1-segment-routing-ipv6]dis th
#
segment-routing ipv6
encapsulation source-address 2001:DB8:1::1
locator srv6 ipv6-prefix 2001:DB8:1000:: 64 static 32
opcode ::111 end psp
srv6-te-policy locator srv6
segment-list list1
index 5 sid ipv6 2001:DB8:2000::222
index 10 sid ipv6 2001:DB8:3000::333
srv6-te policy policy1 endpoint 2001:DB8:3::3 color 101
binding-sid 2001:DB8:1000::100
candidate-path preference 100
segment-list list1
#
PE2配置
[PE2-segment-routing-ipv6]dis th
#
segment-routing ipv6
encapsulation source-address 2001:DB8:3::3
locator srv6 ipv6-prefix 2001:DB8:3000:: 64 static 32
opcode ::333 end psp
srv6-te-policy locator srv6
segment-list list1
index 5 sid ipv6 2001:DB8:2000::222
index 10 sid ipv6 2001:DB8:1000::111
srv6-te policy policy1 endpoint 2001:DB8:1::1 color 101
binding-sid 2001:DB8:3000::100
candidate-path preference 100
segment-list list1
#
重要命令:
配置segment List:
segment-list list1
执行命令segment-list list-name,创建SRv6 TE Policy候选路径的显式路径,并且进入显式路径视图
index 5 sid ipv6 2001:DB8:2000::222
执行命令index index sid ipv6 ipv6address,配置在Segment List中指定下一跳SID。
该命令允许多次执行,系统按照index index从小到大的顺序生成Segment List的SID栈。当SRv6 TE Policy下候选路径被优选后,按照候选路径下的Segment List转发流量。每个Segment List中最多配置10个SID
配置SRv6 TE Policy
srv6-te-policy locator srv6
执行命令srv6-te-policy locator locator-name,配置SRv6 TE Policy关联的Locator。用于在Locator下指定SRv6 TE Policy的Binding SID。
srv6-te policy policy1 endpoint 2001:DB8:1::1 color 101
执行命令srv6-te policy policy-name endpoint ipv6-address color colorvalue,创建SRv6 TE Policy,并且进入SRv6 TE Policy视图。
binding-sid 2001:DB8:3000::100
(可选)执行命令binding-sid binding-sid,配置SRv6 TE Policy的Binding SID。
binding-sid取值需要在locator locator-name [ ipv6-prefix ipv6-address prefixlength [ static static-length | args args-length ] * ]命令定义的静态段范围内。
candidate-path preference 100
执行命令candidate-path preference preference,配置SRv6 TE Policy的候选路径及其优先级。
每一个SRv6 TE Policy允许配置多个候选路径。 preference越大,候选路径优先级越高,存在多个候选路径时,优先级最高的生效。
segment-list list1
执行命令segment-list list-name [ weight weight-value | path-mtu mtuvalue ] *,配置SRv6 TE Policy候选路径的Segment List。
Segment List需要提前通过segment-list (Segment-routing IPv6 view)命令创建
检查:SRv6 TE Policy信息
命令:dis srv6-te policy
从上面可知:
PE1的SRv6 TE Policy
(1)color:101
(2)TunnelType:隧道类型:SRv6-TE Policy
(3)endpoint:2001:DB8:3::3 ---PE3
(4)隧道状态:UP
(5)CP:候选路径 优先级100
(6)Segment List:List1;SL状态是UP
(7)SID:222---3333:经过了那些路径
步骤8:配置隧道策略,引入私网流量;
PE1配置
策略:
[PE1-route-policy]dis th
#
route-policy p1 permit node 10
apply extcommunity color 0:101
#
BGP配置
[PE1-bgp-af-vpnv4]dis th
#
ipv4-family vpnv4
policy vpn-target
peer 2001:DB8:3::3 enable
peer 2001:DB8:3::3 route-policy p1 import
peer 2001:DB8:3::3 prefix-sid
#
[PE1-tunnel-policy-p1]dis th
#
tunnel-policy p1
tunnel select-seq ipv6 srv6-te-policy load-balance-number 1
#
VPN配置关联tunnel-policy
[PE1-vpn-instance-vpna-af-ipv4]dis th
ipv4-family
route-distinguisher 1:100
tnl-policy p1
apply-label per-instance
vpn-target 1:111 export-extcommunity
vpn-target 1:111 import-extcommunity
#
PE2配置
策略:
[PE2-route-policy]dis th
#
route-policy p1 permit node 10
apply extcommunity color 0:101
#
BGP配置
[PE2-bgp-af-vpnv4]dis th
#
ipv4-family vpnv4
policy vpn-target
peer 2001:DB8:1::1 enable
peer 2001:DB8:1::1 route-policy p1 import
peer 2001:DB8:1::1 prefix-sid
#
tunnel 配置
[PE2-tunnel-policy-p1]dis th
#
tunnel-policy p1
tunnel select-seq ipv6 srv6-te-policy load-balance-number 1
#
VPN与tunnel进行关联
[PE2-vpn-instance-vpna]dis th
#
ip vpn-instance vpna
ipv4-family
route-distinguisher 1:200
tnl-policy p1
apply-label per-instance
vpn-target 1:111 export-extcommunity
vpn-target 1:111 import-extcommunity
#
重要命令:
配置BGP扩展团体属性:
通过路由策略对路由增加扩展团体属性Color,携带Color的路由可以根据Color与下一跳地址迭代SRv6 TE Policy
路由着色的过程如下:
1. 配置路由策略,匹配特定路由,设置特定的Color属性。
2. 将路由策略应用到BGP邻居,或者应用到整个VPN实例,可以做为入口策略,也可以做为出口策略。
步骤1:配置route-policy
route-policy p1 permit node 10
apply extcommunity color 0:101
#
(1)执行命令route-policy route-policy-name { deny | permit } node node,创建路由策略的节点,并进入路由策略视图。
(2)执行命令apply extcommunity color color,配置BGP扩展团体属性Color。
其中染色标记位的取值目前只能为0; color值的取值范围是0~ 4294967295。
步骤2:应用Route-policy
BGP配置
[PE2-bgp-af-vpnv4]dis th
#
ipv4-family vpnv4
policy vpn-target
peer 2001:DB8:1::1 enable
peer 2001:DB8:1::1 route-policy p1 import
peer 2001:DB8:1::1 prefix-sid
#
对BGP VPNv4邻居应用Route-Policy
a. 执行命令system-view,进入系统视图。
b. 执行命令bgp as-number,进入BGP视图。
c. 执行命令peer { ipv6-address | group-name } as-number as-number,配置BGP邻居。
d. 执行命令ipv4-family vpnv4,进入BGP VPNv4地址族视图。
e. 执行命令peer { ipv6-address | group-name } enable,使能BGP VPNv4邻居关系。
f. 执行命令peer { ipv6-address | group-name } route-policy route-policyname { import | export },配置BGP入方向或出方向的路由策略。
配置引流
通过配置引流特性,可以使路由迭代到SRv6 TE Policy,利用SRv6 TE Policy里的路径信息指导数据转发。
SRv6 TE Policy配置完成以后,需要将业务流量引入SRv6 TE Policy上进行转发,这个过程称为引流。当前可以使用SRv6 TE Policy的业务包括BGP L3VPN和EVPN业务等。本节介绍相关业务如何通过隧道策略迭代到SRv6 TE Policy。
步骤1 配置隧道策略
如果是基于Color引流
a. 执行命令system-view,进入系统视图。
b. 执行命令tunnel-policy policy-name,创建隧道策略,并进入隧道策略视图。
c. (可选)执行命令description description-information,对隧道策略配置描述信息。
d. 执行命令tunnel select-seq ipv6 srv6-te-policy load-balance-number
load-balance-number,配置选择隧道的优先级顺序和负载分担条数。
说明
完成上述配置后,允许路由迭代SRv6 TE Policy,此时如果路由的Color和下一跳分别与SRv6 TE Policy的Color和Endpoint地址相同时,则路由成功迭代到SRv6 TE Policy,流量被导入对应的SRv6 TE Policy。
e. 执行命令commit,提交配置。
步骤2 配置业务迭代到SRv6 TE Policy
配置BGP L3VPN迭代到SRv6 TE Policy
a. 执行命令system-view,进入系统视图。
b. 执行命令ip vpn-instance vpn-instance-name,进入VPN实例视图。
c. 执行命令ipv4-family,进入VPN实例IPv4地址族视图。
d. 执行命令tnl-policy policy-name,对VPN实例IPv4地址族应用隧道策略。
e. 执行命令commit,提交配置。
结果验证:
1、在PE1上查看vpnvv4路由信息
命令:dis bgp vpnv4 all routing-table
命令:dis bgp vpnv4 all routing-table 10.1.5.5
通过VPN路由10.1.5.5 可知:
(1)10.1.5.5 是从vpn实例vpna学到的;
(2)10.1.5.5 起源是从2001:DB8:3::3 也就是PE3发过来的vpnv4的路由
(3)Ext-扩展的BGP团体属性:color:0:101,
Prefix-sid: 2001:DB8:3000::1:0:3,根据color属性迭代到对应的SRv6 TE Policy隧道
2、查看vpn 实例路由信息:
dis ip routing-table vpn-instance vpna 10.1.5.5 verbose
查看vpn实例路由表信息,出接口为policy1,,私网路由10.1.5.5 已经迭代到SRv6 TE Policy上了
结果:从CE1上ping CE2 loopback