Initial installer/setup: ipv6 gateway not set as "onlink"

Started by 5SpeedFun, February 14, 2024, 01:45:34 PM

Previous topic - Next topic
Hello,

So this is a weird one (IMHO).  I have a host at OVH with ipv6.  However my ipv6 static ip address has a default gateway that isn't in the same /64 as my static ip block.  The same happens with ipv4.

When configuring ipv4, the gatway is set as "onlink".  However in ipv6 it is not, and the routing table (nestat -6 -rn in the shell) shows no default gateway after completing the setup.

Not sure if this is a bug or not...?  Sure, it would be better to use link-local, but that is not what OVH is giving me/supporting.

Any comments/fixes appreciated.


Oddly enough, the gateway is listed as "online" in "Lobby -> Dashboard"
However if I ping the gateway from  "Interfaces -> Diagnostics -> Ping" it returns "no route to host"

Hi,

> However my ipv6 static ip address has a default gateway that isn't in the same /64 as my static ip block.

This is an impossible configuration. The gateway needs to be in your assigned /64 or must be link-local which it very often is due to this limitation in IPv6.


Cheers,
Franco

This works in FRR fine.

I also have a non-local default gateway for ipv4 as well (ovh assigns /32 to me for ip address with default gateway outside of this subnet obviously) and this works fine in opnsense:

root@OPNsense:~ # ifconfig vtnet1 | grep inet\
inet 158.69.185.70 netmask 0xffffffff broadcast 158.69.185.70


root@OPNsense:~ # netstat -4 -rn | grep default
default            192.95.32.254      UGS      vtnet1



root@OPNsense:~ # ping 192.95.32.254
PING 192.95.32.254 (192.95.32.254): 56 data bytes
64 bytes from 192.95.32.254: icmp_seq=0 ttl=255 time=0.479 ms
64 bytes from 192.95.32.254: icmp_seq=1 ttl=255 time=0.623 ms
64 bytes from 192.95.32.254: icmp_seq=2 ttl=255 time=0.627 ms
^C
--- 192.95.32.254 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.479/0.576/0.627/0.069 ms
root@OPNsense:~ # traceroute 192.95.32.254
traceroute to 192.95.32.254 (192.95.32.254), 64 hops max, 40 byte packets
1  192.95.32.254 (192.95.32.254)  0.684 ms  0.736 ms  0.794 ms


I know it works in IPv4 which made me mention it doesn't work in IPv6 as the kernel will not allow it.


Cheers,
Franco

Here is my Ubuntu box:


root@yul-vpnr01:~# ip a show dev ens18
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:00:00:f3:a8:17 brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 198.50.158.185/32 scope global ens18
       valid_lft forever preferred_lft forever
    inet6 2607:5300:60:2f46::1:2/64 scope global
       valid_lft forever preferred_lft forever


And my netplan config:

root@yul-vpnr01:~# grep -A9 routes: /etc/netplan/00-installer-config.yaml
      routes:
      - to: default
        via: 192.95.32.254
        on-link: true
      - to: 173.161.5.168/29
        via: 192.95.32.254
        on-link: true
      - to: default
        via: 2607:5300:60:2fff:ff:ff:ff:ff
        on-link: true


root@yul-vpnr01:~# ping 2607:5300:60:2fff:ff:ff:ff:ff
PING 2607:5300:60:2fff:ff:ff:ff:ff(2607:5300:60:2fff:ff:ff:ff:ff) 56 data bytes
64 bytes from 2607:5300:60:2fff:ff:ff:ff:ff: icmp_seq=1 ttl=64 time=0.709 ms


root@yul-vpnr01:~# traceroute 2607:5300:60:2fff:ff:ff:ff:ff
traceroute to 2607:5300:60:2fff:ff:ff:ff:ff (2607:5300:60:2fff:ff:ff:ff:ff), 30 hops max, 80 byte packets
1  _gateway (2607:5300:60:2fff:ff:ff:ff:ff)  0.825 ms  0.922 ms  1.038 ms


Should I mention this is the FreeBSD kernel we are talking about? ;)

I swear I'm not trying to kid you.

Yep i do understand, but I find it hard to believe a bare metal provider is going to provide an solution that only works in Linux.  I'm afraid to try windows with a public ip & this gateway setup :)


February 14, 2024, 02:57:34 PM #8 Last Edit: February 14, 2024, 03:09:19 PM by 5SpeedFun
Well this works....

root@OPNsense:~ # route -6 add 2607:5300:60:2fff:ff:ff:ff:ff/128 -iface vtnet1
add host 2607:5300:60:2fff:ff:ff:ff:ff/128: gateway vtnet1
root@OPNsense:~ # route -6 add default 2607:5300:60:2fff:ff:ff:ff:ff
add net default: gateway 2607:5300:60:2fff:ff:ff:ff:ff
root@OPNsense:~ # ping ipv6.google.com
PING6(56=40+8+8 bytes) 2607:5300:60:2f46::102:1 --> 2607:f8b0:4020:806::200e
16 bytes from 2607:f8b0:4020:806::200e, icmp_seq=0 hlim=115 time=1.262 ms


It seems FreeBSDs way of doing a route "onlink" is to use -iface in the route command.

Any way we can get this in the installer?  ;D

Edit:  I went to System->Routes->Configuration to add a route but it doesn't give me an option to set an interface, and it seems I must select a gateway....Any other way to possibly do this?

Install a standard FreeBSD 13.2 with correct configuration and use the bootstrap method?

Sorry, forget it - you are past installation, already.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Thanks for the idea.  I didn't even know you could do that.  I do appreciate the suggestion!

February 14, 2024, 07:59:28 PM #11 Last Edit: February 14, 2024, 08:02:36 PM by 5SpeedFun
I came up with another idea.

I pinged the ipv6 gw from a working linux host.
Snagged the mac address.

Then tcpdumped matching on mac address , looking for traffic from fe80::/10

An IP popped up.

I defined that as a gateway in OPNSense and I can now ping ipv6.google.com from OPNSense box.

If they are doing VRRP or something on the actual gateway IP they give out & this host goes down I suppose that will break my ipv6.  May see if I can find some VRRP packets & find a second LL address and then do gateway monitoring.

Have you asked them about a permanent link-local address? Really using link-local for gateways is considered best practice.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

I've asked that.

Support came back with:  "We don't have access to your system to know the link-local address..."  and then sent me a link of how to do it on linux *sighs*

I meant the link-local address of their default-gateway.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)