Linux und überraschende IPV6-Logik

,

Schaltet man unter Linux das IPV6 Forwarding an

echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding

schaltet der Kernel einfach so kommentarlos das SLAAC ab. Das Router sich nicht selber irgendwelche Adresse ausdenken sollen etc. ist ja alles korrekt. Aber dokumentiert ist es nicht und der Kernel schreibt es auch nicht in irgendein Logfile rein. Man wundert sich einfach, warum ständig die SLAAC-Adressen verschwinden.

Außerdem ignoriert der Linux-Kernel alle reinkommenden Router Advertisments von anderen Routern, sobald er selber ein Router ist; auch das ist nicht so richtig offensichtlich.

Aber dem lässt sich abhelfen:

https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

accept_ra – INTEGER
Accept Router Advertisement

It also determines whether or not to transmit Router
Solicitations. If and only if the functional setting is to
accept Router Advertisements, Router Solicitations will be
transmitted.

Possible values are:

  • 0 Do not accept Router Advertisements.
  • 1 Accept Router Advertisements if forwarding is disabled.
  • 2 Overrule forwarding behaviour. Accept Router Advertisements
    even if forwarding is enabled. 

Functional default:

  • enabled if local forwarding is disabled.
  • disabled if local forwarding is enabled.