[ovs-discuss] [PATCH] Default gateway IP address on ovs-docker
Marvin Pascual
marvin at pascual.com.ph
Tue Dec 2 09:28:09 UTC 2014
Hi all,
[ MY ENVIRONMENT ]
$ uname -r
3.13.0-40-generic
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
$ dpkg -l | grep -i 'openvswitch\|docker' | awk -F " " '{ print $2 " " $3 }'
lxc-docker 1.3.2
lxc-docker-1.3.2 1.3.2
openvswitch-common 2.0.2-0ubuntu0.14.04.1
openvswitch-controller 2.0.2-0ubuntu0.14.04.1
openvswitch-pki 2.0.2-0ubuntu0.14.04.1
openvswitch-switch 2.0.2-0ubuntu0.14.04.1
$ ovs-vsctl -V
ovs-vsctl (Open vSwitch) 2.0.2
Compiled Aug 15 2014 14:31:02
$ docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa
$ grep -v ^# /etc/default/docker
DOCKER_OPTS="--bridge=br0 --dns 8.8.8.8 --dns 208.67.222.222"
$ sudo ovs-vsctl show
bff165bb-05af-4fb2-a045-fd6208beaf6a
Bridge "br0"
Port "br0"
Interface "br0"
type: internal
Port "eth0"
Interface "eth0"
ovs_version: "2.0.2"
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
pre-up ifconfig $IFACE up
post-down ifconfig $IFACE down
auto br0
iface br0 inet static
address 172.16.114.130
netmask 255.255.255.0
gateway 172.16.114.2
$ hostname -I
172.16.114.130
$ ip route show
default via 172.16.114.2 dev br0
172.16.114.0/24 dev br0 proto kernel scope link src 172.16.114.130
$ docker images | grep bintut
bintut/trusty 0.1 71a5c11bdd60 2 days
ago 429.3 MB
$ docker ps
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAMES
$ docker run --net=none -t -i bintut/trusty:0.1 /sbin/my_init -- bash -l
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 12
*** Running bash -l...
$ docker ps
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAMES
45ebe83a614b bintut/trusty:0.1 "/sbin/my_init -- ba About a
minute ago Up About a minute naughty_bohr
$ docker attach 45ebe83a614b
root at 45ebe83a614b:/# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
[ MY TEST ]
$ sudo ./ovs-docker
ovs-docker: Performs integration of Open vSwitch with Docker.
usage: ovs-docker COMMAND
Commands:
add-port BRIDGE INTERFACE CONTAINER [ADDRESS] [GATEWAY]
Adds INTERFACE inside CONTAINER and connects it as a
port
in Open vSwitch BRIDGE. Optionally, sets ADDRESS on
INTERFACE. ADDRESS can be in CIDR notation which
include a
'/' to represent network prefix length. GATEWAY is the
default gateway IP address of the given ADDRESS. e.g.:
ovs-docker add-port br-int eth1 c474a0e2830e
192.168.1.2/24
del-port BRIDGE INTERFACE CONTAINER
Deletes INTERFACE inside CONTAINER and removes its
connection to Open vSwitch BRIDGE. e.g.:
ovs-docker del-port br-int eth1 c474a0e2830e
del-ports BRIDGE CONTAINER
Removes all Open vSwitch interfaces from CONTAINER.
e.g.:
ovs-docker del-ports br-int c474a0e2830e
Options:
-h, --help display this help message.
$ sudo ./ovs-docker add-port br0 eth0 45ebe83a614b 172.16.114.140/24
172.16.114.2
$ sudo ovs-vsctl show
bff165bb-05af-4fb2-a045-fd6208beaf6a
Bridge "br0"
Port "58e77188bcba4_l"
Interface "58e77188bcba4_l"
Port "br0"
Interface "br0"
type: internal
Port "eth0"
Interface "eth0"
ovs_version: "2.0.2"
$ docker attach 45ebe83a614b
root at 45ebe83a614b:/# ifconfig
eth0 Link encap:Ethernet HWaddr de:33:af:81:57:dc
inet addr:172.16.114.140 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::dc33:afff:fe81:57dc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:648 (648.0 B) TX bytes:648 (648.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root at 45ebe83a614b:/# ip route show
default via 172.16.114.2 dev eth0
172.16.114.0/24 dev eth0 proto kernel scope link src 172.16.114.140
root at 45ebe83a614b:/# ping -c 3 www.google.com
PING www.google.com (74.125.68.103) 56(84) bytes of data.
64 bytes from 74.125.68.103: icmp_seq=1 ttl=128 time=4.83 ms
64 bytes from 74.125.68.103: icmp_seq=2 ttl=128 time=6.12 ms
64 bytes from 74.125.68.103: icmp_seq=3 ttl=128 time=5.28 ms
--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 4.831/5.414/6.125/0.535 ms
[ MY PATCH ]
49a50
> GATEWAY="$5"
92a94,97
>
> if [ -n "$GATEWAY" ]; then
> ip netns exec "$PID" ip route add default via "$GATEWAY"
> fi
145c150
< add-port BRIDGE INTERFACE CONTAINER [ADDRESS]
---
> add-port BRIDGE INTERFACE CONTAINER [ADDRESS] [GATEWAY]
148,149c153,155
< INTERFACE. ADDRESS can include a '/' to represent
network
< prefix length. e.g.:
---
> INTERFACE. ADDRESS can be in CIDR notation which
include a
> '/' to represent network prefix length. GATEWAY is the
> default gateway IP address of the given ADDRESS. e.g.:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20141202/2c40f458/attachment-0002.html>
More information about the discuss
mailing list