demystifying docker networking - fntlnz.wtf docker networking practical guide to black magic lorenzo...

23
Demystifying Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Upload: duonglien

Post on 18-May-2018

233 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Demystifying Docker Networking

Practical guide to black magic

Lorenzo Fontana

March 16, 2017

Page 2: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

About Me

Lorenzo Fontana

DevOps Expert @Kiratech

Docker Maintainer

http://fntlnz.wtf

https://github.com/fntlnz

https://twitter.com/fntlnz

1

Page 3: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Container Network Model

Page 4: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

CNM: Container Network Model

• Sandbox

• Endpoint

• Network

2

Page 5: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

CNM: Container Network Model (cont’d)

3

Page 6: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Libnetwork is the Native implementation of CNM

github.com/docker/libnetwork

4

Page 7: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Network Drivers 101

Page 8: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Null

# docker run -it --network=none alpine sh

5

Page 9: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Default Bridge (docker0)

# docker run -it alpine sh

6

Page 10: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Custom Bridge (mybridge)

# docker network create -d bridge \

-o com.docker.network.bridge.name=mybridge \

mybridge

# docker run -it --net mybridge alpine sh

7

Page 11: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Custom Bridge Network IPAM underlay (myunderbr)

# docker network create -d bridge --subnet

=192.168.10.0/24 --gateway =192.168.10.254 \

--aux -address DefaultGatewayIPv4 =192.168.10.1 -o

com.docker.network.bridge.name=myunderbr

myunderbr

# brctl addif myunderbr enp5s0

# docker run -it --net myunderbr alpine sh

# docker run -it --net myunderbr --ip 192.168.10.90

nginx :1.9

# ip a del 192.168.10.254/24 dev myunderbr 8

Page 12: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Macvlan & IPvlan

9

Page 13: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Macvlan modes: Bridged

Bridged (default): switches packets inside the host

10

Page 14: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Macvlan modes: Private

Private blocks traffic between two MACVLAN interfaces on the same host

11

Page 15: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Macvlan modes: VEPA (Virtual Ethernet Port Aggregator)

VEPA requires a downstream switch that supports VEPA 802.1bg that

will hairpin traffic back to the host if the if the destination is on the same

host

12

Page 16: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Macvlan modes: Passthru

Passthru is similar to private but relies on an external switch not to

hairpin the traffic back to the originating host

13

Page 17: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Overlay network (myoverlay)

# docker network create -d overlay myoverlay

# docker service create --network myoverlay nginx

14

Page 18: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Overlay network (cont’d)

15

Page 19: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

IPVS

Page 20: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

16

Page 21: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Questions?

16

Page 22: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

We are hiring

drop me a line at [email protected]

16

Page 23: Demystifying Docker Networking - fntlnz.wtf Docker Networking Practical guide to black magic Lorenzo Fontana March 16, 2017

Thanks for listening!

And thanks to all the organizers!

16