Нашел бажец в 04_register_init.sh get_exclude_ip6()
ip -6 route get 2001:4860:4860::8888 2>/dev/null | awk '/src/ {print $NF}'
Как я понял пытаемся исключить обращения к роутеру из проксирования, но по факту ip -6 route get
в последнем столбце отдает метрику (по крайней мере у меня)
# ip -6 route get 2001:4860:4860::8888
2001:4860:4860::8888 via fe80::ea4:2ff:fe58:1001 dev ppp0 src 2a02:2698:542a:1817:2989:b7bf:3b93:5467 metric 1024
# ip -6 route get 2001:4860:4860::8888 2>/dev/null | awk '/src/ {print $NF}'
1024
Если указать явно 7й столбец то отдаст адрес роутера правильно
# ip -6 route get 2001:4860:4860::8888 2>/dev/null | awk '/src/ {print $7}'
2a02:2698:542a:1817:2989:b7bf:3b93:5467
В качестве идеи я бы предложил добавить весь префикс выданный провайдером, чтобы дать клиентам локальной сети спокойно обращаться друг к другу.
# curl -s localhost:79/rci/show/ipv6/prefixes/ 2>/dev/null | jq -r '."prefix"[] | {"prefix": .prefix, "inte
rface" : .interface} | select(.interface | . == "PPPoE0") | .prefix'
2a02:2698:542a:1817::/64
На гениальность идеи не претендую, скорее всего разломает что-нибудь дальше на этапе добавления правил ip6tables и придется там подпирать.
Просто поделился мыслями из желания помочь в развитии проекта)