Share feedback about my content
** You can give your thought about this content and request modifications if needed from Ask For Modifications page. Thank You.
** You can check all the posts on the Posts page.
** More about me in the About Me section.
VxLAN overlay network āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠multi-container host networking āϤā§āϰāĻŋ āĻāϰāĻž [ āĻĒāϰā§āĻŦ - ⧍ ]
āĻ āύā§āϰā§āϧ - āĻāĻ āϞāĻŋāĻāĻž āĻĒā§ā§ āϝāĻĻāĻŋ āĻŽāύ⧠āĻšā§ āĻā§āύ āĻāĻŋāύāĻŋāϏ āϝā§āĻā§āϤ āĻāϰ⧠āĻĻāĻŋāϞ⧠āĻāĻžāϞ⧠āĻšā§ āϝā§āĻāĻž āĻāĻŽāĻŋ āĻāϰāĻŋ āύāĻŋ ... āĻāĻžāĻāύā§āĻĄāϞāĻŋ āĻāĻŽā§āύā§āĻā§ āĻāĻžāύāĻžāĻŦā§āύ āĻ āĻĨāĻŦāĻž ssavi.ict@gmail.com āĻ āĻāĻāĻāĻž āĻŽā§āĻāϞ āϞāĻŋāĻā§ āĻĻā§āĻŦā§āύāĨ¤ āĻāĻŽāĻŋ āĻā§āϰā§āĻĄāĻŋāĻ āĻĻāĻŋā§ā§ āϝā§āĻā§āϤ āĻāϰ⧠āĻĻā§āĻŦā§āĨ¤ āĻāĻžāĻ āĻāĻž āĻāϰāϤ⧠āĻāĻŋā§ā§ āĻŦā§āĻļ āĻāĻŋāĻā§ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽā§āĻŽā§āĻā§āύ āĻšā§ā§āĻāĻŋāϞāĻžāĻŽāĨ¤ āϏā§āĻā§āϞā§āϰ āϝā§āĻāĻžāĻŦā§ āϏāĻŽāĻžāϧāĻžāύ āĻāϰā§āĻāĻŋ āϤāĻž āĻāĻ FAQ and Troubleshoot āĻĒā§āĻ āĻ āϞāĻŋāĻā§āĻāĻŋāĨ¤ āĻšā§āϤ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āϞāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϏā§āĻā§āĻĒ - ā§§ā§ŠāĻ āĻāĻŦāĻžāϰ veth0 āĻāĻŦāĻ veth1 āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻāϰ IP address āϏā§āĻ āĻāϰāĻŦā§āĨ¤ āϏā§āĻāύā§āϝ āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻā§āϞ⧠āĻĻā§āĻŦā§ āĻāĻŦāĻ log āĻā§āϞ⧠āĻā§āĻ āĻāϰāĻŦā§ -Â
-------------------------------- VM1 āĻāĻŦāĻ VM2 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ sudo ip address add 192.168.1.1/24 dev veth0
vagrant@ubuntu-bionic:~$ sudo ip address add 192.168.2.1/24 dev veth1
vagrant@ubuntu-bionic:~$ sudo ip a
8: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 5e:68:e0:15:60:07 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 scope global veth0
       valid_lft forever preferred_lft forever
9: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether fa:c3:cf:33:02:52 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 scope global veth1
       valid_lft forever preferred_lft forever
āĻĒā§āϰāĻļā§āύ āĻāϏāϤ⧠āĻĒāĻžāϰā§... āĻ āύā§āϝ IP Address āĻāĻŋ āϏā§āĻ āĻāϰāĻž āϝāĻžā§āĨ¤ āĻāϤā§āϤāϰ āĻšāϞ⧠... āĻšā§āϝāĻž āĻāϰāĻž āϝāĻžā§āĨ¤ āĻāĻŽāĻŋ āύāĻŋāĻā§āĻ āĻāϰā§āĻāĻŋ ... āϤāĻŦā§ āϏāĻĢāϞāĻāĻžāĻŦā§ āĻāĻ āĻĒāĻžāĻļā§āϰ VM Docker Container āĻĨā§āĻā§ āĻ āύā§āϝ āĻĒāĻžāĻļā§āϰ VM Docker Container āĻā§ PING āĻāϰāĻžāϤ⧠āĻĒāĻžāϰāĻŋ āύāĻŋāĨ¤ āĻšā§āϤ⧠āϰāĻžāĻāĻāĻŋāĻ āĻāϰ āĻā§āĻĨāĻžāĻ āĻā§āϞ āĻšā§ā§āĻāĻŋāϞā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϤāĻžāĻšāϞ⧠āĻāĻŽāĻžāϰ āϏāĻžāĻĨā§ āĻļā§ā§āĻžāϰ āĻāϰāĻŦā§āύāĨ¤Â
āϏā§āĻā§āĻĒ - ā§§ā§ĒāĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻā§āϞ⧠āĻā§ Up and Running āĻāϰāĻŦā§āĨ¤ āĻāϰ āĻāύā§āϝ⧠āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻā§āϞ⧠āĻĻā§āĻŦā§ āĻāĻŦāĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻāϰ āĻŽāϧā§āϝ⧠UP/UNKNOWN āϞāĻŋāĻāĻž āĻāĻā§ āĻāĻŋāύāĻž āĻāύāĻļāĻŋāĻāϰ āĻāϰāĻŦā§āĨ¤
-------------------------------- VM1 āĻāĻŦāĻ VM2 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ sudo ip link set dev veth0 up mtu 1450
vagrant@ubuntu-bionic:~$ sudo ip link set dev veth1 up mtu 1450
vagrant@ubuntu-bionic:~$ sudo ip a
8: veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 5e:68:e0:15:60:07 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 scope global veth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5c68:e0ff:fe15:6007/64 scope link
       valid_lft forever preferred_lft forever
9: veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether fa:c3:cf:33:02:52 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 scope global veth1
       valid_lft forever preferred_lft forever
    inet6 fe80::f8c3:cfff:fe33:252/64 scope link
       valid_lft forever preferred_lft forever
āĻāĻāύ āĻĨā§āĻā§ āĻĒāϰāĻŦāϰā§āϤ⧠āϏā§āĻā§āĻĒ āĻā§āϞ⧠āĻā§āĻŦāĻ āϏāϤāϰā§āĻāϤāĻžāϰ āϏāĻžāĻĨā§ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻ āϏā§āĻā§āĻĒ āĻā§āϞ⧠āϤ⧠āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻā§āϞ āĻšā§āĨ¤ āĻāĻŦāĻ āĻĢāϞāĻžāĻĢāϞ āĻ āĻŋāĻāĻ āĻžāĻ PING āĻšā§ āύāĻžāĨ¤ āĻŽāĻžāĻĨāĻžāϰ āĻā§āϞ āĻā§ā§āĻž āϞāĻžāĻā§āĨ¤
āϏā§āĻā§āĻĒ - ā§§ā§ĢāĻ āĻĒāϰāĻŦāϰā§āϤ⧠āϏā§āĻā§āĻĒ āĻšāĻā§āĻā§ āĻĒā§āϰāϤā§āϝā§āĻ āĻāĻž VM āĻāϰ āĻŽāϧā§āϝ⧠āĻāϞāĻžāĻĻāĻž āĻāĻžāĻŦā§ āĻĻā§āĻā§ āĻāϰ⧠Docker Container āϏā§āĻ āĻāϰāĻžāĨ¤ āĻāϰ āĻāύā§āϝ āύāĻŋāĻā§āϰ Docker āĻĢāĻžāĻāϞ āĻā§āĻĄ āϏā§āύāĻŋāĻĒā§āĻ āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻāĻŋ āĻāĻŽāĻŋāĨ¤
FROM ubuntu
RUN apt update
RUN apt install -y net-tools
RUN apt install -y iproute2
RUN apt install -y iputils-ping
CMD ["sleep", "7200"]
āĻāĻ āĻā§āĻĄ āĻāĻŋ VM1 āĻāĻŦāĻ VM2 āϤ⧠āĻĒā§āĻļ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻŦāĻž VM āĻ āĻāĻāĻāĻŋ Dockerfile āϤā§āϰāĻŋ āĻāϰ⧠āϏā§āĻāĻžāύ⧠āĻĒā§āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻŽāĻŋ (⧍) āύāĻžāĻŽā§āĻŦāĻžāϰ āĻŽāĻžāύ⧠āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰ⧠āĻĒā§āϏā§āĻ āĻāϰā§āĻāĻŋ āϏā§āύāĻŋāĻĒā§āĻ āĻāĻŋāĨ¤ āϏā§āĻāύā§āϝ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻā§āϞ⧠āϞāĻŋāĻāĻŦā§ -Â
-------------------------------- VM1 āĻāĻŦāĻ VM2 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ touch Dockerfile
vagrant@ubuntu-bionic:~$ vi Dockerfile
āĻāĻāĻž āĻāϰāϞ⧠āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻāϰ VIM āĻāĻĄāĻŋāĻāϰ⧠āĻā§āĻā§āϏāĻ āĻāĻĄāĻŋāĻ āĻāϰāĻžāϰ āĻĢā§āϝāĻžāϏāĻŋāϞāĻŋāĻāĻŋ āĻāĻĒā§āύ āĻšāĻŦā§āĨ¤ āϏā§āĻāĻžāύ⧠āĻāĻĒāϰā§āϰ āϏā§āύāĻŋāĻĒā§āĻ āĻāĻŋ Copy āĻāϰ⧠Paste āĻāϰāĻŦā§āĨ¤ āĻāϰāĻĒāϰ ESC āĻŦāĻžāĻāύ āĻāĻžāĻĒāĻŦā§āĨ¤ āĻāϰāĻĒāϰ, āĻāĻĄāĻŋāĻāϰā§āϰ āĻāĻĒāϰā§āĻ :wq! āĻāĻ āĻā§āĻĄ āĻĻāĻŋāϞ⧠āϏā§āύāĻŋāĻĒā§āĻ āĻāĻŋ Dockerfile āĻĢāĻžāĻāϞ⧠āϏā§āĻ āĻšā§ā§ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻāĻĄāĻŋāĻāϰ āĻĨā§āĻā§ āĻŦā§āϰāĻŋā§ā§ āĻāϏāĻŦā§āĨ¤ āĻāϰ āĻĒāϰ āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋā§ā§ āĻ āĻŋāĻāĻ āĻžāĻ āĻĢāĻžāĻāϞ āĻāĻŋ āϞāĻŋāĻāĻž āĻšāϞ⧠āĻāĻŋāύāĻž āĻā§āĻ āĻāϰāĻŦā§āĨ¤Â
vagrant@ubuntu-bionic:~$ cat Dockerfile
FROM ubuntu
RUN apt update
RUN apt install -y net-tools
RUN apt install -y iproute2
RUN apt install -y iputils-ping
CMD ["sleep", "7200"]
touch <filename> āĻĻāĻŋā§ā§ āύāϤā§āύ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻž āĻšā§ āĻāĻŦāĻ cat <filename> āĻĻāĻŋā§ā§ āĻĢāĻžāĻāϞā§āϰ āĻāύā§āĻā§āύā§āĻ āĻā§āϞ⧠āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻ āĻĻā§āĻāĻž āĻšā§āĨ¤
āϏā§āĻā§āĻĒ - ā§§ā§ŦāĻ āĻāϰāĻĒāϰ VM1 āĻāĻŦāĻ VM2 āϤ⧠āĻĻā§āĻā§ āĻāϰ⧠Docker Container āϤā§āϰāĻŋ āĻāϰ⧠āύā§āĻŦā§ build āĻāϰāĻž Ubuntu Docker Engine āĻĻāĻŋā§ā§āĨ¤ āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻā§āϞ⧠āĻĻā§āĻŦā§ āĻāĻŦāĻ āϞāĻ āĻā§āϞ⧠āĻā§āĻ āĻāϰāĻŦā§ -Â
-------------------------------- VM1 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ sudo docker build . -t ubuntu-docker
Sending build context to Docker daemon 15.36kB
Step 1/6 : FROM ubuntu
.........Â
Step 6/6 : CMD ["sleep", "7200"]
.........
Successfully built 9ae522bebcb9
Successfully tagged ubuntu-docker:latest
vagrant@ubuntu-bionic:~$ sudo docker run -d --net=none --name docker1 ubuntu-docker
087db9e04b10630f56c0b69ab5233bd181c1e3f48c654346f6be90c0d151fcfd
vagrant@ubuntu-bionic:~$ sudo docker run -d --net=none --name docker2 ubuntu-docker
cfeec0152a1236e2dd005ae0e09f55f9862a23cbdc06fd7f4ce64b2a1113a641
vagrant@ubuntu-bionic:~$ sudo docker ps
CONTAINER ID Â IMAGE Â Â Â Â Â COMMANDÂ Â Â Â CREATEDÂ Â Â Â Â STATUSÂ Â Â Â Â PORTS Â Â NAMES
cfeec0152a12  ubuntu-docker  "sleep 7200"  5 seconds ago  Up 5 seconds       docker2
087db9e04b10  ubuntu-docker  "sleep 7200"  16 seconds ago  Up 15 seconds       docker1
-------------------------------- VM2 āĻāϰ āĻāύā§āϝ --------------------------------
vagrant@ubuntu-bionic:~$ sudo docker build . -t ubuntu-docker
Sending build context to Docker daemon 15.36kB
Step 1/6 : FROM ubuntu
.........Â
Successfully built 7eee4ac80c41
Successfully tagged ubuntu-docker:latest
vagrant@ubuntu-bionic:~$ sudo docker run -d --net=none --name docker3 ubuntu-docker
34713eb4d4d871a153c83ad52493616e319b44f8063d66b0d6e02eb2009cb17b
vagrant@ubuntu-bionic:~$ sudo docker run -d --net=none --name docker4 ubuntu-docker
9deea2671c303a115ceae0ffd3149318f683ba4f47adc90a96c998b75e302dfe
vagrant@ubuntu-bionic:~$ sudo docker ps
CONTAINER ID Â IMAGE Â Â Â Â Â COMMANDÂ Â Â Â CREATEDÂ Â Â Â Â STATUSÂ Â Â Â Â PORTS Â Â NAMES
9deea2671c30  ubuntu-docker  "sleep 7200"  5 seconds ago  Up 5 seconds       docker4
34713eb4d4d8  ubuntu-docker  "sleep 7200"  19 seconds ago  Up 18 seconds       docker3
āϏā§āĻā§āĻĒ - ā§§ā§āĻ āĻāĻāύ Docker Container āĻā§āϞā§āϤ⧠IP āϏā§āĻ āĻāϰāĻžāϰ āĻĒāĻžāϞāĻžāĨ¤ āĻĒā§āϰāĻĨāĻŽā§ VM1 āĻāϰ āϏā§āĻ āĻāĻĒ āĻāĻž āĻāϰāĻŦā§ āĻāϰāĻĒāϰ VM2 āĻāϰ āĻāĻžāĨ¤ āĻāϰ āĻāύā§āϝ⧠āĻāĻŽāϰāĻž ovs-docker āĻĒā§āϝāĻžāĻā§āĻ āĻĢā§āϝāĻžāϏāĻŋāϞāĻŋāĻāĻŋ āĻāĻāĻ āĻāϰāĻŦā§āĨ¤ āϏā§āĻ āĻāϰāĻž āĻšā§ā§ āĻā§āϞ⧠Container Gateway āϤ⧠Container āĻĨā§āĻā§ PING āĻāϰ⧠āĻĻā§āĻāĻŦā§ āĻ āĻŋāĻ āĻ āĻžāĻ āϰāĻŋāĻĒā§āϞāĻžāĻ āĻĒāĻžāĻā§āĻāĻŋ āĻāĻŋāύāĻžāĨ¤ āϤ⧠āĻāĻāĻĒāĻŋ āϏā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āύāĻŋāĻā§āϰ Command āĻā§āϞ⧠āĻĻā§āĻŦā§ āĻāĻŦāĻ Log āĻā§āϞ⧠āĻā§āĻāĻŋ āĻāϰāĻŦā§ -Â
-------------------------------- VM1 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ sudo ovs-docker add-port ovs-br0 eth0 docker1 --ipaddress=192.168.1.11/24 --gateway=192.168.1.1
vagrant@ubuntu-bionic:~$ sudo docker exec docker1 ip a
....
18: eth0@if19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether aa:61:11:24:f9:c6 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.1.11/24 scope global eth0
       valid_lft forever preferred_lft forever
vagrant@ubuntu-bionic:~$ sudo ovs-docker add-port ovs-br1 eth0 docker2 --ipaddress=192.168.2.11/24 --gateway=192.168.2.1
vagrant@ubuntu-bionic:~$ sudo docker exec docker2 ip a
......
20: eth0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 96:39:0e:ef:bb:55 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.2.11/24 scope global eth0
       valid_lft forever preferred_lft forever
vagrant@ubuntu-bionic:~$ sudo docker exec docker1 ping 192.168.1.1 -c 2
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.305 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.099 ms
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4208ms
rtt min/avg/max/mdev = 0.037/0.107/0.305/0.101 ms
vagrant@ubuntu-bionic:~$ sudo docker exec docker2 ping 192.168.2.1 -c 2
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.245 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.066 ms
--- 192.168.2.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4271ms
rtt min/avg/max/mdev = 0.062/0.118/0.245/0.067 ms
-------------------------------- VM2 āĻāϰ āĻāύā§āϝ --------------------------------
vagrant@ubuntu-bionic:~$ sudo ovs-docker add-port ovs-br0 eth0 docker3 --ipaddress=192.168.1.12/24 --gateway=192.168.1.1
vagrant@ubuntu-bionic:~$ sudo docker exec docker3 ip a
....
18: eth0@if19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 4e:db:39:49:ad:e5 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.1.12/24 scope global eth0
       valid_lft forever preferred_lft forever
vagrant@ubuntu-bionic:~$ sudo ovs-docker add-port ovs-br1 eth0 docker4 --ipaddress=192.168.2.12/24 --gateway=192.168.2.1
vagrant@ubuntu-bionic:~$ sudo docker exec docker4 ip a
.....
20: eth0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 4a:11:6d:6a:e4:a9 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.2.12/24 scope global eth0
       valid_lft forever preferred_lft forever
vagrant@ubuntu-bionic:~$ sudo docker exec docker3 ping 192.168.1.1 -c 2
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.238 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.045 ms
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4084ms
rtt min/avg/max/mdev = 0.037/0.079/0.238/0.079 ms
vagrant@ubuntu-bionic:~$ sudo docker exec docker4 ping 192.168.2.1 -c 2
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.320 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.093 ms
--- 192.168.2.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4209ms
rtt min/avg/max/mdev = 0.076/0.133/0.320/0.093 ms
āĻĻāĻžāϰā§āĻŖ ... āĻāĻŽāϰāĻž āϏāĻ āĻŋāĻ āĻāĻžāĻŦā§ IP Setup āĻāϰāϤ⧠āĻĒā§āϰā§āĻāĻŋāĨ¤ āĻāϰ āĻĒā§āϰāĻŽāĻžāĻŖ āĻšāĻā§āĻā§ ... āĻ āĻŋāĻ āĻ āĻžāĻ Container āĻĨā§āĻā§ Gateway āϤ⧠PING āĻĒāĻžāĻā§āĻāĻŋāĨ¤
āϏā§āĻā§āĻĒ - ā§§ā§ŽāĻ āĻāĻ āϏā§āĻā§āĻĒ āĻ āĻāĻŽāϰāĻž āĻāĻā§ VM āĻāϰ Container āĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠VXLAN Tunneling āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻŦā§āĨ¤ āĻāϰ āĻāύā§āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ VNI Key, UDP Port 4789 āĻāĻŦāĻ Remote Container IP - āĻāĻā§āϞ⧠āĻ āĻŋāĻ āĻ āĻžāĻāĻāĻžāĻŦā§ āĻĻāĻŋāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻŦāĻžāϰ⧠āĻļā§āϰā§āϤ⧠āĻāĻŽāϰāĻž VM1 āĻāϰ āĻāύā§āϝ āĻāϰāĻŦā§ āĻāϰāĻĒāϰ VM2 āĻāϰ āĻāύā§āϝāĨ¤ āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻā§āϞ⧠āϏā§āĻŦ āϏā§āĻŦ VM āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻ āĻĻā§āĻŦā§ āĻāĻŦāĻ Log āĻā§āϞ⧠āĻā§āĻ āĻāϰāĻŦā§ -Â
-------------------------------- VM1 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ sudo ovs-vsctl add-port ovs-br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=192.168.33.11 options:key=1000
vagrant@ubuntu-bionic:~$ sudo ovs-vsctl add-port ovs-br1 vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=192.168.33.11 options:key=2000
-------------------------------- VM2 āĻāϰ āĻāύā§āϝ --------------------------------
vagrant@ubuntu-bionic:~$ sudo ovs-vsctl add-port ovs-br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=192.168.33.10 options:key=1000
vagrant@ubuntu-bionic:~$ sudo ovs-vsctl add-port ovs-br1 vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=192.168.33.10 options:key=2000
āĻāĻĒāϰā§āϰ Command āĻ ... āϝāĻāύ VM1 āĻāϰ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻ āĻāĻāĻŋ āϤāĻāύ remote_ip āĻāϰ āĻā§āϝāĻžāϞ⧠āĻšāĻŦā§ VM2 āĻāϰ IP Address āϝā§āĻāĻž āĻšāϞ⧠192.168.33.11āĨ¤ āĻāĻŦāĻ VM2 āĻāϰ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻ āϝāĻāύ āĻāĻāĻŋ āϤāĻāύ remote_ip āĻāϰ Value āĻšāĻŦā§Â VM1 āĻāϰ IP Address āϝā§āĻāĻž āĻšāϞ⧠192.168.33.10āĨ¤ āĻāĻā§ VM āĻāĻ vxlan0 āĻāϰ VNI Key āĻšāĻŦā§ 1000 āĻāĻŦāĻ vxlan1 āĻāϰ VNI Key āĻšāĻŦā§ 2000āĨ¤Â
āϏā§āĻā§āĻĒ - ⧧⧝āĻ āĻāĻāύ āĻāĻŽāϰāĻž āĻā§āĻ āĻāϰāĻŦā§ āĻāĻā§ VM āĻāϰ UDP Port 4789 āĻā§āϝāĻžāĻā§āĻāĻŋāĻā§āĻ āĻšā§ā§āĻā§ āĻāĻŋāύāĻž? āĻāĻāĻāϏāĻžāĻĨā§ Vritual Bridge āĻāĻŦāĻ IP Address āĻāĻž āĻā§āĻ āĻāϰāĻŦā§āĨ¤ āĻāĻŽāĻžāύā§āĻĄ āĻā§āϞ⧠āĻĻāĻŋā§ā§ āύāĻŋāĻā§āϰ āĻŽāϤ⧠Log āĻāϏāĻā§ āĻāĻŋāύāĻž āĻā§āĻ āĻāϰāĻŦā§ āĨ¤Â
-------------------------------- VM1 āĻāĻŦāĻ VM2 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ netstat -ntulp
Proto Recv-Q Send-Q Local Address      Foreign Address     State    PID/Program name
......Â
udp    0   0 0.0.0.0:4789      0.0.0.0:*              -
udp6 Â Â Â 0Â Â Â 0 :::4789 Â Â Â Â Â Â Â Â :::*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â -
vagrant@ubuntu-bionic:~$ sudo ovs-vsctl show
81ef0a57-43f0-426a-b8c8-2541d9ef2e42
    Bridge "ovs-br1"
      ......
        Port "vxlan1"
            Interface "vxlan1"
                type: vxlan
                options: {key="2000", remote_ip="192.168.33.11"} #āĻāĻ IP Address VM2 āĻĨā§āĻā§ 192.168.33.10 āĻĻā§āĻāĻžāĻŦā§
    Bridge "ovs-br0"
        Port "vxlan0"
            Interface "vxlan0"
                type: vxlan
                options: {key="1000", remote_ip="192.168.33.11"} #āĻāĻ IP Address VM2 āĻĨā§āĻā§ 192.168.33.10 āĻĻā§āĻāĻžāĻŦā§
    ovs_version: "2.9.8"
vagrant@ubuntu-bionic:~$ sudo ip a
.....
19: 836260d20c054_l@if18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether ae:b4:aa:41:c1:91 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::acb4:aaff:fe41:c191/64 scope link
       valid_lft forever preferred_lft forever
21: 08b889f5f85d4_l@if20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether e2:d3:e3:28:72:f5 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::e0d3:e3ff:fe28:72f5/64 scope link
       valid_lft forever preferred_lft forever
22: vxlan_sys_4789: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65000 qdisc noqueue master ovs-system state UNKNOWN group default qlen 1000
    link/ether a2:3a:26:bb:81:71 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a03a:26ff:febb:8171/64 scope link
       valid_lft forever preferred_lft forever
sudo ovs-vstl show āĻāĻ āĻāĻŽāĻžāύā§āĻĄ āĻĻā§āĻŦāĻžāϰ āĻĒāϰ remote ip address āĻāĻž VM1 āĻĨā§āĻā§ āĻĻāĻŋāϞ⧠VM2 āĻāϰ IP Adress, 192.168.33.11 āĻĻā§āĻāĻžāĻŦā§ āĻāĻŦāĻ VM2 āĻĨā§āĻā§ āĻĻāĻŋāϞ⧠VM1 āĻāϰ IP Address, 192.168.33.10 āĻĻā§āĻāĻžāĻŦā§āĨ¤ āĻāĻāĻāĻĒā§āĻ Log āĻāϰ āĻāĻŽā§āύā§āĻ āĻāĻž āĻā§āĻ āĻāϰā§āύāĨ¤Â
āϏā§āĻā§āĻĒ - ⧍ā§ĻāĻ Moment Of Truth ... āĻāĻŦāĻžāϰ āĻāĻŽāϰāĻž āĻā§āĻ āĻāϰāĻŦā§ Container 1 āĻĨā§āĻā§ Container 3 āĻ āĻŋāĻāĻ āĻžāĻ PING āĻāϰāϤ⧠āĻĒāĻžāϰāĻž āϝāĻžā§ āĻāĻŋāύāĻž? āĻāĻāĻ āϰāĻāĻŽ āĻāĻžāĻŦā§ Container 2 āĻĨā§āĻā§ Container 4 āĻ āĻŋāĻ PING āĻāϰāϤ⧠āĻĒāĻžāϰāĻž āϝāĻžā§ āĻāĻŋāύāĻž? āĻļā§āϰā§āϤā§āĻ VM1 āĻāϰ āĻāύā§āϝ āĻā§āĻ āĻāϰāĻŋ -Â
-------------------------------- VM1 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ sudo docker exec docker1 ping 192.168.1.11 # docker1 āĻĨā§āĻā§ docker1 āĻāϰ IP āϤ⧠PING
PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data.       # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ...Â
64 bytes from 192.168.1.11: icmp_seq=1 ttl=64 time=0.015 ms
64 bytes from 192.168.1.11: icmp_seq=2 ttl=64 time=0.060 ms
....
vagrant@ubuntu-bionic:~$ sudo docker exec docker1 ping 192.168.2.11  # docker1 āĻĨā§āĻā§ docker2 āĻāϰ IP āϤ⧠PING
^C   # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...Â
vagrant@ubuntu-bionic:~$ sudo docker exec docker1 ping 192.168.1.12  # docker1 āĻĨā§āĻā§ docker3 āĻāϰ IP āϤ⧠PING
PING 192.168.1.12 (192.168.1.12) 56(84) bytes of data.   # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ...Â
64 bytes from 192.168.1.12: icmp_seq=1 ttl=64 time=1.35 ms
64 bytes from 192.168.1.12: icmp_seq=2 ttl=64 time=1.23 ms
....
vagrant@ubuntu-bionic:~$ sudo docker exec docker1 ping 192.168.2.12  # docker1 āĻĨā§āĻā§ docker4 āĻāϰ IP āϤ⧠PING
^C   # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...Â
vagrant@ubuntu-bionic:~$ sudo docker exec docker2 ping 192.168.2.11   # docker2 āĻĨā§āĻā§ docker2 āĻāϰ IP āϤ⧠PING
PING 192.168.2.11 (192.168.2.11) 56(84) bytes of data.        # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ...Â
64 bytes from 192.168.2.11: icmp_seq=1 ttl=64 time=0.014 ms
64 bytes from 192.168.2.11: icmp_seq=2 ttl=64 time=0.045 ms
......
vagrant@ubuntu-bionic:~$ sudo docker exec docker2 ping 192.168.2.12   # docker2 āĻĨā§āĻā§ docker4 āĻāϰ IP āϤ⧠PING
PING 192.168.2.12 (192.168.2.12) 56(84) bytes of data.        # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ...Â
64 bytes from 192.168.2.12: icmp_seq=1 ttl=64 time=1.51 ms
64 bytes from 192.168.2.12: icmp_seq=2 ttl=64 time=1.06 ms
.....
vagrant@ubuntu-bionic:~$ sudo docker exec docker2 ping 192.168.1.11   # docker2 āĻĨā§āĻā§ docker1 āĻāϰ IP āϤ⧠PING
^C                       # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...
vagrant@ubuntu-bionic:~$ sudo docker exec docker2 ping 192.168.1.12   # docker2 āĻĨā§āĻā§ docker3 āĻāϰ IP āϤ⧠PING
^C                       # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...
āĻāĻāĻ āϰāĻāĻŽ āĻāĻžāĻŦā§ VM2 āĻāϰ Container āĻā§āϞ⧠āĻĨā§āĻā§ PING āĻĻāĻŋā§ā§āĻ āĻāĻŽāϰāĻž āĻā§āώā§āĻāĻž āĻāϰāĻŦā§Â -Â
-------------------------------- VM2 āĻāϰ āĻāύā§āϝ --------------------------------Â
vagrant@ubuntu-bionic:~$ sudo docker exec docker3 ping 192.168.1.12 -c 5  # docker3 āĻĨā§āĻā§ docker3 āĻāϰ IP āϤ⧠PING
PING 192.168.1.12 (192.168.1.12) 56(84) bytes of data.  # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ... Â
64 bytes from 192.168.1.12: icmp_seq=1 ttl=64 time=0.013 ms
... ... ...
--- 192.168.1.12 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4420ms
rtt min/avg/max/mdev = 0.013/0.039/0.059/0.018 ms
vagrant@ubuntu-bionic:~$ sudo docker exec docker3 ping 192.168.1.11 -c 5 # docker3 āĻĨā§āĻā§ docker1 āĻāϰ IP āϤ⧠PING
PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data.  # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ...
64 bytes from 192.168.1.11: icmp_seq=1 ttl=64 time=0.467 ms
... ... ...
--- 192.168.1.11 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4112ms
rtt min/avg/max/mdev = 0.467/1.103/1.876/0.475 ms
vagrant@ubuntu-bionic:~$ sudo docker exec docker3 ping 192.168.2.11 -c 5 # docker3 āĻĨā§āĻā§ docker2 āĻāϰ IP āϤ⧠PING
^C  # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...
vagrant@ubuntu-bionic:~$ sudo docker exec docker3 ping 192.168.2.12 -c 5 # docker3 āĻĨā§āĻā§ docker4 āĻāϰ IP āϤ⧠PING
^C      # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...
vagrant@ubuntu-bionic:~$ sudo docker exec docker4 ping 192.168.2.11 -c 5 # docker4 āĻĨā§āĻā§ docker2 āĻāϰ IP āϤ⧠PING
PING 192.168.2.11 (192.168.2.11) 56(84) bytes of data.  # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ...
64 bytes from 192.168.2.11: icmp_seq=1 ttl=64 time=0.391 ms
... ... ...
--- 192.168.2.11 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4269ms
rtt min/avg/max/mdev = 0.391/0.684/1.323/0.332 ms
vagrant@ubuntu-bionic:~$ sudo docker exec docker4 ping 192.168.2.12 -c 5 # docker4 āĻĨā§āĻā§ docker4 āĻāϰ IP āϤ⧠PING
PING 192.168.2.12 (192.168.2.12) 56(84) bytes of data.          # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ ...
64 bytes from 192.168.2.12: icmp_seq=1 ttl=64 time=0.015 ms
... ... ...
--- 192.168.2.12 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4077ms
rtt min/avg/max/mdev = 0.015/0.035/0.059/0.018 ms
vagrant@ubuntu-bionic:~$ sudo docker exec docker4 ping 192.168.1.11 -c 5  # docker4 āĻĨā§āĻā§ docker1 āĻāϰ IP āϤ⧠PING
^C  # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...
vagrant@ubuntu-bionic:~$ sudo docker exec docker4 ping 192.168.1.12 -c 5  # docker4 āĻĨā§āĻā§ docker3 āĻāϰ IP āϤ⧠PING
^C  # āĻ āĻŋāĻāĻ āĻžāĻ PING āĻĒāĻžāĻŦā§ āύāĻž ...
Bingoooo ... āĻāĻŽāϰāĻž āĻ āĻŋāĻ āĻ āĻžāĻ āĻāĻžāĻŦā§ VXLAN āϏā§āĻ āĻāĻĒ āĻāϰāϤ⧠āĻĒā§āϰā§āĻāĻŋāĨ¤ āĻāĻŦāĻžāϰ āύāĻŋāĻā§ āύāĻŋāĻā§ āĻā§āώā§āĻāĻž āĻāϰā§āύāĨ¤ āĻĻā§āĻā§āύ āĻĒāĻžāϰā§āύ āĻāĻŋāύāĻž ...Â
āϝāĻĻāĻŋ PING āĻāϰ āĻāĻŦāĻŋ āĻĻā§āĻāϤ⧠āĻāĻžāύ āϤāĻžāĻšāϞ⧠VM-HOST-1 āĻāĻŦāĻ VM-HOST-2 āĻāĻ āĻĻā§āĻā§ āϞāĻŋāĻāĻ āĻ āĻāĻŋā§ā§ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻā§āĻŽ āĻ āĻā§āϞāĻŋāĻ āĻāϰāϞ⧠āϏāĻŽā§āĻĒā§āϰā§āύ āĻāĻŽā§āĻ āĻāĻŋ āĻĻā§āĻāĻž āϝāĻžāĻŦā§āĨ¤
āĻāĻžāĻ āĻāĻž āĻāϰāϤ⧠āĻāĻŋā§ā§ āĻŦā§āĻļ āĻāĻŋāĻā§ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽā§āĻŽā§āĻā§āύ āĻšā§ā§āĻāĻŋāϞāĻžāĻŽāĨ¤ āϏā§āĻā§āϞā§āϰ āϝā§āĻāĻžāĻŦā§ āϏāĻŽāĻžāϧāĻžāύ āĻāϰā§āĻāĻŋ āϤāĻž āĻāĻ FAQ and Troubleshoot āĻĒā§āĻ āĻ āϞāĻŋāĻā§āĻāĻŋāĨ¤ āĻšā§āϤ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āϞāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤