• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

H3C S6805 & S6825 & S6850 & S9850 & S9820系列交换机 典型配置举例-Release 66xx-6W100

目录

71-EVPN+DRNI典型配置举例

本章节下载 71-EVPN+DRNI典型配置举例  (640.35 KB)

71-EVPN+DRNI典型配置举例

H3C S6805&S6825&S6850&S9850&S9820 EVPN和DRNI综合组网配置举例

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2020-2023 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,

并不得以任何形式传播。本文档中的信息可能变动,恕不另行通知。

H3C_彩色.emf

 


  录

1 简介

2 配置前提

3 使用限制

4 EVPN和DRNI二层转发配置举例(以太网聚合链路作为IPL)

4.1 组网需求

4.2 配置思路

4.3 使用版本

4.4 配置注意事项

4.5 配置步骤

4.5.1 配置各接口的IP地址

4.5.2 配置路由协议

4.5.3 创建VSI、EVPN实例和VXLAN

4.5.4 配置DRNI

4.5.5 配置BGP发布EVPN路由

4.5.6 配置以太网服务实例匹配用户报文,并将其与VSI关联

4.6 验证配置

4.7 配置文件

5 EVPN和DRNI二层转发配置举例(VXLAN隧道作为IPL)

5.1 组网需求

5.2 配置思路

5.3 使用版本

5.4 配置注意事项

5.5 配置步骤

5.5.1 配置各接口的IP地址

5.5.2 配置路由协议

5.5.3 创建VSI、EVPN实例和VXLAN

5.5.4 配置DRNI

5.5.5 配置Monitor Link组

5.5.6 配置BGP发布EVPN路由

5.5.7 配置以太网服务实例匹配用户报文,并将其与VSI关联

5.6 验证配置

5.7 配置文件

6 EVPN和DRNI三层转发配置举例(以太网聚合链路作为IPL)

6.1 组网需求

6.2 配置思路

6.3 使用版本

6.4 配置注意事项

6.5 配置步骤

6.5.1 配置设备工作的硬件资源模式。

6.5.2 配置各接口的IP地址

6.5.3 配置路由协议

6.5.4 创建VSI、EVPN实例和VXLAN

6.5.5 配置分布式EVPN网关

6.5.6 配置DRNI

6.5.7 配置BGP发布EVPN路由

6.5.8 配置以太网服务实例匹配用户报文,并将其与VSI关联

6.6 验证配置

6.7 配置文件

7 EVPN和DRNI三层转发配置举例(VXLAN隧道作为IPL)

7.1 组网需求

7.2 配置思路

7.3 使用版本

7.4 配置注意事项

7.5 配置步骤

7.5.1 配置设备工作的硬件资源模式。

7.5.2 配置各接口的IP地址

7.5.3 配置路由协议

7.5.4 创建VSI、EVPN实例和VXLAN

7.5.5 配置分布式EVPN网关

7.5.6 配置DRNI

7.5.7 配置Monitor Link组

7.5.8 配置BGP发布EVPN路由

7.5.9 配置以太网服务实例匹配用户报文,并将其与VSI关联

7.6 验证配置

7.7 配置文件

8 相关资料

 


1 简介

本文档介绍EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)和DRNI(Distributed Resilient Network Interconnect,分布式弹性网络互连)结合使用的典型配置举例。

·     EVPN是一种二层VPN技术,控制平面采用MP-BGP通告EVPN路由信息,数据平面采用VXLAN封装方式转发报文。

·     DRNI是一种跨设备链路聚合技术,将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。

通过EVPN和DRNI结合部署的方式,将两台物理设备连接起来虚拟成一台设备,使用该虚拟设备作为VTEP(既可以是仅用于二层转发的VTEP,也可以是EVPN网关),可以避免VTEP单点故障对网络造成影响,从而提高EVPN网络的可靠性。

2 配置前提

本文档不严格与具体软、硬件版本对应,如果使用过程中与产品实际情况有差异,请以设备实际情况为准。

本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。

本文档假设您已了解EVPN和DRNI特性。

3 使用限制

在作为DR device(Distributed Relay device,分布式聚合成员设备)的两台VTEP(既可以是仅用于二层转发的VTEP,也可以是EVPN网关)上EVPN配置需要保持一致。例如:AC、VSI、EVPN Route MAC等。

·     AC:作为DR device的两台VTEP上DR口的AC配置必须保持完全一致。若采用以太网聚合链路作为IPL则单挂AC的配置也需要保持一致。

·     VSI:相同的VSI必须关联相同的VXLAN ID。

·     EVPN Route MAC:用户可以通过evpn global-mac命令配置EVPN的全局MAC地址;也可以通过mac-address命令配置承载L3VNI的VSI虚接口的MAC地址。

在EVPN分布式聚合组网中,还需执行以下配置:

·     为了避免DRNI协议将接口置为DRNI MAD DOWN状态,所有参与EVPN业务的接口(VSI虚接口、BGP对等体地址所在的接口、Keepalive链路的接口、VXLAN隧道的公网出接口)需要通过drni mad exclude interface命令配置为保留接口。

·     开启、关闭EVPN的分布式聚合模式后,设备会刷新路由表,建议用户优先配置分布式聚合功能。

·     在分布式聚合组网中,建议为虚拟VTEP地址、BGP对等体地址分别指定不同的接口地址,当采用VXLAN隧道作为IPL时,隧道源IP地址必须与BGP对等体地址保持一致,还需要配置VTEP的本地IP地址,本地IP地址不能与虚拟VTEP地址相同。

·     执行drni restore-delay命令配置延迟恢复时间大于等于180秒。

·     在DR device上,需要关闭VXLAN隧道对应的二层以太网接口上的STP功能,以免上行设备错误地阻塞连接DR device的接口。

EVPN分布式聚合组网中:

·     若组成DR系统的DR设备均为Release 6616版本、Release 6616P01版本、Release 6635及以上版本,则仅支持通过display l2vpn drni mac-address命令显示从分布式聚合远端设备同步过来的MAC地址信息。

·     若组成DR系统的DR设备中至少有一个为Release 6607及之前的版本,则仅支持通过display evpn drni synchronized-mac命令显示从分布式聚合远端设备同步过来的MAC地址信息。

4 EVPN和DRNI二层转发配置举例(以太网聚合链路作为IPL)

4.1  组网需求

Switch A、Switch B、Switch D为与服务器连接的VTEP设备。Switch A和Switch B通过DRNI虚拟为一台VTEP设备,Switch A和Switch B之间通过IPL(Intra-Portal Link,内部控制链路)同步MAC地址和ARP信息,以确保两台VTEP上的MAC地址和ARP信息保持一致。Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由。本组网采用以太网聚合链路作为IPL。

Switch A和Switch B均通过以太网链路与下行的虚拟机VM 1、VM 2连接,要求在连接每一台虚拟机的链路间跨设备建立二层聚合接口,避免单条以太网链路故障导致虚拟机无法访问网络。

虚拟机VM 1、VM 2和VM 3同属于VXLAN 10,通过EVPN实现不同站点间的二层互通。

图4-1 EVPNDRNI二层转发组网图(以太网聚合链路作为IPL)

 

4.2  配置思路

·     在交换机上配置路由协议,使得各交换机的接口IP地址(包括Loopback接口IP地址)之间路由可达。本举例以OSPF路由协议为例。

·     在Switch A、Switch B上开启EVPN支持分布式聚合功能,使两台设备虚拟为一台VTEP设备。

·     配置Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由

·     在Switch A、Switch B和Switch D上配置EVPN,使VTEP之间通过BGP EVPN路由实现自动发现邻居、自动建立/关联VXLAN隧道、通告MAC/IP的可达性等,以便将虚拟机发送的二层报文封装为IP报文后在IP核心网络上转发。

·     在Switch A、Switch B和Switch D的下行端口上配置以太网服务实例和相应的匹配规则,用来识别用户网络中的报文所属的VXLAN。

4.3  使用版本

表4-1 适用产品及版本

产品

软件版本

S6805系列

Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6825系列

Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6850系列

S9850系列

Release 6555P01版本、Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S9820-64H

不支持

S9820-8C

不支持

 

4.4  配置注意事项

·     VTEP设备上最多支持创建4K规格的AC。

·     建议使用Loopback接口的IP地址作为分布式聚合的虚拟VTEP地址

·     以太网服务实例配置的报文匹配规则只能为匹配报文的外层VLAN tag(encapsulation s-vid { vlan-id | vlan-id-list })、匹配不携带VLAN tag的所有报文(encapsulation untagged)。

·     配置相同报文匹配规则的以太网服务实例必须关联相同的VSI。

·     建议不要在分布式聚合的两台VTEP上引入外部路由。

4.5  配置步骤

4.5.1  配置各接口的IP地址

# 在Switch A上配置各接口的IP地址。

<SwitchA> system-view

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 32

[SwitchA-Loopback0] quit

[SwitchA] interface loopback 1

[SwitchA-Loopback1] ip address 1.2.3.4 32

[SwitchA-Loopback1] quit

[SwitchA] vlan 11

[SwitchA-vlan11] port hundredgige 1/0/5

[SwitchA-vlan11] quit

[SwitchA] interface vlan-interface 11

[SwitchA-Vlan-interface11] ip address 11.1.1.1 24

[SwitchA-Vlan-interface11] quit

[SwitchA] interface hundredgige 1/0/4

[SwitchA-HundredGigE1/0/4] port link-mode route

[SwitchA-HundredGigE1/0/4] ip address 60.1.1.1 24

[SwitchA-HundredGigE1/0/4] quit

# 请参考以上方法配置其它交换机上的接口IP地址,配置步骤此处省略。

4.5.2  配置路由协议

1. 配置Switch A

# 配置OSPF发布接口所在网段的路由。

[SwitchA] ospf 1 router-id 1.1.1.1

[SwitchA-ospf-1] area 0

[SwitchA-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchA-ospf-1-area-0.0.0.0] quit

[SwitchA-ospf-1] quit

# 配置DR设备Switch A与Switch B之间路由可达。

[SwitchA] vlan 100

[SwitchA-vlan100] quit

[SwitchA] interface Vlan-interface 100

[SwitchA-Vlan-interface100] ip address 100.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] ospf 1 area 0.0.0.0

[SwitchA-Vlan-interface100] quit

2. 配置Switch B

# 配置OSPF发布接口所在网段的路由。

<SwitchB> system-view

[SwitchB] ospf 1 router-id 2.2.2.2

[SwitchB-ospf-1] area 0

[SwitchB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchB-ospf-1-area-0.0.0.0] quit

[SwitchB-ospf-1] quit

# 配置DR设备Switch A与Switch B之间路由可达。

[SwitchB] vlan 100

[SwitchB-vlan100] quit

[SwitchB] interface Vlan-interface 100

[SwitchB-Vlan-interface100] ip address 100.1.1.2 255.255.255.0

[SwitchB-Vlan-interface100] ospf 1 area 0.0.0.0

[SwitchB-Vlan-interface100] quit

3. 配置Switch C

# 配置OSPF发布接口所在网段的路由。

<SwitchC> system-view

[SwitchC] ospf 1 router-id 3.3.3.3

[SwitchC-ospf-1] area 0

[SwitchC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0

[SwitchC-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] quit

[SwitchC-ospf-1] quit

4. 配置Switch D

# 配置OSPF发布接口所在网段的路由。

<SwitchD> system-view

[SwitchD] ospf 1 router-id 4.4.4.4

[SwitchD-ospf-1] area 0

[SwitchD-ospf-1-area-0.0.0.0] network 4.4.4.4 0.0.0.0

[SwitchD-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchD-ospf-1-area-0.0.0.0] quit

[SwitchD-ospf-1] quit

4.5.3  创建VSI、EVPN实例和VXLAN

1. 配置Switch A

# 开启L2VPN能力。

[SwitchA] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchA] vxlan tunnel mac-learning disable

[SwitchA] vxlan tunnel arp-learning disable

# 在VSI实例vpna下创建EVPN实例。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] arp suppression enable

[SwitchA-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchA-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchA-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchA-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

2. 配置Switch B

# 开启L2VPN能力。

[SwitchB] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchB] vxlan tunnel mac-learning disable

[SwitchB] vxlan tunnel arp-learning disable

# 在VSI实例vpna下创建EVPN实例。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] arp suppression enable

[SwitchB-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchB-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchB-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchB-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

3. 配置Switch D

# 开启L2VPN能力。

[SwitchD] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchD] vxlan tunnel mac-learning disable

[SwitchD] vxlan tunnel arp-learning disable

# 在VSI实例vpna下创建EVPN实例。

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] arp suppression enable

[SwitchD-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchD-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchD-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchD-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchD-vsi-vpna] vxlan 10

[SwitchD-vsi-vpna-vxlan-10] quit

[SwitchD-vsi-vpna] quit

4.5.4  配置DRNI

1. 配置Switch A

# 配置IPL上动态AC的报文匹配规则,有如下两个方案。Switch A和Switch B上采用的方案必须相同。

·     方案一:采用VXLAN ID映射方式生成IPL上动态AC的报文匹配规则。

[SwitchA] l2vpn drni peer-link ac-match-rule vxlan-mapping

·     方案二:根据用户侧以太网服务实例的报文匹配规则创建IPL上的AC。

无需执行其他配置,默认采用该方案。(本举例采用此方案)

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchA] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchA] drni system-mac 0001-0001-0001

[SwitchA] drni system-number 1

[SwitchA] drni system-priority 10

[SwitchA] drni restore-delay 180

[SwitchA] drni keepalive ip destination 60.1.1.2 source 60.1.1.1

# 创建二层聚合接口3,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 3

[SwitchA-Bridge-Aggregation3] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation3] quit

# 将端口HundredGigE1/0/3加入到聚合组3中。

[SwitchA] interface hundredgige 1/0/3

[SwitchA-HundredGigE1/0/3] port link-aggregation group 3

[SwitchA-HundredGigE1/0/3] quit

# 将二层聚合接口3配置为IPP口。

[SwitchA] interface bridge-aggregation 3

[SwitchA-Bridge-Aggregation3] port drni intra-portal-port 1

[SwitchA-Bridge-Aggregation3] undo mac-address static source-check enable

[SwitchA-Bridge-Aggregation3] quit

# 在网络侧物理出接口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchA] interface hundredgige 1/0/5

[SwitchA-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchA-HundredGigE1/0/5] undo stp enable

[SwitchA-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] port link-aggregation group 4

[SwitchA-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port drni group 4

[SwitchA-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchA] interface hundredgige 1/0/2

[SwitchA-HundredGigE1/0/2] port link-aggregation group 5

[SwitchA-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port drni group 5

[SwitchA-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchA] drni mad exclude interface loopback 0

[SwitchA] drni mad exclude interface hundredgige 1/0/4

[SwitchA] drni mad exclude interface hundredgige 1/0/5

[SwitchA] drni mad exclude interface vlan-interface 11

2. 配置Switch B

# 配置IPL上动态AC的报文匹配规则,有如下两个方案。Switch A和Switch B上采用的方案必须相同。

·     方案一:采用VXLAN ID映射方式生成IPL上动态AC的报文匹配规则。

[SwitchB] l2vpn drni peer-link ac-match-rule vxlan-mapping

·     方案二:根据用户侧以太网服务实例的报文匹配规则创建IPL上的AC。

无需执行其他配置,默认采用该方案。(本举例采用此方案)

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchB] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchB] drni system-mac 0001-0001-0001

[SwitchB] drni system-number 2

[SwitchB] drni system-priority 10

[SwitchB] drni restore-delay 180

[SwitchB] drni keepalive ip destination 60.1.1.1 source 60.1.1.2

# 创建二层聚合接口3,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 3

[SwitchB-Bridge-Aggregation3] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation3] quit

# 将端口HundredGigE1/0/3加入到聚合组3中。

[SwitchB] interface hundredgige 1/0/3

[SwitchB-HundredGigE1/0/3] port link-aggregation group 3

[SwitchB-HundredGigE1/0/3] quit

# 将二层聚合接口3配置为IPP口。

[SwitchB] interface bridge-aggregation 3

[SwitchB-Bridge-Aggregation3] port drni intra-portal-port 1

[SwitchB-Bridge-Aggregation3] undo mac-address static source-check enable

[SwitchB-Bridge-Aggregation3] quit

# 在网络侧物理出接口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchB] interface hundredgige 1/0/5

[SwitchB-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchB-HundredGigE1/0/5] undo stp enable

[SwitchB-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] port link-aggregation group 4

[SwitchB-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port drni group 4

[SwitchB-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchB] interface hundredgige 1/0/2

[SwitchB-HundredGigE1/0/2] port link-aggregation group 5

[SwitchB-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port drni group 5

[SwitchB-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchB] drni mad exclude interface loopback 0

[SwitchB] drni mad exclude interface hundredgige 1/0/4

[SwitchB] drni mad exclude interface hundredgige 1/0/5

[SwitchA] drni mad exclude interface vlan-interface 12

4.5.5  配置BGP发布EVPN路由

1. 配置Switch A

# 配置BGP发布EVPN路由。

[SwitchA] bgp 200

[SwitchA-bgp-default] peer 3.3.3.3 as-number 200

[SwitchA-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchA-bgp-default] address-family l2vpn evpn

[SwitchA-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchA-bgp-default-evpn] quit

[SwitchA-bgp-default] quit

2. 配置Switch B

# 配置BGP发布EVPN路由。

[SwitchB] bgp 200

[SwitchB-bgp-default] peer 3.3.3.3 as-number 200

[SwitchB-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchB-bgp-default] address-family l2vpn evpn

[SwitchB-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchB-bgp-default-evpn] quit

[SwitchB-bgp-default] quit

3. 配置Switch C

# 配置BGP发布EVPN路由,并作为路由反射器反射路由。

[SwitchC] bgp 200

[SwitchC-bgp-default] group evpn

[SwitchC-bgp-default] peer 1.1.1.1 group evpn

[SwitchC-bgp-default] peer 2.2.2.2 group evpn

[SwitchC-bgp-default] peer 4.4.4.4 group evpn

[SwitchC-bgp-default] peer evpn as-number 200

[SwitchC-bgp-default] peer evpn connect-interface loopback 0

[SwitchC-bgp-default] address-family l2vpn evpn

[SwitchC-bgp-default-evpn] peer evpn enable

[SwitchC-bgp-default-evpn] undo policy vpn-target

[SwitchC-bgp-default-evpn] peer evpn reflect-client

[SwitchC-bgp-default-evpn] quit

[SwitchC-bgp-default] quit

4. 配置Switch D

# 配置BGP发布EVPN路由。

[SwitchD] bgp 200

[SwitchD-bgp-default] peer 3.3.3.3 as-number 200

[SwitchD-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchD-bgp-default] address-family l2vpn evpn

[SwitchD-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchD-bgp-default-evpn] quit

[SwitchD-bgp-default] quit

4.5.6  配置以太网服务实例匹配用户报文,并将其与VSI关联

1. 配置Switch A

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port link-type trunk

[SwitchA-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchA-Bridge-Aggregation4] service-instance 1000

[SwitchA-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port link-type trunk

[SwitchA-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchA-Bridge-Aggregation5] service-instance 1000

[SwitchA-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation5-srv1000] quit

2. 配置Switch B

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port link-type trunk

[SwitchB-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchB-Bridge-Aggregation4] service-instance 1000

[SwitchB-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port link-type trunk

[SwitchB-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchB-Bridge-Aggregation5] service-instance 1000

[SwitchB-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation5-srv1000] quit

3. 配置Switch D

# 接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchD] interface hundredgige 1/0/1

[SwitchD-HundredGigE1/0/1] port link-type trunk

[SwitchD-HundredGigE1/0/1] port trunk permit vlan 2

[SwitchD-HundredGigE1/0/1] service-instance 1000

[SwitchD-HundredGigE1/0/1] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchD-HundredGigE1/0/1] xconnect vsi vpna

[SwitchD-HundredGigE1/0/1] quit

4.6  验证配置

1. 以Switch A为例,验证分布式聚合设备

# 查看Switch A上的EVPN路由信息。

[Switch A]display bgp l2vpn evpn

 BGP local router ID is 1.2.3.4

 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: 1

 Route distinguisher: 1:10

 Total number of routes: 2

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [3][0][32][1.2.3.4]/80

                        1.2.3.4         0          100        32768   i

* >i [3][0][32][4.4.4.4]/80

                        4.4.4.4         0          100        0       i

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态,并且隧道源地址是虚拟VTEP地址。

[SwitchA] display interface tunnel

Tunnel0

Current state: UP

Line protocol state: UP

Description: Tunnel0 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.2.3.4, destination 4.4.4.4

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到设备自动在IPL上创建了AC,并将其与VSI关联。

[SwitchA] display l2vpn vsi verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel0              0x5000000  UP       Auto        Disabled

  ACs:

    AC                               Link ID  State       Type

    BAGG4 srv1000                    0        Up          Manual

    BAGG3 srv2                       1        Up          Dynamic (MLAG)

    BAGG5 srv1000                    2        Up          Manual

BAGG3 srv3                       3        Up          Dynamic (MLAG)

2. 验证主机之间可以互访

虚拟机VM 1、VM 2和VM 3之间可以互访。虚拟机与Switch A或Switch B相连的链路断开后,VM 1、VM 2和VM 3仍然可以通过另一台设备互访。

4.7  配置文件

·     Switch A

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 1.1.1.1

 area 0.0.0.0

  network 1.1.1.1 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 11.1.1.0 0.0.0.255

#

vlan 11

#

l2vpn enable

 vxlan tunnel arp-learning disable

 evpn drni group 1.2.3.4

#

vsi vpna

 arp suppression enable

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation3

 link-aggregation mode dynamic

 port drni intra-portal-port 1

 undo mac-address static source-check enable

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpna

#

interface LoopBack0

 ip address 1.1.1.1 255.255.255.255

#

interface LoopBack0

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.1 255.255.255.0

#

interface HundredGigE1/0/4

 port link-mode route

 ip address 60.1.1.1 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/3

 port link-mode bridge

 port link-aggregation group 3

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 11

 undo mac-address static source-check enable

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 60.1.1.2 source 60.1.1.1

 drni restore-delay 180

 drni system-mac 0001-0001-0001

 drni system-number 1

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/4

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Vlan-interface11

#

return

·     Switch B

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 2.2.2.2

 area 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 2.2.2.2 0.0.0.0

  network 12.1.1.0 0.0.0.255

#

vlan 12

#

l2vpn enable

 vxlan tunnel arp-learning disable

 evpn drni group 1.2.3.4

#

vsi vpna

 arp suppression enable

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation3

 link-aggregation mode dynamic

 port drni intra-portal-port 1

 undo mac-address static source-check enable

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpna

#

interface LoopBack0

 ip address 2.2.2.2 255.255.255.255

#

interface LoopBack1

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface12

 ip address 12.1.1.2 255.255.255.0

#

interface HundredGigE1/0/4

 port link-mode route

 ip address 60.1.1.2 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/3

 port link-mode bridge

 port link-aggregation group 3

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 12

 undo mac-address static source-check enable

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 60.1.1.1 source 60.1.1.2

 drni restore-delay 180

 drni system-mac 0001-0001-0001

 drni system-number 2

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/4

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Vlan-interface12

#

return

·     Switch C

#

ospf 1 router-id 3.3.3.3

 area 0.0.0.0

  network 3.3.3.3 0.0.0.0

  network 11.1.1.0 0.0.0.255

  network 12.1.1.0 0.0.0.255

  network 13.1.1.0 0.0.0.255

#

vlan 11 to 13

#

interface LoopBack0

 ip address 3.3.3.3 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.3 255.255.255.0

#

interface Vlan-interface12

 ip address 12.1.1.3 255.255.255.0

#

interface Vlan-interface13

 ip address 13.1.1.3 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port access vlan 11

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 12

#

interface HundredGigE1/0/3

 port link-mode bridge

 port access vlan 13

#

bgp 200

 group evpn internal

 peer evpn connect-interface LoopBack0

 peer 1.1.1.1 group evpn

 peer 2.2.2.2 group evpn

 peer 4.4.4.4 group evpn

 #

 address-family l2vpn evpn

  undo policy vpn-target

  peer evpn enable

  peer evpn reflect-client

#

return

·     Switch D

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 4.4.4.4

 area 0.0.0.0

  network 4.4.4.4 0.0.0.0

  network 13.1.1.0 0.0.0.255

#

vlan 13

#

l2vpn enable

 vxlan tunnel arp-learning disable

#

vsi vpna

 arp suppression enable

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface LoopBack0

 ip address 4.4.4.4 255.255.255.255

#

interface Vlan-interface13

 ip address 13.1.1.4 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-type trunk

 port trunk permit vlan 2

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 13

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

5 EVPN和DRNI二层转发配置举例(VXLAN隧道作为IPL)

5.1  组网需求

Switch A、Switch B、Switch D为与服务器连接的VTEP设备。Switch A和Switch B通过DRNI虚拟为一台VTEP设备,Switch A和Switch B之间采用VXLAN隧道作为IPL,同步MAC地址和ARP信息,以确保两台VTEP上的MAC地址和ARP信息保持一致。在Switch A和Switch B上配置Monitor Link组。把所有上行口配置为Up-Link,所有下行DR成员口配置为Down-Link,通过Monitor Link实现上下行接口联动,以便及时发现上行接口故障,并在DR成员设备之间进行主从切换。

Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由。

Switch A和Switch B均通过以太网链路与下行的虚拟机VM 1、VM 2连接,要求在连接每一台虚拟机的链路间跨设备建立二层聚合接口,避免单条以太网链路故障导致虚拟机无法访问网络。

虚拟机VM 1、VM 2和VM 3同属于VXLAN 10,通过EVPN实现不同站点间的二层互通。

图5-1 EVPNDRNI二层转发组网图(VXLAN隧道作为IPL)

 

5.2  配置思路

·     在交换机上配置路由协议,使得各交换机的接口IP地址(包括Loopback接口IP地址)之间路由可达。本举例以OSPF路由协议为例。

·     在Switch A、Switch B上开启EVPN支持分布式聚合模式,使两台设备虚拟为一台VTEP设备。

·     Switch A、Switch B之间通过手工方式创建VXLAN隧道作为IPL,在Switch A和Switch B之间同步MAC地址和ARP信息。

·     配置Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由

·     在Switch A、Switch B和Switch D上配置EVPN,使VTEP之间通过BGP EVPN路由实现自动发现邻居、自动建立/关联VXLAN隧道、通告MAC/IP的可达性等,以便将虚拟机发送的二层报文封装为IP报文后在IP核心网络上转发。

·     在Switch A、Switch B和Switch D的下行端口上配置以太网服务实例和相应的匹配规则,用来识别用户网络中的报文所属的VXLAN。

5.3  使用版本

表5-1 适用产品及版本

产品

软件版本

S6805系列

Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6825系列

Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6850系列

S9850系列

Release 6555P01版本、Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S9820-64H

不支持

S9820-8C

不支持

 

5.4  配置注意事项

·     手工创建作为IPL的VXLAN隧道仅支持Overlay网络的业务。

·     自动创建的VXLAN隧道不能作为IPL。

·     建议为VXLAN隧道和作为IPL的VXLAN隧道配置不同的物理接口作为隧道出接口。

·     在作为IPL的VXLAN隧道对应的二层以太网接口上关闭STP功能,以免上行设备错误地阻塞连接DR device的接口。

·     执行reserved vxlan命令配置保留VXLAN,以便通过该VXLAN转发DRNI协议报文等。作为DR device的两台VTEP上必须配置相同的保留VXLAN。

·     建议在作为IPL的VXLAN隧道接口上执行tunnel tos命令为封装后的隧道报文配置较高的优先级(数值越大,优先级越高),以确保该隧道上传递的DRCP(Distributed Relay Control Protocol,分布式聚合控制协议)等协议报文的优先级高于其他隧道上传递的普通数据报文。

5.5  配置步骤

5.5.1  配置各接口的IP地址

# 在Switch A上配置各接口的IP地址。

<SwitchA> system-view

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 32

[SwitchA-Loopback0] quit

[SwitchA] interface loopback 1

[SwitchA-Loopback1] ip address 1.2.3.4 32

[SwitchA-Loopback1] quit

[SwitchA] vlan 11

[SwitchA-vlan11] port hundredgige 1/0/5

[SwitchA-vlan11] quit

[SwitchA] interface vlan-interface 11

[SwitchA-Vlan-interface11] ip address 11.1.1.1 24

[SwitchA-Vlan-interface11] quit

# 请参考以上方法配置其它交换机上的接口IP地址,配置步骤此处省略。

5.5.2  配置路由协议

1. 配置Switch A

# 配置OSPF发布接口所在网段的路由。

[SwitchA] ospf 1 router-id 1.1.1.1

[SwitchA-ospf-1] area 0

[SwitchA-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchA-ospf-1-area-0.0.0.0] quit

[SwitchA-ospf-1] quit

2. 配置Switch B

# 配置OSPF发布接口所在网段的路由。

<SwitchB> system-view

[SwitchB] ospf 1 router-id 2.2.2.2

[SwitchB-ospf-1] area 0

[SwitchB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchB-ospf-1-area-0.0.0.0] quit

[SwitchB-ospf-1] quit

3. 配置Switch C

# 配置OSPF发布接口所在网段的路由。

<SwitchC> system-view

[SwitchC] ospf 1 router-id 3.3.3.3

[SwitchC-ospf-1] area 0

[SwitchC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0

[SwitchC-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] quit

[SwitchC-ospf-1] quit

4. 配置Switch D

# 配置OSPF发布接口所在网段的路由。

<SwitchD> system-view

[SwitchD] ospf 1 router-id 4.4.4.4

[SwitchD-ospf-1] area 0

[SwitchD-ospf-1-area-0.0.0.0] network 4.4.4.4 0.0.0.0

[SwitchD-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchD-ospf-1-area-0.0.0.0] quit

[SwitchD-ospf-1] quit

5.5.3  创建VSI、EVPN实例和VXLAN

1. 配置Switch A

# 开启L2VPN能力。

[SwitchA] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchA] vxlan tunnel mac-learning disable

[SwitchA] vxlan tunnel arp-learning disable

# 配置预留VXLAN ID为1234。

[SwitchA] reserved vxlan 1234

# 在VSI实例vpna下创建EVPN实例。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] arp suppression enable

[SwitchA-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchA-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchA-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchA-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

2. 配置Switch B

# 开启L2VPN能力。

[SwitchB] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchB] vxlan tunnel mac-learning disable

[SwitchB] vxlan tunnel arp-learning disable

# 配置预留VXLAN ID为1234。

[SwitchB] reserved vxlan 1234

# 在VSI实例vpna下创建EVPN实例。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] arp suppression enable

[SwitchB-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchB-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchB-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchB-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

3. 配置Switch D

# 开启L2VPN能力。

[SwitchD] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchD] vxlan tunnel mac-learning disable

[SwitchD] vxlan tunnel arp-learning disable

# 在VSI实例vpna下创建EVPN实例。

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] arp suppression enable

[SwitchD-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchD-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchD-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchD-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchD-vsi-vpna] vxlan 10

[SwitchD-vsi-vpna-vxlan-10] quit

[SwitchD-vsi-vpna] quit

5.5.4  配置DRNI

1. 配置Switch A

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchA] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchA] drni system-mac 0001-0001-0001

[SwitchA] drni system-number 1

[SwitchA] drni system-priority 10

[SwitchA] drni restore-delay 180

# 在Switch A和Switch B之间手工创建VXLAN隧道Tunnel1,将其配置为IPP口,并配置封装后隧道报文的ToS值为100。

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] tunnel tos 100

[SwitchA-Tunnel1] quit

# 将VXLAN隧道接口配置DRNI保留接口。

[SwitchA] drni mad exclude interface tunnel 1

# 配置VXLAN隧道接口为IPP口。

[SwitchA] interface tunnel 1

[SwitchA-Tunnel1] port drni intra-portal-port 1

[SwitchA-Tunnel1] quit

# 在网络侧物理出接口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchA] interface hundredgige 1/0/5

[SwitchA-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchA-HundredGigE1/0/5] undo stp enable

[SwitchA-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] port link-aggregation group 4

[SwitchA-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port drni group 4

[SwitchA-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchA] interface hundredgige 1/0/2

[SwitchA-HundredGigE1/0/2] port link-aggregation group 5

[SwitchA-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port drni group 5

[SwitchA-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchA] drni mad exclude interface loopback 0

[SwitchA] drni mad exclude interface hundredgige 1/0/5

[SwitchA] drni mad exclude interface vlan-interface 11

2. 配置Switch B

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchB] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchB] drni system-mac 0001-0001-0001

[SwitchB] drni system-number 2

[SwitchB] drni system-priority 10

[SwitchB] drni restore-delay 180

# 在Switch A和Switch B之间手工创建VXLAN隧道Tunnel1,将其配置为IPP口,并配置封装后隧道报文的ToS值为100。

[SwitchB] interface tunnel 1 mode vxlan

[SwitchB-Tunnel1] source 2.2.2.2

[SwitchB-Tunnel1] destination 1.1.1.1

[SwitchB-Tunnel1] tunnel tos 100

[SwitchB-Tunnel1] quit

# 将VXLAN隧道接口配置DRNI保留接口。

[SwitchB] drni mad exclude interface tunnel 1

# 配置VXLAN隧道接口为IPP口。

[SwitchB] interface tunnel 1

[SwitchB-Tunnel1] port drni intra-portal-port 1

[SwitchB-Tunnel1] quit

# 在网络侧物理出接口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchB] interface hundredgige 1/0/5

[SwitchB-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchB-HundredGigE1/0/5] undo stp enable

[SwitchB-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] port link-aggregation group 4

[SwitchB-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port drni group 4

[SwitchB-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchB] interface hundredgige 1/0/2

[SwitchB-HundredGigE1/0/2] port link-aggregation group 5

[SwitchB-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port drni group 5

[SwitchB-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchB] drni mad exclude interface tunnel 1

[SwitchB] drni mad exclude interface loopback 0

[SwitchB] drni mad exclude interface hundredgige 1/0/5

[SwitchB] drni mad exclude interface vlan-interface 12

5.5.5  配置Monitor Link

1. 配置Switch A

# 创建Monitor Link组1,添加上行和下行接口,以便在上下行接口之间形成联动。

[SwitchA] monitor-link group 1

[SwitchA-mtlk-group1] port twenty-fivegige 1/0/1 downlink

[SwitchA-mtlk-group1] port twenty-fivegige 1/0/2 downlink

[SwitchA-mtlk-group1] port twenty-fivegige 1/0/4 uplink

[SwitchA-mtlk-group1] quit

2. 配置Switch B

# 创建Monitor Link组1,添加上行和下行接口,以便在上下行接口之间形成联动。

[SwitchB] monitor-link group 1

[SwitchB-mtlk-group1] port twenty-fivegige 1/0/1 downlink

[SwitchB-mtlk-group1] port twenty-fivegige 1/0/2 downlink

[SwitchB-mtlk-group1] port twenty-fivegige 1/0/4 uplink

[SwitchB-mtlk-group1] quit

5.5.6  配置BGP发布EVPN路由

1. 配置Switch A

# 配置BGP发布EVPN路由。

[SwitchA] bgp 200

[SwitchA-bgp-default] peer 3.3.3.3 as-number 200

[SwitchA-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchA-bgp-default] address-family l2vpn evpn

[SwitchA-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchA-bgp-default-evpn] quit

[SwitchA-bgp-default] quit

2. 配置Switch B

# 配置BGP发布EVPN路由。

[SwitchB] bgp 200

[SwitchB-bgp-default] peer 3.3.3.3 as-number 200

[SwitchB-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchB-bgp-default] address-family l2vpn evpn

[SwitchB-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchB-bgp-default-evpn] quit

[SwitchB-bgp-default] quit

3. 配置Switch C

# 配置BGP发布EVPN路由,并作为路由反射器反射路由。

[SwitchC] bgp 200

[SwitchC-bgp-default] group evpn

[SwitchC-bgp-default] peer 1.1.1.1 group evpn

[SwitchC-bgp-default] peer 2.2.2.2 group evpn

[SwitchC-bgp-default] peer 4.4.4.4 group evpn

[SwitchC-bgp-default] peer evpn as-number 200

[SwitchC-bgp-default] peer evpn connect-interface loopback 0

[SwitchC-bgp-default] address-family l2vpn evpn

[SwitchC-bgp-default-evpn] peer evpn enable

[SwitchC-bgp-default-evpn] undo policy vpn-target

[SwitchC-bgp-default-evpn] peer evpn reflect-client

[SwitchC-bgp-default-evpn] quit

[SwitchC-bgp-default] quit

4. 配置Switch D

# 配置BGP发布EVPN路由。

[SwitchD] bgp 200

[SwitchD-bgp-default] peer 3.3.3.3 as-number 200

[SwitchD-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchD-bgp-default] address-family l2vpn evpn

[SwitchD-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchD-bgp-default-evpn] quit

[SwitchD-bgp-default] quit

5.5.7  配置以太网服务实例匹配用户报文,并将其与VSI关联

1. 配置Switch A

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port link-type trunk

[SwitchA-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchA-Bridge-Aggregation4] service-instance 1000

[SwitchA-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port link-type trunk

[SwitchA-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchA-Bridge-Aggregation5] service-instance 1000

[SwitchA-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation5-srv1000] quit

2. 配置Switch B

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port link-type trunk

[SwitchB-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchB-Bridge-Aggregation4] service-instance 1000

[SwitchB-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port link-type trunk

[SwitchB-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchB-Bridge-Aggregation5] service-instance 1000

[SwitchB-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-Bridge-Aggregation5-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation5-srv1000] quit

3. 配置Switch D

# 接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchD] interface hundredgige 1/0/1

[SwitchD-HundredGigE1/0/1] port link-type trunk

[SwitchD-HundredGigE1/0/1] port trunk permit vlan 2

[SwitchD-HundredGigE1/0/1] service-instance 1000

[SwitchD-HundredGigE1/0/1] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchD-HundredGigE1/0/1] xconnect vsi vpna

[SwitchD-HundredGigE1/0/1] quit

5.6  验证配置

1. 以Switch A为例,验证分布式聚合设备

# 查看Switch A上的EVPN路由信息。

[Switch A]display bgp l2vpn evpn

 BGP local router ID is 1.2.3.4

 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: 2

 Route distinguisher: 1:10

 Total number of routes: 4

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [3][0][32][1.1.1.1]/80

                        1.1.1.1         0          100        32768   i

* >  [3][0][32][1.2.3.4]/80

                        1.2.3.4         0          100        32768   i

* >i [3][0][32][2.2.2.2]/80

                        2.2.2.2         0          100        0       i

* >i [3][0][32][4.4.4.4]/80

                        4.4.4.4         0          100        0       i

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态,Tunnel0的隧道源地址是虚拟VTEP地址,Tunnel1为作为IPL的VXLAN隧道。

[SwitchA] display interface Tunnel

Tunnel0

Current state: UP

Line protocol state: UP

Description: Tunnel0 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.2.3.4, destination 4.4.4.4

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

 

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 2.2.2.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 13 bytes/sec, 104 bits/sec, 0 packets/sec

Last 300 seconds output rate: 13 bytes/sec, 104 bits/sec, 0 packets/sec

Input: 332 packets, 36377 bytes, 0 drops

Output: 583 packets, 59132 bytes, 0 drops

# 查看Switch A上的VSI信息。

[SwitchA] display l2vpn vsi verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel0              0x5000000  UP       Auto        Disabled

    Tunnel1              0x5000001  UP       Manual      Disabled

  ACs:

    AC                               Link ID  State       Type

    BAGG4 srv1000                    0        Up          Manual

    BAGG5 srv1000                    2        Up          Manual

2. 验证主机之间可以互访

虚拟机VM 1、VM 2和VM 3之间可以互访。虚拟机与Switch A或Switch B相连的链路断开后,VM 1、VM 2和VM 3仍然可以通过另一台设备互访。

5.7  配置文件

·     Switch A

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 1.1.1.1

 area 0.0.0.0

  network 1.1.1.1 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 11.1.1.0 0.0.0.255

#

vlan 11

#

 l2vpn enable

 reserved vxlan 1234

 vxlan tunnel arp-learning disable

 evpn drni group 1.2.3.4

#

vsi vpna

 arp suppression enable

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpna

#

interface LoopBack0

 ip address 1.1.1.1 255.255.255.255

#

interface LoopBack1

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.1 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 11

 undo mac-address static source-check enable

#

interface Tunnel1 mode vxlan

 port drni intra-portal-port 1

 source 1.1.1.1

 destination 2.2.2.2

 tunnel tos 100

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 12.1.1.2 source 11.1.1.1

 drni restore-delay 180

 drni system-mac 0001-0001-0001

 drni system-number 1

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Tunnel1

 drni mad exclude interface Vlan-interface 11

#

return

·     Switch B

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 2.2.2.2

 area 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 2.2.2.2 0.0.0.0

  network 12.1.1.0 0.0.0.255

#

vlan 12

#

 l2vpn enable

 reserved vxlan 1234

 evpn drni group 1.2.3.4

 vxlan tunnel arp-learning disable

#

vsi vpna

 arp suppression enable

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpna

#

interface LoopBack0

 ip address 2.2.2.2 255.255.255.255

#

interface LoopBack1

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface12

 ip address 12.1.1.2 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 12

 undo mac-address static source-check enable

#

interface Tunnel1 mode vxlan

 port drni intra-portal-port 1

 source 2.2.2.2

 destination 1.1.1.1

 tunnel tos 100

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 11.1.1.1 source 12.1.1.2

 drni restore-delay 180

 drni system-mac 0001-0001-0001

 drni system-number 2

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Tunnel1

 drni mad exclude interface Vlan-interface 12

#

return

·     Switch C

#

ospf 1 router-id 3.3.3.3

 area 0.0.0.0

  network 3.3.3.3 0.0.0.0

  network 11.1.1.0 0.0.0.255

  network 12.1.1.0 0.0.0.255

  network 13.1.1.0 0.0.0.255

#

vlan 11 to 13

#

interface LoopBack0

 ip address 3.3.3.3 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.3 255.255.255.0

#

interface Vlan-interface12

 ip address 12.1.1.3 255.255.255.0

#

interface Vlan-interface13

 ip address 13.1.1.3 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port access vlan 11

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 12

#

interface HundredGigE1/0/3

 port link-mode bridge

 port access vlan 13

#

bgp 200

 group evpn internal

 peer evpn connect-interface LoopBack0

 peer 1.1.1.1 group evpn

 peer 2.2.2.2 group evpn

 peer 4.4.4.4 group evpn

 #

 address-family l2vpn evpn

  undo policy vpn-target

  peer evpn enable

  peer evpn reflect-client

#

return

·     Switch D

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 4.4.4.4

 area 0.0.0.0

  network 4.4.4.4 0.0.0.0

  network 13.1.1.0 0.0.0.255

#

vlan 13

#

 l2vpn enable

 vxlan tunnel arp-learning disable

#

vsi vpna

 arp suppression enable

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface LoopBack0

 ip address 4.4.4.4 255.255.255.255

#

interface Vlan-interface13

 ip address 13.1.1.4 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-type trunk

 port trunk permit vlan 2

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 13

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

return

6 EVPN和DRNI三层转发配置举例(以太网聚合链路作为IPL)

6.1  组网需求

Switch A、Switch B、Switch D为与服务器连接的分布式EVPN网关,Switch A和Switch B通过DRNI虚拟为一台VTEP设备,Switch A和Switch B之间通过IPL同步MAC地址和ARP信息,以确保两台VTEP上的MAC地址和ARP信息保持一致。Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由。本组网采用以太网聚合链路作为IPL。

Switch A和Switch B均通过以太网链路与下行的虚拟机VM 1、VM 2、VM 3和VM 4连接,要求在连接每一台虚拟机的链路间跨设备建立二层聚合接口,避免单条以太网链路故障导致虚拟机无法访问网络。

虚拟机VM 1、VM 3和VM 5属于VXLAN 10,VM 2和VM 4属于VXLAN 20,通过分布式EVPN网关实现不同VXLAN之间互通。

图6-1 EVPNDRNI三层转发组网图(以太网聚合链路作为IPL)

 

6.2  配置思路

·     在交换机上配置路由协议,使得各交换机的接口IP地址(包括Loopback接口IP地址)之间路由可达。本举例以OSPF路由协议为例。

·     在Switch A、Switch B上开启EVPN支持分布式聚合功能,使两台设备虚拟为一台VTEP设备。

·     配置Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由。

·     在Switch A、Switch B和Switch D上配置分布式EVPN网关,使VTEP之间通过BGP EVPN路由实现自动发现邻居、自动建立/关联VXLAN隧道、通告MAC/IP的可达性等,以便将虚拟机之间实现三层互通。

·     在Switch A、Switch B和Switch D的下行端口上配置以太网服务实例和相应的匹配规则,用来识别用户网络中的报文所属的VXLAN。

6.3  使用版本

表6-1 适用产品及版本

产品

软件版本

S6805系列

Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6825系列

Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6850系列

S9850系列

Release 6555P01版本、Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S9820-64H

不支持

S9820-8C

不支持

 

6.4  配置注意事项

·     VTEP设备上最多支持创建4K规格的AC。

·     建议使用Loopback接口的IP地址作为分布式聚合的虚拟VTEP地址

·     以太网服务实例配置的报文匹配规则只能为匹配报文的外层VLAN tag(encapsulation s-vid { vlan-id | vlan-id-list })、匹配不携带VLAN tag的所有报文(encapsulation untagged)。

·     配置相同报文匹配规则的以太网服务实例必须关联相同的VSI。

·     建议不要在分布式聚合的两台VTEP上引入外部路由。

6.5  配置步骤

6.5.1  配置设备工作的硬件资源模式。

# 配置Switch A、Switch B和Switch D工作的硬件资源模式,并重启设备。以Switch A为例,其他设备的配置方法与此相同。

[SwitchA] hardware-resource vxlan l3gw

Do you want to change the specified hardware resource working mode? [Y/N]:y

The hardware resource working mode is changed, please save the configuration and

 reboot the system to make it effective.

[SwitchA] quit

<SwitchA> reboot

Start to check configuration with next startup configuration file, please wait..

.......DONE!

Current configuration may be lost after the reboot, save current configuration?

[Y/N]:y

This command will reboot the device. Continue? [Y/N]:y

6.5.2  配置各接口的IP地址

# 在Switch A上配置各接口的IP地址。

<SwitchA> system-view

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 32

[SwitchA-Loopback0] quit

[SwitchA] interface loopback 1

[SwitchA-Loopback1] ip address 1.2.3.4 32

[SwitchA-Loopback1] quit

[SwitchA] vlan 11

[SwitchA-vlan11] port hundredgige 1/0/5

[SwitchA-vlan11] quit

[SwitchA] interface vlan-interface 11

[SwitchA-Vlan-interface11] ip address 11.1.1.1 24

[SwitchA-Vlan-interface11] quit

[SwitchA] interface hundredgige 1/0/4

[SwitchA-HundredGigE1/0/4] port link-mode route

[SwitchA-HundredGigE1/0/4] ip address 60.1.1.1 24

[SwitchA-HundredGigE1/0/4] quit

# 请参考以上方法配置其它交换机上的接口IP地址,配置步骤此处省略。

# 在VM 1、VM 3和VM 5上指定网关地址为10.1.1.1;在VM 2和VM 4上指定网关地址为10.1.2.1。(具体配置过程略)

6.5.3  配置路由协议

1. 配置Switch A

# 配置OSPF发布接口所在网段的路由。

[SwitchA] ospf 1 router-id 1.1.1.1

[SwitchA-ospf-1] area 0

[SwitchA-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchA-ospf-1-area-0.0.0.0] quit

[SwitchA-ospf-1] quit

# 配置DR设备Switch A与Switch B之间路由可达。

[SwitchA] vlan 100

[SwitchA-vlan100] quit

[SwitchA] interface Vlan-interface 100

[SwitchA-Vlan-interface100] ip address 100.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] ospf 1 area 0.0.0.0

[SwitchA-Vlan-interface100] quit

2. 配置Switch B

# 配置OSPF发布接口所在网段的路由。

<SwitchB> system-view

[SwitchB] ospf 1 router-id 2.2.2.2

[SwitchB-ospf-1] area 0

[SwitchB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchB-ospf-1-area-0.0.0.0] quit

[SwitchB-ospf-1] quit

# 配置DR设备Switch A与Switch B之间路由可达。

[SwitchB] vlan 100

[SwitchB-vlan100] quit

[SwitchB] interface Vlan-interface 100

[SwitchB-Vlan-interface100] ip address 100.1.1.2 255.255.255.0

[SwitchB-Vlan-interface100] ospf 1 area 0.0.0.0

[SwitchB-Vlan-interface100] quit

3. 配置Switch C

# 配置OSPF发布接口所在网段的路由。

<SwitchC> system-view

[SwitchC] ospf 1 router-id 3.3.3.3

[SwitchC-ospf-1] area 0

[SwitchC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0

[SwitchC-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] quit

[SwitchC-ospf-1] quit

4. 配置Switch D

# 配置OSPF发布接口所在网段的路由。

<SwitchD> system-view

[SwitchD] ospf 1 router-id 4.4.4.4

[SwitchD-ospf-1] area 0

[SwitchD-ospf-1-area-0.0.0.0] network 4.4.4.4 0.0.0.0

[SwitchD-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchD-ospf-1-area-0.0.0.0] quit

[SwitchD-ospf-1] quit

6.5.4  创建VSI、EVPN实例和VXLAN

1. 配置Switch A

# 开启L2VPN能力。

[SwitchA] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchA] vxlan tunnel mac-learning disable

[SwitchA] vxlan tunnel arp-learning disable

# 配置EVPN的全局MAC地址为0002-0003-0004。

[SwitchA] evpn global-mac 2-3-4

# 在VSI实例vpna下创建EVPN实例。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchA-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchA-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchA-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 在VSI实例vpnb下创建EVPN实例。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchA-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[SwitchA-vsi-vpnb-evpn-vxlan] vpn-target auto

[SwitchA-vsi-vpnb-evpn-vxlan] quit

# 创建VXLAN 20。

[SwitchA-vsi-vpnb] vxlan 20

[SwitchA-vsi-vpnb-vxlan-20] quit

[SwitchA-vsi-vpnb] quit

2. 配置Switch B

# 开启L2VPN能力。

[SwitchB] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchB] vxlan tunnel mac-learning disable

[SwitchB] vxlan tunnel arp-learning disable

# 配置EVPN的全局MAC地址为0002-0003-0004。

[SwitchB] evpn global-mac 2-3-4

# 在VSI实例vpna下创建EVPN实例。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] evpn encapsulation vxlan

# 并配置自动生成EVPN实例的RD和RT。

[SwitchB-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchB-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchB-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 在VSI实例vpnb下创建EVPN实例。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchB-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[SwitchB-vsi-vpnb-evpn-vxlan] vpn-target auto

[SwitchB-vsi-vpnb-evpn-vxlan] quit

# 创建VXLAN 20。

[SwitchB-vsi-vpnb] vxlan 20

[SwitchB-vsi-vpnb-vxlan-20] quit

[SwitchB-vsi-vpnb] quit

3. 配置Switch D

# 开启L2VPN能力。

[SwitchD] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchD] vxlan tunnel mac-learning disable

[SwitchD] vxlan tunnel arp-learning disable

# 在VSI实例vpna下创建EVPN实例。

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchD-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchD-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchD-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchD-vsi-vpna] vxlan 10

[SwitchD-vsi-vpna-vxlan-10] quit

[SwitchD-vsi-vpna] quit

6.5.5  配置分布式EVPN网关

1. 配置Switch A

# 配置L3VPN的RD和RT。

[SwitchA] ip vpn-instance vpna

[SwitchA-vpn-instance-vpna] route-distinguisher 1:1

[SwitchA-vpn-instance-vpna] address-family ipv4

[SwitchA-vpn-ipv4-vpna] vpn-target 2:2

[SwitchA-vpn-ipv4-vpna] quit

[SwitchA-vpn-instance-vpna] address-family evpn

[SwitchA-vpn-evpn-vpna] vpn-target 1:1

[SwitchA-vpn-evpn-vpna] quit

[SwitchA-vpn-instance-vpna] quit

# 配置VSI虚接口VSI-interface1。

[SwitchA] interface vsi-interface 1

[SwitchA-Vsi-interface1] ip binding vpn-instance vpna

[SwitchA-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchA-Vsi-interface1] mac-address 1-1-1

[SwitchA-Vsi-interface1] distributed-gateway local

[SwitchA-Vsi-interface1] local-proxy-arp enable

[SwitchA-Vsi-interface1] quit

# 配置VSI虚接口VSI-interface2。

[SwitchA] interface vsi-interface 2

[SwitchA-Vsi-interface2] ip binding vpn-instance vpna

[SwitchA-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchA-Vsi-interface2] mac-address 2-2-2

[SwitchA-Vsi-interface2] distributed-gateway local

[SwitchA-Vsi-interface2] local-proxy-arp enable

[SwitchA-Vsi-interface2] quit

# 创建VSI虚接口VSI-interface3,在该接口上配置VPN实例vpna对应的L3VNI为1000。

[SwitchA] interface vsi-interface 3

[SwitchA-Vsi-interface3] ip binding vpn-instance vpna

[SwitchA-Vsi-interface3] l3-vni 1000

[SwitchA-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] gateway vsi-interface 1

[SwitchA-vsi-vpna] quit

# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] gateway vsi-interface 2

[SwitchA-vsi-vpnb] quit

2. 配置Switch B

# 配置L3VPN的RD和RT。

[SwitchB] ip vpn-instance vpna

[SwitchB-vpn-instance-vpna] route-distinguisher 1:1

[SwitchB-vpn-instance-vpna] address-family ipv4

[SwitchB-vpn-ipv4-vpna] vpn-target 2:2

[SwitchB-vpn-ipv4-vpna] quit

[SwitchB-vpn-instance-vpna] address-family evpn

[SwitchB-vpn-evpn-vpna] vpn-target 1:1

[SwitchB-vpn-evpn-vpna] quit

[SwitchB-vpn-instance-vpna] quit

# 配置VSI虚接口VSI-interface1。

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip binding vpn-instance vpna

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchB-Vsi-interface1] mac-address 1-1-1

[SwitchB-Vsi-interface1] distributed-gateway local

[SwitchB-Vsi-interface1] local-proxy-arp enable

[SwitchB-Vsi-interface1] quit

# 配置VSI虚接口VSI-interface2。

[SwitchB] interface vsi-interface 2

[SwitchB-Vsi-interface2] ip binding vpn-instance vpna

[SwitchB-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchB-Vsi-interface2] mac-address 2-2-2

[SwitchB-Vsi-interface2] distributed-gateway local

[SwitchB-Vsi-interface2] local-proxy-arp enable

[SwitchB-Vsi-interface2] quit

# 创建VSI虚接口VSI-interface3,在该接口上配置VPN实例vpna对应的L3VNI为1000。

[SwitchB] interface vsi-interface 3

[SwitchB-Vsi-interface3] ip binding vpn-instance vpna

[SwitchB-Vsi-interface3] l3-vni 1000

[SwitchB-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] gateway vsi-interface 1

[SwitchB-vsi-vpna] quit

# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] gateway vsi-interface 2

[SwitchB-vsi-vpnb] quit

3. 配置Switch D

# 配置L3VPN的RD和RT。

[SwitchD] ip vpn-instance vpna

[SwitchD-vpn-instance-vpna] route-distinguisher 1:1

[SwitchD-vpn-instance-vpna] address-family ipv4

[SwitchD-vpn-ipv4-vpna] vpn-target 2:2

[SwitchD-vpn-ipv4-vpna] quit

[SwitchD-vpn-instance-vpna] address-family evpn

[SwitchD-vpn-evpn-vpna] vpn-target 1:1

[SwitchD-vpn-evpn-vpna] quit

[SwitchD-vpn-instance-vpna] quit

# 配置VSI虚接口VSI-interface1。

[SwitchD] interface vsi-interface 1

[SwitchD-Vsi-interface1] ip binding vpn-instance vpna

[SwitchD-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchD-Vsi-interface1] mac-address 1-1-1

[SwitchD-Vsi-interface1] distributed-gateway local

[SwitchD-Vsi-interface1] local-proxy-arp enable

[SwitchD-Vsi-interface1] quit

# 创建VSI虚接口VSI-interface3,在该接口上配置VPN实例vpna对应的L3VNI为1000。

[SwitchD] interface vsi-interface 3

[SwitchD-Vsi-interface3] ip binding vpn-instance vpna

[SwitchD-Vsi-interface3] l3-vni 1000

[SwitchD-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] gateway vsi-interface 1

[SwitchD-vsi-vpna] quit

6.5.6  配置DRNI

1. 配置Switch A

# 配置IPL上动态AC的报文匹配规则,有如下两个方案。Switch A和Switch B上采用的方案必须相同。

·     方案一:采用VXLAN ID映射方式生成IPL上动态AC的报文匹配规则。

[SwitchA] l2vpn drni peer-link ac-match-rule vxlan-mapping

·     方案二:根据用户侧以太网服务实例的报文匹配规则创建IPL上的AC。

无需执行其他配置,默认采用该方案。(本举例采用此方案)

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchA] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchA] drni system-mac 0001-0002-0003

[SwitchA] drni system-number 1

[SwitchA] drni system-priority 10

[SwitchA] drni restore-delay 180

[SwitchA] drni keepalive ip destination 60.1.1.2 source 60.1.1.1

# 创建二层聚合接口3,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 3

[SwitchA-Bridge-Aggregation3] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation3] quit

# 将端口HundredGigE1/0/3加入到聚合组3中。

[SwitchA] interface hundredgige 1/0/3

[SwitchA-HundredGigE1/0/3] port link-aggregation group 3

[SwitchA-HundredGigE1/0/3] quit

# 将二层聚合接口3配置为IPP口。

[SwitchA] interface bridge-aggregation 3

[SwitchA-Bridge-Aggregation3] port drni intra-portal-port 1

[SwitchA-Bridge-Aggregation3] undo mac-address static source-check enable

[SwitchA-Bridge-Aggregation3] quit

# 在网络侧物理出接口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchA] interface hundredgige 1/0/5

[SwitchA-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchA-HundredGigE1/0/5] undo stp enable

[SwitchA-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] port link-aggregation group 4

[SwitchA-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port drni group 4

[SwitchA-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchA] interface hundredgige 1/0/2

[SwitchA-HundredGigE1/0/2] port link-aggregation group 5

[SwitchA-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port drni group 5

[SwitchA-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchA] drni mad exclude interface loopback 0

[SwitchA] drni mad exclude interface hundredgige 1/0/4

[SwitchA] drni mad exclude interface hundredgige 1/0/5

[SwitchA] drni mad exclude interface vlan-interface 11

[SwitchA] drni mad exclude interface vsi-interface 1

[SwitchA] drni mad exclude interface vsi-interface 2

2. 配置Switch B

# 配置IPL上动态AC的报文匹配规则,有如下两个方案。Switch A和Switch B上采用的方案必须相同。

·     方案一:采用VXLAN ID映射方式生成IPL上动态AC的报文匹配规则。

[SwitchB] l2vpn drni peer-link ac-match-rule vxlan-mapping

·     方案二:根据用户侧以太网服务实例的报文匹配规则创建IPL上的AC。

无需执行其他配置,默认采用该方案。(本举例采用此方案)

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchB] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchB] drni system-mac 0001-0002-0003

[SwitchB] drni system-number 2

[SwitchB] drni system-priority 10

[SwitchB] drni restore-delay 180

[SwitchA] drni keepalive ip destination 60.1.1.1 source 60.1.1.2

# 创建二层聚合接口3,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 3

[SwitchB-Bridge-Aggregation3] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation3] quit

# 将端口HundredGigE1/0/3加入到聚合组3中。

[SwitchB] interface hundredgige 1/0/3

[SwitchB-HundredGigE1/0/3] port link-aggregation group 3

[SwitchB-HundredGigE1/0/3] quit

# 将二层聚合接口3配置为IPP口。

[SwitchB] interface bridge-aggregation 3

[SwitchB-Bridge-Aggregation3] port drni intra-portal-port 1

[SwitchB-Bridge-Aggregation3] undo mac-address static source-check enable

[SwitchB-Bridge-Aggregation3] quit

# 在网络侧物理出接口在端口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchB] interface hundredgige 1/0/5

[SwitchB-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchB-HundredGigE1/0/5] undo stp enable

[SwitchB-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] port link-aggregation group 4

[SwitchB-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port drni group 4

[SwitchB-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchB] interface hundredgige 1/0/2

[SwitchB-HundredGigE1/0/2] port link-aggregation group 5

[SwitchB-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port drni group 5

[SwitchB-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchB] drni mad exclude interface loopback 0

[SwitchB] drni mad exclude interface hundredgige 1/0/4

[SwitchB] drni mad exclude interface hundredgige 1/0/5

[SwitchB] drni mad exclude interface vsi-interface 1

[SwitchB] drni mad exclude interface vsi-interface 2

[SwitchB] drni mad exclude interface vlan-interface 12

6.5.7  配置BGP发布EVPN路由

1. 配置Switch A

# 配置BGP发布EVPN路由。

[SwitchA] bgp 200

[SwitchA-bgp-default] peer 3.3.3.3 as-number 200

[SwitchA-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchA-bgp-default] address-family l2vpn evpn

[SwitchA-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchA-bgp-default-evpn] quit

[SwitchA-bgp-default] quit

2. 配置Switch B

# 配置BGP发布EVPN路由。

[SwitchB] bgp 200

[SwitchB-bgp-default] peer 3.3.3.3 as-number 200

[SwitchB-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchB-bgp-default] address-family l2vpn evpn

[SwitchB-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchB-bgp-default-evpn] quit

[SwitchB-bgp-default] quit

3. 配置Switch C

# 配置BGP发布EVPN路由,并作为路由反射器反射路由。

[SwitchC] bgp 200

[SwitchC-bgp-default] group evpn

[SwitchC-bgp-default] peer 1.1.1.1 group evpn

[SwitchC-bgp-default] peer 2.2.2.2 group evpn

[SwitchC-bgp-default] peer 4.4.4.4 group evpn

[SwitchC-bgp-default] peer evpn as-number 200

[SwitchC-bgp-default] peer evpn connect-interface loopback 0

[SwitchC-bgp-default] address-family l2vpn evpn

[SwitchC-bgp-default-evpn] peer evpn enable

[SwitchC-bgp-default-evpn] undo policy vpn-target

[SwitchC-bgp-default-evpn] peer evpn reflect-client

[SwitchC-bgp-default-evpn] quit

[SwitchC-bgp-default] quit

4. 配置Switch D

# 配置BGP发布EVPN路由。

[SwitchD] bgp 200

[SwitchD-bgp-default] peer 3.3.3.3 as-number 200

[SwitchD-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchD-bgp-default] address-family l2vpn evpn

[SwitchD-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchD-bgp-default-evpn] quit

[SwitchD-bgp-default] quit

6.5.8  配置以太网服务实例匹配用户报文,并将其与VSI关联

1. 配置Switch A

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port link-type trunk

[SwitchA-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchA-Bridge-Aggregation4] service-instance 1000

[SwitchA-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port link-type trunk

[SwitchA-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchA-Bridge-Aggregation5] service-instance 1000

[SwitchA-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpnb关联。

[SwitchA-Bridge-Aggregation5-srv1000] xconnect vsi vpnb

[SwitchA-Bridge-Aggregation5-srv1000] quit

2. 配置Switch B

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port link-type trunk

[SwitchB-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchB-Bridge-Aggregation4] service-instance 1000

[SwitchB-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpnb关联。

[SwitchB-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port link-type trunk

[SwitchB-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchB-Bridge-Aggregation5] service-instance 1000

[SwitchB-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-Bridge-Aggregation5-srv1000] xconnect vsi vpnb

[SwitchB-Bridge-Aggregation5-srv1000] quit

3. 配置Switch D

# 接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchD] interface hundredgige 1/0/1

[SwitchD-HundredGigE1/0/1] port link-type trunk

[SwitchD-HundredGigE1/0/1] port trunk permit vlan 2

[SwitchD-HundredGigE1/0/1] service-instance 1000

[SwitchD-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchD-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchD-HundredGigE1/0/1-srv1000] quit

6.6  验证配置

1. 以Switch A为例,验证分布式聚合设备

# 查看Switch A上的EVPN路由信息。

[Switch A]display bgp l2vpn evpn

 BGP local router ID is 1.2.3.4

 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: 2

 Route distinguisher: 1:1(vpna)

 Total number of routes: 2

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [5][0][24][10.1.1.0]/80

                        1.2.3.4         0          100        32768   i

* >  [5][0][24][10.1.2.0]/80

                        1.2.3.4         0          100        32768   i

 Route distinguisher: 1:10

 Total number of routes: 2

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [3][0][32][1.2.3.4]/80

                        1.2.3.4         0          100        32768   i

* >i [3][0][32][4.4.4.4]/80

                        4.4.4.4         0          100        0       i

 Route distinguisher: 1:20

 Total number of routes: 2

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [3][0][32][1.2.3.4]/80

                        1.2.3.4         0          100        32768   i

* >i [3][0][32][4.4.4.4]/80

                        4.4.4.4         0          100        0       i

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态,并且隧道源地址是虚拟VTEP地址。

[SwitchA] display interface Tunnel

Tunnel0

Current state: UP

Line protocol state: UP

Description: Tunnel0 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.2.3.4, destination 4.4.4.4

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Switch A上的VSI信息,可以看到设备自动在IPL上创建了AC,并将其与VSI关联。

[SwitchA] display l2vpn vsi verbose

VSI Name: Auto_L3VNI1000_3

  VSI Index               : 1

  VSI State               : Down

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 3

  VXLAN ID                : 1000

 

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel0              0x5000000  UP       Auto        Disabled

  ACs:

    AC                               Link ID  State       Type

    BAGG4 srv1000                    0        Up          Manual

    BAGG3 srv2                       1        Up          Dynamic (MLAG)

 

VSI Name: vpnb

  VSI Index               : 2

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 2

  VXLAN ID                : 20

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel0              0x5000000  UP       Auto        Disabled

  ACs:

    AC                               Link ID  State       Type

    BAGG5 srv1000                    0        Up          Manual

    BAGG3 srv3                       1        Up          Dynamic (MLAG)

2. 验证主机之间可以互访

虚拟机之间可以互访。虚拟机VM 1与Switch A或Switch B相连的链路断开后,VM 5仍然可以通过另一台设备访问VM 1。

6.7  配置文件

·     Switch A

#

ip vpn-instance vpna

 route-distinguisher 1:1

 #

 address-family ipv4

  vpn-target 2:2 import-extcommunity

  vpn-target 2:2 export-extcommunity

 #

 address-family evpn

  vpn-target 1:1 import-extcommunity

  vpn-target 1:1 export-extcommunity

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 1.1.1.1

 area 0.0.0.0

  network 1.1.1.1 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 11.1.1.0 0.0.0.255

#

 hardware-resource vxlan l3gw

#

vlan 11

#

 l2vpn enable

 vxlan tunnel arp-learning disable

 evpn drni group 1.2.3.4

 evpn global-mac 0002-0003-0004

#

vsi vpna

 gateway vsi-interface 1

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

vsi vpnb

 gateway vsi-interface 2

 vxlan 20

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation3

 link-aggregation mode dynamic

 port drni intra-portal-port 1

 undo mac-address static source-check enable

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpnb

#

interface LoopBack0

 ip address 1.1.1.1 255.255.255.255

#

interface LoopBack1

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.1 255.255.255.0

#

interface HundredGigE1/0/4

 port link-mode route

 ip address 60.1.1.1 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/3

 port link-mode bridge

 port link-aggregation group 3

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 11

 undo mac-address static source-check enable

#

interface Vsi-interface1

 ip binding vpn-instance vpna

 ip address 10.1.1.1 255.255.255.0

 mac-address 0001-0001-0001

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface2

 ip binding vpn-instance vpna

 ip address 10.1.2.1 255.255.255.0

 mac-address 0002-0002-0002

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface3

 ip binding vpn-instance vpna

 l3-vni 1000

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 60.1.1.2 source 60.1.1.1

 drni restore-delay 180

 drni system-mac 0001-0002-0003

 drni system-number 1

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/4

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Vlan-interface 11

 drni mad exclude interface Vsi-interface1

 drni mad exclude interface Vsi-interface2

#

return

·     Switch B

#

ip vpn-instance vpna

 route-distinguisher 1:1

 #

 address-family ipv4

  vpn-target 2:2 import-extcommunity

  vpn-target 2:2 export-extcommunity

 #

 address-family evpn

  vpn-target 1:1 import-extcommunity

  vpn-target 1:1 export-extcommunity

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 2.2.2.2

 area 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 2.2.2.2 0.0.0.0

  network 12.1.1.0 0.0.0.255

#

 hardware-resource vxlan l3gw

#

vlan 12

#

 l2vpn enable

 vxlan tunnel arp-learning disable

 evpn drni group 1.2.3.4

 evpn global-mac 0002-0003-0004

#

vsi vpna

 gateway vsi-interface 1

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

vsi vpnb

 gateway vsi-interface 2

 vxlan 20

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation3

 link-aggregation mode dynamic

 port drni intra-portal-port 1

 undo mac-address static source-check enable

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpnb

#

interface LoopBack0

 ip address 2.2.2.2 255.255.255.255

#

interface LoopBack1

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface12

 ip address 12.1.1.2 255.255.255.0

#

interface HundredGigE1/0/4

 port link-mode route

 ip address 60.1.1.2 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/3

 port link-mode bridge

 port link-aggregation group 3

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 12

 undo mac-address static source-check enable

#

interface Vsi-interface1

 ip binding vpn-instance vpna

 ip address 10.1.1.1 255.255.255.0

 mac-address 0001-0001-0001

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface2

 ip binding vpn-instance vpna

 ip address 10.1.2.1 255.255.255.0

 mac-address 0002-0002-0002

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface3

 ip binding vpn-instance vpna

 l3-vni 1000

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 60.1.1.1 source 60.1.1.2

 drni restore-delay 180

 drni system-mac 0001-0002-0003

 drni system-number 2

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/4

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Vlan-interface 12

 drni mad exclude interface Vsi-interface1

 drni mad exclude interface Vsi-interface2

#

return

·     Switch C

#

ospf 1 router-id 3.3.3.3

 area 0.0.0.0

  network 3.3.3.3 0.0.0.0

  network 11.1.1.0 0.0.0.255

  network 12.1.1.0 0.0.0.255

  network 13.1.1.0 0.0.0.255

#

vlan 11 to 13

#

interface LoopBack0

 ip address 3.3.3.3 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.3 255.255.255.0

#

interface Vlan-interface12

 ip address 12.1.1.3 255.255.255.0

#

interface Vlan-interface13

 ip address 13.1.1.3 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port access vlan 11

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 12

#

interface HundredGigE1/0/3

 port link-mode bridge

 port access vlan 13

#

bgp 200

 group evpn internal

 peer evpn connect-interface LoopBack0

 peer 1.1.1.1 group evpn

 peer 2.2.2.2 group evpn

 peer 4.4.4.4 group evpn

 #

 address-family l2vpn evpn

  undo policy vpn-target

  peer evpn enable

  peer evpn reflect-client

#

return

·     Switch D

#

ip vpn-instance vpna

 route-distinguisher 1:1

 #

 address-family ipv4

  vpn-target 2:2 import-extcommunity

  vpn-target 2:2 export-extcommunity

 #

 address-family evpn

  vpn-target 1:1 import-extcommunity

  vpn-target 1:1 export-extcommunity

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 4.4.4.4

 area 0.0.0.0

  network 4.4.4.4 0.0.0.0

  network 13.1.1.0 0.0.0.255

#

 hardware-resource vxlan l3gw

#

vlan 13

#

l2vpn enable

 vxlan tunnel arp-learning disable

#

vsi vpna

 gateway vsi-interface 1

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface LoopBack0

 ip address 4.4.4.4 255.255.255.255

#

interface Vlan-interface13

 ip address 13.1.1.4 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-type trunk

 port trunk permit vlan 2

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 13

#

interface Vsi-interface1

 ip binding vpn-instance vpna

 ip address 10.1.1.1 255.255.255.0

 mac-address 0001-0001-0001

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface3

 ip binding vpn-instance vpna

 l3-vni 1000

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

return

7 EVPN和DRNI三层转发配置举例(VXLAN隧道作为IPL)

7.1  组网需求

Switch A、Switch B、Switch D为与服务器连接的分布式EVPN网关,Switch A和Switch B通过DRNI分布式聚合为一台虚拟VTEP设备,Switch A和Switch B之间采用VXLAN隧道作为IPL。

在Switch A和Switch B上配置Monitor Link组。把所有上行口配置为Up-Link,所有下行DR成员口配置为Down-Link,通过Monitor Link实现上下行接口联动,以便及时发现上行接口故障,并在DR成员设备之间进行主从切换。

Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由。

Switch A和Switch B均通过以太网链路与下行的虚拟机VM 1、VM 2、VM 3和VM 4连接,要求在连接每一台虚拟机的链路间跨设备建立二层聚合接口,避免单条以太网链路故障导致虚拟机无法访问网络。

虚拟机VM 1、VM 3和VM 5属于VXLAN 10,VM 2和VM 4属于VXLAN 20,通过分布式EVPN网关实现不同VXLAN之间互通。

图7-1 EVPNDRNI三层转发组网图(VXLAN隧道作为IPL)

 

 

7.2  配置思路

·     在交换机上配置路由协议,使得各交换机的接口IP地址(包括Loopback接口IP地址)之间路由可达。本举例以OSPF路由协议为例。

·     指定各虚拟机的网关地址。

·     在Switch A、Switch B上开启EVPN支持分布式聚合功能,使两台设备虚拟为一台VTEP设备。

·     Switch A、Switch B之间通过手工方式创建VXLAN隧道作为IPL,在Switch A和Switch B之间同步MAC地址和ARP信息。

·     配置Switch C作为路由反射器在Switch A、Switch B、Switch D之间反射路由

·     在Switch A、Switch B和Switch D上配置分布式EVPN网关,使VTEP之间通过BGP EVPN路由实现自动发现邻居、自动建立/关联VXLAN隧道、通告MAC/IP的可达性等,以便将虚拟机之间实现三层互通。

·     在Switch A、Switch B和Switch D的下行端口上配置以太网服务实例和相应的匹配规则,用来识别用户网络中的报文所属的VXLAN。

7.3  使用版本

表7-1 适用产品及版本

产品

软件版本

S6805系列

Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6825系列

Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S6850系列

S9850系列

Release 6555P01版本、Release 6607版本、Release 6616版本、Release 6616P01版本、Release 6635及以上版本

S9820-64H

不支持

S9820-8C

不支持

 

7.4  配置注意事项

·     手工创建作为IPL的VXLAN隧道仅支持Overlay网络的业务。

·     自动创建的VXLAN隧道不能作为IPL。

·     建议为VXLAN隧道和作为IPL的VXLAN隧道配置不同的物理接口作为隧道出接口。

·     在作为IPL的VXLAN隧道对应的二层以太网接口上关闭STP功能,以免上行设备错误地阻塞连接DR device的接口。

·     执行reserved vxlan命令配置保留VXLAN,以便通过该VXLAN转发DRNI协议报文等。作为DR device的两台VTEP上必须配置相同的保留VXLAN。

·     建议在作为IPL的VXLAN隧道接口上执行tunnel tos命令为封装后的隧道报文配置较高的优先级(数值越大,优先级越高),以确保该隧道上传递的DRCP(Distributed Relay Control Protocol,分布式聚合控制协议)等协议报文的优先级高于其他隧道上传递的普通数据报文。

7.5  配置步骤

7.5.1  配置设备工作的硬件资源模式。

# 配置Switch A、Switch B和Switch D工作的硬件资源模式,并重启设备。以Switch A为例,其他设备的配置方法与此相同。

[SwitchA] hardware-resource vxlan l3gw

Do you want to change the specified hardware resource working mode? [Y/N]:y

The hardware resource working mode is changed, please save the configuration and

 reboot the system to make it effective.

[SwitchA] quit

<SwitchA> reboot

Start to check configuration with next startup configuration file, please wait..

.......DONE!

Current configuration may be lost after the reboot, save current configuration?

[Y/N]:y

This command will reboot the device. Continue? [Y/N]:y

7.5.2  配置各接口的IP地址

# 在Switch A上配置各接口的IP地址。

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 32

[SwitchA-Loopback0] quit

[SwitchA] interface loopback 1

[SwitchA-Loopback1] ip address 1.2.3.4 32

[SwitchA-Loopback1] quit

[SwitchA] vlan 11

[SwitchA-vlan11] port hundredgige 1/0/5

[SwitchA-vlan11] quit

[SwitchA] interface vlan-interface 11

[SwitchA-Vlan-interface11] ip address 11.1.1.1 24

[SwitchA-Vlan-interface11] quit

# 请参考以上方法配置其它交换机上的接口IP地址,配置步骤此处省略。

# 在VM 1、VM 3和VM 5上指定网关地址为10.1.1.1;在VM 2和VM 4上指定网关地址为10.1.2.1。(具体配置过程略)

7.5.3  配置路由协议

1. 配置Switch A

# 配置OSPF发布接口所在网段的路由。

[SwitchA] ospf 1 router-id 1.1.1.1

[SwitchA-ospf-1] area 0

[SwitchA-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchA-ospf-1-area-0.0.0.0] quit

[SwitchA-ospf-1] quit

# 配置DR设备Switch A与Switch B之间路由可达。

[SwitchA] vlan 100

[SwitchA-vlan100] quit

[SwitchA] interface Vlan-interface 100

[SwitchA-Vlan-interface100] ip address 100.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] ospf 1 area 0.0.0.0

[SwitchA-Vlan-interface100] quit

2. 配置Switch B

# 配置OSPF发布接口所在网段的路由。

[SwitchB] ospf 1 router-id 2.2.2.2

[SwitchB-ospf-1] area 0

[SwitchB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0

[SwitchB-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchB-ospf-1-area-0.0.0.0] quit

[SwitchB-ospf-1] quit

# 配置DR设备Switch A与Switch B之间路由可达。

[SwitchB] vlan 100

[SwitchB-vlan100] quit

[SwitchB] interface Vlan-interface 100

[SwitchB-Vlan-interface100] ip address 100.1.1.2 255.255.255.0

[SwitchB-Vlan-interface100] ospf 1 area 0.0.0.0

[SwitchB-Vlan-interface100] quit

3. 配置Switch C

# 配置OSPF发布接口所在网段的路由。

[SwitchC] ospf 1 router-id 3.3.3.3

[SwitchC-ospf-1] area 0

[SwitchC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0

[SwitchC-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchC-ospf-1-area-0.0.0.0] quit

[SwitchC-ospf-1] quit

4. 配置Switch D

# 配置OSPF发布接口所在网段的路由。

[SwitchD] ospf 1 router-id 4.4.4.4

[SwitchD-ospf-1] area 0

[SwitchD-ospf-1-area-0.0.0.0] network 4.4.4.4 0.0.0.0

[SwitchD-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[SwitchD-ospf-1-area-0.0.0.0] quit

[SwitchD-ospf-1] quit

7.5.4  创建VSI、EVPN实例和VXLAN

1. 配置Switch A

# 开启L2VPN能力。

[SwitchA] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchA] vxlan tunnel mac-learning disable

[SwitchA] vxlan tunnel arp-learning disable

# 配置预留VXLAN ID为1234。

[SwitchA] reserved vxlan 1234

# 配置EVPN的全局MAC地址为0002-0003-0004。

[SwitchA] evpn global-mac 2-3-4

# 在VSI实例vpna下创建EVPN实例。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchA-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchA-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchA-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 在VSI实例vpnb下创建EVPN实例。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchA-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[SwitchA-vsi-vpnb-evpn-vxlan] vpn-target auto

[SwitchA-vsi-vpnb-evpn-vxlan] quit

# 创建VXLAN 20。

[SwitchA-vsi-vpnb] vxlan 20

[SwitchA-vsi-vpnb-vxlan-20] quit

[SwitchA-vsi-vpnb] quit

2. 配置Switch B

# 开启L2VPN能力。

[SwitchB] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchB] vxlan tunnel mac-learning disable

[SwitchB] vxlan tunnel arp-learning disable

# 配置预留VXLAN ID为1234。

[SwitchB] reserved vxlan 1234

# 配置EVPN的全局MAC地址为0002-0003-0004。

[SwitchB] evpn global-mac 2-3-4

# 在VSI实例vpna下创建EVPN实例。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchB-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchB-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchB-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 在VSI实例vpnb下创建EVPN实例。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchB-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[SwitchB-vsi-vpnb-evpn-vxlan] vpn-target auto

[SwitchB-vsi-vpnb-evpn-vxlan] quit

# 创建VXLAN 20。

[SwitchB-vsi-vpnb] vxlan 20

[SwitchB-vsi-vpnb-vxlan-20] quit

[SwitchB-vsi-vpnb] quit

3. 配置Switch D

# 开启L2VPN能力。

[SwitchD] l2vpn enable

# 关闭远端MAC地址和远端ARP自动学习功能。

[SwitchD] vxlan tunnel mac-learning disable

[SwitchD] vxlan tunnel arp-learning disable

# 在VSI实例vpna下创建EVPN实例。

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] evpn encapsulation vxlan

# 配置自动生成EVPN实例的RD和RT。

[SwitchD-vsi-vpna-evpn-vxlan] route-distinguisher auto

[SwitchD-vsi-vpna-evpn-vxlan] vpn-target auto

[SwitchD-vsi-vpna-evpn-vxlan] quit

# 创建VXLAN 10。

[SwitchD-vsi-vpna] vxlan 10

[SwitchD-vsi-vpna-vxlan-10] quit

[SwitchD-vsi-vpna] quit

7.5.5  配置分布式EVPN网关

1. 配置Switch A

# 配置L3VPN的RD和RT。

[SwitchA] ip vpn-instance vpna

[SwitchA-vpn-instance-vpna] route-distinguisher 1:1

[SwitchA-vpn-instance-vpna] address-family ipv4

[SwitchA-vpn-ipv4-vpna] vpn-target 2:2

[SwitchA-vpn-ipv4-vpna] quit

[SwitchA-vpn-instance-vpna] address-family evpn

[SwitchA-vpn-evpn-vpna] vpn-target 1:1

[SwitchA-vpn-evpn-vpna] quit

[SwitchA-vpn-instance-vpna] quit

# 配置VSI虚接口VSI-interface1。

[SwitchA] interface vsi-interface 1

[SwitchA-Vsi-interface1] ip binding vpn-instance vpna

[SwitchA-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchA-Vsi-interface1] mac-address 1-1-1

[SwitchA-Vsi-interface1] distributed-gateway local

[SwitchA-Vsi-interface1] local-proxy-arp enable

[SwitchA-Vsi-interface1] quit

# 配置VSI虚接口VSI-interface2。

[SwitchA] interface vsi-interface 2

[SwitchA-Vsi-interface2] ip binding vpn-instance vpna

[SwitchA-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchA-Vsi-interface2] mac-address 2-2-2

[SwitchA-Vsi-interface2] distributed-gateway local

[SwitchA-Vsi-interface2] local-proxy-arp enable

[SwitchA-Vsi-interface2] quit

# 创建VSI虚接口VSI-interface3,在该接口上配置VPN实例vpna对应的L3VNI为1000。

[SwitchA] interface vsi-interface 3

[SwitchA-Vsi-interface3] ip binding vpn-instance vpna

[SwitchA-Vsi-interface3] l3-vni 1000

[SwitchA-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] gateway vsi-interface 1

[SwitchA-vsi-vpna] quit

# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchA] vsi vpnb

[SwitchA-vsi-vpnb] gateway vsi-interface 2

[SwitchA-vsi-vpnb] quit

2. 配置Switch B

# 配置L3VPN的RD和RT。

[SwitchB] ip vpn-instance vpna

[SwitchB-vpn-instance-vpna] route-distinguisher 1:1

[SwitchB-vpn-instance-vpna] address-family ipv4

[SwitchB-vpn-ipv4-vpna] vpn-target 2:2

[SwitchB-vpn-ipv4-vpna] quit

[SwitchB-vpn-instance-vpna] address-family evpn

[SwitchB-vpn-evpn-vpna] vpn-target 1:1

[SwitchB-vpn-evpn-vpna] quit

[SwitchB-vpn-instance-vpna] quit

# 配置VSI虚接口VSI-interface1。

[SwitchB] interface vsi-interface 1

[SwitchB-Vsi-interface1] ip binding vpn-instance vpna

[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchB-Vsi-interface1] mac-address 1-1-1

[SwitchB-Vsi-interface1] distributed-gateway local

[SwitchB-Vsi-interface1] local-proxy-arp enable

[SwitchB-Vsi-interface1] quit

# 配置VSI虚接口VSI-interface2。

[SwitchB] interface vsi-interface 2

[SwitchB-Vsi-interface2] ip binding vpn-instance vpna

[SwitchB-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[SwitchB-Vsi-interface2] mac-address 2-2-2

[SwitchB-Vsi-interface2] distributed-gateway local

[SwitchB-Vsi-interface2] local-proxy-arp enable

[SwitchB-Vsi-interface2] quit

# 创建VSI虚接口VSI-interface3,在该接口上配置VPN实例vpna对应的L3VNI为1000。

[SwitchB] interface vsi-interface 3

[SwitchB-Vsi-interface3] ip binding vpn-instance vpna

[SwitchB-Vsi-interface3] l3-vni 1000

[SwitchB-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] gateway vsi-interface 1

[SwitchB-vsi-vpna] quit

# 配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchB] vsi vpnb

[SwitchB-vsi-vpnb] gateway vsi-interface 2

[SwitchB-vsi-vpnb] quit

3. 配置Switch D

# 配置L3VPN的RD和RT。

[SwitchD] ip vpn-instance vpna

[SwitchD-vpn-instance-vpna] route-distinguisher 1:1

[SwitchD-vpn-instance-vpna] address-family ipv4

[SwitchD-vpn-ipv4-vpna] vpn-target 2:2

[SwitchD-vpn-ipv4-vpna] quit

[SwitchD-vpn-instance-vpna] address-family evpn

[SwitchD-vpn-evpn-vpna] vpn-target 1:1

[SwitchD-vpn-evpn-vpna] quit

[SwitchD-vpn-instance-vpna] quit

# 配置VSI虚接口VSI-interface1。

[SwitchD] interface vsi-interface 1

[SwitchD-Vsi-interface1] ip binding vpn-instance vpna

[SwitchD-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[SwitchD-Vsi-interface1] mac-address 1-1-1

[SwitchD-Vsi-interface1] distributed-gateway local

[SwitchD-Vsi-interface1] local-proxy-arp enable

[SwitchD-Vsi-interface1] quit

# 创建VSI虚接口VSI-interface3,在该接口上配置VPN实例vpna对应的L3VNI为1000。

[SwitchD] interface vsi-interface 3

[SwitchD-Vsi-interface3] ip binding vpn-instance vpna

[SwitchD-Vsi-interface3] l3-vni 1000

[SwitchD-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI实例和接口VSI-interface1关联。

[SwitchD] vsi vpna

[SwitchD-vsi-vpna] gateway vsi-interface 1

[SwitchD-vsi-vpna] quit

7.5.6  配置DRNI

1. 配置Switch A

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchA] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchA] drni system-mac 0001-0002-0003

[SwitchA] drni system-number 1

[SwitchA] drni system-priority 10

[SwitchA] drni restore-delay 180

# 在Switch A和Switch B之间手工创建VXLAN隧道Tunnel1,将其配置为IPP口,并配置封装后隧道报文的ToS值为100。

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] tunnel tos 100

[SwitchA-Tunnel1] quit

# 将VXLAN隧道接口配置DRNI保留接口。

[SwitchA] drni mad exclude interface tunnel 1

# 配置VXLAN隧道接口为IPP口。

[SwitchA] interface tunnel 1

[SwitchA-Tunnel1] port drni intra-portal-port 1

[SwitchA-Tunnel1] quit

# 在网络侧物理出接口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchA] interface hundredgige 1/0/5

[SwitchA-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchA-HundredGigE1/0/5] undo stp enable

[SwitchA-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] port link-aggregation group 4

[SwitchA-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port drni group 4

[SwitchA-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchA-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchA] interface hundredgige 1/0/2

[SwitchA-HundredGigE1/0/2] port link-aggregation group 5

[SwitchA-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port drni group 5

[SwitchA-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchA] drni mad exclude interface loopback0

[SwitchA] drni mad exclude interface hundredgige1/0/5

[SwitchA] drni mad exclude interface vsi-interface 1

[SwitchA] drni mad exclude interface vsi-interface 2

[SwitchA] drni mad exclude interface vlan-interface 11

2. 配置Switch B

# 开启EVPN的分布式聚合模式,并配置虚拟VTEP地址为1.2.3.4。

[SwitchB] evpn drni group 1.2.3.4

# 配置DR系统。

[SwitchB] drni system-mac 0001-0002-0003

[SwitchB] drni system-number 2

[SwitchB] drni system-priority 10

[SwitchB] drni restore-delay 180

# 在Switch A和Switch B之间手工创建VXLAN隧道Tunnel1,将其配置为IPP口,并配置封装后隧道报文的ToS值为100。

[SwitchB] interface tunnel 1 mode vxlan

[SwitchB-Tunnel1] source 2.2.2.2

[SwitchB-Tunnel1] destination 1.1.1.1

[SwitchB-Tunnel1] tunnel tos 100

[SwitchB-Tunnel1] quit

# 将VXLAN隧道接口配置DRNI保留接口。

[SwitchB] drni mad exclude interface tunnel 1

# 配置VXLAN隧道接口为IPP口。

[SwitchB] interface tunnel 1

[SwitchB-Tunnel1] port drni intra-portal-port 1

[SwitchB-Tunnel1] quit

# 在网络侧物理出接口HundredGigE1/0/5上关闭报文入接口与静态MAC地址表项匹配检查功能和生成树协议。

[SwitchB] interface hundredgige 1/0/5

[SwitchB-HundredGigE1/0/5] undo mac-address static source-check enable

[SwitchB-HundredGigE1/0/5] undo stp enable

[SwitchB-HundredGigE1/0/5] quit

# 创建二层聚合接口4,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation4] quit

# 将端口HundredGigE1/0/1加入到聚合组4中。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] port link-aggregation group 4

[SwitchB-HundredGigE1/0/1] quit

# 将二层聚合接口4加入分布式聚合组4中。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port drni group 4

[SwitchB-Bridge-Aggregation4] quit

# 创建二层聚合接口5,并配置该接口为动态聚合模式。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] link-aggregation mode dynamic

[SwitchB-Bridge-Aggregation5] quit

# 将端口HundredGigE1/0/2加入到聚合组5中。

[SwitchB] interface hundredgige 1/0/2

[SwitchB-HundredGigE1/0/2] port link-aggregation group 5

[SwitchB-HundredGigE1/0/2] quit

# 将二层聚合接口5加入分布式聚合组5中。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port drni group 5

[SwitchB-Bridge-Aggregation5] quit

# 将所有参与EVPN业务的接口配置为保留接口。

[SwitchB] drni mad exclude interface loopback0

[SwitchB] drni mad exclude interface hundredgige1/0/5

[SwitchB] drni mad exclude interface vsi-interface 1

[SwitchB] drni mad exclude interface vsi-interface 2

[SwitchB] drni mad exclude interface vlan-interface 12

7.5.7  配置Monitor Link

1. 配置Switch A

# 创建Monitor Link组1,添加上行和下行接口,以便在上下行接口之间形成联动。

[SwitchA] monitor-link group 1

[SwitchA-mtlk-group1] port twenty-fivegige 1/0/1 downlink

[SwitchA-mtlk-group1] port twenty-fivegige 1/0/2 downlink

[SwitchA-mtlk-group1] port twenty-fivegige 1/0/4 uplink

[SwitchA-mtlk-group1] quit

2. 配置Switch B

# 创建Monitor Link组1,添加上行和下行接口,以便在上下行接口之间形成联动。

[SwitchB] monitor-link group 1

[SwitchB-mtlk-group1] port twenty-fivegige 1/0/1 downlink

[SwitchB-mtlk-group1] port twenty-fivegige 1/0/2 downlink

[SwitchB-mtlk-group1] port twenty-fivegige 1/0/4 uplink

[SwitchB-mtlk-group1] quit

7.5.8  配置BGP发布EVPN路由

1. 配置Switch A

# 配置BGP发布EVPN路由。

[SwitchA] bgp 200

[SwitchA-bgp-default] peer 3.3.3.3 as-number 200

[SwitchA-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchA-bgp-default] address-family l2vpn evpn

[SwitchA-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchA-bgp-default-evpn] quit

[SwitchA-bgp-default] quit

2. 配置Switch B

# 配置BGP发布EVPN路由。

[SwitchB] bgp 200

[SwitchB-bgp-default] peer 3.3.3.3 as-number 200

[SwitchB-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchB-bgp-default] address-family l2vpn evpn

[SwitchB-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchB-bgp-default-evpn] quit

[SwitchB-bgp-default] quit

3. 配置Switch C

# 配置BGP发布EVPN路由,并作为路由反射器反射路由。

[SwitchC] bgp 200

[SwitchC-bgp-default] group evpn

[SwitchC-bgp-default] peer 1.1.1.1 group evpn

[SwitchC-bgp-default] peer 2.2.2.2 group evpn

[SwitchC-bgp-default] peer 4.4.4.4 group evpn

[SwitchC-bgp-default] peer evpn as-number 200

[SwitchC-bgp-default] peer evpn connect-interface loopback 0

[SwitchC-bgp-default] address-family l2vpn evpn

[SwitchC-bgp-default-evpn] peer evpn enable

[SwitchC-bgp-default-evpn] undo policy vpn-target

[SwitchC-bgp-default-evpn] peer evpn reflect-client

[SwitchC-bgp-default-evpn] quit

[SwitchC-bgp-default] quit

4. 配置Switch D

# 配置BGP发布EVPN路由。

[SwitchD] bgp 200

[SwitchD-bgp-default] peer 3.3.3.3 as-number 200

[SwitchD-bgp-default] peer 3.3.3.3 connect-interface loopback 0

[SwitchD-bgp-default] address-family l2vpn evpn

[SwitchD-bgp-default-evpn] peer 3.3.3.3 enable

[SwitchD-bgp-default-evpn] quit

[SwitchD-bgp-default] quit

7.5.9  配置以太网服务实例匹配用户报文,并将其与VSI关联

1. 配置Switch A

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface bridge-aggregation 4

[SwitchA-Bridge-Aggregation4] port link-type trunk

[SwitchA-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchA-Bridge-Aggregation4] service-instance 1000

[SwitchA-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchA-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchA] interface bridge-aggregation 5

[SwitchA-Bridge-Aggregation5] port link-type trunk

[SwitchA-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchA-Bridge-Aggregation5] service-instance 1000

[SwitchA-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpnb关联。

[SwitchA-Bridge-Aggregation5-srv1000] xconnect vsi vpnb

[SwitchA-Bridge-Aggregation5-srv1000] quit

2. 配置Switch B

# 接入服务器的接口Bridge-Aggregation4上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchB] interface bridge-aggregation 4

[SwitchB-Bridge-Aggregation4] port link-type trunk

[SwitchB-Bridge-Aggregation4] port trunk permit vlan 2

[SwitchB-Bridge-Aggregation4] service-instance 1000

[SwitchB-Bridge-Aggregation4-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-Bridge-Aggregation4-srv1000] xconnect vsi vpna

[SwitchB-Bridge-Aggregation4-srv1000] quit

# 接入服务器的接口Bridge-Aggregation5上创建以太网服务实例1000,该实例用来匹配VLAN 3的数据帧。

[SwitchB] interface bridge-aggregation 5

[SwitchB-Bridge-Aggregation5] port link-type trunk

[SwitchB-Bridge-Aggregation5] port trunk permit vlan 3

[SwitchB-Bridge-Aggregation5] service-instance 1000

[SwitchB-Bridge-Aggregation5-srv1000] encapsulation s-vid 3

# 配置以太网服务实例1000与VSI实例vpnb关联。

[SwitchB-Bridge-Aggregation5-srv1000] xconnect vsi vpnb

[SwitchB-Bridge-Aggregation5-srv1000] quit

3. 配置Switch D

# 接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchD] interface hundredgige 1/0/1

[SwitchD-HundredGigE1/0/1] port link-type trunk

[SwitchD-HundredGigE1/0/1] port trunk permit vlan 2

[SwitchD-HundredGigE1/0/1] service-instance 1000

[SwitchD-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchD-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchD-HundredGigE1/0/1-srv1000] quit

7.6  验证配置

1. 以Switch A为例,验证分布式聚合设备

# 查看Switch A上的EVPN路由信息。

[Switch A]display bgp l2vpn evpn

 BGP local router ID is 1.2.3.4

 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: 3

 Route distinguisher: 1:1(vpna)

 Total number of routes: 2

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [5][0][24][10.1.1.0]/80

                        1.1.1.1         0          100        32768   i

* >  [5][0][24][10.1.2.0]/80

                        1.1.1.1         0          100        32768   i

 Route distinguisher: 1:10

 Total number of routes: 4

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [3][0][32][1.1.1.1]/80

                        1.1.1.1         0          100        32768   i

* >  [3][0][32][1.2.3.4]/80

                        1.2.3.4         0          100        32768   i

* >i [3][0][32][2.2.2.2]/80

                        2.2.2.2         0          100        0       i

* >i [3][0][32][4.4.4.4]/80

                        4.4.4.4         0          100        0       i

 Route distinguisher: 1:20

 Total number of routes: 3

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >  [3][0][32][1.1.1.1]/80

                        1.1.1.1         0          100        32768   i

* >  [3][0][32][1.2.3.4]/80

                        1.2.3.4         0          100        32768   i

* >i [3][0][32][2.2.2.2]/80

                        2.2.2.2         0          100        0       i

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态,Tunnel0的隧道源地址是虚拟VTEP地址,Tunnel1为作为IPL的VXLAN隧道。

[SwitchA] display interface tunnel

Tunnel0

Current state: UP

Line protocol state: UP

Description: Tunnel0 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.2.3.4, destination 4.4.4.4

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

 

Tunnel1

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 2.2.2.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 149 bytes/sec, 1192 bits/sec, 1 packets/sec

Last 300 seconds output rate: 379 bytes/sec, 3032 bits/sec, 3 packets/sec

Input: 398 packets, 46446 bytes, 0 drops

Output: 3597 packets, 363591 bytes, 0 drops

# 查看Switch A上的VSI信息。

[SwitchA] display l2vpn vsi verbose

VSI Name: Auto_L3VNI1000_3

  VSI Index               : 1

  VSI State               : Down

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 3

  VXLAN ID                : 1000

 

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel0              0x5000000  UP       Auto        Disabled

    Tunnel1              0x5000001  UP       Manual      Disabled

  ACs:

    AC                               Link ID  State       Type

    BAGG4 srv1000                    0        Up          Manual

 

VSI Name: vpnb

  VSI Index               : 2

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : Unlimited

  Broadcast Restrain      : Unlimited

  Multicast Restrain      : Unlimited

  Unknown Unicast Restrain: Unlimited

  MAC Learning            : Enabled

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 2

  VXLAN ID                : 20

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood proxy

    Tunnel1              0x5000001  UP       Manual      Disabled

  ACs:

    AC                               Link ID  State       Type

BAGG5 srv1000                    0        Up          Manual

2. 验证主机之间可以互访

虚拟机之间可以互访。虚拟机VM 1与Switch A或Switch B相连的链路断开后,VM 5仍然可以通过另一台设备访问VM 1。

7.7  配置文件

·     Switch A

#

ip vpn-instance vpna

 route-distinguisher 1:1

 #

 address-family ipv4

  vpn-target 2:2 import-extcommunity

  vpn-target 2:2 export-extcommunity

 #

 address-family evpn

  vpn-target 1:1 import-extcommunity

  vpn-target 1:1 export-extcommunity

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 1.1.1.1

 area 0.0.0.0

  network 1.1.1.1 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 11.1.1.0 0.0.0.255

#

 hardware-resource vxlan l3gw

#

vlan 11

#

 l2vpn enable

 reserved vxlan 1234

 vxlan tunnel arp-learning disable

 evpn drni group 1.2.3.4

 evpn global-mac 0002-0003-0004

#

vsi vpna

 gateway vsi-interface 1

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

vsi vpnb

 gateway vsi-interface 2

 vxlan 20

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpnb

#

interface LoopBack0

 ip address 1.1.1.1 255.255.255.255

#

interface LoopBack1

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.1 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 11

 undo mac-address static source-check enable

#

interface Vsi-interface1

 ip binding vpn-instance vpna

 ip address 10.1.1.1 255.255.255.0

 mac-address 0001-0001-0001

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface2

 ip binding vpn-instance vpna

 ip address 10.1.2.1 255.255.255.0

 mac-address 0002-0002-0002

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface3

 ip binding vpn-instance vpna

 l3-vni 1000

#

interface Tunnel1 mode vxlan

 port drni intra-portal-port 1

 source 1.1.1.1

 destination 2.2.2.2

 tunnel tos 100

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 12.1.1.2 source 11.1.1.1

 drni restore-delay 180

 drni system-mac 0001-0001-0001

 drni system-number 1

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Tunnel1

 drni mad exclude interface Vlan-interface 11

 drni mad exclude interface Vsi-interface1

 drni mad exclude interface Vsi-interface2

#

return

·     Switch B

#

ip vpn-instance vpna

 route-distinguisher 1:1

 #

 address-family ipv4

  vpn-target 2:2 import-extcommunity

  vpn-target 2:2 export-extcommunity

 #

 address-family evpn

  vpn-target 1:1 import-extcommunity

  vpn-target 1:1 export-extcommunity

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 2.2.2.2

 area 0.0.0.0

  network 1.2.3.4 0.0.0.0

  network 2.2.2.2 0.0.0.0

  network 12.1.1.0 0.0.0.255

#

 hardware-resource vxlan l3gw

#

vlan 12

#

 l2vpn enable

 reserved vxlan 1234

 vxlan tunnel arp-learning disable

 evpn drni group 1.2.3.4

 evpn global-mac 0002-0003-0004

#

vsi vpna

 gateway vsi-interface 1

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

vsi vpnb

 gateway vsi-interface 2

 vxlan 20

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface Bridge-Aggregation4

 port link-type trunk

 port trunk permit vlan 2

 link-aggregation mode dynamic

 port drni group 4

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface Bridge-Aggregation5

 port link-type trunk

 port trunk permit vlan 3

 link-aggregation mode dynamic

 port drni group 5

 #

 service-instance 1000

  encapsulation s-vid 3

  xconnect vsi vpnb

#

interface LoopBack0

 ip address 2.2.2.2 255.255.255.255

#

interface LoopBack1

 ip address 1.2.3.4 255.255.255.255

#

interface Vlan-interface12

 ip address 12.1.1.2 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-aggregation group 4

#

interface HundredGigE1/0/2

 port link-mode bridge

 port link-aggregation group 5

#

interface HundredGigE1/0/5

 port link-mode bridge

 port access vlan 12

 undo mac-address static source-check enable

#

interface Vsi-interface1

 ip binding vpn-instance vpna

 ip address 10.1.1.1 255.255.255.0

 mac-address 0001-0001-0001

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface2

 ip binding vpn-instance vpna

 ip address 10.1.2.1 255.255.255.0

 mac-address 0002-0002-0002

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface3

 ip binding vpn-instance vpna

 l3-vni 1000

#

interface Tunnel1 mode vxlan

 port drni intra-portal-port 1

 source 2.2.2.2

 destination 1.1.1.1

 tunnel tos 100

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

 drni keepalive ip destination 11.1.1.1 source 12.1.1.2

 drni restore-delay 180

 drni system-mac 0001-0002-0003

 drni system-number 2

 drni system-priority 10

#

 drni mad exclude interface LoopBack0

 drni mad exclude interface HundredGigE1/0/5

 drni mad exclude interface Tunnel1

 drni mad exclude interface Vlan-interface 12

 drni mad exclude interface Vsi-interface1

 drni mad exclude interface Vsi-interface2

#

return

·     Switch C

#

ospf 1 router-id 3.3.3.3

 area 0.0.0.0

  network 3.3.3.3 0.0.0.0

  network 11.1.1.0 0.0.0.255

  network 12.1.1.0 0.0.0.255

  network 13.1.1.0 0.0.0.255

#

vlan 11 to 13

#

interface LoopBack0

 ip address 3.3.3.3 255.255.255.255

#

interface Vlan-interface11

 ip address 11.1.1.3 255.255.255.0

#

interface Vlan-interface12

 ip address 12.1.1.3 255.255.255.0

#

interface Vlan-interface13

 ip address 13.1.1.3 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port access vlan 11

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 12

#

interface HundredGigE1/0/3

 port link-mode bridge

 port access vlan 13

#

bgp 200

 group evpn internal

 peer evpn connect-interface LoopBack0

 peer 1.1.1.1 group evpn

 peer 2.2.2.2 group evpn

 peer 4.4.4.4 group evpn

 #

 address-family l2vpn evpn

  undo policy vpn-target

  peer evpn enable

  peer evpn reflect-client

#

return

·     Switch D

#

ip vpn-instance vpna

 route-distinguisher 1:1

 #

 address-family ipv4

  vpn-target 2:2 import-extcommunity

  vpn-target 2:2 export-extcommunity

 #

 address-family evpn

  vpn-target 1:1 import-extcommunity

  vpn-target 1:1 export-extcommunity

#

 vxlan tunnel mac-learning disable

#

ospf 1 router-id 4.4.4.4

 area 0.0.0.0

  network 4.4.4.4 0.0.0.0

  network 13.1.1.0 0.0.0.255

#

 hardware-resource vxlan l3gw

#

vlan 13

#

 l2vpn enable

 vxlan tunnel arp-learning disable

#

vsi vpna

 gateway vsi-interface 1

 vxlan 10

 evpn encapsulation vxlan

  route-distinguisher auto

  vpn-target auto export-extcommunity

  vpn-target auto import-extcommunity

#

interface LoopBack0

 ip address 4.4.4.4 255.255.255.255

#

interface Vlan-interface13

 ip address 13.1.1.4 255.255.255.0

#

interface HundredGigE1/0/1

 port link-mode bridge

 port link-type trunk

 port trunk permit vlan 2

 #

 service-instance 1000

  encapsulation s-vid 2

  xconnect vsi vpna

#

interface HundredGigE1/0/2

 port link-mode bridge

 port access vlan 13

#

interface Vsi-interface1

 ip binding vpn-instance vpna

 ip address 10.1.1.1 255.255.255.0

 mac-address 0001-0001-0001

 local-proxy-arp enable

 distributed-gateway local

#

interface Vsi-interface3

 ip binding vpn-instance vpna

 l3-vni 1000

#

bgp 200

 peer 3.3.3.3 as-number 200

 peer 3.3.3.3 connect-interface LoopBack0

 #

 address-family l2vpn evpn

  peer 3.3.3.3 enable

#

return

8 相关资料

请参考对应产品和版本的如下手册:

·     EVPN VXLAN配置指导

·     EVPN命令参考

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。 H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们