Описание
На уровне системы реализована поддержка протокола IPv6 для ряда системных интерфейсов.
Для работы системных интерфейсов требуется использовать глобальные IPv6 адреса. При использовании локальных адресов системные интерфейсы работать не будут.
Для использования IPv6 используется следующий формат:
[ip]:port
Перед тем как присваивать ipv6 адрес на интерфейс командой
sudo ifconfig Имя_Интерфейса inet6 add Адрес_IPv6
Требуется включить возможность назначения IPv6 адреса на интерфейс. Для это следует в файле /proc/sys/net/ipv6/conf/Имя_Интерфейса/disable_ipv6 изменить значение с 1 на 0.
После чего перезагрузить сервис systemd-networkd.
Системный сервис cocon_exec
Данный сервис позволяет выполнять команды Cocon не подключаясь к нему, для этого используется следующий формат:
ccnexec -u *login* -p *password* [*IPv6*]:*port* -c *comand*
где
- login - логин для подключения к Cocon;
- password - пароль для подключения к Cocon;
- IPv6 - IP адрес версии 6 для подключения к Cocon;
- port - порт для подключения к Cocon;
- comand - команда передаваемая в Cocon.
Системный сервис ssh
Для подключения к удаленному терминалу имеется возможность использовать IPv6, например для подключения к Cocon.
ssh *login*@2*IPv6* -p *port*
где
- login - логин для подключения к удаленному терминалу;
- password - пароль для подключения к удаленному терминалу;
- port - порт для подключения к удаленному терминалу.
Системный сервис HTTPTerminal
Для подключения к системному терминалу через IPv6 требуется настроить IP. Для этого требуется ввести:
cluster/mediator/md1/properties/cocon_http_terminal/set md1@ecss1 http_server_listen_iface *IPv6*
где IPv6 - IPv6 адрес, на который требуется заходить для подключения к WEB.
Системный сервис Chronica
Для системы логирования в поле {udp, {"ipaddr", 514} можно вводить IPv6 адрес.
Системный сервис Restfs
Для включения IPv6 следует добавить /usr/lib/ecss/ecss-restfs/nginx/ecss-restfs-core:
server { …. listen [Ip]:Port; ….. }
Перезагрузить nginx:
service nginx restart
Перезагрузить ecss-restfs:
systemctl restart ecss-restfs-core.service
Добавить сервер:
restfs/declare ip6 http://[Ip]:Port;
Проверить статус серверов:
restfs/list
Системный сервис Custom_callback
Пример http запроса:
curl -G -d "number=1010&time=1&attempts=1&timeout=10000" http://[::1]:8086/test.ats/service/custom_cb/4b4fdc08e490b7c2-verbose
Системный сервис Mycelium
Для использования IPv6 в Mycelium нужно в /etc/ecss/ecss-mycelium/mycelium1.config изменить bind_ip_addresses для mycelium_broker. IP задается в виде восьмизначного тапла:
{0,0,0,0,0,0,0,1} — localhost.
Т.е каждый октет требуется перевести из 16-ти разрядной системы в 10-ти разрядную.
Чтобы ноды подключались к выставленному IP нужно в конфигурационном файле каждого приложения настроить mycelium_client. Например:
В /etc/ecss/ecss-ds/ds.1config для mycelium_client изменить поле host.
Системный сервис Mysql
Для открытия соединения IPv6 следует в конфигурационный файл /etc/mysql/mysql.conf.d/mysqld.cnf определить поле:
bind-address = ::1
Перезапустить сервис:
systemctl restart mysql
Сейчас все базы данных определены только для IPv4 адресов. Чтобы подключиться к БД необходимо добавить пользователей для IPv6 адресов.
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'::1' IDENTIFIED BY 'password';
Системный сервис RADIUS
Чтобы открыть соединение для радиус сервера на IPv6 в /etc/freeradius/radiusd.conf (при использовании freeradius) в секции listen необходимо закомментировать ipaddr и добавить ipv6addr = :: (или любой другой IPv6 адрес). Использовать IPv4 и IPv6 одновременно нельзя.
Добавить клиента в /etc/freeradius/cilents.conf.
Например:
client 2001:db8:0:f101::/64 { secret = secret123 shortname = localhost }
Перезагрузить сервис:
service freeradius restart
Определить account сервер. Пример:
domain/test.ats/aaa/radius/declare account_server6 ::1 account secret123 retry-count = 3, retry-timeout = 250, ip-family = inet6
Определить access сервер. Пример:
domain/test.ats/aaa/radius/declare access_server6 ::1 access secret123 retry-count = 3, retry-timeout = 250, ip-family = inet6
Опция ip-family используется для разделения типа IP-адреса. Может принимать значение inet6 или inet. Для подключения по IPv6 является обязательной.
Так же для каждого уже созданного сервера можно установить опцию ip-family командой:
domain/test.ats/aaa/radius/set account_server ip-family = inet6
Добавить radius сервера:
domain/test.ats/aaa/accounting/set servers add account_server6 domain/test.ats/aaa/access/set servers add access_server6
Включить использование radius:
domain/test.ats/aaa/accounting/set enable true domain/test.ats/aaa/access/set enable true