Router Advertisements in VyOS
Router Advertisements (RA) is an IPv6 mechanism that lets routers automatically configure network parameters on clients through periodic advertisements. RA is a key part of SLAAC (Stateless Address Autoconfiguration) and is defined in RFC 4861.
Overview
Router Advertisements provide:
- SLAAC (Stateless Address Autoconfiguration): Automatic IPv6 address creation by clients
- Prefix delegation: Advertising network prefixes
- Default gateway: Informing clients about the default router
- DNS configuration: Delivering DNS servers and search domains
- MTU configuration: Advertising the network MTU
- Router lifetime: Lifetime of the default route
- Managed/Other flags: Controlling DHCPv6 modes
Protocol: ICMPv6, type 134 (Router Advertisement)
RFC: RFC 4861 (Neighbor Discovery), RFC 4862 (SLAAC)
SLAAC vs DHCPv6
Router Advertisements work together with DHCPv6 through control flags:
| Mode | Managed Flag | Other Flag | Description |
|---|---|---|---|
| SLAAC only | 0 | 0 | Full autoconfiguration through RA |
| Stateless DHCPv6 | 0 | 1 | Addresses via SLAAC, parameters via DHCPv6 |
| Stateful DHCPv6 | 1 | 1 | Addresses and parameters via DHCPv6 |
| SLAAC + DNS via RA | 0 | 0 | SLAAC with RDNSS/DNSSL in RA |
Choosing a mode
- SLAAC only: Simple networks without centralized management
- Stateless DHCPv6: When additional parameters are needed (DNS, NTP)
- Stateful DHCPv6: Centralized management and client tracking
- SLAAC + RDNSS: Modern approach with DNS in RA
Basic configuration
Simple Router Advertisement
# IPv6 address on the interface
set interfaces ethernet eth0 address 2001:db8:1::1/64
# Enable RA on the interface
set service router-advert interface eth0
# Advertise the prefix
set service router-advert interface eth0 prefix 2001:db8:1::/64
commit
saveClients will automatically create addresses in the 2001:db8:1::/64 prefix using SLAAC.
RA with automatic prefix detection
# Use ::/64 for automatic detection
set service router-advert interface eth0 prefix ::/64
commit
saveThe ::/64 prefix automatically uses the prefix configured on the interface.
RA with DNS servers
# Router Advertisement with RDNSS (Recursive DNS Server)
set service router-advert interface eth0 prefix 2001:db8:1::/64
set service router-advert interface eth0 name-server 2001:4860:4860::8888
set service router-advert interface eth0 name-server 2001:4860:4860::8844
# DNS search domain (DNSSL)
set service router-advert interface eth0 dnssl example.com
commit
saveAdvanced configuration
Managed and Other-Config flags
Managed Flag (Stateful DHCPv6)
# Clients obtain addresses via DHCPv6
set service router-advert interface eth0 prefix 2001:db8:1::/64
set service router-advert interface eth0 managed-flag
# Requires a configured DHCPv6 server
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 address-range start 2001:db8:1::100 stop 2001:db8:1::200
set service dhcpv6-server shared-network-name LAN interface eth0
commit
saveOther-Config Flag (Stateless DHCPv6)
# Addresses via SLAAC, parameters via DHCPv6
set service router-advert interface eth0 prefix 2001:db8:1::/64
set service router-advert interface eth0 other-config-flag
# DHCPv6 for parameters only (no address-range)
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 name-server 2001:4860:4860::8888
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 domain-search example.com
set service dhcpv6-server shared-network-name LAN interface eth0
commit
saveRA transmission intervals
# Maximum interval (sec) between RAs
set service router-advert interface eth0 interval max 600
# Minimum interval (sec)
set service router-advert interface eth0 interval min 200
commit
saveDefaults: max=600 sec (10 minutes), min=200 sec.
Router Preference
Router priority when several are present:
set service router-advert interface eth0 default-preference <low|medium|high>Examples:
# High priority (preferred router)
set service router-advert interface eth0 default-preference high
# Medium priority (default)
set service router-advert interface eth0 default-preference medium
# Low priority (backup router)
set service router-advert interface eth0 default-preference low
commit
saveLink MTU
Advertise the network MTU:
set service router-advert interface eth0 link-mtu 1500
commit
saveHop Limit
Hop limit value for outgoing packets:
set service router-advert interface eth0 hop-limit 64
commit
saveDefault: 64 (standard IPv6 value).
Reachable Time
Neighbor reachable time (milliseconds):
set service router-advert interface eth0 reachable-time 30000
commit
saveRetransmit Timer
Neighbor Solicitation retransmit timer (milliseconds):
set service router-advert interface eth0 retrans-timer 1000
commit
saveRouter Lifetime
Lifetime of the default route (seconds):
set service router-advert interface eth0 default-lifetime 1800
commit
saveDefault: 1800 sec (30 minutes).
A value of 0 means the router should not be used as a default gateway.
Disabling RA
No-Send-Advert
Completely disable periodic RAs:
set service router-advert interface eth0 no-send-advert
commit
saveThe interface will still respond to Router Solicitation.
No-Send-Interval
Disable the Mobile IPv6 interval option:
set service router-advert interface eth0 no-send-interval
commit
savePrefixes (Prefix Configuration)
Prefix options
Autonomous Flag
Allow SLAAC (enabled by default):
# Disable SLAAC for this prefix
set service router-advert interface eth0 prefix 2001:db8:1::/64 no-autonomous-flag
commit
saveOn-Link Flag
Prefix is reachable on the local network (enabled by default):
# Prefix is not on the local network
set service router-advert interface eth0 prefix 2001:db8:1::/64 no-on-link-flag
commit
savePreferred Lifetime
Preferred lifetime for addresses (seconds):
set service router-advert interface eth0 prefix 2001:db8:1::/64 preferred-lifetime 604800
commit
saveDefault: 604800 sec (7 days).
A value of infinity means an infinite lifetime.
Valid Lifetime
Valid lifetime for addresses (seconds):
set service router-advert interface eth0 prefix 2001:db8:1::/64 valid-lifetime 2592000
commit
saveDefault: 2592000 sec (30 days).
Multiple prefixes
# Advertise several prefixes
set service router-advert interface eth0 prefix 2001:db8:1::/64
set service router-advert interface eth0 prefix 2001:db8:2::/64
set service router-advert interface eth0 prefix 2001:db8:3::/64
# Different parameters for different prefixes
set service router-advert interface eth0 prefix 2001:db8:1::/64 preferred-lifetime 604800
set service router-advert interface eth0 prefix 2001:db8:2::/64 preferred-lifetime 86400
set service router-advert interface eth0 prefix 2001:db8:3::/64 no-autonomous-flag
commit
saveNAT64 Prefix
NAT64 lets IPv6-only clients reach IPv4 resources.
Basic NAT64 setup
# Advertise the NAT64 prefix
set service router-advert interface eth0 nat64prefix 64:ff9b::/96
commit
saveWell-known NAT64 prefix: 64:ff9b::/96
Supported NAT64 masks
The NAT64 prefix can use:
- /32
- /40
- /48
- /56
- /64
- /96 (well-known prefix)
Examples:
# Well-known prefix (96-bit)
set service router-advert interface eth0 nat64prefix 64:ff9b::/96
# Organization-specific (64-bit)
set service router-advert interface eth0 nat64prefix 2001:db8:64::/64
# Network-specific (96-bit)
set service router-advert interface eth0 nat64prefix 2001:db8:1:64::/96
commit
saveNAT64 Valid Lifetime
# NAT64 prefix lifetime (seconds)
set service router-advert interface eth0 nat64prefix 64:ff9b::/96 valid-lifetime 65528
commit
saveDefault: 65528 seconds.
DNS Configuration (RDNSS and DNSSL)
RDNSS (Recursive DNS Server)
# DNS servers via RA
set service router-advert interface eth0 name-server 2001:4860:4860::8888
set service router-advert interface eth0 name-server 2001:4860:4860::8844
set service router-advert interface eth0 name-server 2001:db8:1::53
commit
saveRDNSS Lifetime
# Lifetime of DNS entries (seconds)
set service router-advert interface eth0 name-server 2001:4860:4860::8888 lifetime 300
commit
saveDefault: the router lifetime is used.
DNSSL (DNS Search List)
# Search domains
set service router-advert interface eth0 dnssl example.com
set service router-advert interface eth0 dnssl corp.example.com
set service router-advert interface eth0 dnssl lab.example.com
commit
saveDNSSL Lifetime
# Lifetime of the search list (seconds)
set service router-advert interface eth0 dnssl example.com lifetime 300
commit
saveSupported interface types
Router Advertisements are supported on:
- ethernet - physical Ethernet interfaces
- bonding - bond interfaces
- bridge - bridge interfaces
- vxlan - VXLAN tunnels
- geneve - Geneve tunnels
- l2tpv3 - L2TPv3 tunnels
- openvpn - OpenVPN interfaces
- pseudo-ethernet - pseudo-Ethernet (VLAN)
- tunnel - tunnel interfaces
- wireguard - WireGuard VPN
- wireless - wireless interfaces
- wwan - wireless WAN interfaces
Configuration examples
Example 1: Simple SLAAC
# IPv6 on the interface
set interfaces ethernet eth1 address 2001:db8:1::1/64
# Router Advertisement for SLAAC
set service router-advert interface eth1 prefix 2001:db8:1::/64
# DNS via RDNSS
set service router-advert interface eth1 name-server 2001:4860:4860::8888
set service router-advert interface eth1 name-server 2001:4860:4860::8844
set service router-advert interface eth1 dnssl example.com
commit
saveClients will create addresses of the form 2001:db8:1::xxxx:xxxx:xxxx:xxxx.
Example 2: Stateless DHCPv6 + SLAAC
# IPv6 on the interface
set interfaces ethernet eth1 address 2001:db8:1::1/64
# Router Advertisement with other-config flag
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 other-config-flag
# DHCPv6 for parameters (no addresses)
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 name-server 2001:4860:4860::8888
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 name-server 2001:4860:4860::8844
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 domain-search example.com
set service dhcpv6-server shared-network-name LAN interface eth1
commit
saveAddresses via SLAAC, DNS and domain via DHCPv6.
Example 3: Stateful DHCPv6
# IPv6 on the interface
set interfaces ethernet eth1 address 2001:db8:1::1/64
# Router Advertisement with managed flag
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 managed-flag
set service router-advert interface eth1 other-config-flag
# DHCPv6 for addresses and parameters
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 address-range start 2001:db8:1::100 stop 2001:db8:1::200
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 name-server 2001:4860:4860::8888
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 domain-search example.com
set service dhcpv6-server shared-network-name LAN interface eth1
commit
saveFull management through DHCPv6.
Example 4: Multiple prefixes
# Multiple IPv6 addresses on the interface
set interfaces ethernet eth1 address 2001:db8:1::1/64
set interfaces ethernet eth1 address 2001:db8:2::1/64
set interfaces ethernet eth1 address 2001:db8:3::1/64
# RA for all prefixes
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 prefix 2001:db8:2::/64
set service router-advert interface eth1 prefix 2001:db8:3::/64
# DNS
set service router-advert interface eth1 name-server 2001:4860:4860::8888
commit
saveExample 5: RA with NAT64
# IPv6 on the interface
set interfaces ethernet eth1 address 2001:db8:1::1/64
# Router Advertisement with NAT64
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 nat64prefix 64:ff9b::/96
# DNS64 server
set service router-advert interface eth1 name-server 2001:db8:1::53
commit
saveIPv6-only clients will be able to reach IPv4 through NAT64.
Example 6: High-priority router
# Primary router with high priority
set interfaces ethernet eth1 address 2001:db8:1::1/64
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 default-preference high
set service router-advert interface eth1 default-lifetime 3600
# DNS
set service router-advert interface eth1 name-server 2001:4860:4860::8888
set service router-advert interface eth1 dnssl example.com
commit
saveExample 7: Backup router
# Backup router with low priority
set interfaces ethernet eth1 address 2001:db8:1::2/64
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 default-preference low
set service router-advert interface eth1 default-lifetime 1800
commit
saveExample 8: RA on multiple interfaces
# LAN 1
set interfaces ethernet eth1 address 2001:db8:1::1/64
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 name-server 2001:4860:4860::8888
# LAN 2
set interfaces ethernet eth2 address 2001:db8:2::1/64
set service router-advert interface eth2 prefix 2001:db8:2::/64
set service router-advert interface eth2 name-server 2001:4860:4860::8888
# LAN 3 (Guest)
set interfaces ethernet eth3 address 2001:db8:100::1/64
set service router-advert interface eth3 prefix 2001:db8:100::/64
set service router-advert interface eth3 default-lifetime 600 # Short lifetime for guest
commit
saveExample 9: RA on VLANs
# VLAN 10 - Management
set interfaces ethernet eth1 vif 10 address 2001:db8:10::1/64
set service router-advert interface eth1.10 prefix 2001:db8:10::/64
set service router-advert interface eth1.10 managed-flag
set service router-advert interface eth1.10 name-server 2001:db8:10::53
# DHCPv6 for management
set service dhcpv6-server shared-network-name MGMT subnet 2001:db8:10::/64 address-range start 2001:db8:10::100 stop 2001:db8:10::150
set service dhcpv6-server shared-network-name MGMT interface eth1.10
# VLAN 20 - Users
set interfaces ethernet eth1 vif 20 address 2001:db8:20::1/64
set service router-advert interface eth1.20 prefix 2001:db8:20::/64
set service router-advert interface eth1.20 other-config-flag
# VLAN 30 - Guest (SLAAC only)
set interfaces ethernet eth1 vif 30 address 2001:db8:30::1/64
set service router-advert interface eth1.30 prefix 2001:db8:30::/64
set service router-advert interface eth1.30 name-server 2001:4860:4860::8888
commit
saveExample 10: RA on a Bridge
# Bridge interface
set interfaces bridge br0 address 2001:db8:1::1/64
set interfaces bridge br0 member interface eth2
set interfaces bridge br0 member interface eth3
# Router Advertisement on the bridge
set service router-advert interface br0 prefix 2001:db8:1::/64
set service router-advert interface br0 name-server 2001:4860:4860::8888
set service router-advert interface br0 dnssl example.com
commit
saveExample 11: Short intervals for fast convergence
# Fast RAs for testing or critical applications
set interfaces ethernet eth1 address 2001:db8:1::1/64
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 interval max 30 # 30 seconds
set service router-advert interface eth1 interval min 10 # 10 seconds
commit
saveExample 12: Custom lifetime parameters
# Different lifetimes for different purposes
set interfaces ethernet eth1 address 2001:db8:1::1/64
set service router-advert interface eth1 prefix 2001:db8:1::/64
set service router-advert interface eth1 prefix 2001:db8:1::/64 preferred-lifetime 86400 # 1 day
set service router-advert interface eth1 prefix 2001:db8:1::/64 valid-lifetime 604800 # 7 days
set service router-advert interface eth1 default-lifetime 1800 # 30 minutes
set service router-advert interface eth1 name-server 2001:4860:4860::8888
set service router-advert interface eth1 name-server 2001:4860:4860::8888 lifetime 600 # 10 minutes
commit
saveMonitoring and diagnostics
Viewing the RA configuration
show configuration service router-advertChecking IPv6 on the interface
show interfaces ethernet eth1Make sure the IPv6 address is assigned and the interface is UP.
Checking IPv6 routing
show ipv6 routeRA logs
# radvd logs (the RA daemon)
show log | match radvd
# Real-time monitoring
monitor log | match radvdTesting from a client
On a Linux client:
# View the received RAs
sudo radvdump
# Example output:
# Router advertisement from fe80::1 (hoplimit 64)
# Prefix 2001:db8:1::/64
# Prefix options: onlink autoconf
# Preferred lifetime 604800, valid lifetime 2592000
# View IPv6 addresses
ip -6 addr show eth0
# Example output:
# inet6 2001:db8:1::a00:27ff:fe8d:c04d/64 scope global dynamic
# inet6 fe80::a00:27ff:fe8d:c04d/64 scope link
# View the default gateway
ip -6 route show
# Example output:
# default via fe80::1 dev eth0 proto ra metric 1024On Windows:
# View IPv6 addresses
ipconfig
# Detailed information
netsh interface ipv6 show address
# Routing table
netsh interface ipv6 show routeChecking SLAAC addresses
# On the router - scan IPv6 neighbors
show ipv6 neighbors
# Example output:
# IPv6 Address Age Hardware Address State Interface
# 2001:db8:1::a00:27ff:fe8d:c04d 0 08:00:27:8d:c0:4d REACH eth1
# fe80::a00:27ff:fe8d:c04d 0 08:00:27:8d:c0:4d REACH eth1ICMPv6 statistics
show ipv6 icmpv6 statisticsLook at the “Router Advertisement” section.
Troubleshooting
Problem: Clients do not receive IPv6 addresses
Diagnostics:
# 1. Check the RA configuration
show configuration service router-advert
# 2. Check IPv6 on the interface
show interfaces ethernet eth1
# 3. Check IPv6 forwarding
sysctl net.ipv6.conf.all.forwarding
# 4. Logs
show log | match radvd
# 5. Firewall
show firewall ipv6Solution:
# Make sure IPv6 forwarding is enabled (automatic when interfaces are configured)
# Check the firewall - ICMPv6 must be allowed
# Allow ICMPv6 Router Advertisement
set firewall ipv6 name LAN_LOCAL rule 100 action accept
set firewall ipv6 name LAN_LOCAL rule 100 protocol ipv6-icmp
set firewall ipv6 name LAN_LOCAL rule 100 icmpv6 type router-advertisement
# Restart radvd
restart router-advert
commit
saveProblem: RAs are sent, but clients do not configure themselves
Cause: The client may not support SLAAC, or it is blocked by a firewall on the client.
Diagnostics on the client (Linux):
# Check accept_ra
cat /proc/sys/net/ipv6/conf/eth0/accept_ra
# Should be: 1 or 2
# Enable accept_ra
sudo sysctl -w net.ipv6.conf.eth0.accept_ra=2
# Make it persistent
echo "net.ipv6.conf.eth0.accept_ra = 2" | sudo tee -a /etc/sysctl.confSolution:
# On the router - send RA manually
restart router-advert
# On the client - refresh the configuration
sudo systemctl restart networking
# or
sudo dhclient -6 -r eth0 && sudo dhclient -6 eth0Problem: Clients get addresses but no DNS
Cause: DNS is not configured in the RA, or the client does not support RDNSS.
Solution:
# Add name-server to the RA
set service router-advert interface eth1 name-server 2001:4860:4860::8888
set service router-advert interface eth1 name-server 2001:4860:4860::8844
# Or use DHCPv6 for DNS
set service router-advert interface eth1 other-config-flag
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 name-server 2001:4860:4860::8888
set service dhcpv6-server shared-network-name LAN interface eth1
commit
saveProblem: Multiple routers cause conflicts
Cause: Several routers send RAs with the same priority.
Solution:
# On the primary router
set service router-advert interface eth1 default-preference high
# On the backup router
set service router-advert interface eth1 default-preference low
commit
saveProblem: DHCPv6 works, but SLAAC does not
Cause: The autonomous flag is disabled.
Solution:
# Make sure the autonomous flag is enabled (default)
delete service router-advert interface eth1 prefix 2001:db8:1::/64 no-autonomous-flag
# Check the configuration
show configuration service router-advert interface eth1
commit
saveProblem: Clients do not see the router as a default gateway
Cause: Router lifetime = 0, or the router is not sending RAs.
Solution:
# Set the router lifetime
set service router-advert interface eth1 default-lifetime 1800
# Verify that RA is not disabled
delete service router-advert interface eth1 no-send-advert
commit
saveProblem: NAT64 does not work
Diagnostics:
# Check the NAT64 prefix in the RA
show configuration service router-advert interface eth1
# On the client
ping 64:ff9b::8.8.8.8 # Should ping 8.8.8.8Solution:
# Configure the NAT64 prefix
set service router-advert interface eth1 nat64prefix 64:ff9b::/96
# Configure NAT64 translation (if needed)
# (Depends on additional NAT64 daemon configuration)
commit
saveBest practices
1. Choosing the right mode
# Enterprise with centralized management
set service router-advert interface eth1 managed-flag
# Simple networks
set service router-advert interface eth1 prefix ::/642. Configuring DNS
Always configure DNS:
# Via RDNSS in the RA
set service router-advert interface eth1 name-server 2001:4860:4860::8888
# Or via DHCPv6
set service router-advert interface eth1 other-config-flag
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 name-server 2001:4860:4860::88883. Multiple DNS servers
set service router-advert interface eth1 name-server 2001:4860:4860::8888
set service router-advert interface eth1 name-server 2001:4860:4860::8844
set service router-advert interface eth1 name-server 2001:db8:1::53 # Local DNS4. Proper intervals
# Stable network - long intervals
set service router-advert interface eth1 interval max 600
# Dynamic network - short intervals
set service router-advert interface eth1 interval max 60
set service router-advert interface eth1 interval min 205. Sensible lifetimes
# Preferred lifetime < Valid lifetime
set service router-advert interface eth1 prefix 2001:db8:1::/64 preferred-lifetime 604800 # 7 days
set service router-advert interface eth1 prefix 2001:db8:1::/64 valid-lifetime 2592000 # 30 days6. Priorities for HA
# Primary router
set service router-advert interface eth1 default-preference high
# Secondary router
set service router-advert interface eth1 default-preference low7. Documenting prefixes
Document the purpose of each prefix:
# Production LAN
set service router-advert interface eth1 prefix 2001:db8:1::/64
# Management VLAN
set service router-advert interface eth1.10 prefix 2001:db8:10::/64
# Guest WiFi
set service router-advert interface eth1.30 prefix 2001:db8:30::/648. Security
Use a firewall to protect against rogue RAs:
# Allow RA only from trusted interfaces
set firewall ipv6 name WAN_LOCAL rule 100 action drop
set firewall ipv6 name WAN_LOCAL rule 100 protocol ipv6-icmp
set firewall ipv6 name WAN_LOCAL rule 100 icmpv6 type router-advertisement9. MTU Configuration
Configure the MTU if you use tunnels:
# For GRE/IPsec tunnels
set service router-advert interface eth1 link-mtu 1280
# For Jumbo frames
set service router-advert interface eth1 link-mtu 900010. Monitoring
Check regularly:
show ipv6 neighbors
show log | match radvdIntegration with other features
RA + DHCPv6
Hybrid approach (recommended):
# SLAAC for addresses
set service router-advert interface eth1 prefix 2001:db8:1::/64
# DHCPv6 for parameters
set service router-advert interface eth1 other-config-flag
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 name-server 2001:4860:4860::8888
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:1::/64 domain-search example.com
set service dhcpv6-server shared-network-name LAN interface eth1RA + DNS Forwarding
# RA points to the local DNS
set service router-advert interface eth1 name-server 2001:db8:1::1
# DNS Forwarding on the router
set service dns forwarding listen-address 2001:db8:1::1
set service dns forwarding name-server 2001:4860:4860::8888RA + Firewall
# Allow ICMPv6 (including RA)
set firewall ipv6 name LAN_LOCAL rule 100 action accept
set firewall ipv6 name LAN_LOCAL rule 100 protocol ipv6-icmp
# Block external RAs (rogue RA protection)
set firewall ipv6 name WAN_LOCAL rule 100 action drop
set firewall ipv6 name WAN_LOCAL rule 100 protocol ipv6-icmp
set firewall ipv6 name WAN_LOCAL rule 100 icmpv6 type router-advertisementRA + High Availability (VRRP)
# Configure VRRP IPv6 on both routers
set high-availability vrrp group LAN vrid 10
set high-availability vrrp group LAN interface eth1
set high-availability vrrp group LAN address 2001:db8:1::1/64
# RA on the VIP address (master only)
set service router-advert interface eth1 prefix 2001:db8:1::/64Useful commands
# RA configuration
show configuration service router-advert
# IPv6 interfaces
show interfaces
# IPv6 routing
show ipv6 route
# IPv6 neighbors
show ipv6 neighbors
# radvd logs
show log | match radvd
monitor log | match radvd
# Restart RA
restart router-advert
# ICMPv6 statistics
show ipv6 icmpv6 statistics
# Check IPv6 connectivity
ping 2001:db8:1::100
# Traceroute IPv6
traceroute6 2001:4860:4860::8888Conclusion
Router Advertisements in VyOS provide a powerful and flexible platform for autoconfiguring IPv6 networks. Support for SLAAC, DHCPv6 integration, NAT64, RDNSS/DNSSL, and multiple interfaces makes VyOS an ideal solution for modern IPv6 deployments.
Key benefits of RA in VyOS:
- Full automation of IPv6 client configuration
- Flexible modes (SLAAC, Stateless DHCPv6, Stateful DHCPv6)
- Support for modern standards (RDNSS, DNSSL, NAT64)
- Operation across multiple interface types
- Integration with DHCPv6, DNS, and Firewall
Recommendations for production:
- Use SLAAC + DHCPv6 (hybrid mode) for a balance of simplicity and functionality
- Configure DNS via RDNSS in the RA or via DHCPv6
- Plan prefixes in advance and document them
- Configure priorities for HA scenarios
- Protect against rogue RAs with a firewall
- Monitor radvd logs regularly
- Test with different clients (Linux, Windows, macOS)
Router Advertisements in VyOS deliver enterprise-grade IPv6 autoconfiguration management with the reliability and flexibility required for production environments.