05-Flowspec配置
本章节下载: 05-Flowspec配置 (181.40 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 NLRI(Network Layer Reachability Information,网络层可达性信息),即Flowspec路由。通过Flowspec IPv4地址族和Flowspec VPNv4 地址族,Flowspec可以将携带匹配规则和流量动作的Flowspec路由在公网和VPN实例中进行传播。
如图1-1所示,通过BGP路由更新的形式,Flowspec路由器向Flowspec边界路由器发布Flowspec路由,Flowspec边界路由器收到Flowspec路由后,将Flowspec路由中的匹配规则和流量动作应用到设备的转发平面,从而对进入设备的流量采取适当的流量动作。Flowspec路由同样也支持跨AS传输,从而实现在最接近攻击源的设备上对攻击流量进行管控,这样能够最大程度地减少攻击流量对网络转发性能的影响。
Flowspec配置任务如下:
(1) 创建并激活Flowspec路由
需要在Flowspec路由器上创建并激活Flowspec路由。
(2) 应用Flowspec路由
需要在Flowspec路由器上应用Flowspec路由。
需要在Flowspec路由器和Flowspec边界路由器上配置BGP发布Flowspec路由。
配置Flowspec前,需要在Flowspec路由器和Flowspec边界路由器上配置BGP基本功能,具体配置请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 创建Flowspec路由。
flow-route flowroute-name
(3) 定义Flowspec路由的报文匹配规则。
if-match match-criteria
(4) 配置Flowspec路由的流量动作。
apply action
(5) (可选)检查Flowspec路由下未生效的匹配规则及流量动作。
check flow-route-configuration
(6) 激活Flowspec路由中的匹配规则及流量动作。
commit
缺省情况下,Flowspec路由下配置的匹配规则及流量动作未生效。
(1) 进入系统视图。
system-view
(2) 进入Flowspec视图。
flowspec
(3) 创建Flowspec IPv4地址族。
address-family ipv4
(4) 应用已创建的Flowspec路由。
flow-route flowroute-name
缺省情况下,公网中未应用Flowspec路由。
(1) 进入系统视图。
system-view
(2) 配置VPN实例。
a. 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
b. 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
c. 配置VPN实例的RT。
vpn-target { vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] | auto }
缺省情况下,未配置VPN实例的Route Target。
关于ip vpn-instance、route-distinguisher和vpn-target命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(3) 进入IPv4 Flowspec VPN地址族视图。
address-family ipv4 flowspec
(4) 配置VPN实例下IPv4 Flowspec VPN的VPN target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例下IPv4 Flowspec VPN的VPN target。
IPv4 Flowspec VPN的VPN target必须与之前配置的VPN实例的Route target保持一致。
(5) 依次执行以下命令退回系统视图。
a. quit
b. quit
(6) 进入Flowspec视图。
flowspec
(7) 创建Flowspec IPv4 VPN实例地址族并关联已创建的VPN实例。
address-family ipv4 vpn-instance vpn-instance-name
(8) 应用已创建的Flowspec路由。
flow-route flowroute-name
缺省情况下,VPN实例中未应用Flowspec路由。
关于bgp和peer enable命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP命令”。
设备接收到公网Flowspec路由后,缺省会对来自BGP Flowspec邻居的Flowspec路由及路由重定向下一跳的合法性进行验证。
· Flowspec路由合法指的是:
¡ Flowspec路由携带了匹配目的地址的规则。
¡ BGP Flowspec邻居存在匹配规则中目的地址为目的地址的BGP路由。
在不关注Flowspec路由的合法性的情况下,可以关闭本功能,BGP Flowspec邻居收到Flowspec路由后,不进行合法性验证执行该匹配规则对应的流量动作。
· Flowspec路由的重定向下一跳合法指的是:
¡ BGP Flowspec邻居上存在重定向到下一跳地址的BGP路由。
¡ 下一跳的地址与BGP Flowspec邻居在同一AS。
在不关注Flowspec路由重定向下一跳的合法性的情况下,可以关闭本功能,BGP Flowspec邻居收到Flowspec路由后,不进行合法性验证执行重定向动作。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ] [ multi-session-thread ]
(3) 创建BGP IPv4 Flowspec地址族。
address-family ipv4 flowspec
(4) 允许BGP Flowspec邻居间交换路由信息。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(5) (可选)关闭对来自BGP Flowspec邻居的Flowspec路由的合法性验证功能。
peer { group-name | ip-address [ mask-length ] } validation-disable
缺省情况下,对来自BGP Flowspec邻居的Flowspec路由进行合法性验证,通过合法性验证后才会执行Flowspec路由中的流量动作。
(6) (可选)关闭对来自BGP Flowspec邻居的Flowspec路由的重定向下一跳合法性验证功能。
peer { group-name | ip-address [ mask-length ] } validation-redirect-disable
缺省情况下,对来自EBGP Flowspec邻居的Flowspec路由进行重定向下一跳合法性验证,通过合法性检验后才会执行Flowspec路由中的重定向动作。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ] [ multi-session-thread ]
(3) 创建BGP VPNv4 Flowspec地址族。
address-family vpnv4 flowspec
(4) 允许BGP Flowspec邻居间交换路由信息。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
在任意视图下执行display命令可以显示Flowspec在BGP网络中的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset、refresh命令可以复位BGP Flowspec地址族下的BGP会话。
关于Flowspec显示和维护命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP命令”。
表1-1 Flowspec显示和维护
操作 |
命令 |
|
BGP Flowspec对等体信息 |
display bgp [ instance instance-name ] peer ipv4 flowspec [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
|
显示BGP VPNv4 Flowspec对等体信息 |
display bgp [ instance instance-name ] peer vpnv4 flowspec [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
|
显示BGP IPv4 Flowspec路由信息 |
display bgp [ instance instance-name ] routing-table ipv4 flowspec [ vpn-instance vpn-instance-name ] [ flowspec-prefix [ advertise-info ] | statistics ] display bgp [ instance instance-name ] routing-table ipv4 flowspec peer ipv4-address { advertised-routes | received-routes } [ flowspec-prefix | statistics ] |
|
显示BGP VPNv4 Flowspec信息 |
display bgp [ instance instance-name ] routing-table vpnv4 flowspec [ peer ipv4-address { advertised-routes | received-routes } [ flowspec-prefix | statistics ] | [ route-distinguisher route-distinguisher ] [ flowspec-prefix [ advertise-info ] ] | statistics ] |
|
显示BGP IPv4 Flowspec地址族下打包组的相关信息 |
display bgp [ instance instance-name ] update-group ipv4 flowspec [ ipv4-address ] |
|
显示BGP VPNv4 Flowspec地址族下打包组的相关信息 |
display bgp [ instance instance-name ] update-group vpnv4 flowspec [ ipv4-address ] |
|
显示Flowspec边界路由器上Flowspec路由的运行信息 |
display flow-route { all | flow-route-id | [ instance instance-name ] [ ip [ vpn-instance vpn-instance-name ] ] } [ chassis chassis-number slot slot-number[ cpu cpu-number ] ] |
|
手工对BGP会话进行软复位 |
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } ipv4 flowspec |
|
手工对VPNv4地址族下的BGP会话进行软复位 |
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } vpnv4 [ vpn-instance vpn-instance-name ] |
|
复位BGP IPv4 Flowspec地址族下的BGP会话 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } ipv4 flowspec |
|
复位BGP VPNv4 Flowspec地址族下的BGP会话 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | internal | group group-name } vpnv4 flowspec |
|
如图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> system-view
[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
[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> system-view
[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路由的运行信息。
<DeviceB> display flow-route all
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
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!