01-DDC配置
本章节下载: 01-DDC配置 (561.16 KB)
目 录
随着网络技术的不断更迭,网络设备的尺寸规格和结构的复杂程度也在日益增加。以框式数据中心交换机为例,近年来大数据、AI等业务不断发展,引发数据中心网络的流量快速增长。为了应对此变化,数据中心框式交换机也需要不断提升交换能力,通常的做法的是更换更高速率的接口板卡,以及增加更多的接口板,这样势必导致单台设备的物理体积越来越大,功耗也越来越高。并且因此带来的控制参数增多、内部交互流程变复杂,也会造成不同模块功能间发生耦合效应。以上多种因素导致了传统框式交换机性能容易遇到瓶颈、管理控制复杂以及不易进行扩展的问题。
DDC(Diversified Dynamic-Connectivity,多元动态联接)技术就是为了解决传统框式交换机弊病而生的一种全新网络架构探索方向。DDC技术将传统框式交换机的各个组件解耦为了多个独立的盒式交换机,通过盒式交换机构建路由交换系统,以提供与传统框式交换机类似的功能。这些盒式交换机承担了原本框式交换机不同类型的板卡的功能,但无需部署在同一个机框中,因此拥有更好的功耗控制、可靠性、部署灵活性、可扩展性,以及更低的制造难度。
DDC网络中包含两种类型的盒式设备:
· NCF(Network Connectivity Fabric,网络交换单元):类似框式交换机中的交换网板,如果报文的入接口和出接口分布在不同的NCP,则需要通过NCF中转。NCF上无传统
· NCP(Network Connectivity Processor,网络处理单元):类似框式交换机中的接口板,负责报文转发。NCP上的业务接口用来连接内网和外网,是整个DDC网络对外输入、输出的接口。
图1-1 DDC物理架构
如图1-2所示,DDC网络内部使用SFI(SerDes Framer Interface)接口来进行互联互通,而不是传统业务接口。NCP则使用业务接口来连接外部服务器。网络管理员在部署DDC网络时,需要为每台设备配置唯一的成员编号(slot-number),该编号使用MOD-ID进行唯一标识。每个NCP都要通过SFI接口直连到NCF,根据网络规模,建议NCP与NCF(每台NCF可以插4张子卡,每张子卡32个口,每台NCF总共128个SFI端口)按照6:1比例组网。
图1-2 DDC连接拓扑
如图1-3所示,DDC网络的数据转发架构可以在高速转发的网络中提供冗余链路且实现无阻塞交换的能力,且具有如下优势:
· 成本降低:整个架构都由小规模设备组成,无超高性能要求的设备。
· 便于扩展:当交换性能不足时,只需要增加对应节点的盒式设备数量即可提升整个架构的能力。
· 避免带宽浪费:NCP之间存在多条等价路径可以形成负载分担,且独特的信元交换机制和VOQ技术可以帮助流量进行更均衡地负载分担并避免拥塞。
· 流量路径短:网络架构扁平化,NCP之间的流量转发跳数少。
图1-3 DDC网络架构
如图1-4所示,在DDC组网中,跨NCP的流量,会在入口NCP处被切分成定长的信元(Cell),信元的数量为NCF的数量,被切分的Cell会被发送给所有NCF,以实现充分利用所有NCP-NCF互联链路带宽资源的负载分担。
流量被切分后,每一段Cell在除了原始报文片段外,还包含了一个Cell封装头,封装头中主要包含如下信息:
· Systemport:由设备成员编号(MODX)和端口编号(PortY)组成,格式为MODXPortY,表示报文需要去往成员编号为X的NCP上的Y号业务接口。该标识作为业务接口在Cell网络中的唯一寻址依据,每个业务接口拥有全局唯一的Systemport-Index。
· 封装索引:设备进行三层Cell转发时,需要在报文中头中额外封装的内容,如目的MAC地址等信息。封装索引在报文入口NCP处被携带,出口NCP根据封装索查找封装信息,并为重组后的报文添加封装进行转发。
· 序列号:由于Cell是被切分后的原始流量,且会通过不同的路径进行负载分担传输,因此Cell的接收方需要在收到流量后对流量进行重组还原。序列号标明了Cell在原始流量中的位置,是Cell被重组还原的依据。
Cell转发仅SFI接口支持,当NCP接入NCF后,NCF能够自动发现NCP设备,获取其MOD-ID并记录连接端口信息,进而在本地生成Cell转发表。该表体现了去往MOD-ID对应的出接口消息,以图1-5所示组网为例,NCF可以生成如表1-1所示的Cell转发表。
图1-5 Cell转发表生成机制
表1-1 NCP上生成的Cell转发表示例
|
MOD(slot信息) |
出接口 |
|
MOD-ID 1 |
Int1 |
|
MOD-ID 2 |
Int2 |
|
MOD-ID 3 |
Int3 |
|
MOD-ID 4 |
Int4 |
VOQ(Virtual Output Queue,虚拟输出队列)技术是一种用于拥塞避免和可靠传输的流量控制技术。VOQ表示虚拟转发队列,是在流量入口NCP处维护的一种报文队列,与其对应的是流量出口NCP的发送队列。
在需要转发跨NCP流量时,流量入口NCP需要向流量出口NCP申请Credit,通知出口NCP有数据要发送。只有出口NCP的出接口有足够的带宽发送数据时,出口NCP才会给入口NCP分配Credit,入口NCP收到Credit后,才会开始将正在VOQ中等待的Cell发送给出口NCP。
上述机制几乎可以避免DDC网络内发生拥塞和处理能力不足导致的丢包,提高了整个网络的可靠性。
图1-6 VOQ技术
NCP在收到Credit后,会在本地生成如表1-2所示的VOQ表,并根据该表将数据发送至出接口队列。
表1-2 NCP上的VOQ表示例
|
Systemport |
出接口 |
|
MOD2Port1 |
VOQ1 |
|
MOD3Port1 |
VOQ2 |
|
MOD4Port1 |
VOQ3 |
当前还可以通过EVPN 101类路由来增强VOQ机制。EVPN 101类路由(VOQ动态发布路由)是一类私有路由,Route Type取值为101。在未支持此类路由之前,DDC网络的VOQ机制在流量入口端会直接为所有VOQ分配队列相关资源,使得流量入口端在收到Credit后可以直接进行转发。在支持此类路由后,流量出口端会将自身流量出接口的队列状态信息携带在EVPN 101类路由中,然后发送给流量入口端。流量入口端不会为VOQ分配队列相关资源,只有收到EVPN 101类路由后,才会为路由信息对应的VOQ分配相关资源,以实现动态资源利用,减少资源压力。
在DDC网络中,IP地址信息以及业务路由通过ARP/NSNA报文和BGP EVPN路由在网络中交互,NCP根据ARP报文和BGP EVPN路由生成FIB表项,将匹配这些表项的报文进行查表转发。
每台NCP存在一个预配置的CPU虚拟接口(OSF接口),所有OSF(Open Scheduled Fabric,开放式调度架构)接口处于同一广播域中。因此在配置IP地址时,各个NCP上的OSF接口也需要配置同一个网段的IP地址,通过一个广播域内的ARP或NS/NA报文交互从而实现互通。
在DDC网络中,只需要在NCP之间建立BGP连接,NCF无需建立BGP连接。且NCP必须使用OSF接口的IP地址建立BGP连接。当前存在两种BGP会话建立方案:
· NCP两两之间建立full-mesh BGP连接。此方案的优势是提高了DDC网络的可靠性,单点设备故障不影响整个DDC系统的业务,但缺点是配置量随着NCP节点增多而呈指数级上涨。
· 部分NCP设备作为RR(Route Reflector,路由反射器),其他NCP设备作为客户机,通过路由反射实现NCP之间的路由互通。此方案的优势是在大规模组网中极大降低了配置量,但缺点是RR故障可能导致大规模业务中断。有关路由反射器的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
当前支持使用IPv4或IPv6地址建立BGP连接。
服务器的各类业务IP主要通过两种路由在NCP之间进行发布:
· BGP EVPN MAC/IP发布路由(二类路由):对于服务器可以主动发送免费ARP报文或通过ARP请求获取IP地址的场景,NCP可以根据ARP报文生成MAC/IP发布路由,通过MAC/IP发布路由发布服务器的业务IP地址及其对应的MAC地址。
· BGP EVPN IP前缀路由(五类路由):NCP可以通过引入其他协议的路由,形成IP前缀路由来发布这些IP地址或网段。
为了适配DDC组网,BGP在隧道封装属性中新增了一类封装类型——OSF封装。OSF封装属性的主要内容包含Systemport-Index以及一些Cell转发相关信息。
携带OSF封装的BGP路由专用于指导Cell转发。在DDC网络中,NCP之间交互的用于指导Cell转发的BGP路由也必须携带OSF封装。
DDC网络同时支持IPv4和IPv6的业务,本章仅以IPv4为例,IPv6的路由发布和报文转发机制几乎相同。区别仅在于IPv4业务交互的是ARP报文,触发生成ARP表项;而IPv6业务交互的是NS/NA报文,触发生成ND表项。而MAC/IP发布路由通过ARP和ND信息均可以生成。
当前存在如下几种机制存在差异的场景。
· 免费ARP报文场景:通过免费ARP报文触发MAC/IP发布路由的生成,接收路由方形成FIB表项。
· ARP请求触发场景:对于不能主动通过免费ARP报文通告MAC地址的主机路由或网段路由,NCP通过IP前缀路由对这些路由进行发布,然后根据数据报文触发ARP请求获得ARP信息,并通过MAC/IP发布路由进行通知。
在发布IP前缀路由时,分为如下两种情况:
· 直连网段路由:即将NCP业务接口直连网段的路由引入BGP EVPN后形成的IP前缀路由。
· 非直连路由:即将NCP业务接口非直连的路由引入BGP EVPN后形成的IP前缀路由。这些路由可以是服务器与NCP非直连接口的IP路由,也可以是服务器引入的路由,从下挂设备学习到的路由等。
上述两种IP前缀路由携带的OSF属性中,Systemport-Index的获取方式不同:
· 通过直连网段路由生成IP前缀路由时,IP前缀路由OSF属性中的Systemport-Index取NCP本地OSF接口的Systemport-Index。
· 通过非直连路由生成IP前缀路由时,IP前缀路由OSF属性中的Systemport-Index取NCP本地非直连路由出接口的Systemport-Index。
以图1-7所示组网为例,免费ARP报文场景中的路由发布和报文转发具体流程为:
(1) Server 1发送告知自身IP地址1.1.1.1的免费ARP报文给NCP 1。
(2) NCP 1根据免费ARP报文生成MAC/IP发布路由,该路由携带OSF属性,包含的Systemport-Index为收到免费ARP报文的业务接口Int1对应的Systemport-Index。
(3) NCP 1将生成的MAC/IP发布路由发布给NCP 4。
(4) NCP 4根据收到的MAC/IP发布路由,生成去往1.1.1.1/32的FIB表项,在此表项中,去往1.1.1.1的下一跳为OSF属性中的Systemport-Index,即NCP 1上Int1对应的Systemport-Index。在FIB表中还包含封装索引。
(5) NCP 4可以通过BGP连接等方式将1.1.1.1/32路由发布给Server 4,或在Server 4上配置1.1.1.1/32静态路由。
(6) Server 4将发往1.1.1.1的报文发送给NCP 4。
(7) NCP 4收到数据报文后,根据目的地址查询到匹配的FIB表。因此将报文进行分片和添加封装形成Cell后,将Cell发送给FIB下一跳指向的NCP 1 Int 1接口。
Cell要经过NCF的转发才能到达远端NCP。Cell到达NCF时,NCF通过封装头中Systemport-Index表示的MOD-ID信息查询Cell转发表后,决定将报文转发给哪个NCP。
(8) NCP 1收到Cell后,根据序号进行报文重组。然后根据封装索引将报文进行必需的封装(即正常三层转发需要的报文封装)后,从Systemport-Index指定的Int1接口发送给Server 1。
(9) Server 1通过静态路由、BGP连接等方式将本地的网段路由10.1.9.0/24发布给NCP 1。对于NCP 1,该路由是非直连网段路由,且去往该路由目的地址的下一跳为1.1.1.1。
(10) NCP 1根据收到的非直连网段路由生成BGP EVPN IP前缀路由。该路由携带OSF属性,包含的Systemport-Index为收到非直连网段路由接口Int1对应的Systemport-Index。并且IP前缀路由的Gateway属性取值为去往非直连网段路由的下一跳IP地址。然后NCP 1将生成的IP前缀路由通过BGP EVPN连接发布给NCP 4。
(11) NCP 4根据收到的IP前缀路由查找Gateway对应IP地址的FIB表项,找到前面步骤中生成的1.1.1.1/32 FIB表项。然后生成FIB表项,其中去往10.1.9.0/24的下一跳与去往Gateway地址的FIB表项下一跳相同,即也为NCP 1上Int1对应的Systemport-Index。在FIB表中,还包含封装索引。
(12) NCP 4可通过静态路由、BGP连接等方式将网段路由10.1.9.0/24发布给Server 4。
(13) Server 4发送目的地址在10.1.9.0/24网段内的数据报文给NCP 4。
(14) NCP 4收到数据报文后,根据目的地址查找到匹配的FIB表项10.1.9.0/24。因此将报文进行分片和封装形成Cell后,将Cell发送给FIB下一跳指向的NCP 1 Int1接口。
(15) NCP 4收到Cell后,根据序号进行报文重组,并根据封装索引将报文进行必需的封装(即正常三层转发需要的报文封装)后,将报文从Systemport-Index指定的Int1接口发送给Server 1。
图1-7 免费ARP报文场景转发机制
以图1-8所示组网为例,在ARP请求触发场景中,具体的路由生成发布以及指导报文转发的过程如下:
(1) Server 4通过BGP连接等方式将本地与NCP 4的直连网段路由10.1.2.0/24发布给NCP 4。
(2) NCP 4根据直连网段路由10.1.2.0/24生成BGP EVPN IP前缀路由。该路由携带OSF属性,包含的Systemport-Index为自身OSF接口的Systemport-Index。然后NCP 4将生成的IP前缀路由通过BGP EVPN连接发布给NCP 1。
(3) NCP 1根据收到的IP前缀路由生成FIB表项,其中去往10.1.2.0/24的下一跳路由OSF属性的Systemport-Index,即为NCP 4上OSF接口对应的Systemport-Index。在FIB表中,还包含封装索引。
(4) NCP 1可通过静态路由、BGP连接等方式将网段路由10.1.2.0/24发布给Server 1。
(5) Server 1发送目的地址为10.1.2.2的数据报文给NCP 1。
(6) NCP 1根据该目的地址查找到匹配的FIB表项10.1.2.0/24。然后将报文进行分片和封装形成Cell,将Cell发送给Systemport-Index指向的NCP 4上的OSF接口。
(7) NCP 4收到Cell并进行重组后,由于Cell封装中指定Systemport-Index为本地的OSF接口,而不是实际的业务接口,因此报文需要在本地查ARP表转发。此时本地尚未生成10.1.2.2的ARP表项,因此NCP 4通过业务接口向本地服务器发送ARP请求,目标IP地址为10.1.2.2。
(8) Server 4收到ARP请求后,回复ARP应答。
(9) NCP 4根据收到的ARP应答触发生成MAC/IP发布路由,其携带OSF属性,包含的Systemport-Index为收到ARP应答的Int1接口的Systemport-Index。
(10) NCP 4将MAC/IP发布路由通过BGP EVPN连接发布给NCP 1。并且此时由于已经获得了10.1.2.2的ARP信息,将去往目的地址10.1.2.2的数据报文转发给Server 4。
(11) NCP 1收到MAC/IP发布路由后,生成去往10.1.2.2/32的FIB表项,其中去往10.1.2.2/32的下一跳为OSF属性中的Systemport-Index,即为NCP 4上Int1接口对应的Systemport-Index。
(12) Server 1再次发送目的地址为10.1.2.2的数据报文给NCP 1。
(13) NCP 1收到数据报文后,根据目的地址最长匹配查找到FIB表项10.1.2.2/32。因此将报文进行分片和封装形成Cell后,将Cell发送给FIB下一跳指向的NCP 4 Int1接口。
(14) NCP 4收到Cell后,根据序号进行报文重组。由于此次在Cell封装中直接指定了需要转发出去的接口信息,因此NCP 4根据封装索引将报文进行必需的封装(即正常三层转发需要的报文封装)后,将报文从Systemport-Index指定的Int1接口发送给Server 4。
(15) Server 4通过静态路由、BGP连接等方式将本地的网段路由10.1.20.0/24发布给NCP 4。对于NCP 4,该网段路由是非直连网段路由,且去往该路由目的地址的下一跳为10.1.2.2。
(16) NCP 4根据收到的非直连网段路由生成BGP EVPN IP前缀路由。该路由携带OSF属性,包含的Systemport-Index为收到非直连网段路由接口Int1对应的Systemport-Index。并且IP前缀路由的Gateway属性取值为NCP 4去往非直连网段路由下一跳的IP地址10.1.2.2。然后NCP 4将生成的IP前缀路由通过BGP EVPN连接发布给NCP 1。
(17) NCP 1根据收到的IP前缀路由查找Gateway对应IP地址的FIB表项,找到前面步骤中生成的直连IP地址表项。然后生成FIB表项,其中去往10.1.20.0/24的下一跳与FIB表项10.1.2.2/32的下一跳相同,即也为NCP 4上Int1接口对应的Systemport-Index。在FIB表中,还包含封装索引。
(18) NCP 1可通过静态路由、BGP连接等方式将网段路由10.1.20.0/24发布给Server 1。
(19) Server 1发送目的地址在10.1.20.0/24网段内的数据报文给NCP 1。
(20) NCP 1收到数据报文后,根据目的地址匹配查找到FIB表项10.1.20.0/24。因此将报文进行分片和封装形成Cell后,将Cell发送给FIB下一跳指向的NCP 4 Int1接口。
(21) NCP 4收到Cell后,根据序号进行报文重组。由于此次在封装索引中直接指定了需要转发出去的接口信息,因此NCP 4根据封装索引将报文进行必需的封装(即正常三层转发需要的报文封装)后,将报文从Systemport-Index指定的Int1接口发送给Server 4。
图1-8 通过IP前缀路由发布非直连网段路由场景转发机制
如图1-9所示,如需DDC系统与外部设备进行互通,请按照如下规则:
(1) 使用NCP的业务接口与外部设备进行连接。
(2) NCP通过业务接口IP地址与外部设备建立BGP协议获得路由,或通过配置静态路由获得路由。
(3) NCP将从外部获得的路由引入BGP协议,形成OSF封装的EVPN路由传播给DDC网络中的其他NCP。
(4) DDC网络内部的业务路由也通过OSF封装的EVPN路由传播给与外部设备连接的NCP,该NCP将OSF封装的EVPN路由引入到BGP协议的其他路由表中,并发送给外部设备。或者在外部设备上通过配置静态路由获得去往DDC系统的路由。
通过上述步骤实现DDC网络内部和外部的路由互通,报文即沿着路由传播的镜像方向进行转发。
将其他协议路由引入BGP协议的具体操作方法,请参见“生成和发布用于DDC组网的BGP EVPN路由”。
图1-9 DDC系统与外部设备互通
DDC配置任务如下:
(1) 配置NCP和NCF的成员编号
(2) (可选)SFI接口
(3) 配置OSF接口
(4) 建立BGP EVPN会话
(6) (可选)控制BGP EVPN路由的发布
缺省情况下,所有设备的成员编号均为0,需要修改成员编号为组网中的唯一值后,设备才能正常参与数据转发。推荐按照如下取值范围配置设备的成员编号:
· NCP:成员编号设定在0~255。
· NCF:成员编号设定在0~39。
修改成员编号后,重启设备才能生效。
(1) 进入系统视图。
system-view
(2) 修改设备的成员编号。
cloud-cluster member member-id renumber new-member-id
缺省情况下,设备的成员编号为0。
在NCF和NCP之间需要使用物理线缆连接SFI接口。
目前支持三种不同速率的SFI接口:
· 800GE SFI接口:逻辑接口,由八个100GE SFI接口组合而成。每个800GE SFI接口都对应相同主接口编号、拆分接口编号为1~8的八个100GE SFI接口。例如,SFI-EightHundredGigE58/0/1接口对应SFI-HundredGigE58/0/1:1~SFI-HundredGigE58/0/1:8.
· 400GE SFI接口:由800GE SFI接口执行using fourhundredgige命令拆分而成,也是一种逻辑接口。
拆分后,原本的800GE SFI接口不再可用,拆分成相同主接口编号且带拆分接口编号的两个400GE SFI接口。例如,800GE SFI接口SFI-EightHundredGigE58/0/10拆分后,会变为两个400GE SFI接口SFI-FourHundredGigE58/0/10:1~SFI-FourHundredGigE58/0/10:2。
拆分后的接口1对应相同编号的100GE SFI接口1~4,接口2对应相同编号的100GE SFI接口1~4。
拆分后的接口可以通过using fourhundredgige命令进行合并,恢复成800GE SFI接口。合并400GE SFI接口后,400GE SFI拆分接口会被删除。
· 100GE SFI接口:实际的物理接口。
在SFI接口视图下可以通过port ifmonitor命令配置误码检测相关参数,具体的命令配置请参见“可靠性配置指导”中的“误码检测”。
(1) 进入系统视图。
system-view
(2) 进入SFI接口视图。
interface { sfi-eighthundredgige| sfi-fourhundredgige | sfi-hundredgige } interface-number
(3) 将一个800GE SFI接口拆分为两个400GE SFI接口。
using fourhundredgige
缺省情况下,800GE SFI接口作为单个接口使用,未拆分。
仅800GE SFI接口支持本命令。
(4) 将400GE SFI接口合并恢复成800GE SFI接口。
using eighthundredgige
缺省情况下,拆分接口单独使用,不会合并。
仅400GE SFI接口支持本命令。
(5) (可选)配置SFI接口统计报文信息的时间间隔。
flow-interval interval
缺省情况下,接口统计报文信息的时间间隔为300秒。
本命令的详细介绍,请参见“接口管理命令参考”中的“以太网接口”。
(6) (可选)配置接口链路震荡保护功能。
port link-flap protect { disable | enable [ interval interval | threshold threshold ] * }
缺省情况下,未配置接口的链路震荡保护功能,以全局配置的链路震荡保护功能为准。
仅100GE SFI接口支持本命令。
本命令的详细介绍,请参见“接口管理命令参考”中的“以太网接口”。
(7) (可选)开启100GE SFI接口的报文统计功能。
traffic-statistic enable
缺省情况下,100GE SFI接口的报文统计功能处于关闭状态。
仅100GE SFI接口支持本命令。
每台NCP上都仅有一个OSF接口,且编号固定为0/0/0。需要将DDC网络中的所有NCP和NCF的OSF接口IPv4地址或IPv6地址配置在同一个网段内。
(1) 进入系统视图。
system-view
(2) 进入OSF接口视图。
interface osf 0/0/0
(3) 配置OSF接口的IPv4地址或IPv6地址。请至少选择其中一项进行配置。
¡ 配置OSF接口的IPv4地址。
ip address ip-address { mask-length | mask } [ sub ]
缺省情况下,未配置OSF接口的IPv4地址。
本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IP地址”。
¡ 配置OSF接口的IPv6地址。
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } anycast
ipv6 address { ipv6-address [ prefix-length ] | ipv6-address/prefix-length } link-local
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } eui-64
ipv6 address auto
ipv6 address auto link-local
缺省情况下,未配置OSF接口的IPv6地址。
本步骤配置命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”。
(4) (可选)设置当前接口的描述信息。
description text
缺省情况下,接口的描述信息为“接口名 Interface”。
本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共命令”。
(5) (可选)恢复当前接口的缺省配置。
default
本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共命令”。
(6) (可选)在接口未配置IPv4地址时,开启接口的IPv4报文转发功能。
ip forwarding
缺省情况下,在接口未配置IPv4地址时,接口的IPv4报文转发功能处于关闭状态。
本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IP转发基础”。
步骤(2)~(5)、(7)~(10)、(12)~(13)的配置命令详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 为BGP实例配置路由器的Router ID。
router-id router-id
缺省情况下,未配置BGP路由器在BGP实例内的Router ID,为系统视图下通过router id命令配置的全局Router ID。
(4) 创建BGP对等体/对等体组,并指定对等体/对等体组的AS号。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-number as-number
(5) (可选)为对等体/对等体组配置路由反射器的集群ID。
peer { group-name | ipv4-address [ mask-length ] } cluster-id cluster-id
缺省情况下,没有为对等体/对等体组配置路由反射器的集群ID。
(6) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(7) 使能本地设备与指定对等体/对等体组交换BGP EVPN路由的能力。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } enable
(8) (可选)配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-client
缺省情况下,没有配置路由反射器及其客户机。
(9) (可选)允许路由反射器在客户机之间反射EVPN路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射EVPN路由。
(10) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
(11) (可选)配置路由反射器对反射的EVPN路由进行过滤。
rr-filter { ext-comm-list-number | ext-comm-list-name }
缺省情况下,路由反射器不会对反射的EVPN路由进行过滤。
(12) (可选)允许路由反射器反射路由时修改路由属性。
reflect change-path-attribute
缺省情况下,不允许路由反射器反射路由时修改路由属性。
(13) (可选)配置将指定对等体/对等体组加入就近反射组。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-nearby-group
缺省情况下,就近反射组中不存在任何对等体或对等体组
路由反射器在就近反射组内的对等体/对等体组之间反射路由时,不修改下一跳属性。
当前存在以下方式生成OSF封装的BGP EVPN路由:
· 通过配置evpn osf routing-enable命令,将公网实例和VPN实例下的IP路由、ND表项信息和ARP表项信息生成OSF封装的IP前缀路由和MAC/IP发布路由。
· 在BGP IPv4/IPv6公网单播地址族中,通过import-route命令、import-route-append命令或network命令引入其他协议的路由并生成BGP IPv4/IPv6公网单播路由。这些BGP IPv4/IPv6公网单播路由可以被引入到BGP EVPN路由表中生成IP前缀路由。
· 在BGP-VPN IPv4/IPv6单播地址族中,通过import-route命令、import-route-append命令或network命令引入其他协议的路由并生成BGP-VPN IPv4/IPv6单播路由。这些BGP-VPN IPv4/IPv6单播路由可以被引入到BGP EVPN路由表中生成IP前缀路由。
在公网实例或VPN实例IPv4地址族视图下配置evpn osf routing-enable命令后,这些实例下的IP路由可以生成OSF封装的IP前缀路由。在公网实例或VPN实例EVPN地址族视图下配置命令后,这些实例下的ARP信息可以生成OSF封装的MAC/IP发布路由。
上述配置需要配合peer advertise encap-type osf命令,OSF封装的IP前缀路由和MAC/IP发布路由才可以被发布出去。
配置peer advertise encap-type osf命令后,设备还可以向指定对等体/对等体组发布EVPN 101类路由。
import-route、import-route-append和network命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入公网实例或VPN实例视图。
¡ 创建公网实例,并进入公网实例视图。
ip public-instance
¡ 创建VPN实例,并进入VPN实例视图
ip vpn-instance vpn-instance-name
(3) 配置公网实例或VPN实例的RD(Route Distinguisher,路由标识)。
route-distinguisher route-distinguisher
缺省情况下,未配置公网实例或VPN实例的RD。
(4) 配置VPN实例的Route Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的Route Target。
(5) 进入IPv4地址族或EVPN地址族视图。
¡ 进入IPv4地址族视图。
address-family ipv4
¡ 进入EVPN地址族视图。
address-family evpn
(6) 开启EVPN通告OSF封装路由功能。
缺省情况下,EVPN通告OSF封装路由功能处于关闭状态。
(7) 退回系统视图
quit
quit
(8) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(9) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
¡ 依次执行以下命令,进入BGP-VPN IPv4单播地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(10) (可选)发布本地网段路由。
network ipv4-address [ mask-length | mask ] [ route-policy route-policy-name ]
缺省情况下,BGP不发布本地的网段路由。
(11) 退回BGP实例视图。
quit
在BGP IPv4单播地址族视图下,需要执行一次此命令;在BGP-VPN IPv4单播地址族视图下,需要执行两次此命令。
(12) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(13) 向指定对等体/对等体组发布OSF封装的EVPN路由。
peer { group name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise encap-type osf
缺省情况下,设备只能向对等体/对等体组发布VXLAN封装的EVPN路由。
BGP相关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 配置对于从对等体/对等体组接收的BGP消息,允许本地AS号在该消息的AS_PATH属性中出现,并配置允许出现的次数。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收消息的AS_PATH属性中出现。
(5) 开启BGP EVPN路由的VPN-Target过滤功能。
policy vpn-target
缺省情况下,BGP EVPN路由的VPN-Target过滤功能处于开启状态。
(6) 配置根据EBGP路由的第一个AS号来过滤发布对象。
peer-as-check enable
缺省情况下,设备接收到EBGP路由后,会将其发布给除发送该路由的对等体之外的所有BGP对等体,不会根据EBGP路由的第一个AS号来过滤发布对象。
配置本命令后,BGP向EBGP对等体发布EBGP路由时,会检查AS_Path属性中的第一个AS号,不会向EBGP对等体发布第一个AS号与该EBGP对等体所在的AS相同的路由。
(7) 配置BGP路由反射。
a. 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情况下,没有配置路由反射器及其客户机。
b. (可选)允许路由反射器在客户机之间反射EVPN路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射EVPN路由。
c. (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
d. (可选)配置路由反射器对反射的EVPN路由进行过滤。
rr-filter { ext-comm-list-number | ext-comm-list-name }
缺省情况下,路由反射器不会对反射的EVPN路由进行过滤。
(8) 配置向EBGP对等体/对等体组发布路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布路由时会将下一跳改为自己的地址。
(9) 为从对等体/对等体组接收的路由分配首选值。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
(10) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
(11) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
(12) 配置向对等体/对等体组发布团体属性。
peer { group-name | ipv4-address [ mask-length ] } advertise-community
缺省情况下,不向对等体/对等体组发布团体属性。
(13) 配置向对等体/对等体组发布Large团体属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-large-community
缺省情况下,不向对等体/对等体组发布Large团体属性。
(14) 配置将发送给邻居的BGP路由调整为最低优先级。请选择其中一项进行配置。
¡ 配置邻居状态由Down变为Up后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-peer-up duration seconds
¡ 配置设备重启且BGP进程恢复后,在持续时间内调整发送给邻居的BGP路由优先级为最低。
advertise lowest-priority on-startup duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
调整BGP路由优先级的方式是,将BGP路由的本地优先级值调整为最小值0,并将BGP路由的MED值调整为最大值4294967295。如需在设备发送最低优先级BGP路由的持续时间内,恢复发送正常优先级的路由,可以在用户视图下执行reset bgp advertise lowest-priority命令。
(15) 配置Add-Path功能。
¡ 开启Add-Path功能。
peer { group-name | ipv4-address [ mask-length ] } additional-paths { receive | send } *
缺省情况下,未配置Add-path功能。
¡ 配置向指定对等体/对等体组发送的Add-Path优选路由的最大条数。
peer { group-name | ipv4-address [ mask-length ] } advertise additional-paths best number
缺省情况下,向指定对等体/对等体组发送的Add-Path优选路由的最大条数为1。
¡ 配置Add-Path优选路由的最大条数。
additional-paths select-best best-number
缺省情况下,Add-Path优选路由的最大条数为1。
(16) 在用户视图下执行如下命令,可以复位或软复位BGP会话。
¡ 复位EVPN地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } l2vpn evpn
¡ 手工对EVPN地址族下的BGP会话进行软复位。
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } l2vpn evpn
在任意视图下执行以下命令,可以:
· 显示SFI接口的流量统计信息。
display counters { inbound | outbound } interface [ sfi-eighthundredgige | sfi-fourhundredgige | sfi-hundredgige ]
本命令的详细介绍,请参见“接口管理命令参考”中的“以太网接口”。
· 显示最近一个统计周期内处于up状态的SFI接口的报文速率统计信息
display counters rate { inbound | outbound } interface [ sfi-eighthundredgige | sfi-fourhundredgige | sfi-hundredgige ]
本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共命令”。
· 显示SFI接口和OSF接口的运行状态和相关信息。
display interface [ osf | sfi-eighthundredgige | sfi-fourhundredgige | sfi-hundredgige ] [ brief [ description | down ] ] main
本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共命令”。
· 显示BGP EVPN路由信息。
display bgp [ instance instance-name ] l2vpn evpn [ peer { ipv4-address | ipv6-address } { advertised-routes | received-routes } [ { evpn-route route-length | evpn-prefix } [ verbose ] | statistics ] | [ route-distinguisher route-distinguisher | route-type { ip-prefix | mac-ip | osf-interface } ] * [ { evpn-route route-length | evpn-prefix } [ advertise-info | as-path | ext-community ] | ipv4-address | ipv6-address | mac-address ] | statistics ]
display bgp [ instance instance-name ] l2vpn evpn peer { ipv4-address | ipv6-address } { accepted-routes | not-accepted-routes }
· 显示EVPN的ARP信息。
display evpn route arp [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ ip ipv4-address ] [ count ]
· 显示EVPN的ND信息。
display evpn route nd [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ ipv6 ipv6-address ] [ count ]
· 显示EVPN通过BGP自动发现的邻居信息。
display evpn auto-discovery mac-ip osf [ vpn-instance vpn-name ]
基于NCP和NCF搭建DDC网络,在NCP和NCF之间实现Cell转发。
· NCF和NCP之间通过SFI接口连接,服务器与设备以太网接口直连。
· NCP 1和NCP 2之间使用OSF接口地址建立BGP EVPN连接。
· Server 1和Server 2属于NCP 1和NCP 2的VPN实例vpn1,需要通过DDC网络实现互通。
图2-1 DDC基础配置举例组网图
表2-1 组网图示例接口与设备实际接口对应关系
|
组网图示例接口 |
设备实际接口 |
|
Interface1 |
FourHundredGigE1/0/1 |
(1) 修改NCP和NCF的成员编号
# 修改NCP1的成员编号。
<NCP1> system-view
[NCP1] cloud-cluster member 0 renumber 1
This command will take effect after the cloud cluster configuration is activated. The command might result in configuration change or loss when it takes effect. Continue? [Y/N]: y
# 重启使新的成员编号生效。
[NCP1] quit
<NCP1> reboot
提示信息略……
# 修改NCP2的成员编号。
<NCP2> system-view
[NCP2] cloud-cluster member 0 renumber 2
This command will take effect after the cloud cluster configuration is activated. The command might result in configuration change or loss when it takes effect. Continue? [Y/N]: y
# 重启使新的成员编号生效。
[NCP2] quit
<NCP2> reboot
提示信息略……
# 将NCF1的成员编号修改为3。
<NCF1> system-view
[NCF1] cloud-cluster member 0 renumber 3
This command will take effect after the cloud cluster configuration is activated. The command might result in configuration change or loss when it takes effect. Continue? [Y/N]: y
# 重启使新的成员编号生效。
[NCF1] quit
<NCF1> reboot
提示信息略……
# 将NCF2的成员编号修改为4。
<NCF2> system-view
[NCF2] cloud-cluster member 0 renumber 4
This command will take effect after the cloud cluster configuration is activated. The command might result in configuration change or loss when it takes effect. Continue? [Y/N]: y
# 重启使新的成员编号生效。
[NCF2] quit
<NCF2> reboot
提示信息略……
(2) 配置OSF接口的IP地址
# 配置NCP 1各接口的IP地址。
<NCP1> system-view
[NCP1] interface osf 0/0/0
[NCP1-OSF0/0/0] ip address 100.0.0.2 255.255.255.0
[NCP1-OSF0/0/0] quit
# 配置NCP 2各接口的IP地址。
<NCP2> system-view
[NCP2] interface osf 0/0/0
[NCP2-OSF0/0/0] ip address 100.0.0.3 255.255.255.0
[NCP2-OSF0/0/0] quit
(3) 配置VPN实例
# 在NCP 1上创建VPN实例vpn1,并配置发布OSF封装的EVPN路由。
[NCP1] ip vpn-instance vpn1
[NCP1-vpn-instance-vpn1] route-distinguisher 1:1
[NCP1-vpn-instance-vpn1] vpn-target 1:1
[NCP1-vpn-instance-vpn1] address-family ipv4
[NCP1-vpn-ipv4-vpn1] evpn osf routing-enable
[NCP1-vpn-ipv4-vpn1] quit
[NCP1-vpn-instance-vpn1] address-family evpn
[NCP1-vpn-evpn-vpn1] evpn osf routing-enable
[NCP1-vpn-evpn-vpn1] quit
[NCP1-vpn-instance-vpn1] quit
# 在NCP 2上创建VPN实例vpn1,并配置发布OSF封装的EVPN路由。
[NCP2] ip vpn-instance vpn1
[NCP2-vpn-instance-vpn1] route-distinguisher 1:1
[NCP2-vpn-instance-vpn1] vpn-target 1:1
[NCP2-vpn-instance-vpn1] address-family ipv4
[NCP2-vpn-ipv4-vpn1] evpn osf routing-enable
[NCP2-vpn-ipv4-vpn1] quit
[NCP2-vpn-instance-vpn1] address-family evpn
[NCP2-vpn-evpn-vpn1] evpn osf routing-enable
[NCP2-vpn-evpn-vpn1] quit
[NCP2-vpn-instance-vpn1] quit
(4) 配置将NCP的业务接口加入到VPN实例中
# 配置NCP 1。
[NCP1] interface fourhundredgige 1/0/1
[NCP1-FourHundredGigE1/0/1] ip binding vpn-instance vpn1
[NCP1-FourHundredGigE1/0/1] ip address 145.0.0.1 255.255.255.0
[NCP1-FourHundredGigE1/0/1] quit
# 配置NCP 2。
[NCP2] interface fourhundredgige 1/0/1
[NCP2-FourHundredGigE1/0/1] ip binding vpn-instance vpn1
[NCP2-FourHundredGigE1/0/1] ip address 146.0.0.1 255.255.255.0
[NCP2-FourHundredGigE1/0/1] quit
(5) 配置BGP
# 配置NCP 1。
[NCP1] bgp 100
[NCP1-bgp-default] router-id 100.0.0.2
[NCP1-bgp-default] peer 100.0.0.3 as-number 100
[NCP1-bgp-default] address-family l2vpn evpn
[NCP1-bgp-default-evpn] peer 100.0.0.3 enable
[NCP1-bgp-default-evpn] peer 100.0.0.3 advertise encap-type osf
[NCP1-bgp-default-evpn] quit
[NCP1-bgp-default] ip vpn-instance vpn1
[NCP1-bgp-default-vpn1] peer 145.0.0.2 as-number 65001
[NCP1-bgp-default-vpn1] address-family ipv4 unicast
[NCP1-bgp-default-ipv4-vpn1] peer 145.0.0.2 enable
[NCP1-bgp-default-ipv4-vpn1] import-route direct
[NCP1-bgp-default-ipv4-vpn1] quit
[NCP1-bgp-default-vpn1] quit
[NCP1-bgp-default] quit
# 配置NCP 2。
[NCP2] bgp 100
[NCP2-bgp-default] router-id 100.0.0.3
[NCP2-bgp-default] peer 100.0.0.2 as-number 100
[NCP2-bgp-default] address-family l2vpn evpn
[NCP2-bgp-default-evpn] peer 100.0.0.2 enable
[NCP2-bgp-default-evpn] peer 100.0.0.2 advertise encap-type osf
[NCP2-bgp-default-evpn] quit
[NCP2-bgp-default] ip vpn-instance vpn1
[NCP2-bgp-default-vpn1] peer 146.0.0.2 as-number 65001
[NCP2-bgp-default-vpn1] address-family ipv4 unicast
[NCP2-bgp-default-ipv4-vpn1] peer 146.0.0.2 enable
[NCP2-bgp-default-ipv4-vpn1] import-route direct
[NCP2-bgp-default-ipv4-vpn1] quit
[NCP2-bgp-default-vpn1] quit
[NCP2-bgp-default] quit
# 在NCP 1上查看BGP EVPN路由信息。
[NCP1] display bgp l2vpn evpn
BGP local router ID is 1.1.1.9
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
Total number of routes from all PEs: 6
Route distinguisher: 1:1 (vpn1)
Total number of routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i [5][10][24][146.0.0.0]/80
10.0.0.3 0 32768 ?
* > [5][10][24][145.0.0.0]/80
127.0.0.1 0 32768 ?
可以看到NCP 1和NCP 2通过BGP EVPN交互了各自的业务接口直连网段路由。
# Server 1和Server 2可以互访。(具体验证步骤略)
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
