「hostapd」

问题描述
在 IEEE 802.11 AP 和 IEEE 802.1X/WPA/WPA2/EAP 最初的认证器,hostapd 是 Host AP 驱动程序的可选用户空间组件。它为内核驱动程序中的基本的IEEE 802.11管理增加了更多功能:使用外部RADIUS身份验证服务器进行基于MAC地址的访问控制、IEEE 802.1X身份验证器和动态WEP密钥、RADIUS计费、WPA/WPA2(IEEE 802.11i/RSN)验证器和动态TKIP/CCMP密钥。
当前版本包括:对其他驱动程序的支持、集成的EAP认证器(即允许完全认证,不需要外部RADIUS认证服务器)、用于EAP认证的RADIUS认证服务器。
以下 driver 可以与 hostapd 配合使用:

mac80211 based drivers with support for master mode [linux]
Host AP driver for Prism2/2.5/3 [linux]
Driver interface for FreeBSD net80211 layer [kfreebsd]
Any wired Ethernet driver for wired IEEE 802.1X authentication.

安装 hostapd 服务
通过软件仓库安装

# Ubuntu 16.04.2 LTS
apt-get install hostapd

通过源码编译安装
第一步,安装 libnl-3-dev 包

# Ubuntu 16.04.2 LTS
apt-get install libnl-3-dev libnl-genl-3-dev

第二步,下载 hostapd 程序 官网地址: http://w1.fi/hostapd hhostapd-2.6.tar.gz: http://w1.fi/releases/hostapd-2.6.tar.gz
第三步,创建配置文件

#!/bin/bash

# 1. 解压源码,进入源码目录下的hostapd目录中。
tar -xf hostapd-2.6.tar.gz
cd hostapd-2.6/hostapd

# 2. 创建配置文件
cp defconfig .config

第四步,修改.config配置文件 共计两处:

# 省略无关内容。。。

###########################################################
# 第一处,指定libnl库的位置
#############################[……]

READ MORE

「WLAN」- FIT AP + AC

网络架构

AC, Access Controller
AC(Access Controller,接入控制器)
在 AC + FIT AP 网络架构中: 1)AC 负责 WLAN 的接入控制、转发、统计; 2)AC 负责对在 WLAN 中的所有 FIT AP 进行控制和管理; 2)AP 的配置监控、漫游管理、AP 的网管代理、安全控制;
1)AC 负责配置信息,并下发给 FIT AP 节点; 2)AC 一般位于整个网络的汇聚层,提供高速、安全、可靠的WLAN业务。
FIT AP, FIT Access Point
FIT AP(瘦 AP):接受 AC 的管理、负责 802.11 报文的加解密、802.11 的物理层功能、空口的统计等简单功能;
物理连接方式
AC-AP 直连式组网
直连式组网可以认为 AP、AC 与上层网络串联在一起,所有数据必须通过 AC 到达上层网络。
特征:在直连式组网中,AC 还发挥汇聚交换机的功能,AP 的数据业务和管理业务都由 AC 集中转发和处理。
优势: 1)鉴于 AC 还发挥汇聚交换机的功能,所以能够节约成本;

AC-AP 旁挂式组网
旁挂式组网,AC 旁挂在 AP 与上行网络的直连网络中,不再直接连接 AP;
特征:在旁挂式组网中,AP 的业务数据可以不经 AC 而直接到达上行网络(direct mode),也可以选择经过 AC(tunnel mode);
优势: 1)无需调整现有网络,来完成 AP AC 的增加;

设备通信方式
AP-AC 二层组网
1)解释:AP 与 AC 之间的网络为直连(或通过二层网络互联); 2)场景:由于二层组网比较简单,适用于简单临时的组网,能够进行比较快速的组网配置,但不适用于大型组网架构;

AP-AC 三层组网
1)解释:AP 与 AC 间的网络为三层网络; 2)场景:在实际组网中,单台 AC 需要管理几十甚至几百台 AP,组网一般比较复杂,在大型组网中一般采用三层组网;

CAPWAP,无线接入点控制和配置协议
CAPWAP(Control And Provisioning of Wireless Access Points Protocol Specification,无线接入点控制和配置协议):是 AC 和 AP 间使用的通信协议,该协议定义如何对 AP 进行管理、业务配置,即 AC 通过 CAPWAP Tunnel 来实现对 AP 的集中管理和控制。
CAPWAP 协议定义的主要内容有:AP 自动发现 AC,AC 对 AP 进行安全认证,AP 从 AC 获取软件,AP 从 AC 获得初始和动态[……]

READ MORE

「WLAN」- AP 上线流程

流程概述
0)预先 AC 配置:为确保 AP 能够上线,AC 需预先配置; 1)AP 上线:AP 获取IP地址并发现AC,与AC建立连接 2)WLAN 业务配置下发:AC将WLAN业务配置下发到AP生效 3)STA 接入:STA搜索到AP发射的SSID并连接、上线,接入网络 4)WLAN 业务数据转发:WLAN网络开始转发业务数据

第零步、预先 AC 配置(命令)
为确保AP能够上线,AC需预先配置
创建 AP Group 实例
每个 AP 都会加入并且只能加入到一个 AP Group 中,AP Group 通常用于多个 AP 的通用配置;
配置网络互通(DHCP,Layer 3)
配置 DHCP 服务器,为 AP 和 STA 分配 IP 地址,也可将 AC 配置为 DHCP 服务器;
配置 AP 到 DHCP 服务器间的网络互通;配置 AP 到 AC 间的网络互通;
配置 AC 国家码(域管理模板)
国家码用来标识AP射频所在的国家,不同国家码规定了不同的AP射频特性,包括AP的发送功率、支持的信道等;
配置源接口或源地址(与 AP 建隧道)
每台 AC 都必须唯一指定一个 IP 地址或接口,该 AC 挂接的 AP 学习到此IP地址或者此接口下配置的IP地址,用于AC和AP间的通信,以及CAPWAP 隧道的建立;
配置 AC 网元名称(可选)
每个AC是一个网元,通过将AC的网元名称设置为具有实际意义的值,来区分不同的AC设备,方便用户对AC设备进行管理;
配置 AP 上线自动升级(可选)
自动升级是指AP在上线过程中自动对比自身版本与AC或SFTP或FTP服务器上配置的AP版本是否一致,如果版本不一致,则进行升级,然后AP自动重启再重新上线;
添加 AP 设备(配置认证模式)
添加 AP 有三种方式:离线导入 AP、自动发现 AP、手工确认在未认证列表中的AP;
补充说明:当 AC 认证 AP 时,检查 MAC SN 序列号等等以认证 AP 设备,需要提前在 AC 中手动添加;
第一步、加入 AP 节点(自动)
概述:AP 上线,AP 获取 IP 地址并发现 AC,与 AC 建立连接;FIT AP 需完成上线过程,AC才能实现对AP的集中管理和控制,以及业务下发;
如果为 AP 上线过程的报文交互简单视图(未包含所有过程):
AP 获取 IP 地址
解释:AP 必须获得 IP Address 才能够与 AC 通信,WLAN 网络才能够正常工作;
AP 获取 IP Address 的方式包括以下: 1)静态:手动绑定地址,登录到 AP 并手工配置 IP Address; 2)动态:通过 D[……]

READ MORE

「Huawei VRP」- AC, FIT AP

配置命令
AP上线流程和故障处理
查看 AC 支持 AP 型号

<Huawei> display ap-type all # 查看AC是否支持当前的AP款型。

配置AP上线

// 配置AC作为DHCP服务器,配置Option 43字段
// 配置DHCP服务器分配给DHCP客户端的自定义选项。
[AC-ip-pool-pool1] option code [ sub-option sub-code ] { ascii ascii-string | hex hex-string | cipher cipher-string | ip-address ip-address

// 创建域管理模板
[AC] wlan
[AC-wlan-view]
[AC-wlan-view] regulatory-domain-profile name <profile-name>
[AC-wlan-regulate-domain-profile-name]
[AC-wlan-regulate-domain-profile-name] country-code <country-code> # 配置设备的国家码标识。
// 创建AP组,并进入AP组视图,若AP组已存在则直接进入AP组视图。
// 并将指定的域管理模板引用到AP或AP组。
[AC-wlan-view] ap-group name group-name
[AC-wlan-ap-group-group-name]
[AC-wlan-ap-group-group-name] regulatory-domain-profile profile-name
// 配置源接口或源地址
[AC] capwap source interface { loopback loopback-number | vlanif vlan-id } # 配置AC与AP建立CAPWAP隧道的源接口。
[AC] capwap source ip-address ip-address # 配置AC的源IP地址。
// 添加AP设备 – 离线导入AP
[AC-wlan-view] ap auth-mode { mac-auth | sn-auth }
[AC-wlan-view] ap-id <ap-id> [ [ type-id type-id | ap-type ap-type ] { ap-mac ap-mac | ap-sn ap-sn | ap-mac ap-mac ap-sn ap-sn } ]
[AC-wlan-ap-ap-id] ap-name <ap-name>

// 离线增加AP设备或进入AP视图,并配置单个AP的名称[……]

READ MORE

「WLAN」- 大型 WLAN 组网

问题描述
目前,大多数企业办公环境同时使用有线和无线网络来支撑业务。办公区在提供有线网口的同时,也采用全 Wi-Fi 覆盖,办公环境更为开放和智能。未来,企业云桌面办公、智真会议、4K 视频等大带宽业务将从有线网络迁移至无线网络,而 VR/AR、虚拟助手、自动化工厂等新技术将直接基于无线网络部署。新的应用场景对企业 WLAN 的设计与规划提出更高的要求;
WLAN 让网络使用更自由,酒店、医院、商业中心、交通枢纽,让用户随时随地的接入网络;
WLAN 让工作更高效 —— 为不同行业提供更加灵活、多样的组网方案,满足各行各业对于网络应用的需求; 1)行业办公网:政府、金融、交通、能源 2)生产网:电力、石油、制造行业 3)校园网:学校校园网 4)高新技术网:高新科技园区网
高新科技园区会使用大量的新兴技术,比如 IoT、5G 融合、自动驾驶等等技术;
组网特点
网络规模大:设备型号繁杂、分布位置广且设备数量庞大,运维成本高; 用户多分布广:用户数量庞大,分布较广,网络体验要求高; 接入安全要求高:访客、员工、合作伙伴等人员会在不定期接入到内部网络,一个密码就能接入网络的场景不再适用; 可靠性要求高:AC 控制器掌控全网的无线网络,出现故障会带来极大的经济损失;
关键技术
VLAN Pool:通过 VLAN Pool 把接入的用户分配到不同的 VLAN 以实现:减少广播域;减少在网络中的广播报文;提升网络性能;
DHCP Option 43 & 52:当 AC 和 AP 间是三层组网时,AP 通过发送广播请求报文的方式无法发现 AC,这时需要通过 DHCP 服务器回应给 AP 的报文中携带的 Option43 字段(IPv4)或 Option52(IPv6)来通告 AC 的 IP 地址;
漫游技术:WLAN 漫游是指 STA 在不同 AP 覆盖范围之间移动且保持用户业务不中断的行为;
高可靠性技术:为了保证 WLAN 业务的稳定运行,保证在主设备故障时业务能够顺利切换到备份设备的技术;
网络准入控制:准入控制技术是通过对接入网络的客户端和用户的认证来保证网络的安全,是一种“端到端”的安全技术;
相关工具
ServiceTurboCloud/WLAN Planner[……]

READ MORE

「WLAN」- VLAN Pool

问题描述
由于无线终端的移动性,在无线网络中经常有大量用户从某个区域接入后,随着用的移动,再漫游到其他区域,导致该区域的用户接入多,对IP地址数目要求大。比如:场馆入口、酒店的大堂等 ⇒ 鉴于无线网络终端的移动性,导致特定区域 IP 地址请求较多。
然而,目前一个 SSID 只能对应一个 VLAN,一个 VLAN 对应一个子网。此时,如果大量用户从某一区域接入,为了保证所有用户能够获取到 IP 地址: 1)只能扩大 VLAN 的子网,但是扩大子网带来的问题就是广播域扩大,导致大量的广播报文(如 ARP、DHCP 等)带来严重的网络拥塞。 2)新建 SSID 并绑定其所属 VLAN,但是这仅能增加地址数量,却减少移动便利性(无线漫游)。
基于此问题考虑,一个 SSID 需要能够对应多个VLAN,把大量用户分散到不同的VLAN减少广播域。
解决方案
VLAN Pool(又称为 VLAN 池)是种把多个 VLAN 放在同个池中,并提供分配算法的 VLAN 分配技术。VLAN Pool 提供多个 VLAN 的管理和分配算法,实现同个 SSID 对应多个 VLAN 的方案。
通过 VLAN Pool 技术,在同个 SSID 下,把接入的用户分配到不同的 VLAN,可以减少广播域,减少网络中的广播报文,提升网络性能。
概念术语
分配方式
顺序分配算法:把用户按上线顺序依次划分到不同的 VLAN 中; 1)优点:各个VLAN用户数目划分均匀 2)缺点:用户上下线用户VLAN容易变化,IP地址变更。
哈希分配算法:根据用户 MAC 地址 HASH 值分配 VLAN 中; 1)用户多次上线可分配相同的VLAN、IP不变 2)缺点:用户分配的VLAN固定,可能导致VLAN间用户划分不均匀,有的VLAN用户较多,有的较少。
分配 VLAN 流程

1)用户终端从某个 VAP 接入, VAP 检查是否有绑定 VLAN Pool; 2)如果该 VAP 对应的模板绑定 VLAN Pool,使用 VLAN Pool 的分配算法分配一个 VLAN, 3)给终端分配一个VLAN。 4)终端从 VLAN Pool 分配的 VLAN 上线;
配置示例
Huawei VRP

// 创建 VLAN Pool 实例

[AC] vlan pool pool-name
[AC-vlan-pool-pool-name] vlan { start-vlan [ to end-vlan ] } &<1-10>
[AC-vlan-pool-pool-name] assignment { even | hash }
// 在 VAP 中,绑定 VLAN Pool 实例

[AC] wla[……]

READ MORE

「WLAN」- AC,AP,DHCP Option 43

问题描述
在 WLAN 中,当 AP 上线时,需要获取 AC 的网络地址,以与 AC 间建立 CAPWAP 隧道。
但是,在大型的三层组网中,可能存在两个问题:
1)AP 无法获取 IP 地址:在大型的三层组网中,DHCP Server 与 DHCP Client 在不同的广播域中,此时 AP 无法通过广播向 DHCP Server 请求分配地址,进而导致 AP 无法与 AC 进行通信;
2)AP 无法获知 AC 的 IP 地址:同样鉴于 AC 与 AP 不在同一个广播域,AP 无法通过广播的方式发现 AC(IP 地址),仍旧导致 CAPWAP 隧道无法建立成功;
解决方案
AP 无法获取 IP 地址
随着网络规模的不断扩大,网络设备不断增多,企业内不同的用户可能分布在不同的网段,一台DHCP服务器在正常情况下无法满足多个网段的地址分配需求。企业内网各个网段通常都没有与DHCP Server在同一个二层广播域内,如果还需要通过DHCP服务器分配IP地址,则需要跨网段发送DHCP协议报文。
DHCP Client 使用 IP Broadcast 来寻找在同网段上的 DHCP Server。当 DHCP Server 和 DHCP Client 处在不同网段,即被路由器分割开来时,路由器是不会转发这样的广播包。
DHCP Relay 能够跨网段“透传”DHCP报文,使得同个 DHCP Server 同时为多个网段服务成为可能。
AP 无法获知 AC 的 IP 地址
当 AC 和 AP 间是三层组网时,AP 通过发送广播请求报文的方式无法发现 AC 的网络。这时需要通过 DHCP 服务器回应给 AP 的报文中携带的 Option 43(for IPv4,Option 52 for IPv6)字段来通告 AC 的 IP 地址。但 AP 通过 DHCP 报文中的 Option 43 选项字段获取 AC 的 IP 地址后,可以进一步完成 CAPWAP 隧道的建立,从而实现 AP 上线流程。
在 AC 和 AP 间是二层组网的情况下,也可以配置 Option 43 字段,AP 会根据 Option 43的内容先向指定 IP 地址的 AC 发送单播请求报文。如果发送十次报文,AP 都没有收到回应,则 AP 会继续以广播的方式来发现同网段的 AC 设备。所以,在二层组网的情况下 Option 43 不是必配的参数,但在三层组网的情况下则是必配的。

AC.IP-Address = 10.23.101.2,AP.Gateway = 10.23.100.1 AP 通过 DHCP 的方式从 IP Pool Huawei1 中获取网络地址,此时 DHCP服 Server 通过 optio[……]

READ MORE

「WLAN」- 漫游技术(WLAN Roaming)

问题描述
为了满足实际业务的需求,需要对 BSS 的覆盖范围进行扩展。同时用户从某个 BSS 移动到另个 BSS 时,不能感知到 SSID 的变化,并保证业务不中断。
解决方案
WLAN Roming(WLAN 漫游,无线漫游)便是用来实现这种需求的技术,其是指 STA 在不同 AP 覆盖范围间移动,且保持用户业务不中断的行为。
原理简述
ESS(扩展服务集,Extend Service Set):由多个使用相同 SSID 的 BSS 组成,即由采用相同的 SSID 的多个 BSS 组成的更大规模的虚拟 BSS。

在 STA 移动过程中,如果逐渐远离接入 AP,则链路的信号质量也会逐步下降。当 STA 感知到信号质量降低一定程度(漫游门限)时,STA 会主动漫游到附近 AP 来提高信号质量。

如图所示,Roming 一般包括如下动作: 1)STA 已经与AP1建链,STA 在各种信道中发送 Probe Request 报文。AP2在信道6(AP2使用的信道)中收到请求后,通过在信道6中发送应答来进行响应。STA 收到应答后,对其进行评估,确定同哪个AP关联最合适。此时通过评估,STA 与AP2关联最合适。 2)STA 通过信道6向AP2发送关联请求,AP2使用关联响应做出应答,建立用户与AP2间的关联(至此期间,用户与AP1的关联一直保持) 3)删除用户与AP1现有的关联。STA 通过信道1(AP1使用的信道)向AP1发送802.11解除关联信息,解除用户与AP1间的关联。
特性说明
实现 WLAN Roming 的多个 AP 必须: 1)使用相同的 SSID 和安全模板(安全模板名称可以不同,但是安全模板下的配置必须相同) 2)认证模板的认证方式和认证参数也要配置相同。
应用场景
WLAN漫游策略主要解决以下问题: 1)避免漫游过程中的认证时间过长导致丢包甚至业务中断。 2)保证用户授权信息不变。 3)保证用户 IP 地址不变。
概念术语

AC 内漫游:如果漫游过程中关联的是同个 AC,这次漫游就是 AC 内漫游; AC 间漫游:如果漫游过程中关联的非同个 AC,这次漫游就是 AC 间漫游;
AC 间隧道:为了支持 AC 间漫游,漫游组内的所有 AC 需要同步每个 AC 管理的 STA 和 AP 设备的信息,所在 AC 间建立隧道作为数据同步和报文转发的通道。AC 间隧道也是利用 CAPWAP 协议创建的。如图所示,AC1 和 AC2 间建立 AC 间隧道进行数据同步和报文转发。
漫游组服务器
1)STA 在 AC 间进行漫游,通过选定一个 AC 作为漫游组服务器,在该 AC 上维护漫游组的成员表,并下发到漫游组内的各 AC[……]

READ MORE

「WLAN」- 实现 AC 高可用

在 WLAN Networking 中,为保证组网可靠性,常见的备份技术有: 1)VRRP 双机热备份(主备)(VRRP + Hot Standby) 2)双链路冷备份(Dual-link Cold Backup) 3)双链路热备份(主备&负载分担)(Dual-Link Hot Standby) 4)N+1 备份(N+1 Backup)
概念术语
Hot-Standby Backup
HSB(Hot Standby Backup,热备份)是华为主备公共机制,涉及 HSB Service(主备服务)与 HSB Group(主备备份组)两个概念;
为了保证 WLAN 业务的稳定运行,热备份(Hot-Standby Backup)机制可以保证在主设备故障时业务能够不中断的顺利切换到备份设备。
HSB Service
建立和维护 HSB Channel ,为各个主备业务模块提供通道通断事件和报文发送/接收接口;
HSB Service,负责两个方面: 1)在两个互为备份的设备间建立主备备份通道:通过配置主备服务本端和对端的 IP-Address 和 Port-Number,从而建立主备机制报文发送的 TCP 通道,为其他业务提供报文的收发以及链路状态变化通知服务。 2)维护主备备份通道的链路状态:为其他业务提供报文的收发服务,并在备份链路发生故障时通知主备业务备份组进行相应的处理。通过发送主备服务报文和重传等机制来防止TCP较长时间中断但协议栈没有检测到该连接中断。如果在主备服务报文时间间隔与重传次数乘积的时间内还未收到对端发送的主备服务报文,设备则会收到异常通知,并且准备重建主备备份通道。
HSB Group
HSB Group 内部绑定 HSB Service,为各个主备业务模块提供数据备份通道。HSB Group 与单个 VRRP 实例绑定,借用 VRRP 机制协商出主备实例。同时,HSB Group 还负责通知各个业务模块处理批量备份、实时备份、主备切换等事件;
VRRP Hot Standby
原理简述
VRRP 双机热备份: 1)主备 AC 两个独立的 IP 地址,通过 VRRP 对外虚拟为同个 IP 地址,单个 AP 和 Virtual-IP 建立一条 CAPWAP 链路; 2)主 AC 备份 AP 信息、STA 信息、CAPWAP 链路信息,并通过 HSB 主备服务将信息同步给备 AC; 3)并且 HSB 主动追踪 VRRP 状态,当 Primary-AC 故障后,Backup-AC 直接接替工作;

1)两台 AC 组成一个 VRRP 组,Primary-AC、Backup-AC 对 AP 始终显示为同个 VIP 地址:两台 AC 通过 VRRP 协议产[……]

READ MORE

「WAN」- 广域网(Wide Area Network)

问题描述
随着经济全球化与数字化变革加速,企业规模不断扩大,越来越多的分支机构出现在不同的地域。每个分支的网络被认为一个 LAN(Local Area Network,局域网),总部和各分支机构之间通信需要跨越地理位置;
解决方案
因此,企业需要通过 WAN(Wide Area Network,广域网)将这些分散在不同地理位置的分支机构连接起来,以便更好地开展业务;
广域网(Wide Area Network,WAN),是连接不同地区局域网或城域网通信的远程网; WAN 通常跨接很大的物理范围,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络; 广域网络常用于实现园区网络、数据中心网络的互联;
广域网技术的发展,伴随着带宽不断的升级: 1)早期出现的 X.25 只能提供 64 kbit/s 的带宽, 2)其后 DDN(Digital Data Network,数字数据网)和 FR(Frame Relay,帧中继)提供的带宽提高到 2 Mbit/s, 3)SDH(Synchronous Digital Hierachy,同步数字结构)和 ATM(Asynchronous Transfer Mode,异步传输模式)将把带宽提升到 10 Gbit/s, 4)最后发展到当前以 IP 为基础的 10 Gbit/s 甚至更高带宽的广域网络;
该部分笔记将记录:广域网技术基础概述以及 PPP(Point-to-Point Protocol ,点对点协议)原理与相关应用;
概念术语
广域网
广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里。它能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络;

广域网 vs. 局域网

局域网,是一种覆盖地理区域比较小的计算机网络; 广域网,是一种通过租用 ISP 网络(或者自建专用网络)来构建的覆盖地理区域比较广的计算机网络;
广域网络设备角色
广域网络设备基本角色有三种: 1)CE(Customer Edge,用户边缘设备) ,用户端连接服务提供商的边缘设备。CE 连接一个或多个 PE,实现用户接入; 2)PE (Provider Edge,服务提供商边缘设备) ,服务提供商连接 CE 的边缘设备。PE 同时连接 CE 和 P 设备,是重要的网络节点; 3)P(Provider ,服务提供商设备) ,服务提供商不连接任何 CE 的设备;

早期广域网技术介绍
早期广域网与局域网的区别在于 数据链路层 和 物理层 的差异性,在 TCP/IP 参考模型中,其他各层无差异;

早期广域网技术的应用
早期的广域网技术主要是:针[……]

READ MORE

「MPLS/VPN」- 高级特性

[……]

READ MORE

「BGP MPLS-based EVPN」- 概念、术语

概念术语
ES and ESI

ES(Ethernet Segment)代表用户站点(设备或网络);
ESI(Ethernet Segment Identifier)来表示连接到 PE 的「一组」以太链路;
ESI 总长度为 10-BYTE,且在全网范围内唯一:

报文格式:|Type (1 Byte)|ESI Value (9 Byte)|

Type 0:ESI 的值由管理员手工配置
Type 1:当 PE 和 CE 之间使用 LACP 时,ESI 的值为:CE LACP System MAC address (6 Byte) + CE LACP Port Key (2 Byte) + 0x00 (1 Byte)
Type 2:Auto generated by MSTP
Type 3: System MAC + Local Discriminator
Type 4: Router ID + Local Discriminator
Type 5: AS Number + Local Discriminator

在华为设备中,暂未使用 Type 2、Type 3、Type 4、Type 5;

[*PE1] interface eth-trunk 10
[*PE1-Eth-Trunk10] esi 0000.1111.2222.1111.1111
<PE1> display bgp evpn all esi
Number of ESI for EVPN address family: 1
ESI IFName/Bridge-domain
0000.1111.2222.1111.1111 Eth-Trunk10

同个 ES 双归的两个 PE 配置的 ESI 必须相同。例如 PE1 和 PE2 上配置相同的 ESI 为 1(此处数值仅为方便理解);
EVI and MAC-VRF
EVI(EVPN Instance)代表一个 EVPN 实例,用于标识某个 EVPN 客户; MAC-VRF 是 PE 上属于 EVI 的 MAC 地址表;

EVI 1 和 EVI 2 拥有独立的 MAC 地址表,可以用于区分不同的业务或客户;
RD and RT

RD(Route Distinguisher)是 EVPN 的唯一标识,用于区分 EVI; RT(Route Target)用于控制 EVPN 路由的引入;
DF(Designated Forwarder)
在 CE 多归属场景下,仅 DF 设备能够转发数据,来控制只转发一份 B[……]

READ MORE

「BGP MPLS-based EVPN」- EVPN-NLRI

EVPN 定义新的 BGP NLRI(Network Layer Reachable Information)来承载所有的 EVPN 路由,其被称为 EVPN NLRI;
EVPN NLRI 是 MP-BGP 的新型 Path Attribute 扩展,被包含于 MP-REACH-NLRI 中,但新定义 NLRI 的格式;
属性概述
MP-BGP 支持多协议扩展,EVPN NLRI 被 MP-BGP 携带,其定义 EVPN 的 AFI(Address Family Identifier)是 25,SAFI(Subsequent Address Family Identifier)是 70;

Frame 1: 163 bytes on wire (1304 bits), 163 bytes captured (1304 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_2e:4a:35 (00:e0:fc:2e:4a:35), Dst: HuaweiTe_0b:50:b5 (00:e0:fc:0b:50:b5)
Internet Protocol Version 6, Src: 2011::1, Dst: 2011::2
Transmission Control Protocol, Src Port: 49152, Dst Port: 179, Seq: 1, Ack: 1, Len: 77
Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 77
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 54
Path attributes

Path Attribute – MP_REACH_NLRI

Address family identifier (AFI): 25
Subsequent address family identifier (SAFI): 70

注:如上抓包报文并非实际的 EVPN NLRI 抓包,而是在 IPv6 的基础上进行简单修改的,目的是为了回忆 MP-BGP 报文格式;
属性字段

AFI and SAFI
其规定 EVPN 的 AFI(Address Family Iden[……]

READ MORE

「BGP MPLS-based EVPN」- 概述原理(基础)

注:图中标识的 CE 多活接入场景配置以华为 NE 系列路由器为例,CE1 侧配置 Eth-Trunk 接入 PE1 和 PE2,PE1 和 PE2 需配置跨设备的 E-Trunk(Enhanced Trunk)。后续将不在标识;
EVPN 的工作流程分为两个阶段:
启动阶段
EVPN Peer 交互 EVPN TYPE-3-ROUTE,以建立 BUM 流量转发表;
EVPN Peer 交互 EVPN TYPE-4-ROUTE,以完成 ES 发现和 DF 选举(在 ES 多归属场景下);
EVPN Peer 交互 EVPN TYPE-1-ROUTE,以交互 ESI Label,进而实现水平分割、别名等功能;
流量转发
CE 侧流量触发 PE 通过 Type 2 路由通告 MAC 地址,该路由携带分配的标签信息,后续根据该标签执行单播流量转发;
常见问题
Q:EVPN 是如何解决双活场景所带来问题?
通过 TYPE-4-ROUTE 信息,完成 ES 成员表,以进行 DF 选举,解决广播流量(BUM)向 CE 发送多份的问题; 通过 TYPE-1-ROUTE 信息,补充 ES 成员表的 ESI Label 字段,解决 CE 侧环路问题;
Q:EVPN 是如何实现负载分担?
EVPN 实现全路径负载分担。CE1 通过两条 Active 的路径进行负载分担,分别发给 PE1 和 PE2;由于 PE1 和 PE2 上事先已经形成了两条到达 CE2 的路径,所以可以分担到不同的路径;最终 4 个业务数据按照不同的路径到达 CE2。(再次强调:DF 的选举仅影响 BUM 流量的转发,而不影响常规流量)
Q:EVPN 是如何实现故障快速收敛?

当 PE3 检测到 CE 链路故障,首先删除自己本地 MAC 表项,然后通过 TYPE-1-ROUTE 通告 Other-PE 撤销该 ES 相关的所有 MAC 地址。 当 PE4 感知 TYPE-1-ROUTE 后,升级为 DF 路由器; 当 PE1 PE2 收到撤销路由后,刷新 MAC 标签,撤销到达 ES2 的的 MAC 路由。流量将自动切换到 PE4(DF) 设备;
在多宿主情况下,如果某台 PE 与 CE 的连通性故障,PE 必须发送 Ethernet A-D per ES 路由撤销之前通告的所有 MAC 地址;[……]

READ MORE

「BGP MPLS-base EVPN」- 工作流程:启动阶段

注意:鉴于 P 设备构成的骨干网仅涉及外层隧道的转发,所以后续描述将忽略 P 设备;
第一步、PE 发送 TYPE-3-ROUTE 信息
在 PE 中,创建 EVPN 实例,配置它的 RD 和 RT 参数。此时,在 PE 上本地将激活 EVPN,产生 MAC-VRF,其内容为空;
在 PE 间,配置 PE Peer 关系,PE Peer 将相互发送 TYPE-3-ROUTE 发现邻居,并分配标签,最终形成稳定的 BUM 流量转发表;

第二步、PE 发送 TYPE-4-ROUTE 信息
在 PE 上,CE 双活接入 PE 设备。在 PE 上,配置 CE 接入接口与 EVPN 实例绑定。从该接口进入的报文将进入 EVPN 实例;
在 PE 上,连接 CE 的接口中配置 ESI 参数,而后 PE 开始交互 TYPE-4-ROUTE 信息,传播 ESI,形成 ES 成员信息表(无标签),并准备进行 DF 选举;

DF Election
当 CE 多归到多个 PE 时,只能有 1 个 PE 向 CE 转发 BUM 流量,选出这个 PE 的过程被称为 DF Election(DF 选举);
CE 多归场景下,ES 上可能会被配置有多个 Ethernet Tag,只有一个 PE 会被选举为 DF(Designated Forwarder);
DF 选举由携带 ES-Import 属性的 TYPE-4-ROUTE 完成,其作用是: 1)在指定的 ES 上向 CE 发送组播和广播; 2)向 CE 泛洪未知单播流量;

PE 通过特定算法选举出 DF 设备,选举规则如下: 1)PE 发现本地连接的 ES 和 ESI,通告携带 ES-Import 的 Type 4 路由; 2)PE 启动定时器,默认时间为 3 秒,该时间内允许 ES route 的接收; 3)超时后,PE 生成一个有序的列表。列表包含所有 PE 的 IP 地址和它们连接到 ES 的信息。列表的序列号从 0 开始递增。序号被用于决定谁是 DF; 4)被选举为 DF 的 PE 将会转发 BUM 流量给 CE。当出现链路故障时,PE 会撤销它的 ES route,这会触发重新选举流程;
在华为设备中,可配置 DF 选举方式,基于设备接口选举或者基于 VLAN 选举。缺省情况下设备基于接口来进行 DF 选举,可能会导致多归链路上流量不均衡。可配置基于 VLAN 来进行 DF 选举,让 PE 到 CE 的 BUM 流量基于 VLAN 均衡地分担到多归链路上;
假设 PE2 和 PE3 被选举为 DF,则只允许 PE2 和 PE3 转发 BUM 流量给 CE:
第三步、PE 发送 TYPE-1-RO[……]

READ MORE

「BGP MPLS-based EVPN」- 工作流程:数据转发

站在 CE 角度
EVPN 流量转发阶段由 CE 侧用户流量发起开始。用户 CE 设备并不感知 PE 设备的 EVPN 协议交互;
我们站在高层的角度,CE1 访问 CE2 业务流程如下,仿佛出于同个网络:
下面,我们将学习数据转发的详细过程;
请求阶段(左侧)
1)CE1 发送的 ARP 达到 PE1,PE1 通过数据面学习到 CE1 的 MAC 地址,然后通过 TYPE-2-ROUTE 发送给所有邻居; 2)当控制平面行为完成后,PE1 将执行数据平面行为,即转发 ARP 广播请求; 3)最后因 PE3 为 DF,PE3 转发 ARP 广播报文(BUM)到 CE2;

控制平面:传播 MAC 地址
CE1 访问 CE2,首先发送 ARP 请求。PE1 接收报文,PE1 学习到该 MAC 地址,生成本地 MAC 表条目,将其加入 MAC-VRF 表;CE 发出的数据包不带任何标签,所以 PE 设备上 MAC-VRF 表中的入标签为 NULL; PE1 EVPN 将本地 MAC 地址条目生成 TYPE-2-ROUTE,携带 PE1 设备分配的标签 301; 远端的 PE 设备通过 MP-BGP 学习到 EVPN 路由,生成 MAC 表条目;

EVPN 支持 CE 多活接入 PE。PE2 感知直连 CE1,刷新最优的 MAC 表条目,并生成和通告 TYPE-2-ROUTE; 因 PE1 和 PE2 分配不同的 MPLS 标签,PE3 和 PE4 有两条路径到达 CE1;

针对 DF 设备,再次说明,其仅控制 BUM 流量的转发,对于单播流量仍能通过两台 PE 到达 CE 以实现负载分担的效果;
数据平面:转发 ARP 请求
PE1 => PE3 1)PE1 发送 ARP Request 到 PE3 设备,PE1 将查询 BUM 流量转发表转发,携带 Label=103,最外层 Tunnel 为 Data Plane 的标签; 2)PE3 为 DF,转发报文到 Port3;
PE1 => PE4 1)PE1 发送 ARP Request 到 PE4 设备,PE1 将查询 BUM 流量转发表转发,携带 Label=104,最外层 Tunnel 为 Data Plane 的标签; 2)PE4 根据标签确认是 BUM 流量,因 PE4 为非 DF,丢弃报文;
PE1 => PE2 1)PE1 和 PE2 属于相同 ES,所以 PE1 到 PE2 的流量同时携带 ESI-Label=202 和 BUM-Label=102; 2)PE2 接收到报文发现有标签 202,则丢弃该报文(原因是通过 Type 1 Route 分配的 ESI L[……]

READ MORE

「BGP MPLS-based EVPN」- 接入概述

在 EVPN 网络边缘的 PE 设备上,可以部署多个 EVPN 实例(EVI,EVPN Instance),每个 EVPN 实例可以连接一个或者多个用户网络;
EVPN 支持通过多种服务模式来接入用户网络:
Port Based Mode
连接用户网络的物理接口直接绑定普通 EVPN 实例,只能用于承载二层业务;
Port Base 模式是一种整个接口接入业务的方式,即连接用户网络的物理接口直接绑定普通 EVPN 实例(且该接口不创建子接口)。此种服务模式只能用于承载二层业务;

[~PE] interface GigabitEthernet 1/0/0
[*PE-GigabitEthernet1/0/0] evpn binding vpn-instance evpna
[*PE-GigabitEthernet1/0/0] commit
[~PE-GigabitEthernet1/0/0] quit

VLAN Based Mode
连接用户网络的物理接口划分成不同子接口,每个子接口与 EVPN 实例绑定。每个用户单独使用一个 EVPN 实例,可用于承载二层业务或三层业务;
在 VLAN Based 模式下,连接用户网络的物理接口划分成不同子接口,每个子接口关联不同的 VLAN 且加入不同的广播域 BD(Bridge Domain)。每个广播域 BD 会与单独的一个 EVPN 实例进行绑定。此种服务模式可以用于承载二层业务或三层业务。本例有 User1 和 User2,分别使用不同的子接口接入;

// User1 业务使用 VLAN 10,从子接口 GE1/0/0.1 接入;
// User2 业务使用 VLAN 20,从子接口 GE1/0/0.2 接入;

[~PE] bridge-domain 10
[*PE-bd10] evpn binding vpn-instance evpna
[*PE-bd10] quit

[*PE] interface GigabitEthernet 1/0/0.1 mode l2
[*PE-G1/0/0.1] encapsulation dot1q vid 10
[*PE-G1/0/0.1] bridge-domain 10
[*PE-G1/0/0.1] commit

此类型服务模式中,一个用户接入网络所使用的子接口、VLAN、广播域 BD 和 EVPN 实例都是独占的,且转发层面上每个用户使用独立的 MAC 转发表,因此该模式有很好的业务隔离能力,但是由于每个用户都要单独使用一个 EVPN 实例,所以比较消耗 EVPN 实例的资源;
VLAN Bundle Mode
不同用户间使用 VLAN 进行划[……]

READ MORE

「BGP MPLS-based EVPN」- 路由类型(Route Type)

问题描述
其使用 BGP 来传递路由,所以两个设备依旧要运行 MP-BGP 协议;
该笔记将记录:我们这里主要学习 EVPN 常见的 4 种类型路由;
解决方案
在 RFC7432 中,定义了 EVPN 的 Type 1~Type 4 共 4 类路由;
随着 EVPN 协议的发展,越来越多的路由被新定义。到目前为止,RFC 和草案中已经定义了 11 种路由类型。Type 1 – Type 5 较为成熟,其中 Type 5 处于草案阶段;Type 6 – Type 11 用于组播流量优化,标准不够成熟;
EVPN 不仅限于 L2VPN 的应用,随着其 EVPN 路由类型的增加,支持更多的应用例如 L3 VPN 功能;
(Type 3) Inclusive Multicast Route
功能:组播隧道端点自动发现;组播类型自动发现;携带 BUM 标签指导 BUM 流量转发,但 Type 3 路由未携带 ES 相关信息;
作用:支持 BUM 流量转发
(Type 4) Ethernet Segment Route
功能:ES 成员自动发现;DF 选举(选举负责转发数据的设备);携带 ESI 用于 DF 选举,但 Type 4 路由未携带任何标签信息;
作用:多活,单活支持;
(Type 1) Ethernet A-D Route
功能:别名(Alisaing);MAC-ADDR 批量撤销;多活指示;通告 ESI-Label;
作用:环路避免(水平分割);快速收敛;负载分担;
以太自动发现路由(Ethernet Auto-Discovery Route)有两种类型: 1)Ethernet A-D per ES Route:主要用于快速收敛、冗余模式、水平分割; 2)Ethernet A-D per EVI Route:主要用于别名;
快速收敛
在 EVPN 中 MAC 地址通过 BGP 控制学习,在大规模的复杂网络下,路由的收敛时间会很长;
所以 EVPN 定义了一种机制用于高效地通知远端 PE 直接更新转发表,即 PE 为所有的 ES 通告 Ethernet A-D per ES route; 当 PE 检测到连接的 CE 故障,PE 撤销对应的 MAC 地址表,并发送 Ethernet A-D per ES route,知会其它 PE 撤销对应的 MAC 地址表; ESI Label 扩展团体必须被 Ethernet A-D per ES route 携带;

水平分割
在 CE 多归接入到 PE 场景下,如果 CE 的链路为 All-Active 模式,CE 发送给一个 PE 的 BUM 报文可能被另一个 PE[……]

READ MORE

「BGP MPLS-based EVPN」- 基本配置

EVPN承载二层业务
EVPN承载三层业务[……]

READ MORE

「Network」- 数据中心网络(DCN,Data Center Network)

数据中心(Data Center)用来传递、展示、计算、存储海量数据信息;
数据中心是一整套包括建筑在内复杂的设施。它不仅包括计算机系统和其它与之配套的设备(例如通信和存储系统),环境控制设备、监控设备以及各种安全设施;
数据中心网络(Data Center Network,DCN):是提供数据中心内部互联、数据中心和外部互联的网络;
数据中心组网
一个典型的数据中心组网包括,数据中心网络、存储区域网络(Storage Area Network,SAN)、服务器;
数据中心网络:提供数据中心内部计算单元之间互联、数据中心内部计算单元和外部出口之间互联的网络; 存储区域网络:一般是由存储阵列和光纤交换机组成的存储网络,用于提供块存储(Block Storage)。存储网络使用 FC 协议的叫做 FC SAN,使用 IP 协议的叫做 IP SAN; 分布式存储:分布式存储的部署形态和阵列不同。它将数据分散存储在多台独立的服务器(存储节点)上。一般也用作云存储; 服务器(计算节点):用于提供计算服务的服务器;
数据中心网络
DCN 是提供数据中心内部互联,和数据中心内部和外部出口互联的网络; DCN 通常由一系列网络设备组成,根据业务功能分为不同区域;

数据中心网络没有固定的区域划分,不同行业不同企业划分方式。例如有某金融数据中心,将数据中心根据功能划分为生产区 1 区、生产 2 区、测试区 1 区、测试 2 区、大数据区、运营管理区…
在本例中: 互联网接入区:用于接入来自用户 Internet 访问的流量; 园区网接入区:用于接入企业园区用户访问的流量; 广域网接入区:用于连接企业自建广域网,远端有例如其他城市的数据中心和园区等; 生产环境区:用于联通生产环境的网络; 测试环境区:用于联通测试环境的网络;
新业务特征对数据中心网络提出新挑战

数据中心网络,SDN 和 AI 应用创新,带来 3 代演进

AI 时代的典型特征是关注数据,挖掘数据价值并提升 AI 运行效率,因此 AI 对数据中心网络的核心诉求是要快,即低时延;
华为 CloudFabric 数据中心网络解决方案

1-3-5:故障 1 分钟发现、3 分钟定位、5 分钟修复;
Huawei CloudFabric、Huawei iMaster NCE – Fabric、Huawei FabricInsight
华为智能无损数据中心网络

RDMA 是 Remote Direct Memory Access 的缩写,通俗的说可以看成是远程的 DMA 技术,为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA 允许用户态的应用程序直接读取或写[……]

READ MORE

「VXLAN」- 虚拟扩展局域网(Virtual Extensible LAN)

问题描述
虚拟化技术具有降低 IT 成本、提高业务部署灵活性和降低运维成本等优势。越来越多的企业选择在数据中心或园区 IT 设施使用云计算或虚拟化技术。在企业选择虚拟化架构后,业务将以虚拟机方式部署于服务器集群中;
虚拟化对网络的要求
二层扩展:虚拟化 / 云计算集群内允许虚拟机任意迁移,导致相同业务(相同网段)虚拟机可能运行在不同的服务器,或同个虚拟机(一个 IP)先后运行在不同的服务器(物理位置)。物理服务器可能分布在地理位置跨度非常大的机房,因此需要使用三层进行互联。服务器虚拟化后,业务被封装在虚拟机中。虚拟机允许在集群内任意主机中热迁移。热迁移的特性之一是网络状态不改变,这要求在不同的物理位置中虚拟机的 IP 地址保持不变,为此需要大二层网络解决此问题;
多租户相隔离:云化场景一般支持多租户,即不同用户共享物理资源。这对网络提出两个需求,租户间隔离和租户内互访。租户间隔离,即租户可能配置相同的 MAC 和 IP 地址,需要考虑物理网络承载隔离的问题,并且存在海量的用户需要进行隔离。租户内互访,即租户内相同网段能够直接进行二层通信,即便处于不同物理位置的机房中;
传统网络面临的问题
虚拟机规模受设备表项规格限制:服务器虚拟化后,VM 的数量比原有的物理机发生巨大的增长,而接入侧二层设备的 MAC 地址表规格较小,无法满足快速增长的 VM 数量;
网络隔离能力限制:VLAN Tag 仅 12bit;对于大型虚拟化云计算服务的场景而言,租户数目远大于 VLAN 可用个数;传统二层网络的 VLAN 无法满足网络动态调整的需求;
虚拟机迁移范围受限:虚拟机迁移必须发生在同个二层网络中;传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内;
解决方案
RFC 定义 VLAN 扩展方案 VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网);
VXLAN 解决传统网络遇到的问题:
虚拟机规模受网络规格限制: 1)VXLAN 将虚拟机发出的数据包封装在 UDP 中,并使用物理网络的 IP、MAC 地址作为外层头进行封装,对网络只表现为封装后的参数; 2)除 VXLAN 网络边缘设备,网络中的其他设备不需要识别虚拟机的 MAC 地址,减轻设备的 MAC-ADDR 学习压力,提升设备性能;
网络隔离能力限制: 1)VXLAN 引入类似 VLAN ID 的用户标识(VNI),由 24bit 组成,支持多达 16M 的 VXLAN 段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户;
虚拟机迁移范围受网络架构限制: 1)对于具有同个网段 IP 地址的 VM 而言,即使其物理位置不在同个二层网络中。但从逻辑上看,相[……]

READ MORE

「VXLAN」- 概念术语

NVE and VTEP
NVE(Network Virtualization Edge)
NVE(Network Virtualization Edge,网络虚拟边缘):是实现网络虚拟化功能的网络实体,是运行 VXLAN 的设备,或是硬件交换机,或是软件交换机(例如虚拟化软件创建的虚拟交换机);负责在三层网络上构建二层虚拟网络;
图中 SW1 和 SW2 都是 NVE 设备:
VTEP(VXLAN Tunnel Endpoints)
VTEP(VXLAN Tunnel Endpoints, VXLAN 隧道端点):是 VXLAN 隧道端点,位于 NVE 中,用于 VXLAN 报文的封装和解封装;

VXLAN 报文的外层 IP-Header 中:SRC-IP-ADDR 为源端 VTEP 的 IP 地址,DST-IP-ADDR 为目的端 VTEP 的 IP 地址;
一对 VTEP 地址就对应着一条 VXLAN 隧道; 在源端封装报文后,通过隧道向目的端 VTEP 发送封装报文,目的端 VTEP 对接收到的封装报文进行解封装; 通常情况,使用设备的 Loopback 接口地址作为 VTEP 地址,并通过动态路由协议与对端 VTEP 实现三层互通;
VNI and BD

BD
BD(Bridge Domain,桥域)
类似传统网络中采用 VLAN 划分广播域,在 VXLAN 中,一个 BD 就标识一个大二层广播域;
VNI
VNI(VXLAN Network Identifier,VXLAN 网络标识)
其为 VXLAN Header 中的字段(类似 VLAN-Tag.VLAN-ID)用于区分 VXLAN 段。不同 VXLAN 段的虚拟机不能直接二层相互通信。同个租户可以有一个或多个 VNI,VNI 长度为 24bit,支持多达 16M 的租户;
VNI 必须以 1:1 方式映射到广播域 BD(VNI 与 BD 进行绑定关联);同个 BD 内的终端可以进行二层互通;然后,设备接口 与 BD 关联;
VAP, Virtual Access Point
VAP(Virtual Access Point,虚拟接入点):实现 VXLAN 的业务接入,负责连接终端设备;
VAP 有两种配置方式: 1)二层子接口方式接入,例如在 SW1 创建二层子接口关联 BD 10,则该子接口下的特定流量会被注入到 BD 10 中; 2)VLAN 绑定方式接入,例如在 SW2 配置 VLAN10 与广播域 BD 10 关联,则所有 VLAN10 的流量会被注入到 BD 10 中;

对于传统网络的流量,当进入 VXLAN 网络后,通过二[……]

READ MORE

「VXLAN」- 报文格式

如下为标准 VXLAN 报文格式:
某些网络设备的报文格式与其存在区别,例如,针对其中的保留字段做了自定义。
VXLAN-Header.VNI
其用于区分不同的 VXLAN 网络(类似于 VLAN Tag 用于区分不同的 VLAN);[……]

READ MORE

「VXLAN」- 隧道的建立方式

VXLAN Tunnel 由一对 VTEP 确定,只要 VXLAN Tunnel 的两端 VTEP 是三层路由可达的,VXLAN Tunnel 就可以建立成功; 当报文在 VTEP 设备(NVE)进行封装后,在 VXLAN Tunnel 中依靠路由进行传输;
根据 VXLAN Tunnel 的创建方式,将 VXLAN Tunnel 分为以下两种: 1)Static Tunnel(静态隧道):是通过用户手工配置本端参数和远端参数来建立隧道; 2)Dynamic Tunnel(动态隧道):是通过 BGP 来互相传递参数,以动态建立隧道;[……]

READ MORE

「VXLAN」- 静态隧道

静态隧道
Static Tunnel,是通过用户命令配置本端参数和远端参数来完成:VNI、VTEP IP-ADDR、头端复制列表(head-end peer-list);
Static Tunnel,并非有状态的隧道(如 IPsec VPN 等,属于有状态隧道,即隧道的建立需要进行协商),只是数据传输时的隧道封装(类似 GRE VPN 等等,只负责配置及封装,并不保证对端能够成功接收与解封装);

在头端复制列表中,其 ADDR 是进行隧道封装传输时可封装的隧道目的地址;
PC -> BD -> VIN -> Head-end Peer-list
物理地址表
VXLAN 实现的是在 Overlay Network 中进行二层转发,转发 Uncast 数据帧依赖的依旧是 MAC 地址表项;
VTEP 接收到 BD 内来自本地的数据帧,将数据帧的 SRC-MAC-ADDR 添加到该 BD 的 MAC 地址表中,出接口为收到数据帧的接口; 该表项用于指导发往本 VTEP 下连接终端的数据帧的转发;

同子网数据转发
物理地址动态学习
转发属于远端 VTEP 下所连接设备的数据帧,需要先学习到远端设备的 MAC 地址; 该过程与传统 MAC 地址表形成过程类似,依赖于主机之间的报文交互,一般通过 ARP 报文交互形成 MAC 地址表项;

1)PC1 发送 ARP 广播请求 2)SW1 学习到 PC1 的 MAC 地址 3)SW1 将报文进行 VXLAN 封装,并将 ARP 报文进行泛洪(向所有同 VNI 内的 VTEP 节点转发,即 BUM 流量转发) 4)SW2 学习到 PC1 的 MAC 地址 5)SW2 将 ARP 报文广播发送给其下主机,报文到达 PC2;
1)PC2 发送单播 ARP 响应 2)SW2 学习到 PC2 的 MAC 地址 3)SW2 查找 MAC 地址表,依据 MAC 地址表项{0000-0000-000A,10,1.1.1.1},将 ARP 数据帧封装后发送给 1.1.1.1 4)SW1 学习到 PC2 的 MAC 地址 5)SW1 将 ARP 报文转发给 PC1
至此 PC1、PC2 相互学习到对方的 ARP 信息,SW1、SW2 完成 PC1、PC2 的 MAC 地址学习,该过程也叫做 Flood and Learn;
同子网已知目的地址单播报文转发

PC1 发送单播帧给 PC2 SW1 在 MAC 地址表中查询 PC2 的 MAC 地址,找到匹配的表项 SW1 将报文进行 VXLAN 封装,然后增加新的 IP 包头,报文的目的 IP 地址为远端 VTEP SW2 的地址 2.2.2[……]

READ MORE

「VXLAN」- 静态隧道搭建

同子网互访

1)配置网络层互通
针对网络地址、VLAN 划分配置,略;
2)配置 VXLAN 环境
注意,该仅展示 CE1 的配置,CE2 类似;

// ——————————————————– // 配置 VTEP 互通
interface GE1/0/0
undo portswitch
undo shutdown
ip address 10.0.12.1 255.255.255.0

interface LoopBack0
ip address 10.0.0.1 255.255.255.255

ospf 1 router-id 10.0.0.1
area 0.0.0.0
network 10.0.0.1 0.0.0.0
network 10.0.12.0 0.0.0.255

// ——————————————————– // 配置 BD、VNI 信息

bridge-domain 400
vxlan vni 324

bridge-domain 586
vxlan vni 1025

interface Nve1
source 10.0.0.1
vni 324 head-end peer-list 10.0.0.2
vni 586 head-end peer-list 10.0.0.2
vni 1025 head-end peer-list 10.0.0.2

3)配置设备接入
注意,该仅展示 CE1 的配置,CE2 类似;

interface GE1/0/1
undo shutdown // 否则子接口无法发送报文

interface GE1/0/1.10 mode l2
encapsulation dot1q vid 10
bridge-domain 400

interface GE1/0/1.20 mode l2
encapsulation dot1q vid 20
bridge-domain 586

// 该配置为二层子接口接入方式;
// 绑定 VLAN 的接入方式:[SW1-bd586] l2 binding vlan 1

4)网络互通测试
[PC1] ping PC3
跨子网互访

针对最关键的部分,其配置思路如下: 1)CE1 与 CE2 将 CE5 作为 HeadEnd PeerList; 2)然后 CE5 配置 Vbdif 作为 PC1 PC[……]

READ MORE

「VXLAN」- 动态隧道:以 MP-BGP 作为控制平面

问题描述
针对 Static VXLAN Tunnel 场景,该方案没有控制平面,是通过数据平面的流量泛洪进行 VTEP 发现和主机信息(包括 IP 地址、MAC 地址、VNI、网关 VTEP IP 地址)学习的;
这种方式导致 VXLAN 其存在如下问题: 1)手动配置 N 个节点,则需要创建 N*(N-1)/2 条隧道,配置工作量大; 2)Static VXLAN Tunnel 只有数据转发平面; 3)通过 flood and learn 机制学习 MAC 地址,泛洪流量大;
解决方案
为了解决这一问题,VXLAN 引入了 BGP EVPN 作为控制平面,通过在 VTEP 之间交换 BGP EVPN 路由实现 VTEP 的自动发现、主机信息相互通告等,从而避免了不必要的数据流量泛洪;
原理简述
通过 BGP EVPN(Ethernet VPN,以太网虚拟私有网络)方式动态建立 VXLAN Tunnel。在 VTEP 间,建立 BGP EVPN Peer,然后对在 Peer 间利用 BGP EVPN Route 来互相传递 VNI 和 VTEP IP ADDR 信息,从而实现动态地建立 VXLAN Tunnel;
设备使能 BGP EVPN,建立 BGP EVPN 连接; 设备间,通过 BGP EVPN Route(MAC/IP)通告,完成 VXLAN 控制面的相关工作; 通过 BGP EVPN 交互,自动建立 VXLAN Tunnel,转发表项通过 BGP EVPN 动态刷新;

在实际部署中,可通过 RR,进一步减少 BGP EVPN 对等体关系数量;
特性特征
引入控制平面,使用 MP-BGP 作为控制平面协议; 简化配置; 避免了不必要的数据流量泛洪;
应用场景
数据中心,在 NVO(Network Virtualization Overlay)场景中,BGP EVPN 与 VXLAN 结合,作为 VXLAN 的控制面协议;
参考文献
VXLAN Network with MP-BGP EVPN Control Plane Design Guide – Cisco[……]

READ MORE

「VXLAN」- with MP-BGP:路由类型(Route Type)

EVPN NLRI
BGP EVPN,其仍旧借助 MP-BGP 协议。通过扩展 BGP 协议,其定义若干新类型 BGP EVPN Route(在 MP_REACH_NLRI 属性中,新定义了几种 NLRI,称作 EVPN NLRI);
EVPN NLRI 通过路径属性 MP_REACH_NLRI 携带,地址族标识符(AFI)为 25,代表 L2VPN,子地址族标识符(SAFI)为 70;
这些 BGP EVPN 路由可以用于传递 VTEP 地址和主机信息,因此 BGP EVPN 应用于 VXLAN 网络中,可以使 VTEP 发现和主机信息学习从数据平面转移到控制平面;
ROUTE TYPE 3
Type 3 Route(Inclusive Multicast Route),用于传递 LAYER-2-VNI 和 VTEP-IP-ADDR 信息,实现 VTEP 的自动发现和 VXLAN Tunnel 的动态建立,实现 BUM 报文转发;
ROUTE TYPE 2
其用于发布主机的 MAC 地址、ARP 表项、主机路由信息,即: 1)Host MAC Address advertisement(主机 MAC 地址通告); 2)Host ARP Advertisement(主机 ARP 信息通告); 3)Host IP Route Advertisement(主机 IP 路由通告);
ROUTE TYPE 5
Type 5 Route(IP Prefix Route),用于主机 MAC 地址 /ARP/IP 路由通告,外部网络路由通告;
Extended Community(Ext-Cmty)
BGP EVPN 与 MPLS VPN 类似,为了控制路由的发送、接收,BGP EVPN 同样存在 VRF 的概念(EVPN Instance),与传统的 IP VPN 实例相同,EVPN 实例存在 RD 和 RT 值,传递路由时使用 Extended-Community(扩展团体属性)携带 EVPN 实例 RT 值;
除了 RT 值之外,为了支持一些特性,BGP EVPN 在扩展团体属性中增加新子类型:MAC Mobility、EVPN Router’s MAC Extended Community;

EVPN-Instance, RD, RT
鉴于内容原理,这里不再进一步介绍 RT RD 值的具体含义,参考 MPLS VPN 笔记;

EVPN-Inst 与 BD 进行绑定,BD 下的 MAC-ADDR-Tab Entity 会通过 BGP EVPN Route 进行传递。在传递时,会携带 BD 绑定的 EVPN-Inst 的 Export-RT 值;[……]

READ MORE

「EVPN for VXLAN」- 隧道建立,数据转发

1)交互 TYPE-3-ROUTE 以建立 VXLAN 隧道; 2)交互 TYPE-2-ROUTE 以发现主机路由; 3)交互 TYPE-5-ROUTE 以实现 VXLAN 访问外部网络;[……]

READ MORE

「VXLAN」- 建立 VXLAN Tunnel 流程:TYPE-3-ROUTE

建立隧道的路由
TYPE-3-ROUTE(Inclusive Multicast Route),在 VXLAN 控制平面中,该类型路由主要用于 VTEP 的自动发现和 VXLAN Tunnel 的动态建立;
两端设备(作为 BGP EVPN 对等体的 VTEP),通过 TYPE-3-ROUTE 互相传递 LAYER-2-VNI 和 VTEP-IP-ADDR 信息;
报文示例(Wireshark)


Transmission Control Protocol, Src Port: 55383, Dst Port: 179, Seq: 139, Ack: 39, Len: 100
Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 100
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 77
Path attributes
Path Attribute – ORIGIN: INCOMPLETE
Path Attribute – AS_PATH: empty
Path Attribute – LOCAL_PREF: 100
Path Attribute – EXTENDED_COMMUNITIES
Flags: 0xc0, Optional, Transitive, Complete
1… …. = Optional: Set
.1.. …. = Transitive: Set
..0. …. = Partial: Not set
…0 …. = Extended-Length: Not set
…. 0000 = Unused: 0x0
Type Code: EXTENDED_COMMUNITIES (16)
Length: 16
Carried extended communities: (2 communities)
Route Target: 200:1 [Transitive 2-Octet AS-Specific]
T[……]

READ MORE