Commit Graph

18 Commits

Author SHA1 Message Date
8a40ce58f3 Make IP allocator lazy
Instead of allocating all possible IPs in advance, generate them as
needed.

A loop will cycle through all possible IPs in sequential order,
allocating them as needed and marking them as in use. Once the loop
exhausts all IPs, it will wrap back to the beginning. IPs that are
already in use will be skipped. When an IP is released, it will be
cleared and be available for allocation again.

Two decisions went into this design:

1) Minimize memory footprint by only allocating IPs that are actually
in use

2) Minimize reuse of released IP addresses to avoid sending traffic to
the wrong containers

As a side effect, the functions for IP/Mask<->int conversion have been
rewritten to never be able to fail in order to reduce the amount of
error returns.

Fixes gh-231
Upstream-commit: 6f9a67a7c7cb717ad1a575df3e4c0fd2ec8bc651
Component: engine
2013-04-01 06:02:44 +02:00
46acd15bd1 Handling iptables() errors more usefully during portmapper setup
Upstream-commit: 523803d633e3bf7e4076ad41e73daba491da5d40
Component: engine
2013-03-28 14:44:54 -05:00
de000293fa Return error when iptables is not found
Upstream-commit: c66d2b6a532c657b554ffa3c80b2cf15e218ee8e
Component: engine
2013-03-28 14:30:56 -05:00
ef4aab72d7 Looking for iptables in PATH
Upstream-commit: dfc3904f778996a449ef5199e36fce6cabfb803a
Component: engine
2013-03-28 14:02:50 -05:00
b293dc1722 Merge pull request #138 from srid/handle-port-mapper-error
handle errors during the creation of port mapper
Upstream-commit: 51455b1ee0f120d20d511e3f76786b9d688ceeff
Component: engine
2013-03-24 10:27:03 -07:00
450d1a6d33 handle errors during the creation of port mapper
example:

  2013/03/22 21:42:55 Unable to setup port networking: Failed to create DOCKER chain

  (which was possibly introduced by commit 3c6b8bb88)
Upstream-commit: 371225520fc86fa58fadd182730b958a0f7ef9ab
Component: engine
2013-03-22 21:44:01 -07:00
8664639f32 Properly cleanup iptables rules inserted in OUTPUT (introduced in 3c6b8bb8882fcd2083d1c489df3cc40062b4896c)
Upstream-commit: 301a8afff578a8467e98f1081aa96323c458e1f1
Component: engine
2013-03-22 22:31:20 -07:00
2b380dac90 Fixing Issue #98: Adding DOCKER to output chain during iptables setup
Upstream-commit: 3c6b8bb8882fcd2083d1c489df3cc40062b4896c
Component: engine
2013-03-22 11:28:15 -05:00
64ae26627e When lxcbr0 has several associated IPs, default to first one found
Upstream-commit: 3aefed2dc250bd41502bdaa11624f1f974ed80b6
Component: engine
2013-03-21 09:19:22 -07:00
21dbee3159 Complete pull request #121, init TCPAddr with named field
Upstream-commit: ab99e9252d1d3872b2e04234338ce028b9eb091c
Component: engine
2013-03-20 06:02:25 -07:00
2de0bdf328 Fix issue #120, initialize TCPAddr w/ field names
Current Go tip (+74e65f07a0c8) and likely Go 1.1 does not build docker since net.TCPAddr struct has an additional field now for IPv6:

type TCPAddr struct {
    IP   IP
    Port int
    Zone string // IPv6 scoped addressing zone
}

Initializing the struct with named fields resolves this problem.
Upstream-commit: fac32cda5af7adcf0400f1fd8763764a498149f3
Component: engine
2013-03-21 00:11:16 -03:00
3cddff121d Network: Port mapping support.
Implemented a port allocator and a port mapper that is able to forward TCP ports
from the host to the container.
Upstream-commit: 799ffa176399877e610ff2049dbf84610037a2be
Component: engine
2013-02-28 11:50:02 -08:00
6bc8a20d54 Integrated the network allocator into Docker. A networking environment
is assigned to each container upon Start and released whenever the
container exits.
Upstream-commit: c08f5b2b8460f13f2094bae2a496bf308f7645bb
Component: engine
2013-02-25 14:06:22 -08:00
550e796b18 Network allocator
Upstream-commit: 797bb6e75b8f33fe44932bf90145cf069f342e44
Component: engine
2013-02-25 10:45:23 -08:00
98683195b2 Network: Do not assume that we are using a class C. Instead, compute the
IP addresses range and network size in order to allocate an IP address.
Upstream-commit: e0e49b9a2259d779b31055339e67b054c8dffc3b
Component: engine
2013-02-21 18:33:23 -08:00
a99e747427 Network: Simple random IP allocation on the bridge network.
Upstream-commit: 6124c5eb31ab8f9db4db288002388554d6181c86
Component: engine
2013-02-21 10:47:57 -08:00
8326daf37d Network: Automatically figure out the gateway and netmask by inspecting
the lxc bridge interface
Upstream-commit: 5039d4a2804561885e32f2a93cb2a51cbaa8e847
Component: engine
2013-02-21 10:47:57 -08:00
d2dc806098 Basic networking support with hardcoded addresses. Work in progress.
Upstream-commit: 5cecd548cd48cec8967f7ad0b0b42b30fa3ec7a0
Component: engine
2013-02-21 10:47:57 -08:00