OVSDB VTEP with Midonet Configuration

OVSDB VTEP with Midonet Configuration

Requirements

This example uses the following hardware and software components:

  • Trident-II Series switch
  • PicOS OS Release 2.6 and higher
  • Midonet controller

Overview

In this example, OVSDB VTEP is configured to run on a VXLAN domain. VTEP interface sources are configured to the loopback address. Interfaces are configured for VLAN tagging and encapsulation. Static route protocols are configured to facilitate unicast routing.

Topology

 

The VXLAN networks Host and VM IP address and Mac address information:

Host IP Address: 172.168.1.1, Mac address: 00:07:43:05:45:11

VM1 IP Address: 172.168.1.2, Mac address: fa:16:3e:00:0c:f3

VM1 IP Address: 172.168.1.3, Mac address: fa:16:3e:28:aa:cd

Configuring OVSDB on Trident-II Series Switches

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and copy and paste the commands into the CLI.

SW1 Configure:


set interface gigabit-ethernet te-1/1/33 speed "1000"
set interface gigabit-ethernet te-1/1/33 family ethernet-switching native-vlan-id 1000
set interface gigabit-ethernet te-1/1/43 family ethernet-switching port-mode "trunk"
set interface gigabit-ethernet te-1/1/43 family ethernet-switching vlan members 100
set protocols ovsdb management-ip 10.10.51.157
set protocols ovsdb controller c1 protocol "ptcp"
set protocols ovsdb interface te-1/1/43
set l3-interface vlan-interface 1000 address 192.168.10.1 prefix-length 24
set vlans vlan-id 100
set vlans vlan-id 1000 l3-interface "1000"
set vxlans source-interface 1000 address 192.168.10.1
set vxlans ovsdb-managed true 

Configuring OVSDB Step-by-Step Procedure

The following example shows how to set up a basic VTEP OVSDB configuration with VXLAN domain. To configure VXLAN on Trident-II Series switches, follow these steps:

Configuring OVSDB Step-by-Step for SW1

  1. Configure the VLAN ID to 10 for vxlan domain. 

    set vlans vlan-id 100
  2. Configure the VLAN ID to 1000 for IP routing.

    set vlans vlan-id 1000 l3-interface vlan-1000
  3. Configure the te-1/1/1 interface VLAN ID to 1000.

    set interface gigabit-ethernet te-1/1/33 family ethernet-switching native-vlan-id 1000
  4. Configure VLAN trunk for te-1/1/43.

    set interface gigabit-ethernet te-1/1/43 family ethernet-switching port-mode "trunk"
  5. Configure the te-1/1/43 interface VLAN ID to 100.

    set interface gigabit-ethernet te-1/1/43 family ethernet-switching vlan members 100
  6. Configure IP address for the loopback interface.

    set l3-interface loopback lo address 10.10.10.1 prefix-length 32
  7. Configure IP address for the vlan-interface vlan-1000.

    set l3-interface vlan-interface vlan-1000 address 192.168.10.1 prefix-length 24
  8. Configure VTEP interface sources IP address.

    set vxlans source-interface vlan-1000 address 192.168.10.1
  9. Enable VXLAN managed by ovsdb

    set vxlan ovsdb-managed true
  10. Configure ovsdb management interface IP address

    set protocols ovsdb management-ip 10.10.51.157
  11. Configure ovsdb controller protocol

    set protocols ovsdb controller c1 protocol ptcp
  12. Configure ovsdb controller port

    set protocols ovsdb controller ovsdb port 6632
  13. Configure ovsdb the interface on the VTEP

    set protocols ovsdb interface te-1/1/43

Manually Configuring the Switch as a VTEP Gateway by Midonet cli

Configuring the ovsdb by midonet cli for SW1

  1. Add a virtualization image on OpenStack Dashboard

  2. Create a network on OpenStack Dashboard

  3. Create two virtual hosts, and add them to network on OpenStack Dashboard

  4. Create a tunnel zone of type ’vtep'

    midonet> tunnel-zone create name vtep_zone1 type vtep
    tzone0
  5. Add a VTEP to MidoNet, and assign it to the 'vtep' tunnel zone that you created.

    midonet> vtep add management-ip 10.10.51.157 management-port 6632 tunnel-zone tzone0
    name br0 description OVS VTEP Emulator management-ip 10.10.51.157 management-port 6632 tunnel-zone tzone0 connection-state CONNECTED
    midonet> list vtep
    name br0 description  management-ip 10.10.51.157 management-port 6632 tunnel-zone tzone0 connection-state CONNECTED
  6. Create a binding between the VTEP and a Neutron network behind a MidoNet bridge

    midonet> bridge list
    bridge bridge1 name vxlan state up
    midonet> show bridge bridge1 id
    85296f07-2235-4963-8160-fb66eca85675
    midonet>
  7. Add the host’s IP address to the same tunnel zone as the VTEP


    midonet> tunnel-zone tzone0 add member host host0 address 192.168.10.2
    zone tzone0 host host0 address 192.168.10.2
    midonet>
  8. Create a binding between the VTEP’s vlan 100 interface te-1/1/43 and the Neutron network behind the bridge1

    midonet> vtep management-ip 10.10.51.157 binding add network-id 85296f07-2235-4963-8160-fb66eca85675 physical-port te-1/1/43 vlan 100
    Internal error: The server could not comply with the request since it is either malformed or otherwise incorrect.
    midonet> vtep management-ip 10.10.51.157 binding list
    management-ip 10.10.51.157 physical-port te-1/1/43 vlan 100 network-id 85296f07-2235-4963-8160-fb66eca85675
  9. Add the IP address of the host on the VTEP to the security group ip-address-group0

    midonet> ip-address-group ip-address-group0 add ip address 172.168.1.1
    address 172.168.1.1
    midonet>

View the VXLAN table of SW1:


admin@XorPlus#   run show vxlan 
Egress map:
         egress_id 100009 MAC 0:c:29:23:31:9, port_id 1/1/33, vif_index 8 unicast
L3 tunnel mac map:
         vlan id 1000, ref_count 1
Port vlan map mode map & Termination admin state map:
         port id 1/1/43, ref_count 1
Tunnel Map:
         tunnel id 0X4C000200, dst_vtep 192.168.10.2, nexthops (192.168.10.2 ), ecmp_id 100009, ref_count 1
         tunnel id 0X4C000001, dst_vtep 224.0.0.1, nexthops (), ecmp_id 0, ref_count 1
Access ports:
         id 0X80000002, vpn id 0X7000, port_id 1/1/43, vlan_id 100, egress id 100010
Network ports:
         id 0X80000003, vpn_id 0X7000, port_id 1/1/33, egress_id 100009, tunnel_id 0X4C000200, unicast
         id 0X80000004, vpn_id 0X7000, port_id 1/1/33, egress_id 100011, tunnel_id 0X4C000200, multicast
         id 0X80000001, vpn_id 0XFFFFFFFF, port_id 1/1/0, egress_id 100006, tunnel_id 0X4C000001, multicast
BFD sessions:
admin@XorPlus#
The show vxlan to displays information about VXLAN endpoint configuration. Display VXLAN  to the remote vxlan tunnel vtep has a nexthops(192.168.10.2).

View the VXLAN mac table of SW1:


admin@XorPlus#   run show vxlan address-table 
VNID           MAC address          Type       Interface          VTEP
-----------    -----------------    -------    ----------------   ---------------
10001          00:1e:c9:bb:bb:ce    Dynamic    te-1/1/43                          
10001          fa:16:3e:00:0c:f3    Static                         192.168.10.2   
10001          fa:16:3e:28:aa:cd    Static                         192.168.10.2   
admin@XorPlus#

Dump the ovsdb hardware vtep table of SW1:


root@XorPlus$ovsdb-client dump hardware_vtep
Arp_Sources_Local table
_uuid locator src_mac
----- ------- -------
 
Arp_Sources_Remote table
_uuid locator src_mac
----- ------- -------
 
Global table
_uuid                                managers                               switches                              
------------------------------------ -------------------------------------- --------------------------------------
4146166b-ad2e-4d05-857f-8ba4b3f0ac0d [bd6ac790-b304-4ed7-a77b-8ab7063b8132] [cfdcc9fa-0295-44b0-81c3-c975b3d463cb]
 
Logical_Binding_Stats table
_uuid bytes_from_local bytes_to_local packets_from_local packets_to_local
----- ---------------- -------------- ------------------ ----------------
 
Logical_Router table
_uuid description name static_routes switch_binding
----- ----------- ---- ------------- --------------
 
Logical_Switch table
_uuid                                description name                                      options tunnel_key
------------------------------------ ----------- ----------------------------------------- ------- ----------
e1e37b4a-37fe-43f2-a9f7-3a9925b6e92e ""          "mn-85296f07-2235-4963-8160-fb66eca85675" {}      10001     
 
Manager table
_uuid                                inactivity_probe is_connected max_backoff other_config status                                                       target     
------------------------------------ ---------------- ------------ ----------- ------------ ------------------------------------------------------------ -----------
bd6ac790-b304-4ed7-a77b-8ab7063b8132 30000            true         3000        {}           {bound_port="6632", sec_since_connect="13921", state=ACTIVE} "ptcp:6632"
 
Mcast_Macs_Local table
MAC _uuid ipaddr locator_set logical_switch
--- ----- ------ ----------- --------------
 
Mcast_Macs_Remote table
MAC         _uuid                                ipaddr locator_set                          logical_switch                      
----------- ------------------------------------ ------ ------------------------------------ ------------------------------------
unknown-dst 8c6b4993-7be8-4d85-811b-3255e15d2f92 ""     6d275247-2c1b-4c79-8f08-b17d93bd1e32 e1e37b4a-37fe-43f2-a9f7-3a9925b6e92e
 
Physical_Locator table
_uuid                                dst_ip         encapsulation_type
------------------------------------ -------------- ------------------
d983943f-c791-4431-89a2-ec6a531a4d15 "192.168.10.1" "vxlan_over_ipv4" 
09c0f3c2-d42a-406b-8644-3bffc472a247 "192.168.10.2" "vxlan_over_ipv4" 
 
Physical_Locator_Set table
_uuid                                locators                              
------------------------------------ --------------------------------------
6d275247-2c1b-4c79-8f08-b17d93bd1e32 [09c0f3c2-d42a-406b-8644-3bffc472a247]
 
Physical_Port table
_uuid                                description name        port_fault_status vlan_bindings                              vlan_stats
------------------------------------ ----------- ----------- ----------------- ------------------------------------------ ----------
35f008a2-e248-4330-a1e5-85f3f843bc68 ""          "te-1/1/43" []                {100=e1e37b4a-37fe-43f2-a9f7-3a9925b6e92e} {}        
 
Physical_Switch table
_uuid                                description management_ips   name  ports                                                                                                              switch_fault_status tunnel_ips       tunnels
------------------------------------ ----------- ---------------- ----- ------------------------------------------------------------------------------------------------------------------ ------------------- ---------------- -------
cfdcc9fa-0295-44b0-81c3-c975b3d463cb ""          ["10.10.51.157"] "br0" [35f008a2-e248-4330-a1e5-85f3f843bc68, 3d5eae61-46bc-4e3c-84f3-06aed7961ff5, c30d1ef4-b54a-4946-bd8c-460af234875e] []                  ["192.168.10.1"] []     
 
SSL table
_uuid bootstrap_ca_cert ca_cert certificate external_ids private_key
----- ----------------- ------- ----------- ------------ -----------
 
Tunnel table
_uuid bfd_config_local bfd_config_remote bfd_params bfd_status local remote
----- ---------------- ----------------- ---------- ---------- ----- ------
 
Ucast_Macs_Local table
MAC                 _uuid                                ipaddr locator                              logical_switch                      
------------------- ------------------------------------ ------ ------------------------------------ ------------------------------------
"00:1e:c9:bb:bb:ce" f431e446-6c1c-4842-ad3a-19cd04a54952 ""     d983943f-c791-4431-89a2-ec6a531a4d15 e1e37b4a-37fe-43f2-a9f7-3a9925b6e92e
 
Ucast_Macs_Remote table
MAC                 _uuid                                ipaddr locator                              logical_switch                      
------------------- ------------------------------------ ------ ------------------------------------ ------------------------------------
"fa:16:3e:00:0c:f3" 0c6732d3-9e72-4444-9d8f-07abde993aa7 ""     09c0f3c2-d42a-406b-8644-3bffc472a247 e1e37b4a-37fe-43f2-a9f7-3a9925b6e92e
"fa:16:3e:28:aa:cd" b1160e14-8e35-4293-a987-59ddc29f7304 ""     09c0f3c2-d42a-406b-8644-3bffc472a247 e1e37b4a-37fe-43f2-a9f7-3a9925b6e92e
root@XorPlus$

Ping VM1 and VM2 on the Host:


root@Dev-45:~# ping 172.168.1.2 -c 5
PING 172.168.1.2 (172.168.1.2) 56(84) bytes of data.
64 bytes from 172.168.1.2: icmp_req=1 ttl=64 time=3.92 ms
64 bytes from 172.168.1.2: icmp_req=2 ttl=64 time=1.51 ms
64 bytes from 172.168.1.2: icmp_req=3 ttl=64 time=1.47 ms
64 bytes from 172.168.1.2: icmp_req=4 ttl=64 time=1.59 ms
64 bytes from 172.168.1.2: icmp_req=5 ttl=64 time=1.57 ms
 
--- 172.168.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 1.476/2.015/3.920/0.954 ms
root@Dev-45:~# ping 172.168.1.3 -c 5 
PING 172.168.1.3 (172.168.1.3) 56(84) bytes of data.
64 bytes from 172.168.1.3: icmp_req=1 ttl=64 time=10.1 ms
64 bytes from 172.168.1.3: icmp_req=2 ttl=64 time=1.70 ms
64 bytes from 172.168.1.3: icmp_req=3 ttl=64 time=1.64 ms
64 bytes from 172.168.1.3: icmp_req=4 ttl=64 time=1.62 ms
64 bytes from 172.168.1.3: icmp_req=5 ttl=64 time=1.67 ms
 
--- 172.168.1.3 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 1.623/3.365/10.189/3.412 ms
root@Dev-45:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.168.1.3              ether   fa:16:3e:28:aa:cd   C                     eth1.100
172.168.1.2              ether   fa:16:3e:00:0c:f3   C                     eth1.100

 

Copyright © 2024 Pica8 Inc. All Rights Reserved.