I have an IPv6-only network where I am now trying to add a NAT64 gateway. The NAT64 is not on my default gateway because it's intended to use a different ISP than the default gateway.
The default gateway is advertised using radvd
and IPv6 connection is working. However the NAT64 provided by the ISP is unreliable and thus I want to configure my own NAT64.
On the machine where my NAT64 is running I have created this radvd
configuration:
interface enp4s0
{
AdvSendAdvert on;
AdvDefaultPreference low;
route 64:ff9b::/96 {
AdvRoutePreference high;
};
};
But it is not working. On the client machines I only see the default
route and not the 64:ff9b::/96
route to the NAT64 gateway.
That
radvd
configuration does work, but Ubuntu 14.04 act as what RFC 4191 call a type B host.The types defined in RFC 4191 are as follows:
The
radvd
version on Ubuntu 14.04 can be configured to send both preferences and more specific routes. But when Ubuntu 14.04 receives such routes it will ignore the more specific routes and only pay attention to the preference.One way to solve this is to upgrade the hosts to Ubuntu 16.04 (or later) which will act as type C host with full support for advertisements of more specific routes.
For backward compatibility with type A and type B hosts RFC 4191 recommends the use of redirect messages. If all IPv6 routers on your network have the full routing table they can send redirect messages when a host on the network use the wrong gateway for a packet.