Uploaded image for project: 'netvirt'
  1. netvirt
  2. NETVIRT-794

DualStack: VXLAN tunnels are not created dynamically

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • Carbon
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    • 8865

    Description

      if we apply following patch [0] to Carbon HEAD [1], VXLAN tunnels will not be created dynamically between controller and compute nodes, when DualStack VM will be launched

      steps to reproduce:

      0. cherry-pick the patch [0] and apply it to Carbon HEAD [1], compile a build

      1. launch compiled build with following options in etc/custom.properties:

      ovsdb.of.version=1.3
      ovsdb.l3.fwd.enabled=yes
      vpnservice.bgpspeaker.host.name = 127.0.0.1

      install DevStack stable/newton

      2. create following neutron network infrastructure:

      2.1 neutron net-create A

      2.2 neutron subnet-create --name SUB1 A 10.0.0.0/24

      2.3 neutron subnet-create --name SUB2 --ip-version 6 --ipv6-ra-mode slaac --ipv6-address-mode slaac --allocation-pool start=2001:db8:0:2::2,end=2001:db8:0:2:ffff:ffff:ffff:fffe A 2001:db8:0:2::/64

      2.4 neutron router-create RT

      2.5
      root@controller-deray:/opt/stack/devstack# neutron subnet-list
      ----------------------------------------------------------------------------------------------------------------------------------+

      id name cidr allocation_pools

      ----------------------------------------------------------------------------------------------------------------------------------+

      44fd58bd-97d6-4c5f-8a6d-7c012e326155 SUB1 10.0.0.0/24 {"start": "10.0.0.2", "end": "10.0.0.254"}
      75e6f5b8-9cf7-411e-a440-fdfedd995779 SUB2 2001:db8:0:2::/64 {"start": "2001:db8:0:2::2", "end": "2001:db8:0:2:ffff:ffff:ffff:fffe"}

      ----------------------------------------------------------------------------------------------------------------------------------+

      2.6 # neutron router-interface-add RT 44fd58bd-97d6-4c5f-8a6d-7c012e326155
      Added interface 703b9a7d-8de9-4089-8716-84c1789e359e to router RT.

      2.7 # neutron router-interface-add RT 75e6f5b8-9cf7-411e-a440-fdfedd995779
      Added interface 3820373a-4d9e-4af3-8506-571d73a25895 to router RT.

      2.8 # neutron security-group-create X

      2.9

      openstack security group rule create X --ingress --dst-port 1:65535 --protocol tcp
      openstack security group rule create X --egress --dst-port 1:65535 --protocol tcp
      openstack security group rule create X --egress --dst-port 1:65535 --protocol udp
      openstack security group rule create X --ingress --dst-port 1:65535 --protocol udp
      openstack security group rule create X --ingress --protocol icmp
      openstack security group rule create X --egress --protocol icmp

      openstack security group rule create X --ingress --ethertype IPv6 --dst-port 1:65535 --protocol tcp
      openstack security group rule create X --ingress --ethertype IPv6 --dst-port 1:65535 --protocol udp
      openstack security group rule create X --egress --ethertype IPv6 --dst-port 1:65535 --protocol udp
      openstack security group rule create X --egress --ethertype IPv6 --dst-port 1:65535 --protocol tcp
      openstack security group rule create X --ingress --ethertype IPv6 --protocol icmp
      openstack security group rule create X --egress --ethertype IPv6 --protocol icmp

      2.10

      neutron port-create --name PORT1 --security-group X A

      1. neutron port-list | grep PORT1
        ea93a757-84af-4b0a-a43c-01d1f9b5e85f PORT1 fa:16:3e:84:3b:a1 {"subnet_id": "44fd58bd-97d6-4c5f-8a6d-7c012e326155", "ip_address": "10.0.0.5"}

      2.11

      openstack server create --image cirros-0.3.4-x86_64-uec --flavor m1.tiny --nic port-id=ea93a757-84af-4b0a-a43c-01d1f9b5e85f --security-group X VM1

      2.12 ovs-vsct show

      1. ovs-vsctl show --> there is no any VXLAN tunnel dynamically created
        42510260-e10c-4caa-a950-43d3c59bf6d5
        Manager "tcp:10.100.0.51:6640"
        Bridge br-int
        Controller "tcp:10.100.0.51:6653"
        fail_mode: secure
        Port "tap34137c62-a4"
        Interface "tap34137c62-a4"
        Port br-int
        Interface br-int
        type: internal
        ovs_version: "2.6.1"

      3. reboot karaf

      4. # ovs-vsctl show - finally we see, that after ODL reboot tunnel was created
      42510260-e10c-4caa-a950-43d3c59bf6d5
      Manager "tcp:10.100.0.51:6640"
      is_connected: true
      Bridge br-int
      Controller "tcp:10.100.0.51:6653"
      is_connected: true
      fail_mode: secure
      Port "tap34137c62-a4"
      Interface "tap34137c62-a4"
      Port "tunce3d1330bca"
      Interface "tunce3d1330bca"
      type: vxlan
      options:

      {key=flow, local_ip="192.168.0.1", remote_ip="192.168.0.3"}

      Port br-int
      Interface br-int
      type: internal
      ovs_version: "2.6.1"

      5. check access to VM:

      1. nova list
        -----------------------------------------------------------------------------------------------------------------+
        ID Name Status Task State Power State Networks

        -----------------------------------------------------------------------------------------------------------------+

        5e750271-d0d8-4510-89c9-2c78b3c5c7a1 VM1 ACTIVE
        Running A=10.0.0.5, 2001:db8:0:2:f816:3eff:fe84:3ba1

        -----------------------------------------------------------------------------------------------------------------+

      root@controller-deray:/opt/stack/devstack#
      root@controller-deray:/opt/stack/devstack# ip netns exec qdhcp-23355db4-9e76-426d-a3cd-260643a845c6 ping6 2001:db8:0:2:f816:3eff:fe84:3ba1
      PING 2001:db8:0:2:f816:3eff:fe84:3ba1(2001:db8:0:2:f816:3eff:fe84:3ba1) 56 data bytes
      64 bytes from 2001:db8:0:2:f816:3eff:fe84:3ba1: icmp_seq=1 ttl=64 time=4.78 ms
      64 bytes from 2001:db8:0:2:f816:3eff:fe84:3ba1: icmp_seq=2 ttl=64 time=0.955 ms
      64 bytes from 2001:db8:0:2:f816:3eff:fe84:3ba1: icmp_seq=3 ttl=64 time=1.50 ms
      64 bytes from 2001:db8:0:2:f816:3eff:fe84:3ba1: icmp_seq=4 ttl=64 time=0.758 ms

      root@controller-deray:/opt/stack/devstack# ip netns exec qdhcp-23355db4-9e76-426d-a3cd-260643a845c6 ping 10.0.0.5
      PING 10.0.0.5 (10.0.0.5) 56(84) bytes of data.
      From 10.0.0.2 icmp_seq=1 Destination Host Unreachable
      From 10.0.0.2 icmp_seq=2 Destination Host Unreachable
      From 10.0.0.2 icmp_seq=3 Destination Host Unreachable

      See ODL log from step 0 in the attachement

      [0] https://git.opendaylight.org/gerrit/#/c/60246/4

      [1] commit 37b25203fae4e68f0235583c1c6f63294ce3d981 (gerrit/stable/carbon)
      Author: Philippe Guibert <philippe.guibert@6wind.com>
      Date: Thu Mar 30 10:51:16 2017 +0100

      Spec to support dualstack VMs in L3VPN

      This specification brings the ability for a BGPVPN configured VPN to
      distribute IPv4 and IPv6 addresses within the same VPN, and by using two
      distinct routers to respectively handle IPv4 and IPv6 routing issues.

      Change-Id: Ia76e88a8eff6135d58b52ec69e610952cf8a3621
      Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
      Signed-off-by: Sam Hague <shague@redhat.com>

      Attachments

        1. karaf.log
          833 kB
          Valentina Krasnobaeva
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            valentina.krasnobaeva@6wind.com Valentina Krasnobaeva
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: