Hetzner и IPv6


При заказе на Hetzner блока IPv6, Вы получите письмо примерно следующего содержания:
IPs: 2a01:4f8:110:4121:: /64
Gateway: 2a01:4f8:110:4116::1 /59

Теперь необходимо всё это дело прописать у себя. У меня на одной из машин крутится несколько виртуальных, соответственно адреса выдадим и им. Все машины на CentOS.

Для начала пропишем на основной машине (добавляем записи, если их нет):

/etc/sysconfig/network
NETWORKING_IPV6=yes

/etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=yes
IPV6ADDR=2a01:4f8:110:4121::2

# Почему 2a01:4f8:110:4121::2 а не 2a01:4f8:110:4121::1 — Hetzner у себя указывает использовать диапазон начиная с :2.

/etc/sysconfig/network-scripts/route6-eth0
2a01:4f8:110:4116::1 dev eth0
::/0 via 2a01:4f8:110:4116::1

и выполняем
# /etc/init.d/network restart
Проверяем:
# ping6 ipv6.google.com
С основной машиной почти закончили, осталось включить forwarding, чтобы виртуальные машины могли использовать IPv6 адреса. В данном случае, адрес Вашей основной машины — [2a01:4f8:110:4121::2].

/etc/sysctl.conf
net.ipv6.conf.all.forwarding=1

выполняем:
# sysctl -p
Теперь к настройке виртуальных машин, там все просто, достаточно дать адрес и шлюз.

/etc/sysconfig/network
NETWORKING_IPV6=yes

/etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=yes
IPV6ADDR=2a01:4f8:110:4121::3
IPV6_DEFAULTGW=2a01:4f8:110:4121::2

выполняем:
# /etc/init.d/network restart
Машина получила адрес [2a01:4f8:110:4121::3]. Для других виртуальных машин проделайте тоже самое, меняя адрес.

Ну и приведу пример простейшей настройки ip6tables — файлвол для IPv6.
создайте файл примерно следующего содержания, каждому своё, кто-то что-то добавит или уберет:

/etc/sysconfig/ip6tables
#
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Разрешаем все подключения из своей подсети
-A INPUT -s 2a01:4f8:110:4121::/64 -d ::/0 -j ACCEPT
-A INPUT -s ::/0 -d ::/0 -i lo -j ACCEPT
# Разрешаем соединения для уже установленных соединений
-A INPUT -s ::/0 -d ::/0 -m state —state RELATED,ESTABLISHED -j ACCEPT
# Разрешаем icmp
-A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -j ACCEPT
# Разрешаем необходимые нам порты
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp —dport 22 -j ACCEPT
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp —dport 80 -j ACCEPT
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp —dport 53 -j ACCEPT
-A INPUT -s ::/0 -d ::/0 -p udp -m udp —dport 53 -j ACCEPT
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp —dport 443 -j ACCEPT
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp —dport 25 -j ACCEPT
-A INPUT -s ::/0 -d ::/0 -p tcp -m tcp —dport 110 -j ACCEPT
# Все остальное отклоняем
-A INPUT -s ::/0 -d ::/0 -j REJECT —reject-with icmp6-adm-prohibited
COMMIT
#

Перезапускаем файрвол:
# /etc/init.d/ip6tables restart

Заметка актуальна для тех кто ставил виртуальные машины в режиме роутинга. После того как Hetzner разрешил несколько MAC-адресов на один порт, виртуальные машины прекрасно ставятся в редиме моста (bridge), и адреса можно прописывать напрямую.

Вот и все готово. Теперь Ваши машины имеют IPv6 адреса и защищены файрволом.

Удачи в настройках.
© shadow_alone