[Решено] Как настроить в /etc/network/interfaces два IPv6-адреса?

Автор Gamliel, 21 июня 2020, 16:33:26

« назад - далее »

0 Пользователи и 5 гостей просматривают эту тему.

Gamliel

Имеется VPS. KVM. Debian Buster, собственноручно установленный из ISO-файла. В тариф включены один IPv4- и один IPv6-адрес. Оба настроены мной в /etc/network/interfaces, всё работает.

Добавил ещё один IPv6-адрес. Неожиданно для себя не смог настроить работу с двумя IPv6-адресами. Шлюзы у двух адресов разные.

/etc/network/interfaces:
auto lo
iface lo inet loopback
auto ens3
allow-hotplug ens3
iface ens3 inet static
        address 11.22.33.44/24
        netmask 255.255.255.0
        gateway 11.22.33.1
        dns-nameserver 89.233.43.71
iface ens3 inet6 static
        address 2222:3333:4444::5555
        netmask 48
        gateway 2222:3333:4444::1
        dns-nameserver 2a01:3a0:53:53::

(в сокращении; IP-адреса, кроме DNS-сервера, заменены вымышленными).

Дополнительный адрес, условно говоря, 2222:3333:4445::6666, шлюз (тоже условно) 2222:3333:4445::1. Создал файл /etc/network/interfaces.new, IPv6-часть которого привёл в следующий вид:
iface ens3 inet6 static
        address 2222:3333:4444::5555
        netmask 48
        gateway 2222:3333:4444::1
        dns-nameserver 2a01:3a0:53:53::
        address 2222:3333:4445::6666
        netmask 48
        gateway 2222:3333:4445::1

(IP-адреса заменены вымышленными).

После
sudo ifdown -a; sudo mv interfaces interfaces.old; sudo mv interfaces.new interfaces; sudo ifup -a
поднялся только IPv4, но не IPv6.

Подчёркиваю: шлюзы у двух IPv6-адресов разные.

endru

Это каким образом один интерфейс будет 2 адреса обрабатывать?
хостер должен либо выдать еще один виртуальный интерфейс, либо этот виртуальный интерфейс нужно настраивать у себя.
Все узнавай у хостера.

Gamliel

Цитата: endru от 21 июня 2020, 17:19:02хостер должен либо выдать еще один виртуальный интерфейс
В расценках говорится только про дополнительные IP-адреса.

Цитата: endru от 21 июня 2020, 17:19:02либо этот виртуальный интерфейс нужно настраивать у себя.
Как это сделать? (Напоминаю: шлюзы разные, так что создание интерфейсов с именами вида ens:1 не кажется мне решением.)

Цитата: endru от 21 июня 2020, 17:19:02Все узнавай у хостера.
Вообще-то VPS — это набор «сделай сам».

endru

Цитата: Gamliel от 21 июня 2020, 17:36:08шлюзы разные, так что создание интерфейсов с именами вида ens:1 не кажется мне решением.
А что кажется решением?

То что шлюзы разные - вообще пофиг.

sidbar

если так:
iface ens3 inet6 static
        address 2222:3333:4444::5555
        netmask 48
        gateway 2222:3333:4444::1
        dns-nameserver 2a01:3a0:53:53::
iface ens3 inet6 static
        address 2222:3333:4445::6666
        netmask 48
        gateway 2222:3333:4445::1
Devuan GNU/Linux

Gamliel

Цитата: endru от 21 июня 2020, 17:51:45
Цитата: Gamliel от 21 июня 2020, 17:36:08шлюзы разные, так что создание интерфейсов с именами вида ens:1 не кажется мне решением.
А что кажется решением?

То что шлюзы разные - вообще пофиг.
В Debian Wiki утверждается: «An alias interface should not have "gateway" or "dns-nameservers"». Это утверждение устарело?

Цитата: sidbar от 21 июня 2020, 19:35:01если так:
iface ens3 inet6 static
        address 2222:3333:4444::5555
        netmask 48
        gateway 2222:3333:4444::1
        dns-nameserver 2a01:3a0:53:53::
iface ens3 inet6 static
        address 2222:3333:4445::6666
        netmask 48
        gateway 2222:3333:4445::1
Пробовал (в первом сообщении темы об этом сказано).

sidbar

Цитата: Gamliel от 21 июня 2020, 21:01:23Пробовал (в первом сообщении темы об этом сказано).

Цитата: Gamliel от 21 июня 2020, 16:33:26Создал файл /etc/network/interfaces.new, IPv6-часть которого привёл в следующий вид:
Код: [Выделить]

iface ens3 inet6 static
        address 2222:3333:4444::5555
        netmask 48
        gateway 2222:3333:4444::1
        dns-nameserver 2a01:3a0:53:53::
        address 2222:3333:4445::6666
        netmask 48
        gateway 2222:3333:4445::1

(IP-адреса заменены вымышленными).
Devuan GNU/Linux

endru

Цитата: Gamliel от 21 июня 2020, 21:01:23Это утверждение устарело?
Нет, по умолчанию в interfaces можно указать только 1 gateway - он будет маршрутом по умолчанию для выхода в интернет. остальные маршруты нужно прописать в post-up например.

Gamliel

Цитата: sidbar от 22 июня 2020, 09:29:11
Вы предлагаете разделить секцию  iface ens3 inet6 static  на две?

Цитата: endru от 22 июня 2020, 10:18:28остальные маршруты нужно прописать в post-up например
$ ls /etc/network/ -l | grep "^d"
drwxr-xr-x 2 root root 4096 May  3 02:48 if-down.d
drwxr-xr-x 2 root root 4096 Jan 28  2019 if-post-down.d
drwxr-xr-x 2 root root 4096 Jan 28  2019 if-pre-up.d
drwxr-xr-x 2 root root 4096 May  3 02:48 if-up.d
drwxr-xr-x 2 root root 4096 Jan 28  2019 interfaces.d
Нужно создать каталог if-post-up.d и поместить скрипт туда, или в if-up.d? И, прошу прощения за мою безграмотность, каков синтаксис этого скрипта? (Заглянул в man interfaces, man ifup, man ifconfig, man run-parts и man resolvconf. Понятнее не стало.)

ogost

Цитата: Gamliel от 22 июня 2020, 13:13:29Вы предлагаете разделить секцию  iface ens3 inet6 static  на две?
Загляните в /etc/network, там есть директория if-post-up.d среди других. Туда складываются файлы конфигов.

sidbar

Цитата: Gamliel от 22 июня 2020, 13:13:29Вы предлагаете разделить секцию  iface ens3 inet6 static  на две?
Да, у меня так работает с ipv4, шлюзы не надо указывать.
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:02:b3:7b:35:31 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 brd 192.168.100.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.253/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.24.6/32 brd 192.168.24.6 scope global eth0
       valid_lft forever preferred_lft forever
Devuan GNU/Linux

endru

Цитата: Gamliel от 22 июня 2020, 13:13:29Нужно создать каталог if-post-up.d и поместить скрипт туда, или в if-up.d?
да можно прям в в конфиге после адреса и маски подсети указать строку
post-up route add -net $IPv6 netmask $NETMASKIPv6 gw $GATEWAYIPv6
вместо переменных вбить свои данные

Gamliel

#12
Поставленная задача решена. Возник ещё один вопрос, поэтому тему пока не переименовываю.

Вопрос. Как сделать так, чтобы все новые исходящие IPv6-соединения делались со «старого» адреса, а с «нового» шли только ответы (established,related) на входящие соединения, пришедшие именно на него?


Цитата: ogost от 22 июня 2020, 13:47:39Загляните в /etc/network, там есть директория if-post-up.d среди других. Туда складываются файлы конфигов.
Нету там такого каталога. Повторяю:
$ ls /etc/network/ -l | grep "^d"
drwxr-xr-x 2 root root 4096 May  3 02:48 if-down.d
drwxr-xr-x 2 root root 4096 Jan 28  2019 if-post-down.d
drwxr-xr-x 2 root root 4096 Jan 28  2019 if-pre-up.d
drwxr-xr-x 2 root root 4096 May  3 02:48 if-up.d
drwxr-xr-x 2 root root 4096 Jan 28  2019 interfaces.d


Цитата: sidbar от 22 июня 2020, 14:44:58Да, у меня так работает с ipv4, шлюзы не надо указывать.
Сделал, как Вы предлагали выше (разделил одну секцию на две, шлюзы указываю). Работают оба адреса. Благодарю.

Цитата: endru от 22 июня 2020, 16:19:30да можно прям в в конфиге после адреса и маски подсети указать строку
Благодарю. Впрочем, предполагаю, что не просто так часть конфигов вынесли в подкаталоги, и что если указано включение чего-либо при if-up, то должно быть указано выключение этого же при if-down.