Containers are application focused, and from high level they are isolate and package apllictaions
- Containers can limit resources available for application, cpu share, memory
Isolate processes, users, network, etc.
this means that containers have processes, users, network stack that is not visible for other containers
Filesystem is also separated, every container can have own root fs that is not visible
Basic security, lik ecapabilities, e.g. NET_ADMIN
This presentation focus is on network
Linux kernel feature, (UNIX Timesharing System, historical reasons
Own network stack, achived by using Network Namespace
- It is a Linux kernel feature,
- Network stack means that it has an own
Linux machine and one erhernet port
Routing table
And iptable rules
What are this:
Routing table,, it is a prefix matching table, containing an IP prefixes, if you have a destination IP, matching against this table and from there it can be figured out where to send it out
You can think of it as a packet filtering and modification tool. Iptables is a userland tool to modify the tables and rules netfilter module of kernel
Layer 2 ethernet frame
Layer 3 ip packet
Oversimplification, layer 2 ethernat frame contains source and dest mac address
Oversimplification, layer 3 ethernat packet contains source and dest ip address
Routing table table is prefix table, describes that how a layer 3 packet shall be forvarded based on ip address.
Add the information what we have learned
A bridge behaves like a virtual network switch, any real devices (e.g. eth0) and virtual devices (e.g. tap0) can be connected to it.
Iptables rule which is related to Network address translation (NAT)
This info can be figured out by using the rout ifconfig, iptables
Network address translation (NAT) is a methodology of remapping one IP address space into another by modifying network address information in Internet Protocol (IP) datagram packet headers
while they are in transit across a traffic routing device.[1]
Docker0 not to much thing is cahnged there
Veth pair connection
What happens when we run a container and expose the port 8080 to 9090
- Container would like to talk other container connected todocker0 then it goes through bridge
Network address translation (NAT) is a methodology of remapping one IP address space into another by modifying network address information in Internet Protocol (IP) datagram packet headers while they are in transit across a traffic routing device.[1]
An overlay network is a computer network that is built on top of another network.
Not a good name in Docker networking, since they created a vxlan based overlay network.
An overlay network is a computer network that is built on top of another network
A bridge behaves like a virtual network switch, any real devices (e.g. eth0) and virtual devices (e.g. tap0) can be connected to it.
Iptables rule which is related to Network address translation (NAT)
This info can be figured out by using the rout ifconfig, iptables
Network address translation (NAT) is a methodology of remapping one IP address space into another by modifying network address information in Internet Protocol (IP) datagram packet headers
while they are in transit across a traffic routing device.[1]
Suppose network was alreadt created with docker network create , 10.10.10.0/24
VXLAN, what role does it play? We need to step back a little bit.
Ton understand this we need to explain what is SDN, Softer Defined Networking is
Basic concept of Software-defined networking is to Separate control and data plane of network.
Overtlay technology, whcih can be translated that a network teachnology om the top ofanother network
Main parts of it.
Few things what are missing from the puzzle
Serf is decentralised solution, for cluster membership, faliure detection, orchestration. Use efficient and lightweight gossip/epidemic protocol is used to communicate with other nodes.
Serf can detect node failures and notify the rest of the cluster propagating changes to configuration to relevant nodes.
Undesrand what is the concept, now we can check the implementation details.