Добавить маршрут по умолчанию без шлюза nmcli

Добавить маршрут по умолчанию без шлюза nmcli

Я пытаюсь настроить 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

Вышеуказанный сценарий не требует диспетчерского скрипта и выдерживает перезагрузки.

Связанный контент