Hi.
I run an IPv6-enabled FreeBSD router on my home network, which has been working fine for years. I have a global-scope /48 prefix delegated by my ISP, from which FreeBSD advertises a /64 chunk to my LAN. IPv6-enabled hosts on the LAN see the router advertisements and configure themselves using SLAAC, using the router's link-local address as their default gateway.
Until now, my router has just used a EUI-64 link-local address on its LAN interface, based on the MAC addresses (fe80::xxxx:xxff:fexx:xxxx). In the rc.conf(5) man page, I noticed the following earlier:
Having recently switched the router to new hardware by just moving the SSD, I encountered this issue of the address changing with the new NIC. This hasn't caused a problem as LAN hosts are now using the router's new EUI-64 addresses for their default gateway, but based on that snippet from the man page, I thought it would be useful to configure a fixed fe80::1/64 address on the router's LAN interfaces, so that it will never change even if the MAC addresses do.
However, the router's LAN interfaces are still getting the EUI-64 address in addition to the manually configured fe80::1/64 one and LAN clients are still using the EUI-64 one as their default gateway, defeating the object of the change. How can I alter this behaviour?
I've tried setting -auto_linklocal on the interface to prevent automatic configuration of an EUI-64 address, but it still gets one. rtadvd doesn't seem to have any way of specifying which router address should be used either.
Can anyone suggest anything else?
I run an IPv6-enabled FreeBSD router on my home network, which has been working fine for years. I have a global-scope /48 prefix delegated by my ISP, from which FreeBSD advertises a /64 chunk to my LAN. IPv6-enabled hosts on the LAN see the router advertisements and configure themselves using SLAAC, using the router's link-local address as their default gateway.
Until now, my router has just used a EUI-64 link-local address on its LAN interface, based on the MAC addresses (fe80::xxxx:xxff:fexx:xxxx). In the rc.conf(5) man page, I noticed the following earlier:
If only a link-local address is needed on the interface, the following configuration can be used:
ifconfig_ed0_ipv6="inet6 auto_linklocal"
A link-local address can also be configured manually. This is useful for the default router address of an IPv6 router so that it does not change when the network interface card is replaced. For example:
ifconfig_ed0_ipv6="inet6 fe80::1 prefixlen 64"
Having recently switched the router to new hardware by just moving the SSD, I encountered this issue of the address changing with the new NIC. This hasn't caused a problem as LAN hosts are now using the router's new EUI-64 addresses for their default gateway, but based on that snippet from the man page, I thought it would be useful to configure a fixed fe80::1/64 address on the router's LAN interfaces, so that it will never change even if the MAC addresses do.
However, the router's LAN interfaces are still getting the EUI-64 address in addition to the manually configured fe80::1/64 one and LAN clients are still using the EUI-64 one as their default gateway, defeating the object of the change. How can I alter this behaviour?
I've tried setting -auto_linklocal on the interface to prevent automatic configuration of an EUI-64 address, but it still gets one. rtadvd doesn't seem to have any way of specifying which router address should be used either.
Can anyone suggest anything else?