01-服务链配置
本章节下载: 01-服务链配置 (358.03 KB)
目 录
服务链(Service Chain)是一种引导网络业务报文按次序通过服务节点(Service Node)的转发技术,它结合SDN(Software Defined Network,软件定义网络)来实现业务编排,引导网络业务报文按照要求的顺序通过服务节点进行处理和转发。
根据服务链应用的位置和对象的不同,可以将服务链分为设备内服务链和设备间服务链。
设备内服务链作用于不同业务板上的IP报文。设备根据引流规则确定是否将IP报文引入到服务链进行处理。引流规则由入接口和ACL规则决定,只有指定接口上收到的匹配指定ACL规则的报文,才会进入服务链处理。
设备内服务链中的服务节点是设备上处理某种业务的业务板,一条服务链上可以存在多个服务节点,每个服务节点都有一个唯一的编号。如图1-1所示的网络模型中,经过设备的IP报文被依次引到异常流量清洗和防火墙服务节点上进行处理。
每个服务节点根据服务类型和负载分担组的配置对报文进行处理。
· 服务类型:包括异常流量清洗和防火墙服务。
· 负载分担组:一组处理某服务类型的业务板,用于实现业务处理的负载分担。设备的主控板上根据业务板的类型预定义了多种负载分担组,当业务板启动后,主控板根据业务板的类型将其加入到对应的负载分担组。
设备内服务链对IP报文的处理流程如下:
(1) 匹配引流规则
一旦报文匹配上一个服务链的引流规则,则进入该服务链处理,不再匹配其它服务链。若报文未匹配上任何一个服务链,则进行正常的IP转发。
· 对本机转发的报文,设备根据引流规则中的入接口和ACL规则进行匹配。
¡ 对入接口接收的报文:按照服务链的配置先后顺序,依次与各服务链的引流规则中的ACL规则进行匹配,匹配上的报文称为正向报文。
¡ 对非入接口接收的报文:按照服务链编号从小到大的顺序,依次与各服务链的引流规则中的ACL规则进行反向匹配,即将报文的源/目的IP地址分别与ACL规则中的目的/源IP地址进行匹配,匹配上的报文称为反向报文。
· 对于本机始发的报文,设备进行正常的IP转发,不进行设备内服务链匹配。
(2) 服务链处理
进入服务链的报文将依次进行服务节点的处理,所有服务节点处理完成后,继续进行IP转发。
· 正向报文按照服务节点的编号从小到大依次处理;
· 反向报文按照服务节点的编号从大到小依次处理。
设备间服务链作用于VXLAN报文,由VCF控制器基于不同的租户应用,通过OpenFlow下发引流规则来控制Overlay网络中的VXLAN报文是否进入服务链处理,并确保报文在服务链内各个节点间传递。
有关VXLAN的详细介绍,请参见“VXLAN配置指导”中的“VXLAN”。有关VCF控制器下发引流规则的配置,请参见VCF控制器配套的手册。
对于支持Context功能的设备,应用于不同用户Context的服务链,属于设备间服务链。
如图1-2示,VCFC(VCF Controller,VCF控制器)基于不同的租户应用,通过OpenFlow下发引流规则来控制Overlay网络中的VXLAN报文是否进入服务链处理,并确保报文在服务链内各个节点间传递。
接入点是VXLAN网络的边缘设备VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)。由它根据VCFC下发的引流规则对报文进行处理。
设备间服务链中的服务节点是网络中处理某种业务的设备,可以是物理设备,也可以是NFV(Network Function Virtualisation,网络功能虚拟化)设备。一条服务链上可以存在多个服务节点。各服务节点根据服务列表指定的服务类型对报文进行处理。
服务列表用于指定服务的类型及处理顺序,目前支持的服务类型包括防火墙、LB、ACG、DPI、IPS、IPsec、攻击检测与防范、连接数限制和NAT。
服务节点包含两种特殊的节点类型:
· 首节点:服务链中首个对报文进行处理的服务节点。
· 尾节点:服务链中最后一个对报文进行处理的服务节点。
服务链报文采用VXLAN封装,并在VXLAN报文头中标识服务链信息,如图1-3所示。
图1-3 携带服务链信息的VXLAN报文格式示意图
在VXLAN报文头中,以下两个字段用于标识报文所使用的服务链:
· 标记位:“S”位为1时,表示VXLAN头中的Service Chain字段有效;为0,表示Service Chain字段无效。
· Service Chain:长度为24比特,由方向标记位D和Service Path ID两部分组成。“D”位为0时,表示正向报文;为1时,表示反向报文。Service Path ID长度为23比特,用来标识一个服务链。
服务链的工作原理大致如下:
(1) 报文入方向的接入点根据VCFC下发的引流规则将报文进行VXLAN封装,然后发送给服务链的首节点。
(2) 服务链的首节点收到VXLAN报文后,根据报文头中的Service Path ID字段在本地查找匹配的服务链。
¡ 如果本地没有匹配的服务链,则该报文进行正常的VXLAN转发。
¡ 如果本地存在匹配的服务链,则该报文进入服务节点处理。
(3) 服务节点完成处理后:
¡ 如果该服务链配置了下一跳地址,则报文转发给下一个服务节点处理。
¡ 如果该服务链没有配置下一跳地址,则该节点作为服务链的尾节点,删除VXLAN报文中的Service Path ID字段,并将报文转发给报文出方向的接入点。
(4) 报文出方向的接入点对VXLAN报文进行解封装,并进行IP转发。
服务链功能仅支持在用户Context下使用,不支持在管理Context下使用。
· 同一个负载分担组只能加入一条服务链。
· 同一条服务链上的业务板卡必须属于同一个安全引擎组。有关安全引擎组的详细介绍,请参见“虚拟化技术配置指导”中的“Context”。
· 异常流量清洗业务负载分担组必须在编号为1服务节点下配置,防火墙业务负载分担组必须在编号为2的服务节点下配置。
· 设备内服务链中的异常流量清洗业务板卡不具备二三层转发功能。
(1) 进入系统视图。
system-view
(2) 创建服务链,并进入服务链视图。
service-chain path path-id
(3) 配置设备内服务链引流规则。
if-match input-interface interface-type interface-number acl { ipv4-acl-number | name ipv4-acl-name }
缺省情况下,未配置本机转发报文的引流规则。
仅IPv4报文需要配置本命令。
(4) 创建服务节点,并进入服务节点视图。
service function function-id
(5) 配置服务节点的负载分担组。
blade-load-balance-team team-name
缺省情况下,未配置服务节点的负载分担组。
服务链可以通过VCFC和命令行两种方式进行配置,建议采用VCFC通过NETCONF下发配置的方式。本手册仅介绍命令行的配置方式,通过VCFC配置的详细介绍请参见VCFC配套的手册。
当设备作为接入点时,只能通过VCFC进行配置,具体请参见VCFC配套的手册。
· 如果设备作为服务链的首节点,则仅需要为其指定正向报文的下一个服务节点即可。
· 如果设备作为服务链的尾节点,则仅需要为其指定反向报文的下一个服务节点即可。
(1) 进入系统视图。
system-view
(2) 创建服务链,并进入服务链视图。
service-chain path path-id
(3) 配置正向报文下一个服务节点的IP地址。
next-service-node ip-address
缺省情况下,未配置正向报文下一个服务节点的IP地址。
(4) 配置反向报文下一个服务节点的IP地址。
previous-service-node ip-address
缺省情况下,未配置反向报文下一个服务节点的IP地址。
(5) 创建服务节点,并进入服务节点视图。
service function function-id
(6) 配置服务列表。
service list { acg | atk | connect-limit | dpi | fw | ips | ipsec | lb | nat }*
在完成上述配置后,在任意视图下执行display命令可以显示服务链的配置情况,通过查看显示信息验证配置的效果。
表1-1 服务链显示和维护
操作 |
命令 |
显示设备内服务链的IPv4快速转发表信息 |
(独立运行模式) display service-chain cache ip [ ip-address ] [ slot slot-number cpu cpu-number ] (IRF模式) display service-chain cache ip [ ip-address ] [ chassis chassis-number slot slot-number cpu cpu-number ] |
显示设备内服务链的分片报文快速转发表信息 |
(独立运行模式) display service-chain cache ip fragment [ ip-address ] [ slot slot-number cpu cpu-number ] (IRF模式) display service-chain cache ip fragment [ ip-address ] [ chassis chassis-number slot slot-number cpu cpu-number ] |
显示设备内服务链的IPv6快速转发表信息 |
(独立运行模式) display service-chain cache ipv6 [ ipv6-address ] [ slot slot-number cpu cpu-number ] (IRF模式) display service-chain cache ipv6 [ ipv6-address ] [ chassis chassis-number slot slot-number cpu cpu-number ] |
显示服务链信息 |
display service-chain path { path-id | all } |
显示服务链的统计信息 |
display service-chain statistics |
如图1-4所示,Device上安装有一块异常流量清洗业务板和一块防火墙业务板。通过配置服务链,实现Host发往内网Server的报文需要先经过异常流量清洗业务板的处理,然后再经过防火墙业务板处理。
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/0/1
[Device-GigabitEthernet1/0/1] ip address 2.1.1.2 24
[Device-GigabitEthernet1/0/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 将接口加入安全域
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/0/1
[Device-security-zone-Trust] quit
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/2
[Device-security-zone-Untrust] quit
(3) 配置安全策略
# 配置名称为untrust-trust的安全策略,保证Untrust安全域内的Host可以访问Trust安全域中的Server,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name untrust-trust
[Device-security-policy-ip-1-untrust-trust] source-zone untrust
[Device-security-policy-ip-1-untrust-trust] destination-zone trust
[Device-security-policy-ip-1-untrust-trust] source-ip-host 3.1.1.1
[Device-security-policy-ip-1-untrust-trust] destination-ip-host 2.1.1.1
[Device-security-policy-ip-1-untrust-trust] action pass
[Device-security-policy-ip-1-untrust-trust] quit
[Device-security-policy-ip] quit
(4) 配置服务链功能
# 创建ACL 3000,并配置ACL规则。
[Device] acl advanced 3000
[Device-acl-ipv4-adv-3000] rule permit ip source 3.1.1.1 0.0.0.255 destination 2.1.1.1 0
[Device-acl-ipv4-adv-3000] quit
# 创建服务链,编号为1,并进入服务链视图。
[Device] service-chain path 1
# 配置匹配服务链转发报文的引流规则:报文的入接口为GigabitEthernet1/7/0/2,匹配的ACL为3000。
[Device-spath1] if-match input-interface gigabitethernet 1/7/0/2 acl 3000
# 创建并配置服务节点,1号服务节点的负载分担组必须配置为异常流量清洗业务板,2号服务节点的负载分担组必须配置为防火墙业务板。
[Device-spath1] service function 1
[Device-spath1-func1] blade-load-balance-team AFC
[Device-spath1-func1] quit
[Device-spath1] service function 2
[Device-spath1-func2] blade-load-balance-team Blade4fw
Host A发往Server的报文进入编号为1的服务链进行处理,依次进行异常流量清洗和防火墙业务的处理。
如图1-5所示,Device A和Device C为服务链的接入点,Device B和Device D为服务链的服务节点,通过配置服务链功能,实现内网VM 1至内网VM 2的报文先在Device B上进行防火墙业务处理,然后在Device D上进行LB业务处理。
请配置各设备的IP地址以及设备间的路由,确保网络互通,具体配置步骤略。
(1) Device A和Device C的配置
在VCFC通过OpenFlow为Device A和Device C下发引流规则,使VM 1至VM 2的VXLAN报文增加编号为1的服务链编号。
(2) Device B的配置
a. 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<DeviceB> system-view
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ip address 12.1.1.2 24
[DeviceB-GigabitEthernet1/0/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
b. 将接口加入安全域
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[DeviceB] security-zone name trust
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/1
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/3
[DeviceB-security-zone-Trust] quit
c. 配置静态路由
本举例仅以静态路由方式配置路由信息。实际组网中,请根据具体情况选择相应的路由配置方式。
# 配置静态路由,到达VM 1所在网络的下一跳IP地址为12.1.1.1,具体配置步骤如下。
[DeviceB] ip route-static 1.1.1.0 24 12.1.1.1
d. 配置安全策略
# 配置名称为trust-trust的安全策略,保证VM 1可以访问VM 2,具体配置步骤如下。
[DeviceB] security-policy ip
[DeviceB-security-policy-ip] rule name trust-trust
[DeviceB-security-policy-ip-1-trust-untrust] source-zone trust
[DeviceB-security-policy-ip-1-trust-untrust] destination-zone trust
[DeviceB-security-policy-ip-1-trust-untrust] source-ip-subnet 1.1.1.0 24
[DeviceB-security-policy-ip-1-trust-untrust] destination-ip-subnet 2.2.2.0 24
[DeviceB-security-policy-ip-1-trust-untrust] action pass
[DeviceB-security-policy-ip-1-trust-untrust] quit
[DeviceB-security-policy-ip] quit
e. 配置服务链功能
# 创建服务链,编号为1,并进入服务链视图。
[DeviceB] service-chain path 1
# 指定报文下一跳地址为Device D的LoopBack接口地址20.1.1.1,且LoopBack接口为VXLAN隧道的源接口。
[DeviceB-spath1] next-service-node 20.1.1.1
# 创建并配置服务节点1,并指定服务列表中包含业务类型为防火墙。
[DeviceB-spath1] service function 1
[DeviceB-spath1-func1] service list fw
(3) Device D的配置
a. 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<DeviceD> system-view
[DeviceD] interface gigabitethernet 1/0/2
[DeviceD-GigabitEthernet1/0/2] ip address 14.1.1.2 24
[DeviceD-GigabitEthernet1/0/2] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
b. 将接口加入安全域
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[DeviceD] security-zone name trust
[DeviceD-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceD-security-zone-Trust] import interface gigabitethernet 1/0/3
[DeviceD-security-zone-Trust] quit
c. 配置静态路由
本举例仅以静态路由方式配置路由信息。实际组网中,请根据具体情况选择相应的路由配置方式。
# 配置静态路由,到达VM 2所在网络的下一跳IP地址为14.1.1.1,具体配置步骤如下。
[DeviceD] ip route-static 2.2.2.0 24 14.1.1.1
d. 配置安全策略
# 配置名称为trust-trust的安全策略,保证VM 1可以访问VM 2,具体配置步骤如下。
[DeviceD] security-policy ip
[DeviceD-security-policy-ip] rule name trust-trust
[DeviceD-security-policy-ip-1-trust-untrust] source-zone trust
[DeviceD-security-policy-ip-1-trust-untrust] destination-zone trust
[DeviceD-security-policy-ip-1-trust-untrust] source-ip-subnet 1.1.1.0 24
[DeviceD-security-policy-ip-1-trust-untrust] destination-ip-subnet 2.2.2.0 24
[DeviceD-security-policy-ip-1-trust-untrust] action pass
[DeviceD-security-policy-ip-1-trust-untrust] quit
[DeviceD-security-policy-ip] quit
e. 配置服务链功能
# 创建服务链,编号为1,并进入服务链视图。
[DeviceD] service-chain path 1
# 指定反向报文的下一跳地址为Device B的LoopBack接口地址20.1.1.2,且LoopBack接口为VXLAN隧道的源接口。
[DeviceD-spath1] previous-service-node 20.1.1.2
# 创建并配置服务节点1,并指定服务列表中包含业务类型为LB。
[DeviceD-spath1] service function 1
[DeviceD-spath1-func1] service list lb
VM 1发往VM 2的报文进入编号为1的服务链进行处理,依次进行防火墙和LB业务的处理。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!