I have a problem with IPv6 traffic initiated from my router. My ISP (YouFibre in the UK) run a dual stack network. I have a static IPv4 address, a /56 PD IPv6 and an additional /64 IPv6 address assigned.
Devices connect to the LAN interface all work (10/10 on test-ipv6). Ie, I can ping ipv6 addresses and be pinged on my wifi-connected laptop. All good.
The router itself (a Pi5 running a recent snapshot) can't ping or be pinged so services running on the router don't / can't use IPv6.
As a summary:
- The PD /64 address given to the LAN interface (a:b:c:d:e::1) on the router is pingable from outside
- The assigned /64 given to the WAN (via DHCP?) it not reachable
- I can't ping from the router
- However, 'ping6 -I PD/64 google.com' works from the router.
I've checked with the ISP support and everything is fine their end, and they've been helpful pointing me in the right direction given they don't support non-Eero equipment. Lots of searching reveals PFsense users need to alter their configurations to get things working too.
So, how do I set the source address of traffic to be the PD /64 assigned address (a:b:c:d:e::1) instead of the IPv6 address on the WAN?
Is this the correct way to deal with this situation?
Config details:
config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdff:ffde:acf2::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option delegate '0'
option ip6assign '64'
list ip6class 'wan6'
config interface 'wan'
option proto 'dhcp'
option device 'eth1'
config interface 'wan6'
option proto 'dhcpv6'
option device 'eth1'
option reqaddress 'none'
option reqprefix 'auto'
option norelease '1'
config interface 'tailscale'
option proto 'none'
option device 'tailscale0'
config/dhcp
config dnsmasq
option domainneeded '1'
option localise_queries '1'
option rebind_protection '0'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option cachesize '1000'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
option localservice '1'
option ednspacket_max '1232'
option port '54'
list server '192.168.1.1'
config dhcp 'lan'
option interface 'lan'
option start '50'
option limit '150'
option leasetime '2h'
option dhcpv4 'server'
list dhcp_option '6,192.168.1.1'
list dhcp_option '3,192.168.1.1'
option ra 'server'
list ra_flags 'managed-config'
list ra_flags 'other-config'
option dhcpv6 'server'
option ra_useleasetime '1'
list dns '2a0e::::8d00::1'
option ndp 'hybrid'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
config/firewall
config defaults
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
list network 'wan'
list network 'wan6'
config forwarding
option src 'lan'
option dest 'wan'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option family 'ipv6'
option target 'ACCEPT'
option src_ip 'fe80::/10'
config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
list icmp_type 'bad-header'
list icmp_type 'destination-unreachable'
list icmp_type 'echo-reply'
list icmp_type 'echo-request'
list icmp_type 'neighbour-advertisement'
list icmp_type 'neighbour-solicitation'
list icmp_type 'packet-too-big'
list icmp_type 'router-advertisement'
list icmp_type 'router-solicitation'
list icmp_type 'time-exceeded'
list icmp_type 'unknown-header-type'
config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
list icmp_type 'bad-header'
list icmp_type 'destination-unreachable'
list icmp_type 'echo-reply'
list icmp_type 'echo-request'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'unknown-header-type'
config zone
option name 'tailscale'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option mtu_fix '1'
list network 'tailscale'
config forwarding
option src 'tailscale'
option dest 'lan'
config forwarding
option src 'lan'
option dest 'tailscale'
config forwarding
option src 'tailscale'
option dest 'wan'
config rule
option name 'Allow Tailscale Control'
option src 'tailscale'
option dest 'wan'
option dest_port '41641'
option target 'ACCEPT'
config rule
option name 'Allow Tailscale Incoming'
option src 'tailscale'
option dest 'lan'
option target 'ACCEPT'
Here's a similar discussion for EdgeOS.
And here is further discussion on reddit.
The only mention of something similar in the wiki is here.
All help greatly appreciated.