Это — старая версия документа!


IPv6 от Дом.ru (ЭР-Телеком) на сервере Ubuntu/Debian

Теория: используется PPPoE с IPv4, поверх него можно воспользоваться протоколом DHCPv6-PD для получения IPv6 prefix delegation.

:!: Внимание! Если вы настроите IPv6 без настройки межсетевого экрана, то предоставите полный доступ к ресурсам сервера. Если сервер выполняет роль роутера, то и доступ ко всем ресурсам локальной сети.

PPPoE

Для удобства, можно установить пакет pppoeconf, запустить сам pppoeconf от суперпользователя root, пройти через вопросы-ответы (в т.ч., надо будет ввести логин и пароль для PPPoE соединения):

sudo apt-get update
sudo apt-get install pppoeconf
sudo pppoeconf

Здесь официальная инструкция от ЭР-Телекома, с картинками.

Потом поправить проверить получившиеся настройки (обычно необходимо добавить одну из опций — ipv6 , или +ipv6):

Пример:

/etc/ppp/peers/dsl-provider
+ipv6
noipdefault
defaultroute
replacedefaultroute
hide-password
noauth
persist
plugin rp-pppoe.so eth1
user "v1234567"

Пример системных настроек сетевых интерфейсов (тут обычно править ничего не нужно):

/etc/network/interfaces
…
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider dsl-provider

DHCPv6-PD

Получение IPv6 можно настроить с помощью любого из этих демонов:

  • dhcpcd5
  • wide-dhcpv6-client

dhcpcd

Получить DHCPv6-PD можно с помощью пакета dhcpcd5. Установка:

sudo apt-get update
sudo apt-get install dhcpcd5

Конфигурация:

/etc/dhcpcd.conf
allowinterfaces ppp0 eth0
duid
ipv6only
noipv6rs
interface ppp0
ia_pd 1 eth0

При остановке (или обрыве) PPPoE, dhcpcd5 сам удалит IPv6 адрес с eth0, а при переподключении сам получит новый IPv6 адрес.

wide-dhcpv6-client

Если не устраивает dhcpcd5, можно установить пакет wide-dhcpv6-client:

sudo apt-get update
sudo apt-get install wide-dhcpv6-client
/etc/wide-dhcpv6/dhcp6c.conf
interface ppp0 {
    send ia-pd 0;
};
 
id-assoc pd 0 {
    prefix-interface eth0 {
        sla-len 0;
        ifid 1;
    };
};

активируем автозапуск:

/etc/wide-dhcpv6/dhcp6c.conf
INTERFACES="ppp0"

Т.к. в случае остановки PPPoE надо удалить IPv6 адрес с eth0, но wide-dhcpv6-client почему то не делает этого сам, поэтому вобьём небольшой костыль:

/etc/ppp/ipv6-down.d/20-wide-client-stop
#!/bin/sh
service wide-dhcpv6-client stop

и к нему второй костыль:

/etc/ppp/ipv6-up.d/20-wide-client-start
#!/bin/sh
service wide-dhcpv6-client start

запускаем:

sudo service wide-dhcpv6-client start

проверяем:

ip -6 addr show eth0
ping6 2600::

Межсетевой экран

ip6tables

Разрешаем любые исходящие соединения, а также входящие icmpv6 и tcp на 80-й (http) и 22 порт (ssh):

/etc/ppp/ipv6-up.d/10-ip6tables
#!/bin/sh
ip6tables -F
ip6tables -X
# Accept DHCPv6 from WAN
ip6tables -A INPUT -i ${IFNAME} -p udp --dport 546 -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -i ${IFNAME} -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -i ${IFNAME} -j REJECT
ip6tables -A OUTPUT -o ${IFNAME} -j ACCEPT

Раздача IPv6 в локальную сеть

Раздачу IPv6 можно организовать с помощью radvd или dnsmasq. Раздел ещё не дописан.


isp/domru/ubuntu-server-howto.1473696021.txt.gz · Последние изменения: 2016-09-12 16:00 UTC От vazhnov
Personal Tools