05-Flowspec配置
本章节下载:05-Flowspec配置(367.20 KB)
目录
Flowspec(Flow Specification,流规格)用来实现对BGP网络中的非法流量进行过滤与巡查,以减轻DoS(Denial of Service,拒绝服务)攻击和DDoS(Distributed Denial of Service,分布式拒绝服务)攻击对网络的影响。借助BGP路由更新,Flowspec针对攻击流量的特点,可集中配置和管理匹配规则以及流量动作,并快速地将匹配规则和流量动作应用到其他BGP路由器中。
·Flowspec路由器:也称为Flowspec控制器,为BGP网络中的BGP路由器,通过BGP Update报文,向Flowspec边界路由器传递包含匹配规则以及流量动作的Flowspec路由。
·Flowspec边界路由器:也称为Flowspec客户端,为BGP网络中的BGP路由器,可接收BGP Update报文中Flowspec路由器创建的Flowspec路由。
配置Flowspec时,应选取BGP网络中的一台BGP路由器作为Flowspec路由器,网络中的其他BGP路由器作为Flowspec边界路由器。
为支持Flowspec,MP-BGP定义了Flowspec IPv4地址族、Flowspec VPNv4地址族、Flowspec IPv6地址族和Flowspec VPNv6地址族,并新增了Flowspec NLRI(Network Layer Reachability Information,网络层可达性信息),即Flowspec路由。通过Flowspec IPv4地址族、Flowspec VPNv4地址族、Flowspec IPv6地址族和Flowspec VPNv6地址族,Flowspec可以将携带匹配规则和流量动作的Flowspec路由在公网和VPN实例中进行传播。
如图1-1所示,通过BGP路由更新的形式,Flowspec路由器向Flowspec边界路由器发布Flowspec路由,Flowspec边界路由器收到Flowspec路由后,将Flowspec路由中的匹配规则和流量动作应用到设备的转发平面,从而对进入设备的流量采取适当的流量动作。Flowspec路由同样也支持跨AS传输,从而实现在最接近攻击源的设备上对攻击流量进行管控,这样能够最大程度地减少攻击流量对网络转发性能的影响。
与Flowspec相关的协议规范有:
·RFC 5575:Dissemination of Flow Specification Rules
·RFC 7674:Clarification of the Flowspec Redirect Extended Community
·draft-ietf-idr-bgp-prefix-sid
·draft-ietf-idr-flowspec-path-redirect
·draft-ietf-spring-segment-routing-policy
配置Flowspec前,需要在Flowspec路由器和Flowspec边界路由器上配置BGP基本功能,具体配置请参见“三层技术-IP路由配置指导”中的“BGP基础”。
需要在Flowspec路由器上创建并激活Flowspec路由。
需要在Flowspec路由器上应用Flowspec路由。
需要在Flowspec路由器和Flowspec边界路由器上配置BGP发布Flowspec路由。
(4)(可选)配置BGP Flowspec路由反射
需要在Flowspec路由器上配置BGP Flowspec路由反射。
(5)(可选)提高邻居Flowspec路由参与优选时的优先级
(1) 进入系统视图。
system-view
(2) 创建IPv4 Flowspec路由。
flow-routeflowroute-name
(3) 定义Flowspec路由的报文匹配规则。
if-matchmatch-criteria
(4) 配置Flowspec路由的流量动作。请选择其中一项进行配置。
¡配置流量丢弃动作。
apply deny
¡配置流量重定向到下一跳动作。
apply redirect next-hop{ipv4-address[copy-mode] |ipv6-address}
¡配置流量重定向到SR-MPLS TE Policy动作。(暂不支持)
apply redirect next-hopipv4-addresscolorcolor
¡配置流量重定向到SRv6 TE Policy动作。
apply redirect next-hopipv6-addresscolorcolor[sidsid-value]
¡配置流量重定向到指定的Route Target动作。
apply redirect vpn-targetimport-vpn-target
¡配置重新标记报文DSCP值的动作。
apply remark-dscpdscp-value
¡配置流量限速动作。
applytraffic-raterate
缺省情况下,Flowspec路由中未配置流量动作。
(5) (可选)检查Flowspec路由下未生效的匹配规则及流量动作。
check flow-route-configuration
(6) 激活Flowspec路由中的匹配规则及流量动作。
commit
缺省情况下,Flowspec路由下配置的匹配规则及流量动作未生效。
配置Flowspec路由关联了Flowspec接口组功能后,设备可作为Flowspec控制器,当BGP发布Flowspec路由时,BGP UPDATE报文中将携带接口组ID的Flowspec路由信息发布给Flowspec客户端。Flowspec客户端上如果存在对应的Flowspec接口组,则将Flowspec路由中的匹配规则和流量动作应用到Flowspec接口组中的接口。
对于Flowspec IPv4地址族视图下已应用的Flowspec路由,若要为其关联Flowspec接口组,则需要先执行undo flow-route命令删除该Flowspec路由后,再执行flow-routeflow-interface-group命令将该Flowspec路由与Flowspec接口组关联。
同一个Flowspec路由可以关联多个Flowspec接口组。同一个Flowspec接口组也可以关联到多个Flowspec路由。
(1) 进入系统视图。
system-view
(2) 进入Flowspec视图。
flowspec
(3) 创建Flowspec IPv4地址族。
address-family ipv4
(4) 应用已创建的IPv4 Flowspec路由,请至少选择其中一项进行配置。
¡应用已创建的普通IPv4 Flowspec路由。
flow-routeflowroute-name
缺省情况下,公网中未应用IPv4 Flowspec路由。
¡应用关联了Flowspec接口组的IPv4 Flowspec路由。
flow-routeflowroute-nameflow-interface-groupgroup-id
缺省情况下,IPv4 Flowspec路由未关联Flowspec接口组。
(1) 进入系统视图。
system-view
(2) 配置VPN实例。
a. 创建VPN实例,并进入VPN实例视图。
ip vpn-instancevpn-instance-name
b. 配置VPN实例的RD。
route-distinguisherroute-distinguisher
缺省情况下,未配置VPN实例的RD。
c. 配置VPN实例的Route Target。
vpn-target{vpn-target&<1-8>[both|export-extcommunity|import-extcommunity]}
缺省情况下,未配置VPN实例的Route Target。
关于ip vpn-instance、route-distinguisher和vpn-target命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(3) 进入VPN实例IPv4 Flowspec地址族视图。
address-family ipv4 flowspec
(4) 配置VPN实例下IPv4 Flowspec地址族的RD。
route-distinguisherroute-distinguisher
缺省情况下,未配置VPN实例下IPv4 Flowspec地址族的RD。
(5) 配置VPN实例下IPv4 Flowspec地址族的VPN target。
vpn-targetvpn-target&<1-8>[both|export-extcommunity|import-extcommunity]
缺省情况下,未配置VPN实例下IPv4 Flowspec地址族的VPN target。
VPN实例IPv4 Flowspec地址族的VPN target必须与之前配置的VPN实例的Route target保持一致。
(6) 依次执行以下命令退回系统视图。
a.quit
b.quit
(7) 进入Flowspec视图。
flowspec
(8) 创建Flowspec IPv4 VPN实例地址族并关联已创建的VPN实例。
address-family ipv4 vpn-instancevpn-instance-name
(9) 应用已创建的IPv4 Flowspec路由,请选择其中一项进行配置。
flow-routeflowroute-name
缺省情况下,VPN实例中未应用IPv4 Flowspec路由。
¡应用关联Flowspec接口组的Flowspec路由。
flow-routeflowroute-nameflow-interface-groupgroup-id
缺省情况下,IPv4 Flowspec路由未关联Flowspec接口组。
缺省情况下,BGP Flowspec邻居会对收到的IPv4 Flowspec路由及路由重定向下一跳的合法性进行验证。
·IPv4 Flowspec路由合法指的是:
¡IPv4 Flowspec路由携带了匹配目的地址的规则。
¡BGP Flowspec邻居(接收及发送该IPv4 Flowspec路由的设备)上存在目的地址为“IPv4 Flowspec路由目的地址”的BGP路由,且该BGP路由来自发送设备。
在不关注IPv4 Flowspec路由合法性的情况下,可以关闭本功能,此时BGP Flowspec邻居收到IPv4 Flowspec路由后,不会对其进行合法性验证。
·IPv4 Flowspec路由的重定向下一跳合法指的是(假设IPv4 Flowspec路由的重定向下一跳为设备A):
¡BGP Flowspec邻居上存在设备A的BGP路由。
¡设备A与BGP Flowspec邻居在同一AS内。
在不关注IPv4 Flowspec路由重定向下一跳合法性的情况下,可以关闭本功能,BGP Flowspec邻居收到IPv4 Flowspec路由后,不会对其进行合法性验证。
在Flowspec路由器上配置BGP发布IPv4 Flowspec路由时,该IPv4 Flowspec路由会通过BGP路由发布给Flowspec边界路由器,同时也会在本Flowspec路由器上生效。
关于bgp和peer enable命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP基础”。
(1) 进入系统视图。
system-view
(2) 请依次执行以下命令进入BGP IPv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-family ipv4flowspec
(3) 允许BGP Flowspec邻居间交换路由信息。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length] }enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(4) (可选)关闭对来自BGP Flowspec邻居的IPv4 Flowspec路由的合法性验证功能。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}validation-disable
缺省情况下,会对接收的IPv4 Flowspec路由进行合法性验证。
(5) (可选)关闭对来自BGP Flowspec邻居的IPv4 Flowspec路由的重定向下一跳合法性验证功能。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}validation-redirect-disable
缺省情况下,EBGP Flowspec邻居会对接收的IPv4 Flowspec路由进行重定向下一跳合法性验证。
(6) (可选)配置向对等体发送路由时不改变下一跳。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布IPv4 Flowspec路由时会将下一跳属性改为自己的地址。
(7) (可选)配置收到的带有重定向到下一跳IP地址属性的路由可以迭代隧道。
redirect ip recursive-lookup tunnel[tunnel-selectortunnel-selector-name]
缺省情况下,收到的带有重定向到下一跳IP地址属性的路由不能迭代隧道。
(8) (可选)配置IPv4 Flowspec路由的重定向下一跳属性ID为RFC规定的属性ID,即0x010C。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}redirect ip rfc-compatible
缺省情况下,IPv4 Flowspec路由的重定向下一跳属性ID为0x0800。
(9) (可选)配置IPv4 Flowspec路由的重定向到VPN Target属性ID为RFC规定的属性ID,即为0x000D。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}redirect rtrfc-compatible
缺省情况下,IPv4 Flowspec路由的重定向到VPN Target属性ID为0x800B。
(10) (可选)禁止应用Flowspec路由的重定向下一跳动作。
undo peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length] }redirect-nexthop
缺省情况下,允许应用Flowspec路由的重定向下一跳动作。
(11) (可选)配置从指定对等体/对等体组接收到携带Color属性的Flowspec路由后,将符合Flowspec路由规则的流量重定向到与Flowspec路由匹配的SR-MPLS TE Policy或SRv6 TE Policy。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length] }redirect-color[sr-policy]
缺省情况下,Flowspec路由携带了Color属性时,如果Flowspec路由的下一跳地址是IPv4地址,仅将Flowspec路由与SR-MPLS TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SR-MPLS TE Policy;如果Flowspec路由的下一跳地址是IPv6地址,仅将Flowspec路由与SRv6 TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SRv6 TE Policy。
目前,设备暂不支持SR-MPLS TE Policy。
(1) 进入系统视图。
system-view
(2) 请依次执行以下命令进入BGP-VPN IPv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
ip vpn-instancevpn-instance-name
address-family ipv4 flowspec
(3) 允许BGP Flowspec邻居间交换路由信息。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(4) (可选)关闭对来自BGP Flowspec邻居的IPv4 Flowspec路由的合法性验证功能。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}validation-disable
缺省情况下,会对接收的IPv4 Flowspec路由进行合法性验证。
(5) (可选)关闭对来自BGP Flowspec邻居的IPv4 Flowspec路由的重定向下一跳合法性验证功能。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}validation-redirect-disable
缺省情况下,EBGP Flowspec邻居会对接收的IPv4 Flowspec路由进行重定向下一跳合法性验证。
(6) (可选)配置向EBGP对等体发送路由时不改变下一跳地址。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布IPv4 Flowspec路由时会将下一跳属性改为自己的地址。
(7) (可选)配置IPv4 Flowspec路由的重定向下一跳属性ID为RFC规定的属性ID,即0x010C。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}redirect ip rfc-compatible
缺省情况下,IPv4 Flowspec路由的重定向下一跳属性ID为0x0800。
(8) (可选)配置IPv4 Flowspec路由的重定向到VPN Target属性ID为RFC规定的属性ID,即为0x000D。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}redirect rtrfc-compatible
缺省情况下,IPv4 Flowspec路由的重定向到VPN Target属性ID为0x800B。
(9) (可选)禁止应用Flowspec路由的重定向下一跳动作。
undo peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length] }redirect-nexthop
缺省情况下,允许应用Flowspec路由的重定向下一跳动作。
(10) (可选)配置从指定对等体/对等体组接收到携带Color属性的Flowspec路由后,将符合Flowspec路由规则的流量重定向到与Flowspec路由匹配的SR-MPLS TE Policy或SRv6 TE Policy。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length] }redirect-color[sr-policy]
缺省情况下,Flowspec路由携带了Color属性时,如果Flowspec路由的下一跳地址是IPv4地址,仅将Flowspec路由与SR-MPLS TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SR-MPLS TE Policy;如果Flowspec路由的下一跳地址是IPv6地址,仅将Flowspec路由与SRv6 TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SRv6 TE Policy。
目前,设备暂不支持SR-MPLS TE Policy。
(1) 进入系统视图。
system-view
(2) 请依次执行以下命令进入BGP VPNv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-family vpnv4flowspec
(3) 允许BGP Flowspec邻居间交换路由信息。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(4) (可选)配置向EBGP对等体发送VPNv4 Flowspec路由时不改变下一跳地址。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布VPNv4 Flowspec路由时会将下一跳属性改为自己的地址。
(5) (可选)配置IPv4 Flowspec路由的重定向下一跳属性ID为RFC规定的属性ID,即0x010C。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}redirect ip rfc-compatible
缺省情况下,IPv4 Flowspec路由的重定向下一跳属性ID为0x0800。
(6) (可选)配置IPv4 Flowspec路由的重定向到VPN Target属性ID为RFC规定的属性ID,即为0x000D。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}redirect rtrfc-compatible
缺省情况下,IPv4 Flowspec路由的重定向到VPN Target属性ID为0x800B。
路由反射用来解决IBGP对等体需要全连接的问题。在一个AS内,一台路由器作为RR(Route Reflector,路由反射器),其它路由器作为客户机(Client)与路由反射器建立IBGP连接。路由反射器在客户机之间传递(反射)路由信息,而客户机之间不需要建立BGP连接。
路由反射器及其客户机形成了一个集群。通常情况下,一个集群中只有一个路由反射器,该反射器的Router ID就作为集群ID,用于识别该群。
(1) 进入系统视图
system-view
(2) 进入BGP IPv4 Flowspec地址族视图、BGP-VPN IPv4 Flowspec地址族视图或BGP VPNv4 Flowspec地址族视图。请选择其中一项进行配置。
¡请依次执行以下命令进入BGP IPv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-familyipv4flowspec
¡请依次执行以下命令进入BGP-VPN IPv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
ip vpn-instancevpn-instance-name
address-family ipv4 flowspec
¡请依次执行以下命令进入BGP VPNv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-familyvpnv4flowspec
(3) 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}reflect-client
缺省情况下,未配置路由反射器及其客户机。
(4) (可选)配置不对接收到的VPNv4 Flowspec路由进行Route Target过滤。
undo policy vpn-target
缺省情况下,对接收到的VPNv4 Flowspec路由进行Route Target过滤,即只将Export Route Target属性与本地Import Route Target属性匹配的VPNv4 Flowspec路由加入到路由表。
本命令仅支持在BGP VPNv4 Flowspec地址族视图执行。
(5) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(6) (可选)配置路由反射器的集群ID。
reflector cluster-id{cluster-id|ipv4-address}
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
执行本配置后,BGP将会优选从本配置指定的对等体/对等体组学习到的路由。该选路规则应用于“依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由”之后,“优选IGP Metric值最小的路由”之前。有关BGP选路规则的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4 Flowspec地址族视图、BGP-VPN IPv4 Flowspec地址族视图或BGP VPNv4 Flowspec地址族视图。请选择其中一项进行配置。
¡请依次执行以下命令进入BGP IPv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-familyipv4flowspec
¡请依次执行以下命令进入BGP-VPN IPv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
ip vpn-instancevpn-instance-name
address-family ipv4 flowspec
¡请依次执行以下命令进入BGP VPNv4 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-familyvpnv4flowspec
(3) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
需要在Flowspec路由器上创建并激活Flowspec路由。
需要在Flowspec路由器上应用Flowspec路由。
需要在Flowspec路由器和Flowspec边界路由器上配置BGP发布Flowspec路由。
(4)(可选)配置BGP Flowspec路由反射
需要在Flowspec路由器上配置BGP Flowspec路由反射。
(5)(可选)提高邻居Flowspec路由参与优选时的优先级
(1) 进入系统视图。
system-view
(2) 创建IPv6 Flowspec路由。
flow-routeflowroute-nameipv6
(3) 定义Flowspec路由的报文匹配规则。
if-matchmatch-criteria
(4) 配置Flowspec路由的流量动作。请选择其中一项进行配置。
¡配置流量丢弃动作。
apply deny
¡配置流量重定向到下一跳动作。
apply redirect next-hop{ipv4-address|ipv6-address[copy-mode] }
¡配置流量重定向到SR-MPLS TE Policy动作。(暂不支持)
apply redirect next-hopipv4-addresscolorcolor
¡配置流量重定向到SRv6 TE Policy动作。
apply redirect next-hopipv6-addresscolorcolor[sidsid-value]
¡配置流量重定向到指定的Route Target动作。
apply redirect vpn-targetimport-vpn-target
¡配置重新标记报文DSCP值的动作。
apply remark-dscpdscp-value
¡配置流量限速动作。
applytraffic-raterate
缺省情况下,Flowspec路由中未配置流量动作。
(5) (可选)检查Flowspec路由下未生效的匹配规则及流量动作。
check flow-route-configuration
(6) 激活Flowspec路由中的匹配规则及流量动作。
commit
缺省情况下,Flowspec路由下配置的匹配规则及流量动作未生效。
配置Flowspec路由关联了Flowspec接口组功能后,设备可作为Flowspec控制器,当BGP发布Flowspec路由时,BGP UPDATE报文中将携带接口组ID的Flowspec路由信息发布给Flowspec客户端。Flowspec客户端上如果存在对应的Flowspec接口组,则将Flowspec路由中的匹配规则和流量动作应用到Flowspec接口组中的接口。
对于Flowspec IPv6地址族视图下已应用的Flowspec路由,若要为其关联Flowspec接口组,则需要先执行undo flow-route命令删除该Flowspec路由后,再执行本命令将该Flowspec路由与Flowspec接口组关联。
同一个Flowspec路由可以关联多个Flowspec接口组。同一个Flowspec接口组也可以关联到多个Flowspec路由。
(1) 进入系统视图。
system-view
(2) 进入Flowspec视图。
flowspec
(3) 创建Flowspec IPv6地址族。
address-family ipv6
(4) 应用已创建的IPv6 Flowspec路由,请选择其中一项进行配置。
¡应用已创建的普通IPv6 Flowspec路由。
flow-routeflowroute-name
缺省情况下,公网中未应用IPv6 Flowspec路由。
¡应用关联了Flowspec接口组的IPv6 Flowspec路由。
flow-routeflowroute-nameflow-interface-groupgroup-id
缺省情况下, IPv6 Flowspec路由未关联Flowspec接口组。
(1) 进入系统视图。
system-view
(2) 配置VPN实例。
a. 创建VPN实例,并进入VPN实例视图。
ip vpn-instancevpn-instance-name
b. 配置VPN实例的RD。
route-distinguisherroute-distinguisher
缺省情况下,未配置VPN实例的RD。
c. 配置VPN实例的Route Target。
vpn-target{vpn-target&<1-8>[both|export-extcommunity|import-extcommunity]}
缺省情况下,未配置VPN实例的Route Target。
关于ip vpn-instance、route-distinguisher和vpn-target命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(3) 进入VPN实例IPv6 Flowspec地址族视图。
address-family ipv6 flowspec
(4) 依次执行以下命令退回系统视图。
a.quit
b.quit
(5) 进入Flowspec视图。
flowspec
(6) 创建Flowspec IPv6 VPN实例地址族并关联已创建的VPN实例。
address-family ipv6 vpn-instancevpn-instance-name
(7) 应用已创建的IPv6 Flowspec路由,请至少选择其中一项进行配置。
¡应用已创建的普通IPv6 Flowspec路由。
flow-routeflowroute-name
缺省情况下,VPN实例中未应用IPv6 Flowspec路由。
¡应用关联Flowspec接口组的Flowspec路由。
flow-routeflowroute-nameflow-interface-groupgroup-id
缺省情况下,IPv6 Flowspec路由未关联Flowspec接口组。
关于bgp和peer enable命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP基础”。
(1) 进入系统视图。
system-view
(2) 请依次执行以下命令进入BGP IPv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-family ipv6 flowspec
(3) 允许BGP Flowspec邻居间交换路由信息。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(4) (可选)关闭对来自BGP Flowspec邻居的IPv6 Flowspec路由的合法性验证功能。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}validation-disable
缺省情况下,会对接收的IPv6 Flowspec路由进行合法性验证。
(5) (可选)关闭对来自BGP Flowspec邻居的IPv6 Flowspec路由的重定向下一跳合法性验证功能。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}validation-redirect-disable
缺省情况下,EBGP Flowspec邻居会对接收的IPv6 Flowspec路由进行重定向下一跳合法性验证。
(6) (可选)配置向对等体发送路由时不改变下一跳。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布IPv6 Flowspec路由时会将下一跳属性改为自己的地址。
(7) (可选)配置收到的带有重定向到下一跳IP地址属性的路由可以迭代隧道。
redirect ip recursive-lookup tunnel[tunnel-selectortunnel-selector-name]
缺省情况下,收到的带有重定向到下一跳IP地址属性的路由不能迭代隧道。
(8) (可选)配置IPv6 Flowspec路由的重定向下一跳属性ID为RFC规定的属性ID,即0x000C。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}redirect ip rfc-compatible
缺省情况下,IPv6 Flowspec路由的重定向下一跳属性ID为0x0800。
(9) (可选)配置IPv6 Flowspec路由的重定向到VPN Target属性ID为RFC规定的属性ID,即0x000D。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}redirect rtrfc-compatible
缺省情况下,IPv6 Flowspec路由的重定向到VPN Target属性ID为0x800B。
(10) (可选)禁止应用Flowspec路由的重定向下一跳动作。
undo peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length] }redirect-nexthop
缺省情况下,允许应用Flowspec路由的重定向下一跳动作。
(11) (可选)配置从指定对等体/对等体组接收到携带Color属性的Flowspec路由后,将符合Flowspec路由规则的流量重定向到与Flowspec路由匹配的SR-MPLS TE Policy或SRv6 TE Policy。
peer{group-name|ipv4-address[mask-length] |ipv6-address[mask-length] }redirect-color[sr-policy]
缺省情况下,Flowspec路由携带了Color属性时,如果Flowspec路由的下一跳地址是IPv4地址,仅将Flowspec路由与SR-MPLS TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SR-MPLS TE Policy;如果Flowspec路由的下一跳地址是IPv6地址,仅将Flowspec路由与SRv6 TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SRv6 TE Policy。
目前,设备暂不支持SR-MPLS TE Policy。
(1) 进入系统视图。
system-view
(2) 请依次执行以下命令进入BGP-VPN IPv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
ip vpn-instancevpn-instance-name
address-family ipv6 flowspec
(3) 允许BGP Flowspec邻居间交换路由信息。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(4) (可选)关闭对来自BGP Flowspec邻居的IPv6 Flowspec路由的合法性验证功能。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}validation-disable
缺省情况下,会对接收的IPv6 Flowspec路由进行合法性验证。
(5) (可选)关闭对来自BGP Flowspec邻居的IPv6 Flowspec路由的重定向下一跳合法性验证功能。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}validation-redirect-disable
缺省情况下,EBGP Flowspec邻居会对接收的IPv6 Flowspec路由进行重定向下一跳合法性验证。
(6) (可选)配置向EBGP对等体发送路由时不改变下一跳地址。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布IPv6 Flowspec路由时会将下一跳属性改为自己的地址。
(7) (可选)配置IPv6 Flowspec路由的重定向下一跳属性ID为RFC规定的属性ID,即0x000C。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}redirect ip rfc-compatible
缺省情况下,IPv6 Flowspec路由的重定向下一跳属性ID为0x0800。
(8) (可选)配置Flowspec路由的重定向到VPN Target属性ID为RFC规定的属性ID,即为0x000D。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}redirect rtrfc-compatible
缺省情况下,Flowspec路由的重定向到VPN Target属性ID为0x800B。
(9) (可选)禁止应用Flowspec路由的重定向下一跳动作。
undo peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length] }redirect-nexthop
缺省情况下,允许应用Flowspec路由的重定向下一跳动作。
(10) (可选)配置从指定对等体/对等体组接收到携带Color属性的Flowspec路由后,将符合Flowspec路由规则的流量重定向到与Flowspec路由匹配的SR-MPLS TE Policy或SRv6 TE Policy。
peer{group-name|ipv4-address[mask-length] |ipv6-address[mask-length] }redirect-color[sr-policy]
缺省情况下,Flowspec路由携带了Color属性时,如果Flowspec路由的下一跳地址是IPv4地址,仅将Flowspec路由与SR-MPLS TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SR-MPLS TE Policy;如果Flowspec路由的下一跳地址是IPv6地址,仅将Flowspec路由与SRv6 TE Policy进行匹配,匹配成功则符合该Flowspec路由匹配规则的流量重定向到该SRv6 TE Policy。
目前,设备暂不支持SR-MPLS TE Policy。
(1) 进入系统视图。
system-view
(2) 请依次执行以下命令进入BGP VPNv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-family vpnv6 flowspec
(3) 允许BGP Flowspec邻居间交换路由信息。
peer{group-name|ipv4-address[mask-length]|ipv6-address[mask-length] }enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(4) (可选)配置向EBGP对等体发送VPNv6 Flowspec路由时不改变下一跳地址。
peer{group-name|ipv4-address[mask-length]|ipv6-address[mask-length] }next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布VPNv6 Flowspec路由时会将下一跳属性改为自己的地址。
(5) (可选)配置IPv6 Flowspec路由的重定向下一跳属性ID为RFC规定的属性ID,即0x000C。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}redirect ip rfc-compatible
缺省情况下,IPv6 Flowspec路由的重定向下一跳属性ID为0x0800。
(6) (可选)配置IPv6 Flowspec路由的重定向到VPN Target属性ID为RFC规定的属性ID,即0x000D。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}redirect rtrfc-compatible
缺省情况下,IPv6 Flowspec路由的重定向到VPN Target属性ID为0x800B。
(1) 进入系统视图
system-view
(2) 进入BGP IPv6 Flowspec地址族视图、BGP-VPN IPv6 Flowspec地址族视图或BGP VPNv6 Flowspec地址族视图。
¡请依次执行以下命令进入BGP IPv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-familyipv6flowspec
¡请依次执行以下命令进入BGP-VPN IPv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
ip vpn-instancevpn-instance-name
address-family ipv6 flowspec
¡请依次执行以下命令进入BGP VPNv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-familyvpnv6flowspec
(3) 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。
peer{group-name|ipv4-address[mask-length] |ipv6-address[prefix-length]}reflect-client
缺省情况下,未配置路由反射器及其客户机。
(4) (可选)配置不对接收到的VPNv6 Flowspec路由进行Route Target过滤。
undo policy vpn-target
缺省情况下,对接收到的VPNv6 Flowspec路由进行Route Target过滤,即只将Export Route Target属性与本地Import Route Target属性匹配的VPNv6 Flowspec路由加入到路由表。
本命令仅支持在BGP VPNv6 Flowspec地址族视图执行。
(5) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(6) (可选)配置路由反射器的集群ID。
reflector cluster-id{cluster-id|ipv4-address}
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
执行本配置后,BGP将会优选从本配置指定的对等体/对等体组学习到的路由。该选路规则应用于“依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由”之后,“优选IGP Metric值最小的路由”之前。有关BGP选路规则的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6 Flowspec地址族视图、BGP-VPN IPv6 Flowspec地址族视图或BGP VPNv6 Flowspec地址族视图。
¡请依次执行以下命令进入BGP IPv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-family ipv6flowspec
¡请依次执行以下命令进入BGP-VPN IPv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
ip vpn-instancevpn-instance-name
address-family ipv6 flowspec
¡请依次执行以下命令进入BGP VPNv6 Flowspec地址族视图。
bgpas-number[instanceinstance-name]
address-family vpnv6flowspec
(3) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer{group-name|ipv4-address[mask-length]|ipv6-address[prefix-length]}high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
可在任意视图下执行以下命令,显示Flowspec边界路由器上Flowspec路由的运行信息。
display flow-route{{ipv4|ipv6}all|flow-route-id}[slotslot-number]
display flow-route{{ipv4|ipv6}[vpn-instance vpn-instance-name]|flow-route-id}[slot slot-number]
可在任意视图下执行以下命令:
·显示IPv4 BGP Flowspec对等体信息。
display bgp[instanceinstance-name]peer ipv4 flowspec[vpn-instancevpn-instance-name][ipv4-address mask-length|ipv6-address prefix-length|{ipv4-address|ipv6-address|group-namegroup-name}log-info|[ipv4-address|ipv6-address]verbose]
·显示BGP IPv6 Flowspec对等体信息。
display bgp[instanceinstance-name]peer ipv6 flowspec[vpn-instancevpn-instance-name]][ipv4-address mask-length|ipv6-address prefix-length|{ipv4-address|ipv6-address|group-namegroup-name}log-info|[ipv4-address|ipv6-address]verbose]
·显示BGP VPNv4 Flowspec对等体信息。
display bgp[instanceinstance-name]peer vpnv4 flowspec[ipv4-address mask-length|ipv6-address prefix-length|{ipv4-address|ipv6-address|group-namegroup-name}log-info|[ipv4-address|ipv6-address]verbose]
·显示BGP VPNv6 Flowspec对等体信息。
display bgp[instanceinstance-name]peer vpnv6 flowspec[ipv4-address mask-length|ipv6-address prefix-length|{ipv4-address|ipv6-address|group-namegroup-name}log-info|[ipv4-address|ipv6-address]verbose]
·显示BGP IPv4 Flowspec对等体组的信息。
display bgp[instanceinstance-name]group ipv4flowspec[vpn-instancevpn-instance-name][group-namegroup-name]
·显示BGP IPv6 Flowspec对等体组的信息。
display bgp[instanceinstance-name]group ipv6flowspec[vpn-instancevpn-instance-name][group-namegroup-name]
·显示BGP VPNv4 Flowspec对等体组的信息。
display bgp[instanceinstance-name]group vpnv4flowspec[vpn-instancevpn-instance-name][group-namegroup-name]
·显示BGP VPNv6 Flowspec对等体组的信息。
display bgp[instanceinstance-name]group vpnv6flowspec[vpn-instancevpn-instance-name][group-namegroup-name]
可在任意视图下执行以下命令:
·显示BGP IPv4 Flowspec路由信息。
display bgp[instanceinstance-name]routing-table ipv4flowspec[vpn-instancevpn-instance-name][flowspec-prefix[advertise-info|as-path|cluster-list|ext-community]|statistics]
display bgp[instanceinstance-name]routing-table ipv4flowspec[vpn-instancevpn-instance-name]peer{ipv4-address|ipv6-address} {advertised-routes|received-routes}[flowspec-prefix|statistics]
display bgp[instanceinstance-name]routing-table ipv4flowspec[vpn-instancevpn-instance-name] [statistics]ext-community[colorcolor|rtroute-target]&<1-32> [whole-match]
·显示BGP IPv6 Flowspec路由信息。
display bgp[instanceinstance-name]routing-table ipv6 flowspec[vpn-instancevpn-instance-name][flowspec-prefix[advertise-info|as-path|cluster-list|ext-community]|statistics]
display bgp[instanceinstance-name]routing-table ipv6 flowspec[vpn-instancevpn-instance-name]peer{ipv4-address|ipv6-address}{advertised-routes|received-routes}[flowspec-prefix|statistics]]
display bgp[instanceinstance-name]routing-table ipv6flowspec[vpn-instancevpn-instance-name] [statistics]ext-community[colorcolor|rtroute-target]&<1-32> [whole-match]
·显示BGP VPNv4 Flowspec路由信息。
display bgp[instanceinstance-name]routing-table vpnv4 flowspec[peer{ipv4-address|ipv6-address}{advertised-routes|received-routes}[flowspec-prefix|statistics]|[route-distinguisherroute-distinguisher][flowspec-prefix[advertise-info|as-path|cluster-list|ext-community]]|statistics]
display bgp[instanceinstance-name]routing-table vpnv4 flowspec[route-distinguisherroute-distinguisher] [statistics]ext-community[colorcolor|rtroute-target]&<1-32> [whole-match]
·显示BGP VPNv6 Flowspec路由信息。
display bgp[instanceinstance-name]routing-table vpnv6 flowspec[peer{ipv4-address|ipv6-address}{advertised-routes|received-routes}[flowspec-prefix|statistics]|[route-distinguisherroute-distinguisher][flowspec-prefix[advertise-info|as-path|cluster-list|ext-community]]|statistics]
display bgp[instanceinstance-name]routing-table vpnv6 flowspec[route-distinguisherroute-distinguisher] [statistics]ext-community[colorcolor|rtroute-target]&<1-32> [whole-match]
可在任意视图下执行以下命令:
·显示BGP IPv4 Flowspec地址族下打包组的相关信息。
display bgp[instanceinstance-name]update-group ipv4 flowspec[ipv4-address|ipv6-address]
·显示BGP IPv6 Flowspec地址族下打包组的相关信息。
display bgp[instanceinstance-name]update-group ipv6 flowspec[ipv4-address|ipv6-address]
·显示BGP VPNv4 Flowspec地址族下打包组的相关信息。
display bgp[instanceinstance-name]update-group vpnv4flowspec[ipv4-address|ipv6-address]
·显示BGP VPNv6 Flowspec地址族下打包组的相关信息。
display bgp[instanceinstance-name]update-group vpnv6flowspec[ipv4-address|ipv6-address]
请在用户视图下执行以下命令:
·手工对IPv4 Flowspec地址族下的BGP会话进行软复位。
refresh bgp[instanceinstance-name]{ipv4-address[mask-length]|ipv6-address[prefix-length]|all|external|groupgroup-name|internal}{export|import}ipv4 flowspec
·手工对IPv6 Flowspec地址族下的BGP会话进行软复位。
refresh bgp[instanceinstance-name]{ipv4-address[mask-length]|ipv6-address[prefix-length]|all|external|groupgroup-name|internal}{export|import}ipv6flowspec
·手工对VPNv4 Flowspec地址族下的BGP会话进行软复位。
refresh bgp[instanceinstance-name]{ipv4-address[mask-length]|ipv6-address[prefix-length] |all|external|groupgroup-name|internal}{export|import}vpnv4flowspec
·手工对VPNv6 Flowspec地址族下的BGP会话进行软复位。
refresh bgp[instanceinstance-name]{ipv4-address[mask-length]|ipv6-address[prefix-length]|all|external|groupgroup-name|internal}{export|import}vpnv6 flowspec
请在用户视图下执行以下命令:
·复位BGP IPv4 Flowspec地址族下的BGP会话。
reset bgp[instanceinstance-name]{as-number|ipv4-address[mask-length]|ipv6-address[prefix-length]|all|external|groupgroup-name|internal}ipv4 flowspec[vpn-instancevpn-instance-name]
·复位BGP IPv6 Flowspec地址族下的BGP会话。
reset bgp[instanceinstance-name]{as-number|ipv4-address[mask-length]|ipv6-address[prefix-length]|all|external|groupgroup-name|internal}ipv6flowspec[vpn-instancevpn-instance-name]
·复位BGP VPNv4 Flowspec地址族下的BGP会话。
reset bgp[instanceinstance-name]{as-number|ipv4-address[mask-length]|ipv6-address[prefix-length]|all|external|internal|groupgroup-name}vpnv4 flowspec
·复位BGP VPNv6 Flowspec地址族下的BGP会话。
reset bgp[instanceinstance-name]{as-number|ipv4-address[mask-length]|ipv6-address[prefix-length]|all|external|internal|groupgroup-name}vpnv6 flowspec
请在用户视图下执行以下命令:
·清除IPv4 Flowspec路由的统计信息。
reset flow-route statisticsipv4[all|vpn-instancevpn-instance-name]
·清除IPv6 Flowspec路由的统计信息。
reset flow-route statistics ipv6[all|vpn-instancevpn-instance-name]
·清除全部Flowspec路由的统计信息。
reset flow-route statistics all
·清除指定的Flowspec路由的统计信息。
reset flow-route statisticsflow-route-id
如图1-2所示,所有路由器均运行BGP协议。Device A作为Flowspec控制器,配置了Flowspec路由,Device B作为Flowspec客户端,通过BGP协议接收并应用Device A发送的Flowspec路由。现要求对BGP网络中PE设备收到的目的地址为1.1.1.0/24和端口号为10的报文进行限速处理,降低这些报文占用的带宽资源。
图1-2 Flowspec基本组网图
(1) 配置各接口的IP地址(略)
(2) 配置Device A
# 配置BGP连接。
[DeviceA]bgp 100
[DeviceA-bgp-default]peer 10.1.1.2 as-number 200
[DeviceA-bgp-default]address-family ipv4 flowspec
[DeviceA-bgp-default-flowspec-ipv4]peer 10.1.1.2 enable
[DeviceA-bgp-default-flowspec-ipv4]peer 10.1.1.2 validation-disable
[DeviceA-bgp-flowspec-ipv4]quit
[DeviceA-bgp-default]quit
# 配置Flowspec路由。
[DeviceA]flow-route route1
[DeviceA-flow-route-route1]if-match destination-ip 1.1.1.0 24
[DeviceA-flow-route-route1]if-match destination-port 10
[DeviceA-flow-route-route1]apply traffic-rate 20
[DeviceA-flow-route-route1]check flow-route-configuration
Traffic filtering rules:
Destination ip : 1.1.1.0 255.255.255.0
Destination port : 10
Traffic filtering actions:
Traffic rate : 20(kbps)
[DeviceA-flow-route-route1]commit
[DeviceA-flow-route-route1]quit
# 为公网Flowspec IPv4地址族指定路由。
[DeviceA]flowspec
[DeviceA-flowspec]address-family ipv4
[DeviceA-flowspec-ipv4]flow-route route1
[DeviceA-flowspec-ipv4]quit
(3) 配置Route B
# 配置BGP连接。
[DeviceB]bgp 200
[DeviceB-bgp-default]peer 10.1.1.1 as-number 100
[DeviceB-bgp-default]address-family ipv4 flowspec
[DeviceB-bgp-default-flowspec-ipv4]peer 10.1.1.1 enable
[DeviceB-bgp-default-flowspec-ipv4]peer 10.1.1.1 validation-disable
[DeviceB-bgp-default-flowspec-ipv4]quit
[DeviceB-bgp-default]quit
# 查看Device A的BGP IPv4 Flowspec对等体状态。
[DeviceA]display bgp peer ipv4 flowspec
BGP local router ID: 192.168.150.1
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
*- Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10.1.1.2 200 10 12 0 0 00:06:40 Established
# 查看Device B的BGP IPv4 Flowspec对等体连接状态。
[DeviceB]display bgp peer ipv4 flowspec
BGP local router ID: 192.168.150.2
Local AS number: 200
Total number of peers: 1 Peers in established state: 1
*- Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10.1.1.1 100 10 12 0 0 00:06:40 Established
# 查看Device B收到的Flowspec路由策略。
[DeviceB]display bgp routing-table ipv4 flowspec
Total number of routes: 1
BGP local router ID is 192.168.150.2
Status codes:*- valid, > - best, d - dampened, h - history
s - suppressed, S - stale, i - internal, e - external
a - additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*>e DEST:1.1.1.0/24/40
0.0.0.0 100 0 ?
# 查看Device B上Flowspec路由的运行信息。
Total number of flow-routes: 1
Flow-Route (ID 0x0)
BGP instance : default
Traffic filtering rules:
Destination IP : 1.1.1.0 255.255.255.0
Destination port : 10
Traffic filtering actions:
Traffic rate : 20(kbps)
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!