Я пытаюсь создать рабочую станцию с (по крайней мере) 2 адресами IPv6. Один адрес будет статическим адресом IPv6, настроенным вручную, а другой будет автоматически сгенерированным из SLAAC (их может быть больше).
Мне удалось добиться этого через файл /etc/network/interfaces настройка интерфейса на авто, но добавление другого IP-адреса с этой строкой:
up ip -6 addr add 2001:db8::10/64 dev enp0s3
(Умышленно используется адресное пространство документации, а не фактически используемое ULA.)
Теперь я могу получить доступ моя внутренняя инфраструктура с адресом ULA и Интернет с SLAAC. Это прекрасно работает.
Однако я хочу достичь этого с помощью настроек GUI, потому что теперь мне нужно будет создать другое соединение для пользователя на рабочей станции, чтобы он мог переключать соединение по воле пару кликов.
Если я создаю вторичное соединение, оно работает. Когда я создаю вышеописанное соединение, я не могу добавить к нему статический адрес с графическим интерфейсом.
Как бы я мог использовать 2 взаимозаменяемых соединения, с которыми можно было бы получить Auto IPv6-адрес вместе со статическим IPv6 адрес?
мне удалось решить проблему самому.
я искал различные способы, чтобы добавить дополнительные адреса для подключения через настройки сетевой менеджер файлов. Я не смог найти какой-либо способ, чтобы сделать правильно, но там был устаревший параметр конфигурации для области IPv6 в файл конфигурации подключения находится в папке [Ф4]. В "адреса" директивы конфигурации, который якобы был использован для создания списка адресов для добавления в интерфейс. Значение должно быть массивом IPv6-адрес структуры, каждый из которых в свою очередь представляет собой структуру из 3 свойств. Массив байтов, содержащий адреса, Тип uint32 число, содержащее маску и еще один байтовый массив, содержащий адреса шлюза. Это описано в "нм" - "настройки" страницы. К сожалению я не смог найти каких-либо примеров в нужный формат и не смог получить эту работу, поэтому я отказался от поиска решения через настройки сетевой менеджер.
затем я посмотрел на возможность запуска пост-скрипты, а еще через диспетчера сети. Это должно быть сделано с помощью скриптов в директории [ф5], но так как он не полностью интегрированы с системой диспетчера и могут быть выявлены несоответствия (по некоторым источникам), я был вынужден продолжать поиски. Вот когда я нашла этот пост! Он объясняет, как можно запускать скрипты с сетью диспетчере встроенный диспетчер. Потом еще проблемы начинают проявляться. Пользовательский диспетчер сценариев, которые должны быть расположены в [ф6] Каталог можно запускать на различных этапах сетевых менеджеров деяния и их выполнение заказа контролируется 2 цифры в начале имени файла, но они не всегда выполняются на данном этапе. Так что если бы у меня был скрипт, который должен выполняться после (или на этапе по сети менеджер), он будет всегда выполнять на "до" фазы сетевой менеджер. Так, соединение зависимости от того, что я бы нажать на кнопку в GUI, менеджер сети будет до конца выполнения скрипта. Это не то, что я искал, потому что я обязан только добавить дополнительный адрес IPv6 к одному из выходов мне надо готовиться, а не отдыхать. Поскольку скрипт будет работать всегда, я должен был найти способ, чтобы определить, какие связи этот скрипт вызывается для, которой "Настройка" страницы пригодился. Это говорит о том, что таможня диспетчер скриптов передаются 2 аргумента (интерфейс/устройство и действие/фаза), но что окружающая среда содержит дополнительные переменные. Одним из которых является "CONNECTION_UUID" переменной. Этот содержит идентификатор uuid подключения этот скрипт вызывается Для и uuid для подключения можно найти в файле конфигурации подключения в "/etc/диспетчер связи/системы связи/ каталог". Итак, в диспетчер скриптов у меня только чтобы проверить, содержит ли переменная uuid для нужного соединения и если это так, только затем выполнить необходимую команду.
примерфайла конфигурации подключения, не требуя дополнительной адресом "в/etc/диспетчер связи/системы связи/regular_connection" :
[Ф1]особые соединения, требующие дополнительной статический IPv6-адрес на верхней части slaac, то автоматически будут иметь файл конфигурации похожа на обычную, но ее uuid части следует отметить для использования в серверном скрипте. Пример файла конфигурации для ясности целей "/и т. д./диспетчер связи/системы связи/extra_static_ipv6_connection" :
[Ф2]следующий шаг будет заключаться в создании диспетчер сценариев. Пример диспетчер сценариев "в/etc/networkmanager не диспетчеру.д/99_super_connection_post_up_script":
[Ф3]теперь можно просто переключить активное соединение в GUI верхнем углу сетевое подключение в выпадающем списке (в Ubuntu 14.04 определенном месте в GUI). Всякий раз, когда "extra_ipv6_con" соединения будут выбраны, после того, как автоматической настройки IPv4 и IPv6, после до/до фазы сети Диспетчер диспетчер скрипт будет работать и дополнительный/статический IPv6-адрес будет назначен интерфейсу. Если какие-либо другие соединения будет нажата, конфигурация сети изменится на выбранный один и диспетчер сценариев будет снова работать, но не имеют никакого эффекта из-за несоответствия в uuid.
можно у диспетчера сети выполнить скрипт находящийся в "в/etc/networkmanager не диспетчеру.D каталог/" всякий раз, когда соединение включено с нажмите кнопку в GUI. Это может служить пост-скрипт или любой другой ТБХ тип и действует только на одно соединение, выбранное путем сопоставления идентификаторов соединения. Этот скрипт может содержать команды, упомянутые в вопросе, и поэтому добавить IPv6-адрес.
Мне удалось решить проблему самостоятельно.
Я искал различные способы добавления дополнительных адресов к соединению через файлы конфигурации Network Manager. Мне не удалось найти способ правильно сделать это, но в области конфигурации ipv6 в файле конфигурации подключения, расположенном в папке /etc/NetworkManager/system-connections, была устаревшая настройка конфигурации. Директива конфигурации адресов «адресов», которая, как утверждается, использовалась для установки списка адресов для добавления в интерфейс. Предполагается, что это массив массивов адресов IPv6, каждый из которых является структурой из 3-х свойств. Байт-массив, содержащий адрес, номер uint32, содержащий маску и другой массив байтов, содержащий адрес шлюза. Это описано в man-странице «nm-settings». К сожалению, я не смог найти какие-либо примеры требуемого формата и не смог заставить это работать, поэтому я отказался от поиска решения через конфигурацию Network Manager.
Далее я рассмотрел вариант запуска сообщения -up, но при этом используется сетевой менеджер. Предполагается, что это делается скриптами в каталоге /etc/network/if-up.d/, но поскольку он не полностью интегрирован с Network Manager и может выявить несоответствия (по некоторым данным), я был вынужден продолжать искать. Вот когда я нашел этот пост! В нем объясняется, как можно запускать скрипты с помощью Network Manager, созданного диспетчером. Затем появилась еще одна проблема. Пользовательские сценарии диспетчера, которые должны быть расположены в каталоге /etc/NetworkManager/dispatcher.d/, могут быть запущены на разных этапах работы Network Managers, а их порядок выполнения контролируется двумя цифрами в начале имени файла, но они всегда запускаются в данной фазе. Поэтому, если бы у меня был сценарий, который должен быть запущен после (или на старте в соответствии с Network Manager), он всегда будет выполняться на этапе «вверх» в Network Manager. Таким образом, в зависимости от того, какое соединение я нажимаю в графическом интерфейсе, Network Manager завершит запуск скрипта. Это не то, что я искал, потому что мне нужно добавлять дополнительный адрес IPv6 к одному из подключений, которые мне нужно настроить, а не к остальным. Поскольку сценарий будет запускаться всегда, мне пришлось найти способ определить, к какому соединению запускается этот скрипт, где удобна справочная страница «NetworkManager». В нем говорится, что пользовательские сценарии диспетчера передаются 2 аргументами (интерфейс / устройство и действие / фаза), но что среда содержит дополнительные переменные. Одной из них является переменная CONNECTION_UUID. Это содержит uuid соединения, к которому этот скрипт вызывается, а uuid соединения можно найти в файле конфигурации подключения в каталоге «/ etc / NetworkManager / system-connections /». Поэтому в моем сценарии диспетчера мне нужно только проверить, содержит ли переменная uuid моего желаемого соединения, и если это так, только тогда выполните требуемую команду.
Пример файла конфигурации подключения для подключения, не требующего дополнительного адреса «/ etc / NetworkManager / system-connections / regular_connection»:
[802-3-ethernet]
duplex=full
mac-address=00:00:00:11:11:11
[connection]
id=regular_connection
uuid=12345678-90ab-cdef-0123-4567890abcde
type=802-3-ethernet
[ipv6]
method=auto
[ipv4]
method=auto
Специальное подключение, требующее дополнительного статического IPv6-адреса поверх генерируемых SLAAC, будет иметь конфигурационный файл, аналогичный обычному, но часть uuid должна быть указана для использования в сценарии диспетчера. Exmaple конфигурационный файл для ясности "/ etc / NetworkManager / system-connections / extra_static_ipv6_connection":
[802-3-ethernet]
duplex=full
mac-address=00:00:00:11:11:11
[connection]
id=extra_ipv6_con
uuid=88888888-4444-4444-4444-cccccccccccc
type=802-3-ethernet
[ipv6]
method=auto
[ipv4]
method=auto
Следующим шагом будет создание сценария диспетчера. Пример сценария диспетчера «/etc/NetworkManager/dispatcher.d/99_super_connection_post_up_script»:
#!/bin/sh -e
# Script to add static local IPv6 address when connected to super network
# Runs a single command on appropriate circumstances
# $0 is command. $1 is interface. $2 is action. $UUID is the uuid of current connection.
if [ -z "$1" ]; then
echo "$0: called with no interface" 1>&2
exit1;
fi
# Set reader friendly environment
export IFACE="$1"
# Check for action and on "up" action (post-up) add IPv6 address if connection uuid matches
case "$2" in
up)
if [ "$CONNECTION_UUID" = "88888888-4444-4444-4444-cccccccccccc" ]; then
ip -6 addr add 2001:db8::10/64 dev $IFACE
fi;
;;
*)
echo "$0: called with unknown action \'$2'" 1>&2
exit 1
;;
esac
Теперь можно просто переключить активное соединение в раскрывающемся списке сетевого подключения верхнего правого угла графического интерфейса (Ubuntu 14.04) местоположение в графическом интерфейсе). Всякий раз, когда будет выбрано соединение «extra_ipv6_con», после получения автоматической конфигурации как IPv4, так и IPv6 будет запущен сценарий диспетчера диспетчера Network Up-up / up, а дополнительный / статический IPv6-адрес будет назначен интерфейсу. Если какое-либо другое соединение будет нажато, конфигурация сети изменится на выбранную, и сценарий диспетчера будет запущен снова, но не будет иметь эффекта из-за несоответствия в UUID.
В Network Manager можно запустить скрипт, расположенный в каталоге «/etc/NetworkManager/dispatcher.d/» всякий раз, когда соединение разрешено щелчком в графическом интерфейсе. Это может использоваться как сценарий post-up или любой другой тип TBH и влияет только на одно соединение, которое выбирается путем сопоставления UUID соединения. Этот скрипт может содержать команду, указанную в вопросе, и для этого добавить адрес IPv6.
Мне удалось решить проблему самостоятельно.
Я искал различные способы добавления дополнительных адресов к соединению через файлы конфигурации Network Manager. Мне не удалось найти способ правильно сделать это, но в области конфигурации ipv6 в файле конфигурации подключения, расположенном в папке /etc/NetworkManager/system-connections, была устаревшая настройка конфигурации. Директива конфигурации адресов «адресов», которая, как утверждается, использовалась для установки списка адресов для добавления в интерфейс. Предполагается, что это массив массивов адресов IPv6, каждый из которых является структурой из 3-х свойств. Байт-массив, содержащий адрес, номер uint32, содержащий маску и другой массив байтов, содержащий адрес шлюза. Это описано в man-странице «nm-settings». К сожалению, я не смог найти какие-либо примеры требуемого формата и не смог заставить это работать, поэтому я отказался от поиска решения через конфигурацию Network Manager.
Далее я рассмотрел вариант запуска сообщения -up, но при этом используется сетевой менеджер. Предполагается, что это делается скриптами в каталоге /etc/network/if-up.d/, но поскольку он не полностью интегрирован с Network Manager и может выявить несоответствия (по некоторым данным), я был вынужден продолжать искать. Вот когда я нашел этот пост! В нем объясняется, как можно запускать скрипты с помощью Network Manager, созданного диспетчером. Затем появилась еще одна проблема. Пользовательские сценарии диспетчера, которые должны быть расположены в каталоге /etc/NetworkManager/dispatcher.d/, могут быть запущены на разных этапах работы Network Managers, а их порядок выполнения контролируется двумя цифрами в начале имени файла, но они всегда запускаются в данной фазе. Поэтому, если бы у меня был сценарий, который должен быть запущен после (или на старте в соответствии с Network Manager), он всегда будет выполняться на этапе «вверх» в Network Manager. Таким образом, в зависимости от того, какое соединение я нажимаю в графическом интерфейсе, Network Manager завершит запуск скрипта. Это не то, что я искал, потому что мне нужно добавлять дополнительный адрес IPv6 к одному из подключений, которые мне нужно настроить, а не к остальным. Поскольку сценарий будет запускаться всегда, мне пришлось найти способ определить, к какому соединению запускается этот скрипт, где удобна справочная страница «NetworkManager». В нем говорится, что пользовательские сценарии диспетчера передаются 2 аргументами (интерфейс / устройство и действие / фаза), но что среда содержит дополнительные переменные. Одной из них является переменная CONNECTION_UUID. Это содержит uuid соединения, к которому этот скрипт вызывается, а uuid соединения можно найти в файле конфигурации подключения в каталоге «/ etc / NetworkManager / system-connections /». Поэтому в моем сценарии диспетчера мне нужно только проверить, содержит ли переменная uuid моего желаемого соединения, и если это так, только тогда выполните требуемую команду.
Пример файла конфигурации подключения для подключения, не требующего дополнительного адреса «/ etc / NetworkManager / system-connections / regular_connection»:
[802-3-ethernet]
duplex=full
mac-address=00:00:00:11:11:11
[connection]
id=regular_connection
uuid=12345678-90ab-cdef-0123-4567890abcde
type=802-3-ethernet
[ipv6]
method=auto
[ipv4]
method=auto
Специальное подключение, требующее дополнительного статического IPv6-адреса поверх генерируемых SLAAC, будет иметь конфигурационный файл, аналогичный обычному, но часть uuid должна быть указана для использования в сценарии диспетчера. Exmaple конфигурационный файл для ясности "/ etc / NetworkManager / system-connections / extra_static_ipv6_connection":
[802-3-ethernet]
duplex=full
mac-address=00:00:00:11:11:11
[connection]
id=extra_ipv6_con
uuid=88888888-4444-4444-4444-cccccccccccc
type=802-3-ethernet
[ipv6]
method=auto
[ipv4]
method=auto
Следующим шагом будет создание сценария диспетчера. Пример сценария диспетчера «/etc/NetworkManager/dispatcher.d/99_super_connection_post_up_script»:
#!/bin/sh -e
# Script to add static local IPv6 address when connected to super network
# Runs a single command on appropriate circumstances
# $0 is command. $1 is interface. $2 is action. $UUID is the uuid of current connection.
if [ -z "$1" ]; then
echo "$0: called with no interface" 1>&2
exit1;
fi
# Set reader friendly environment
export IFACE="$1"
# Check for action and on "up" action (post-up) add IPv6 address if connection uuid matches
case "$2" in
up)
if [ "$CONNECTION_UUID" = "88888888-4444-4444-4444-cccccccccccc" ]; then
ip -6 addr add 2001:db8::10/64 dev $IFACE
fi;
;;
*)
echo "$0: called with unknown action \'$2'" 1>&2
exit 1
;;
esac
Теперь можно просто переключить активное соединение в раскрывающемся списке сетевого подключения верхнего правого угла графического интерфейса (Ubuntu 14.04) местоположение в графическом интерфейсе). Всякий раз, когда будет выбрано соединение «extra_ipv6_con», после получения автоматической конфигурации как IPv4, так и IPv6 будет запущен сценарий диспетчера диспетчера Network Up-up / up, а дополнительный / статический IPv6-адрес будет назначен интерфейсу. Если какое-либо другое соединение будет нажато, конфигурация сети изменится на выбранную, и сценарий диспетчера будет запущен снова, но не будет иметь эффекта из-за несоответствия в UUID.
В Network Manager можно запустить скрипт, расположенный в каталоге «/etc/NetworkManager/dispatcher.d/» всякий раз, когда соединение разрешено щелчком в графическом интерфейсе. Это может использоваться как сценарий post-up или любой другой тип TBH и влияет только на одно соединение, которое выбирается путем сопоставления UUID соединения. Этот скрипт может содержать команду, указанную в вопросе, и для этого добавить адрес IPv6.