
Я пытаюсь настроить NetworkManager для выполнения следующего действия для интерфейса
ip route add ::/0 dev he-ipv6
he-ipv6
это туннель SIT-режима IPv4 точка-точка, и запуск указанной выше команды напрямую работает. К сожалению, при перезагрузке устройства шлюз по умолчанию не перенастраивается, и поэтому весь трафик IPv6 за пределами сети отбрасывается.
Я попробовал настроить маршрут вручную через:
nmcli c modify he-ipv6 ipv6.routes '::/0'
но, конечно, nmcli не позволит вам настроить статические маршруты для шлюза по умолчанию.
Error: failed to modify ipv6.routes: invalid prefix '0'; <1-128> allowed.
решение1
В конце концов я обнаружил, что самым простым решением будет создатьсетевой менеджер(8)Скрипт dispatcher.d для добавления маршрута при подключении интерфейса к сети:
/etc/NetworkManager/dispatcher.d/99-he-ipv6-add-default-route
#!/bin/bash
[[ "${1}" -ne "he-ipv6" ]] && exit
if [[ "${2}" -eq "up" ]]; then
ip route add ::/0 dev he-ipv6
fi
решение2
На самом деле, вы можете настроить все туннельное соединение с помощью nmcli, см. Wiki-страница Fedoraоб этом.
nmcli connection add type ip-tunnel con-name sit1 ifname sit1 mode sit \
remote SERVER_IPV4_ADDRESS -- ipv4.method disabled ipv6.method manual \
ipv6.address CLIENT_IPV6_ADDRESS ipv6.gateway SERVER_IPV6_ADDRESS \
ip-tunnel.ttl 64
Вышеуказанный сценарий не требует диспетчерского скрипта и выдерживает перезагрузки.