Bug 112751
Summary: | learns IPv6 default route and IP address from its own announcement on wrong interface | ||
---|---|---|---|
Product: | Networking | Reporter: | Marc Haber (mh+kernel-bugzilla) |
Component: | IPV6 | Assignee: | Hideaki YOSHIFUJI (yoshfuji) |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | hannes |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 4.4.2 | Subsystem: | |
Regression: | Yes | Bisected commit-id: |
Description
Marc Haber
2016-02-20 20:02:39 UTC
Did I understood correctly, eth0 is part of br0? Hi Hannes, no, there is no connection between eth0 and br0. VMs connect to br0, the host routes between eth0 and br0. [2/502]mh@fan:~$ sudo brctl show bridge name bridge id STP enabled interfaces br0 8000.c6f498dc5e21 no dummy0 vnet0 vnet1 vnet2 [3/502]mh@fan:~$ Sorry for being unclear. Greetings Marc The issue seems to be that /proc/sys/net/ipv6/conf/eth0/accept_ra_from_local is 1. This is the case because the default gateway visible on eth0 has the link local address fe80::1 while the local box has also fe80::1 on br0 to be default gateway to its VMs. This is a bug in accept_ra_from_local. The kernel should never set a default route on a different interface than the one that an RA was received. The RA comes in on br0, which has accept_ra_from_local 0. Hence, the RA should be ignored. If /proc/sys/net/ipv6/conf/br0/accept_ra_from_local were 1, the RA should be accepted and the route should be configured on br0, not on eth0. This is not a kernel issue. systemd 229 decided to handle incoming router announcements itself. And of course, the NIH implementation is flawed. This issue can be closed. I apologize. Should I have done things wrong when closing this, its caused by my unfamiliarity with bugzilla. |