[macvlan] Stop setting proxy-arp on macvlan interface
The original issue was: https://github.com/containernetworking/cni/issues/84 I've added "a fix" for it in https://github.com/containernetworking/cni/pull/149 which then was merged in https://github.com/containernetworking/cni/pull/177 The thing is that "the fix" was incorrect as it was setting 1 on arp_proxy (I really don't recall why) instead of setting it on arp_notify - which was my original suggestion in: https://github.com/rkt/rkt/issues/1765#issuecomment-188776317 Setting apr_proxy can be harmfull and we have already support for sending GratuitousArpOverIface after setting an IP address, so setting any sysctl should not be needed. Signed-off-by: Piotr Skamruk <piotr.skamruk@gmail.com>
This commit is contained in:
parent
fa48f7515b
commit
e31cd2ce1a
@ -33,11 +33,6 @@ import (
|
|||||||
"github.com/containernetworking/plugins/pkg/ipam"
|
"github.com/containernetworking/plugins/pkg/ipam"
|
||||||
"github.com/containernetworking/plugins/pkg/ns"
|
"github.com/containernetworking/plugins/pkg/ns"
|
||||||
bv "github.com/containernetworking/plugins/pkg/utils/buildversion"
|
bv "github.com/containernetworking/plugins/pkg/utils/buildversion"
|
||||||
"github.com/containernetworking/plugins/pkg/utils/sysctl"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
IPv4InterfaceArpProxySysctlTemplate = "net.ipv4.conf.%s.proxy_arp"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type NetConf struct {
|
type NetConf struct {
|
||||||
@ -208,14 +203,6 @@ func createMacvlan(conf *NetConf, ifName string, netns ns.NetNS) (*current.Inter
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = netns.Do(func(_ ns.NetNS) error {
|
err = netns.Do(func(_ ns.NetNS) error {
|
||||||
// TODO: duplicate following lines for ipv6 support, when it will be added in other places
|
|
||||||
ipv4SysctlValueName := fmt.Sprintf(IPv4InterfaceArpProxySysctlTemplate, tmpName)
|
|
||||||
if _, err := sysctl.Sysctl(ipv4SysctlValueName, "1"); err != nil {
|
|
||||||
// remove the newly added link and ignore errors, because we already are in a failed state
|
|
||||||
_ = netlink.LinkDel(mv)
|
|
||||||
return fmt.Errorf("failed to set proxy_arp on newly added interface %q: %v", tmpName, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err := ip.RenameLink(tmpName, ifName)
|
err := ip.RenameLink(tmpName, ifName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_ = netlink.LinkDel(mv)
|
_ = netlink.LinkDel(mv)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user