The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/2482
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) ===
From b922cf1df96e606970ff84763928cb47e9ddcd51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com> Date: Tue, 11 Oct 2016 12:21:26 -0400 Subject: [PATCH 1/2] network: Always pass --enable-ra with IPv6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #2481 Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- lxd/networks.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/networks.go b/lxd/networks.go index 0ec74ab..2dbe53f 100644 --- a/lxd/networks.go +++ b/lxd/networks.go @@ -785,7 +785,7 @@ func (n *network) Start() error { } // Update the dnsmasq config - dnsmasqCmd = append(dnsmasqCmd, fmt.Sprintf("--listen-address=%s", ip.String())) + dnsmasqCmd = append(dnsmasqCmd, []string{fmt.Sprintf("--listen-address=%s", ip.String()), "--enable-ra"}...) if n.config["ipv6.dhcp"] == "" || shared.IsTrue(n.config["ipv6.dhcp"]) { if !shared.StringInSlice("--dhcp-no-override", dnsmasqCmd) { dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-no-override", "--dhcp-authoritative", fmt.Sprintf("--dhcp-leasefile=%s", shared.VarPath("networks", n.name, "dnsmasq.leases")), fmt.Sprintf("--dhcp-hostsfile=%s", shared.VarPath("networks", n.name, "dnsmasq.hosts"))}...) From 0fa3b9ca39f1b915325ee26121b502a90af036aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com> Date: Tue, 11 Oct 2016 12:46:38 -0400 Subject: [PATCH 2/2] network: Fix IPv6 DHCP logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Re-order the code so that DHCPv6 can actually be turned off. - Use the ::,constructor= syntax to properly instruct dnsmasq not to do DHCPv6 when not needed. Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- lxd/networks.go | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/lxd/networks.go b/lxd/networks.go index 2dbe53f..dc9eded 100644 --- a/lxd/networks.go +++ b/lxd/networks.go @@ -791,23 +791,20 @@ func (n *network) Start() error { dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-no-override", "--dhcp-authoritative", fmt.Sprintf("--dhcp-leasefile=%s", shared.VarPath("networks", n.name, "dnsmasq.leases")), fmt.Sprintf("--dhcp-hostsfile=%s", shared.VarPath("networks", n.name, "dnsmasq.hosts"))}...) } - flags := "" - if n.config["ipv6.dhcp"] == "" || shared.IsTrue(n.config["ipv6.dhcp"]) { - if !shared.IsTrue(n.config["ipv6.dhcp.stateful"]) { - flags = ",ra-stateless,ra-names" - } - } else { - flags = ",ra-only" - } - - if n.config["ipv6.dhcp.ranges"] != "" { - for _, dhcpRange := range strings.Split(n.config["ipv6.dhcp.ranges"], ",") { - dhcpRange = strings.TrimSpace(dhcpRange) - dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-range", fmt.Sprintf("%s%s", strings.Replace(dhcpRange, "-", ",", -1), flags)}...) + if shared.IsTrue(n.config["ipv6.dhcp.stateful"]) { + if n.config["ipv6.dhcp.ranges"] != "" { + for _, dhcpRange := range strings.Split(n.config["ipv6.dhcp.ranges"], ",") { + dhcpRange = strings.TrimSpace(dhcpRange) + dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-range", fmt.Sprintf("%s", strings.Replace(dhcpRange, "-", ",", -1))}...) + } + } else { + dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-range", fmt.Sprintf("%s,%s", networkGetIP(subnet, 2), networkGetIP(subnet, -1))}...) } } else { - dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-range", fmt.Sprintf("%s,%s%s", networkGetIP(subnet, 2), networkGetIP(subnet, -1), flags)}...) + dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-range", fmt.Sprintf("::,constructor:%s,ra-stateless,ra-names", n.name)}...) } + } else { + dnsmasqCmd = append(dnsmasqCmd, []string{"--dhcp-range", fmt.Sprintf("::,constructor:%s,ra-only", n.name)}...) } // Setup basic iptables overrides
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel