Missing IPv6 default route on protocol kernel and table master6

Bernd Naumann bernd at kr217.de
Mon Oct 10 11:58:46 CEST 2022


Hey Ondrej,

See my reply inline.

On 2022-10-10  00:40, Ondrej Zajicek wrote:
> On Sun, Oct 09, 2022 at 07:43:56PM +0200, Bernd Naumann via Bird-users wrote:
>> On 2022-10-07  18:32, Ondrej Zajicek wrote:
>>> Does the pppoe-wan have link-local address range? Does BIRD know about it?
>>> What is  What is the output from BIRD command 'show interfaces'?
>>>
>>
>> I assume no. Like I have written, the LLA is `/128`. I do not see the
>> gateway in the `neighbor` table, but local LLA and gateway LLA are present
>> as host routes.
> 
> Oh, i missed that. In general, BIRD does check route next hops against IP
> ranges of local addresses, not against other routes (i.e. gateway LLA as
> host route or manually added /64 route), so if you have LLA as /128, then
> the next hop check for gateway LLA fails. It is true that this check is
> suboptimal and perhaps superfluous, we should reevaluate it.
> 
> 
>> If I `ip route add fe80::/64 dev pppoe-wan` it makes *no* difference.
> 
> Yes, same like with gateway LLA host route.
> 
> 
>> If I delete the `/128` LLA and replace it with `/64` it is still not present
>> in `master6`
> 
> This is strange, i would predict that after this change it should start
> working. Perhaps there is some bug in caching of next-hop lookups.
> 
> Could you try replacing LLA with /64, checking that there is still
> default route in kernel table, and then restarting BIRD?
> 

If I just change the mask from `/128` to `/64` and restart bird I see no 
change in behavior. I ensured that `fe80::/64 dev pppoe-wan` is present, 
too.
```
root at cpe:~# logread -f | grep ppp

Mon Oct 10 09:35:54 2022 daemon.debug bird: direct1 < interface 
pppoe-wan goes up
Mon Oct 10 09:35:54 2022 daemon.debug bird: direct1 < address 
62.155.247.65/32 on interface pppoe-wan added
Mon Oct 10 09:35:54 2022 daemon.debug bird: direct1 < address 
2003:e4:bfff:1f4a::/64 on interface pppoe-wan added
Mon Oct 10 09:35:54 2022 daemon.debug bird: direct1 < address fe80::/64 
on interface pppoe-wan added
Mon Oct 10 09:35:55 2022 daemon.debug bird: kernel_ipv6 < interface 
pppoe-wan goes up
```

If I add `ip -6 route add default dev pppoe-wan` the route is learned:
```
Mon Oct 10 09:39:26 2022 daemon.debug bird: kernel_ipv6: ::/0: [alien 
async] created
Mon Oct 10 09:39:26 2022 daemon.debug bird: kernel_ipv6.ipv6 > added 
[best] ::/0 unicast
Mon Oct 10 09:39:26 2022 daemon.debug bird: kernel_ipv6.ipv6 < rejected 
by protocol ::/0 unicast

root at cpe:~# birdc show route for ::/0
BIRD 2.0.8 ready.
Table master6:
::/0                 unicast [kernel_ipv6 09:39:26.194] * (10)
         dev pppoe-wan

```



> 
>> [...]  What does make this ipv6
>> default route so special?
> 
> In short, it is special that LLA range for your address is /128 and
> therefore the next hop of default route is outside of it.
> 

My uplink connection is from Deutsche Telekom and their "standard" 
offering called "Magenta". Its a VDSL2+(something).

As I stated before, I have no deeper knowledge about PPPoE but I would 
have doubt that it is so special to have a `/128`. Because with IPv4 the 
local address is also not on the same range as the gateway address; its 
also only two host addresses. The only difference here is that for IPv4 
the local and remote address pair is setup as `inet <addr> peer <addr>`, 
but with IPv6 its just the LLA and two host routes (for local and remote 
LLA).

```
Mon Oct 10 09:32:35 2022 daemon.notice pppd[24067]: pppd 2.4.8 started 
by root, uid 0 

Mon Oct 10 09:32:36 2022 daemon.info pppd[24067]: PPP session is 1 
 

Mon Oct 10 09:32:36 2022 daemon.warn pppd[24067]: Connected to 
f4:cc:55:42:1a:94 via interface eth0.7
Mon Oct 10 09:32:36 2022 kern.info kernel: [262398.389971] pppoe-wan: 
renamed from ppp0 

Mon Oct 10 09:32:36 2022 daemon.info pppd[24067]: Renamed interface ppp0 
to pppoe-wan
Mon Oct 10 09:32:36 2022 daemon.info pppd[24067]: Using interface 
pppoe-wan 

Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: Connect: pppoe-wan 
<--> eth0.7 

Mon Oct 10 09:32:36 2022 daemon.info pppd[24067]: Remote message: 
SRU=43976#SRD=109941# 

Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: PAP authentication 
succeeded 

Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: peer from calling 
number F4:CC:55:42:1A:94 authorized
Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: local  IP address 
87.167.90.71 

Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: remote IP address 
62.155.247.65
Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: primary   DNS 
address 217.237.149.205
Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: secondary DNS 
address 217.237.151.51
Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: local  LL address 
fe80::2923:cb8b:f184:5087 

Mon Oct 10 09:32:36 2022 daemon.notice pppd[24067]: remote LL address 
fe80::f6cc:55ff:fe42:1a94
```


Thanks again for your time and input.


More information about the Bird-users mailing list