1- Как настроить DHCPv6 клиент
Мы будем использовать dhclient.
Вам нужно отредактировать следующий файл /etc/dhcp/dhclient6.conf:
interface "eno1" {
send dhcp6.client-id DUID;
}
Вам нужно будет адаптировать имя интерфейса (eno1) и DUID.
ЗАПУСК DHCPV6 КЛИЕНТА ПРИ ЗАГРУЗКЕ
После настройки клиента вам нужно создать новый сервис SystemD.
Создайте следующий файл, адаптируя имя интерфейса (eno0) и DUID /etc/systemd/system/dhclient.service:
[Unit] Description=dhclient for sending DUID IPv6 After=network-online.target Wants=network-online.target [Service] Restart=always RestartSec=10 Type=forking ExecStart=/sbin/dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v eno1 ExecStop=/sbin/dhclient -x -pf /var/run/dhclient6.pid [Install] WantedBy=network.target
Путь к dhclient может отличаться в зависимости от вашей ОС. Чтобы узнать точный путь, используйте команду: which dhclient
Затем включите его для каждой перезагрузки: systemctl enable dhclient.service.
2 - КАК НАСТРОИТЬ СЕТЬ
НАСТРОЙКА СЕТИ В UBUNTU 16 & DEBIAN 8 И 9
Начните с редактирования /etc/network/interfaces следующим образом:
auto eno1
iface eno1 inet6 static
address IPV6ADDRESS
netmask PREFIXLENGTH
Вам нужно заменить eno1 на правильное имя интерфейса.
В Debian & старых версиях Ubuntu это обычно eth0.
Сетевой интерфейс инициализируется командой allow-hotplug по умолчанию в Debian 9. Возможно, перезапуск сети завершится ошибкой с этой конфигурацией. В этом случае вы можете инициализировать сеть с помощью auto, чтобы избежать проблемы.
Альтернативная конфигурация без SystemD
Если вы не используете SystemD для запуска сервисов, вы можете настроить свой /etc/network/interfaces следующим образом:
iface eno1 inet6 static
pre-up modprobe ipv6
pre-up dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -d -v $IFACE
address IPV6ADDRESS
netmask PREFIXLEN
Все еще адаптируйте имя вашего интерфейса (eno1) под свои нужды, а также IPv6-адрес и маску сети.
НАСТРОЙКА СЕТИ С ИСПОЛЬЗОВАНИЕМ NETPLAN
Начиная с выпуска Ubuntu 18.04 LTS, Ubuntu использует новый инструмент для настройки сети под названием netplan.
Он заменяет классическую конфигурацию сети новыми файлами конфигурации, написанными в формате YAML и расположенными в каталоге /etc/netplan. Для получения дополнительной информации о netplan обратитесь к официальной документации Ubuntu.
Откройте файл конфигурации по умолчанию /etc/netplan/01-netcfg.yaml в текстовом редакторе и отредактируйте его следующим образом:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: no
dhcp6: no
addresses:
- "aaa.bbb.ccc.ddd/24" # The main IP address of your Dedibox server
- "/" # An IP address from your IPv6 block and it's subnet mask
gateway4: aaa.bbb.ccc.1 # The gateway is the IP address of your Dedibox, ending on .1
nameservers:
addresses: [62.210.16.6, 62.210.16.7]
routes:
- to: 0.0.0.0
via: aaa.bbb.ccc.1
on-link: true
Вам нужно заменить enp1s0 на правильное имя интерфейса. Чтобы найти имя интерфейса вашей машины, используйте команду ifconfig.
Перезагрузите сервер после настройки новых сетевых параметров.
НАСТРОЙКА СЕТИ В CENTOS 7
После настройки dhclient и SystemD вам нужно отредактировать /etc/sysconfig/network-scripts/ifcfg-eth0:
# Generated by parse-kickstart UUID=xxxxx DNS1=62.210.16.6 BOOTPROTO=none DEVICE=eth0 ONBOOT=yes TYPE=Ethernet IPADDR=62.210.xx.xx PREFIX=24 GATEWAY=62.210.xx.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6ADDR="IPV6ADDRESS/PREFIXLEN" IPV6_AUTOCONF=yes NAME="System eth0"
После завершения настройки вы можете перезагрузить сервер, чтобы проверить, что сервис и конфигурация корректно применяются при загрузке!
Вам нужно будет разрешить в вашем брандмауэре входящий трафик на порт 546/UDP и исходящий на порт 547/UDP.
ПРОВЕРЬТЕ СВОЮ КОНФИГУРАЦИЮ
Запустите dhclient следующей командой:
dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v eth0
Чтобы проверить подключение IPv6, вы можете использовать команду PING:
ping6 ipv6.google.com
ОТЛАДКА
Если конфигурация не работает, проверьте имя вашего интерфейса следующей командой:
ifconfig -a
Кроме того, ваш сервер должен быть настроен на прием RA (Router Advertisement).
По умолчанию ваш сервер не будет принимать пересылку пакетов с одного интерфейса на другой, если он настроен автоматически (через DHCPv6).
Если вам нужно пересылать IPv6 пакеты и использовать автоматическую конфигурацию, вам нужно установить значение sysctl net.ipv6.conf.all.accept_ra в 2 в /etc/sysctl.conf.
Обычно это полезно для хостов гипервизоров, таких как Proxmox.
Примеры приведены для eth0/eno1, если ваш основной интерфейс имеет другое имя, вам нужно изменить его во всех ваших конфигурационных файлах.
ОГРАНИЧЕНИЕ ТРАФИКА ВАШЕГО КЛИЕНТА
В некоторых случаях некоторые DHCPv6 клиенты могут, к сожалению, отправлять несколько запросов в секунду (особенно dchp6c).
Это вызывает блокировку сетевого порта вашего сервера нашей автоматической защитой, так как это будет воспринято как источник UDP-флуда.
Чтобы избежать этой проблемы, мы предлагаем вам ограничить трафик, отправляемый вашим dhclient6, непосредственно в конфигурации вашего брандмауэра.
Ниже приведен пример для IPTABLES:
ip6tables -A OUTPUT -p udp --dport 547 -m limit --limit 10/min --limit-burst 5 -j ACCEPT ip6tables -A OUTPUT -p udp --dport 547 -j DROP
В режиме Rescue
Чтобы протестировать IPv6 на вашем сервере в режиме rescue, перезагрузите сервер в режиме rescue с режимом “Ubuntu 14 - Trusty”. dhclient уже доступен в нем.
Создайте файл, который будет содержать ваш DUID.
nano /etc/dhcp/dhclient6.conf
Сначала запустите dhclient:
dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v <interface>
После этого добавьте IPv6-адрес к вашему сетевому интерфейсу:
/sbin/ifconfig <interface> inet6 add IPV6ADDRESS/PREFIXLENGTH
Затем вы можете попробовать ping6:
ping6 ipv6.google.com
Поиск