VXLAN之OVSDB-VTEP

2020-06-20  本文已影响0人  robot_test_boy

参考华三的Vxlan配置指导

http://www.h3c.com/cn/d_202001/1257198_30005_0.htm#_Toc28608881

OVSDB(Open vSwitch Database,开源虚拟交换机数据库)控制协议用来实现NVC (Network Virtualization Controller,网络虚拟化控制器)对网络中VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)设备的管理和部署。

VTEP设备上维护OVSDB数据库,VXLAN相关配置以表项的形式保存在该数据库中。控制器与VTEP设备上的OVSDB服务器建立连接,二者采用OVSDB控制协议进行交互并操作OVSDB数据库中的数据。OVSDB VTEP服务从OVSDB服务器获取数据库中的数据,将其转变为VXLAN相关配置(例如创建或删除VXLAN、创建或删除VXLAN隧道)下发到设备上。同时,OVSDB VTEP服务也会通过OVSDB服务器,将本地的用户侧接入端口和VXLAN隧道全局源地址信息添加到数据库中,并上报给控制器。

配置步骤(作为了解)

要实现控制器对VTEP设备的部署,需要在VTEP设备上完成以下配置:1) 与控制器建立OVSDB连接;2) 开启OVSDB服务器;3) 开启OVSDB VTEP服务;4) 配置VXLAN隧道的全局源地址;5) 指定用户侧的接入端口;6) 开启组播隧道泛洪代理功能。

在进行OVSDB-VTEP相关配置前,需要首先通过l2vpn enable命令开启L2VPN功能。如果OVSDB服务器与控制器之间建立SSL连接,则还需要完成SSL相关配置。

1) 与控制器建立OVSDB连接

OVSDB服务器和控制器之间可以建立多种类型的OVSDB连接,连接类型包括:

· 主动SSL连接:OVSDB服务器主动向控制器发起SSL连接。该连接方式必须指定SSL使用的PKI域。OVSDB服务器最多可以同时与8个控制器建立主动SSL连接。

·  被动SSL连接:OVSDB服务器监听并接收来自控制器的SSL连接请求。该连接方式必须指定SSL使用的PKI域。OVSDB服务器只能监听1个端口的SSL连接请求。

· 主动TCP连接:OVSDB服务器主动向控制器发起TCP连接。OVSDB服务器最多可以同时与8个控制器建立主动TCP连接。

·  被动TCP连接:OVSDB服务器监听并接收来自控制器的TCP连接请求。OVSDB服务器只能监听1个端口的TCP连接请求。

1.1) 与控制器建立主动SSL连接

进入系统视图 system-view

指定与控制器进行SSL通信时使用的PKI域ovsdb server pki domain domain-name

与控制器建立主动SSL连接ovsdb server ssl ip ip-address port port-number

1.2) 与控制器建立被动SSL连接

与控制器建立被动SSL连接ovsdb  server ssl [ port  port-number ]

1.3) 与控制器建立主动TCP连接

1.4) 与控制器建立被动TCP连接

2) 开启OVSDB服务器

3) 开启OVSDB VTEP服务

4) 配置VXLAN隧道的全局源地址

用户需要在VTEP设备上配置VXLAN隧道的全局源地址,该地址会通过OVSDB协议上报给控制器,用于控制器对VTEP设备进行部署和控制。

采用OVSDB对VTEP设备进行部署和控制时,用户不能在VXLAN隧道的Tunnel接口下手工指定源地址,否则会影响控制器对VTEP设备的管理。

5) 指定用户侧的接入端口

为了在控制器上显示VTEP上的端口并对其进行控制,必须在VTEP上将该端口配置为用户侧的接入端口。

将接口配置为接入侧端口后,建议不要在该接口下进行手工配置,避免影响控制器对接入侧端口的管理。

6) 开启组播隧道泛洪代理功能(可选)

配置实践

Switch A、Switch B、Switch C为与服务器连接的VTEP设备。虚拟机VM 1、VM 2和VM 3同属于VXLAN 10。通过VXLAN实现不同站点间的二层互联,确保虚拟机在站点之间进行迁移时用户的访问流量不会中断。

具体需求为:

·  通过控制器下发配置,在不同VTEP之间建立VXLAN隧道。

·  站点之间的泛洪流量采用头端复制的方式转发。

3. 配置步骤

(1)      配置IP地址、单播路由协议、控制器

请按照图配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。

(2)      配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchA] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchA] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchA] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchA] interface loopback 0

[SwitchA-LoopBack0] ip address 1.1.1.1 255.255.255.255

[SwitchA-LoopBack0] quit

[SwitchA] tunnel global source-address 1.1.1.1

# 指定接入服务器的接口Ten-GigabitEthernet1/0/1上为用户侧的接入端口。

[SwitchA] interface ten-gigabitethernet 1/0/1

[SwitchA-Ten-GigabitEthernet1/0/1] vtep access port

[SwitchA-Ten-GigabitEthernet1/0/1] quit

(3)      配置Switch B

# 开启L2VPN功能。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchB] ovsdb server tcp 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchB] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchB] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchB] interface loopback 0

[SwitchB-LoopBack0] ip address 2.2.2.2 255.255.255.255

[SwitchB-LoopBack0] quit

[SwitchB] tunnel global source-address 2.2.2.2

# 指定接入服务器的接口Ten-GigabitEthernet1/0/1上为用户侧的接入端口。

[SwitchB] interface ten-gigabitethernet 1/0/1

[SwitchB-Ten-GigabitEthernet1/0/1] vtep access port

[SwitchB-Ten-GigabitEthernet1/0/1] quit

(4)      配置Switch C

# 开启L2VPN功能。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置与控制器建立主动TCP连接,TCP连接的目的地址为10.0.2.15(控制器的地址),目的端口号为6632。

[SwitchC] ovsdb server tcp ip 10.0.2.15 port 6632

# 开启OVSDB服务器。

[SwitchC] ovsdb server enable

# 开启OVSDB VTEP服务。

[SwitchC] vtep enable

# 配置接口Loopback0的IP地址,作为VXLAN隧道的全局源地址。

[SwitchC] interface loopback 0

[SwitchC-LoopBack0] ip address 3.3.3.3 255.255.255.255

[SwitchC-LoopBack0] quit

[SwitchC] tunnel global source-address 3.3.3.3

# 指定接入服务器的接口Ten-GigabitEthernet1/0/1上为用户侧的接入端口。

[SwitchC] interface ten-gigabitethernet 1/0/1

[SwitchC-Ten-GigabitEthernet1/0/1] vtep access port

[SwitchC-Ten-GigabitEthernet1/0/1] quit

(5)      控制器上进行VXLAN配置(略)

4. 验证配置

(1)      验证VTEP设备(下文以Switch A为例,其它设备验证方法与此类似)

# 查看Switch A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口处于up状态。

[SwitchA] display interface tunnel

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: 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信息,可以看到VSI内创建的VXLAN、与VXLAN关联的VXLAN隧道、与VSI关联的以太网服务实例等信息。

[SwitchA] display l2vpn vsi verbose

VSI Name: evpn2014

  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

    Tunnel1              0x5000001  Up    Manual      Disabled

    Tunnel2              0x5000002  Up    Manual      Disabled

  ACs:

    AC                              Link ID    State    Type

    XGE1/0/1 srv2                    0          Up      Manual

# 查看Switch A上VSI的MAC地址表项信息,可以看到已学习到的MAC地址信息。

<SwitchA> display l2vpn mac-address

MAC Address      State    VSI Name                        Link ID/Name  Aging

cc3e-5f9c-6cdb  Dynamic  evpn2014                        Tunnel1      Aging

cc3e-5f9c-23dc  Dynamic  evpn2014                        Tunnel2      Aging

--- 2 mac address(es) found  ---

(2)      验证主机

虚拟机VM 1、VM 2、VM 3之间可以互访。

RFC 7047:The Open vSwitch Database Management Protocol

上一篇下一篇

猜你喜欢

热点阅读