Создайте статический адрес ipv6 без 'noprefixroute' с помощью NetworkManager

Дана переменная

myString='there are spaces in this line.'

вы можете удалить самый длинный начальный компонент, оканчивающийся пробелом, используя расширение параметра ${myString##* }, например.

$ myString='there are spaces in this line.'
$ echo "${myString##* }" 
line.
$
$ myString='this line has many spaces.'
$ echo "${myString##* }"
spaces.

2
28.03.2020, 03:37
1 ответ

Ядро Linux по умолчанию добавляет маршрут «устройство» для каждого адреса (как IPv4, так и IPv6 ). То есть маршрут onlink для подсети, в которой находится префикс.

Во-первых, этот автоматически добавленный маршрут всегда имеет фиксированную метрику (256 в случае IPv6 ). Это не то, чего хочет NetworkManager. В NetworkManager вы можете настроить метрику маршрута с помощью параметра ipv6.route-metric, который (, если не указано ), имеет значение по умолчанию, которое зависит от типа устройства. Например. в Ethernet метрика маршрута по умолчанию равна 50.

Кроме того, при использовании autoconf/SLAAC, в зависимости от объявления маршрутизатора, префикс может отсутствовать на ссылке -. В таком случае было бы неправильно вообще добавлять такой маршрут устройства.

По этой причине NetworkManager всегда добавляет адреса с флагом noprefixroute, чтобы ядро ​​не добавляло маршрут автоматически. Конечно, NetworkManager настроит подходящий /64 по мере необходимости.

Если вы настраиваете статический адрес в NetworkManager, например. через nmcli connection modify "$PROFILE" +ipv6.addresses "1:2:3:4::1/64" && nmcli connection up "$PROFILE", то вы должны увидеть соответствующий маршрут 1 :2 :3 :4 ::/64.

Флаг "noprefixroute", похоже, не является вашей настоящей проблемой. Флаг установлен не просто так. Если конфигурация IP, которую настраивает NetworkManager, не подходит, возможно, существует другая проблема.

3
19.03.2021, 02:31

Теги

Похожие вопросы