Merge pull request #446 from icecrime/hairpin-nat-re

Hairpin NAT network configuration
This commit is contained in:
Mrunal Patel 2015-03-11 14:49:12 -07:00
commit f7837f4f71
2 changed files with 11 additions and 0 deletions

View File

@ -42,6 +42,12 @@ type Network struct {
// HostInterfaceName is a unique name of a veth pair that resides on in the host interface of the
// container.
HostInterfaceName string `json:"host_interface_name"`
// HairpinMode specifies if hairpin NAT should be enabled on the virtual interface
// bridge port in the case of type veth
// Note: This is unsupported on some systems.
// Note: This does not apply to loopback interfaces.
HairpinMode bool `json:"hairpin_mode"`
}
// Routes can be specified to create entries in the route table as the container is started

View File

@ -135,6 +135,11 @@ func (v *veth) create(n *network, nspid int) (err error) {
if err := netlink.NetworkSetMTU(host, n.Mtu); err != nil {
return err
}
if n.HairpinMode {
if err := netlink.SetHairpinMode(host, true); err != nil {
return err
}
}
if err := netlink.NetworkLinkUp(host); err != nil {
return err
}