Какой параметр конфигурации при загрузке установит исходящий IPv6-адрес по умолчанию, который будет использоваться, когда машина Linux инициирует исходящее IPv6-соединение? IPV6ADDR= не работает, чтобы указать исходящий IPv6-адрес по умолчанию.

У меня есть машина с несколькими псевдонимами IPv6 на eth0. Я ifcfg-eth0 для установки IPV6ADDR_SECONDARIES= в длинный список адресов IPv6.

Linux, кажется, выбирает один из этих IPv6-адресов случайным образом для использования в качестве исходящего IPv6 по умолчанию. Нет рифмы или причины, по которой он использует, и это раздражает. Некоторые адреса IPv6 предназначены только для входящих служб, и я не хочу показывать эти адреса другим при инициации исходящих подключений.

Я могу вручную указать Linux прекратить использование исходящего IPv6-адреса:

ip -6 addr show | grep global
sudo ip addr change 2111:aaaa:bbbb:cccc:1:2:3:4 dev eth0 preferred_lft 0
ip -6 addr show | grep global

Затем он прекращает использование 2111:aaaa:bbbb:cccc:1:2:3:4 в качестве исходящего IPv6 по умолчанию и начинает использовать следующий в своем списке согласно ip -6 addr show | grep global . Это обходной путь вручную, пока я не найду какой-нибудь IPV6_OUTBOUND= или любой другой параметр, чтобы указать основной исходящий IPv6-адрес.

Для сравнения, IPv4, похоже, использует свой IPADDR= в качестве исходящего IP- адреса по умолчанию. Версия этого параметра IPv6, IPV6ADDR= , не устанавливает исходящий адрес IPv6 по умолчанию - он часто использует его в списке IPV6ADDR_SECONDARIES= .

Я использую Centos 6.

2 ответа2

2

Способ сделать это на удивление в таблице маршрутизации. Каждый маршрут может иметь опцию src которая определяет исходный адрес по умолчанию для этого маршрута. Таким образом, вы можете установить другой исходный адрес по умолчанию, например, для использования в вашем собственном центре обработки данных и при использовании маршрута по умолчанию.

В CentOS, используя сетевые скрипты, вы можете сохранить собственный маршрут в /etc/sysconfig/network-scripts/route6-<interface> . Его синтаксис такой же, как у ip route add , с опущенными этими тремя токенами:

default via 2001:db8:c0:ffee:: src 2001:db8::123 dev enp4s0f0 metric 1
1

Это происходит потому, что все ваши адреса IPv6 считаются равными при выборе адреса источника. Когда ни один адрес не является предпочтительным по сравнению с другим, Linux выбирает один случайным образом.

Это что-то вроде хака, и оно слегка нарушает определение домашнего адреса IPv6, но оно должно делать:

Установите желаемый исходящий адрес в качестве домашнего адреса. Это приводит к тому, что назначенный адрес выигрывает, когда применяются правила выбора источника.

ip addr change 2001:db8:c0:ffee::4 home dev enp4s0f0

На данный момент это нельзя настроить в сетевых скриптах Red Hat; вам нужно будет добавить его в локальный скрипт, такой как /sbin/ifup-local .

И обратите внимание, что вы, вероятно, не можете сделать это в CentOS 6. Вам понадобится CentOS 7.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .