When I have done VXLAN, I did it with a controller. Remember VXLAN defines the 
data plane, but not the control plane (Mac address, etc).

-----Original Message-----
From: discuss <ovs-discuss-boun...@openvswitch.org> On Behalf Of 
i_j_e_...@yahoo.co.jp
Sent: Sunday, August 30, 2020 1:17 PM
To: ovs-discuss@openvswitch.org
Subject: [ovs-discuss] About VXLAN connecting container and physical machine

Hi.

I tried to establish L2 network between a docker container and a physical 
machine by using vxlan of OVS. The container host is different from the 
physical machine. So far, it is not successful. I'd like to have comments on 
how to do this.

Here's the detail.

As shown in the figure and description below, there are five physical machines, 
machine1, machine2, machine3, machine4, and machine5. On all of them are 
running linux. Each of machine1, machine2 and machine3 has a OVS bridge.

Connection between docker2 and docker3 works fine. Connection between machine4 
and machine5 also works fine. When ovsbr1 is down, machine4 and machine5 
connection fails. Therefore, it is sure that ovsbr1 is forwarding packets 
between machine4 and machine5.

However, connection between docker2 and machine4 is not established. Ping never 
reaches between these. I dumped packets and found the following.

Docker2 ping to machine4 did not succeed, during which
  a) arp requests arriveed on machine1 via the vxlan channel.
  b) no arp request arrived on machine4.
Docker2 ping to docker3 succeeded, during which
  c) arp requests arrived on machine3 via the vxlan channel.
  d) arp requests arrived on docker3 and docker3 replied.

To summerize, OVS does not forward arp request comming from vxlan to its 
connected physical ports in this configuration.

Please let me know how to establish connection between docker2 and machine4 in 
this configuration.

Regards,

                                       +-------+         +-------+
                                       |docker2|         |docker3|
                                       +--+----+         +--+----+
                                          |eth2             |eth3
                                          |                 |
                                 ovsbr2+--+--+     ovsbr3+--+--+
      +-----------------+         +-------------+   +-------------+
      |     machine1    |         |   machine2  |   |   machine3  |
      +---------------+-+         +----+--------+   +----+--------+
 ovsbr1+-+--+         |                |                 |
         |  |         |                |                 |
 enp1s0f0+  +enp1s0f1 |enp3s0    enp0s3|           enp0s3|
         |   \        +----------------+-----------------+    
         |    \                 physical switch
         |     \
         |eth4  \eth5
   +-----+----+  +----------+
   | machine4 |  | machine5 |
   +----------+  +----------+


Machine1:
  Three physical ports, enp1s0f0, enp1s0f1 and enp3s0.
  A ovs switch named ovsbr1.
  Enp1s0f[01] are logically connected to ovsbr1.
  Enp1s0f0 is physically connected to machine4.
  Enp1s0f1 is physically connected to machine5.
  Enp3s0 is physically connected to the physical switch.

Machine2:
  One physical port, enp0s3 which is connected to the physical switch.
  One ovs switch named ovsbr2.
  One docker container, named Docker0 on the machine, is connected to ovsbr2.

Machine3:
  One physical port, enp0s3 which is connected to the physical switch.
  One ovs switch named ovsbr3.
  One docker container, named Docker1 on the machine, is connected to ovsbr3.

Machine4, Machine5:
  Each has one physical port, whose names are eth4 and eth5 respectivly.
  Eth4 is physically connect to enp1s0f0.
  Eth5 is physically connect to enp1s0f1.
  
Ovsbr1 has a VXLAN port whose remote is ovsbr2.
Ovsbr2 has two VXLAN ports whose remote are ovsbr1 and ovsbr3.
Ovsbr3 has a VXLAN port whose remote is ovsbr2.

                                           
IPv4:
  machine1:enp3s0  192.168.1.1/24
  machine2:enp0s3  192.168.1.2/24
  machine3:enp0s3  192.168.1.3/24
  docker0:eth2     172.20.0.2/24
  docker1:eth3     172.20.0.3/24
  machine4:eth4    172.20.0.4/24
  machine5:eth5    172.20.0.5/24

machine1# ovs-vsctl show
    Bridge ovsbr0
        Port vxlan1025.2
            Interface vxlan1025.2
                type: vxlan
                options: {key="1025", remote_ip="192.168.1.2"}
        Port ovsbr0
            Interface ovsbr1
                type: internal
        Port enp1s0f1
            Interface enp1s0f1
        Port enp1s0f0
            Interface enp1s0f0
    ovs_version: "2.13.1"

machine2# ovs-vsctl show
    Bridge ovsbr0
        Port ovsbr0
            Interface ovsbr0
                type: internal
        Port vxlan1025.1
            Interface vxlan1025.1
                type: vxlan
                options: {key="1025", remote_ip="192.168.1.1"}
        Port vxlan1025.3
            Interface vxlan1025.3
                type: vxlan
                options: {key="1025", remote_ip="192.168.1.3"}
        Port ba1e1f0927484_l
            Interface ba1e1f0927484_l
    ovs_version: "2.13.0"

machine3# ovs-vsctl show
    Bridge ovsbr0
        Port a2cedfb6beb34_l
            Interface a2cedfb6beb34_l
        Port vxlan1025
            Interface vxlan1025.2
                type: vxlan
                options: {key="1025", remote_ip="192.168.1.2"}
        Port ovsbr0
            Interface ovsbr0
                type: internal
    ovs_version: "2.13.0"

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.openvswitch.org%2Fmailman%2Flistinfo%2Fovs-discuss&amp;data=02%7C01%7CDennis.Heim%40wwt.com%7C26ec2c2919cd42c1dd6a08d84d194c89%7Ca2d8e6b4e26e44218f3dec288c827c7d%7C1%7C1%7C637344118344749366&amp;sdata=KrNdRmIbtZHpw72LL7xqUqS4ZgpGD06oFW7QWWrxrew%3D&amp;reserved=0
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to