Fixing Docker networking - Milos Gajdos at #DOXLON
Upcoming SlideShare
Loading in...5
×
 

Fixing Docker networking - Milos Gajdos at #DOXLON

on

  • 683 views

Milos has been working on fixing networking in Docker. Yes, fixing networking :-) At the moment it massively sucks. You can't do vlans, macvlans etc.. you can't even have more than 1 interface inside ...

Milos has been working on fixing networking in Docker. Yes, fixing networking :-) At the moment it massively sucks. You can't do vlans, macvlans etc.. you can't even have more than 1 interface inside the docker!

After a week of after-work hacking on this (whilst watching world cup) Milos has found the cause of why this is not in Docker - it's the netlink package in docker - because no one has fixed netlink! This should be an entertaining talk for anyone who likes Docker, Golang and geeky container networking stuff.

Video: http://youtu.be/_dQ5dERe6b0

DevOps Exchange Meetup Group: http://bit.ly/doxlonmeetup

Statistics

Views

Total Views
683
Views on SlideShare
260
Embed Views
423

Actions

Likes
1
Downloads
4
Comments
0

7 Embeds 423

http://blog.dataloop.io 375
http://www.slideee.com 31
http://dataloopio.wordpress.com 11
http://feedly.com 3
https://dataloopio.wordpress.com 1
https://www.newsblur.com 1
http://www.inoreader.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Fixing Docker networking - Milos Gajdos at #DOXLON Fixing Docker networking - Milos Gajdos at #DOXLON Presentation Transcript

  • DOCKNET - golang package for Linux networking DevOps Exchange London, #DOXLON 26th June, 2014
  • About me… • Ex-Rackspace, couple of startups in and outside of UK • Currently freelancing • Twitter: @milosgajdos • Linkedin: http://uk.linkedin.com/in/milosgajdos • Professional (technology) ranter or better - Ops guy • Programming language tourist currently loving Go
  • How and why docknet • Started as a personal interest in Linux container networking
 (http://containerops.org/2013/11/19/lxc-networking/) • Docker does not offer advanced networking functionality available in LXC/OpenVZ • No properly functional Go library which would allow you to configure Linux networking programatically without shelling out
  • Application delivery DOCKERIZE ALL THE THINGS!
  • Infrastructure delivery • Network is an essential part of IT infrastructure • Well designed network offers better scalability, security, easier management etc. • Legacy network setups and various esoteric or financial requirements leave us deal with ….
  • Insane network infrastructures o_O
  • Netlink & RTNetlink • Netlink is a datagram-oriented messaging system in Linux for user-space applications to communicate with Linux kernel • mostly used by networking tools (iproute2), but there is some use of it in other non-networking kernel subsystems • RtNetlink is a library used for configuring and managing networking devices, routing, neighbouring etc.
  • Go netlink • Found 2 Go implementations: 1. github.com/abneptis/GoNetlink • does not seem to be actively developed any more - last commit about 4 years ago • couldn’t compile it with latest Go compiler 2. github.com/docker/libcontainer/ (netlink package) • used by Docker o/ • more idiomatic, still work in progress • seems broken - NEEDS FIXING
  • Fixing netlink package
  • docknet • general network managing and configuration library for Linux OS - not just containers! • uses properly functioning netlink package which offers more functionality than libcontainer’s one (VLANs, MAC VLANs etc.) • no syscalls in netlink package any more - syscalls are NOT netlink ! • allows for advanced networking configuration of your containers (not necessarily Docker based): VLANs, MAC VLANs, multiple network interfaces etc. • Still WORK IN PROGRESS… still private, should be released in a week or two
  • docknet sneak peek • Add an extra veth interface into Docker from the host machine: https://gist.github.com/milosgajdos83/7cc9028a962fb5635ada • Add a MAC VLAN interfaces into Docker from the host machine: https://gist.github.com/milosgajdos83/296fb90d076f259a5b0a
  • TIME FOR LIVE DEMO!
  • I AM HIRING ……
  • Links • http://www.linuxjournal.com/article/8498 • http://man7.org/linux/man-pages/man7/netlink.7.html • http://man7.org/linux/man-pages/man3/netlink.3.html • https://github.com/torvalds/linux/blob/master/net/core/rtnetlink.c • https://github.com/torvalds/linux/blob/master/include/linux/ rtnetlink.h • https://github.com/docker/libcontainer/blob/master/netlink/ netlink_linux.go