Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

isp:domru:ubuntu-server-howto [2016-09-13 20:03 UTC]
vazhnov Добавил для примера разрешение на входящий трафик http в локальную сеть
isp:domru:ubuntu-server-howto [2019-10-06 17:00 UTC] (текущий)
rm
Строка 14: Строка 14:
</code> </code>
-[[https://domru.ru/clients/instructions/nastroika-pppoe-dlya-ubuntukubuntuxubuntu|Здесь]] официальная инструкция от ЭР-Телекома, с картинками.+[[https://domru.ru/service/knowledgebase/article/174|Здесь]] официальная инструкция от ЭР-Телекома, с картинками.
-Потом поправить проверить получившиеся настройки (обычно необходимо добавить одну из опций — ''ipv6 ,'' или ''+ipv6''):+Потом поправить получившиеся настройки (обычно необходимо добавить одну из опций — ''ipv6 ,'' или ''+ipv6''):
Пример: Пример:
Строка 27: Строка 27:
noauth noauth
persist persist
 +maxfail 0
plugin rp-pppoe.so eth1 plugin rp-pppoe.so eth1
user "v1234567" user "v1234567"
</file> </file>
 +
 +Для сервера, желательно указать опцию ''maxfail 0'', чтобы в случае проблем у провайдера, pppd пытался подключиться вечно, а не 10 раз, как это настроено по умолчанию.
Пример системных настроек сетевых интерфейсов (тут обычно править ничего не нужно): Пример системных настроек сетевых интерфейсов (тут обычно править ничего не нужно):
Строка 56: Строка 59:
ip6tables -P FORWARD DROP ip6tables -P FORWARD DROP
# Accept DHCPv6 from WAN # Accept DHCPv6 from WAN
-ip6tables -A INPUT -i ${IFNAME} -p udp --dport 546 -j ACCEPT+ip6tables -A INPUT -i $IFNAME -p udp -s fe80::/10 --sport 547 --dport 546 -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT ip6tables -A INPUT -p icmpv6 -j ACCEPT
 +ip6tables -A INPUT -m state --state INVALID -j DROP
ip6tables -A INPUT -p tcp -m tcp --dport 80 -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 -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 -m state --state ESTABLISHED,RELATED -j ACCEPT 
-ip6tables -A INPUT -m state --state INVALID -j DROP +ip6tables -A INPUT -i $IFNAME -j REJECT 
-ip6tables -A INPUT -i ${IFNAME} -j REJECT +ip6tables -A OUTPUT -o $IFNAME -j ACCEPT
-ip6tables -A OUTPUT -o ${IFNAME} -j ACCEPT+
</file> </file>
Строка 71: Строка 74:
===== DHCPv6-PD ===== ===== DHCPv6-PD =====
-Получение IPv6 можно настроить с помощью любого из этих демонов:+Получение IPv6 адреса по DHCPv6-PD можно настроить с помощью любого из этих демонов:
  * dhcpcd5   * dhcpcd5
  * wide-dhcpv6-client   * wide-dhcpv6-client
 +  * dibbler-client
==== dhcpcd ==== ==== dhcpcd ====
Строка 91: Строка 95:
noipv6rs noipv6rs
interface ppp0 interface ppp0
-ia_pd 1 eth0+ia_pd 1/::/64 eth0/0/64
</file> </file>
-При остановке (или обрыве) PPPoE, dhcpcd5 сам удалит IPv6 адрес с eth0, а при переподключении сам получит новый IPv6 адрес.+При остановке (или обрыве) PPPoE, dhcpcd5 сам удалит IPv6 адрес с eth0, а при переподключении сам получит новый IPv6 адрес. А вот о маршруте по умолчанию надо позаботиться самим: 
 + 
 +<file shell /etc/ppp/ipv6-up.d/20-route6> 
 +#!/bin/sh 
 +ip -6 route add default dev $IFNAME 
 +</file>
==== wide-dhcpv6-client ==== ==== wide-dhcpv6-client ====
-Если не устраивает dhcpcd5, можно установить пакет wide-dhcpv6-client:+Если не устраивает dhcpcd5, можно установить пакет wide-dhcpv6-client (но имейте в виду, что проект не развивается с 2008 года: [[https://sourceforge.net/p/wide-dhcpv6/git/ci/master/tree/|git репозиторий]]). 
 + 
 +Вначале убедитесь, что PPPoE соединение установлено, иначе установка будет завершена с ошибкой. 
 + 
 +Установка:
<code> <code>
sudo apt-get update sudo apt-get update
sudo apt-get install wide-dhcpv6-client sudo apt-get install wide-dhcpv6-client
</code> </code>
 +
 +На вопрос «Интерфейсы, на которые клиент DHCPv6 должен отправлять запросы» ответить ppp0.
<file text /etc/wide-dhcpv6/dhcp6c.conf> <file text /etc/wide-dhcpv6/dhcp6c.conf>
Строка 118: Строка 133:
активируем автозапуск: активируем автозапуск:
-<file shell /etc/wide-dhcpv6/dhcp6c.conf>+<file shell /etc/default/wide-dhcpv6-client>
INTERFACES="ppp0" INTERFACES="ppp0"
</file> </file>
Строка 134: Строка 149:
</file> </file>
-запускаем:+делаем файлы исполняемыми: 
 +<code> 
 +sudo chmod +x /etc/ppp/ipv6-down.d/20-wide-client-stop /etc/ppp/ipv6-up.d/20-wide-client-start 
 +</code> 
 + 
 +и запускаем:
<code> <code>
sudo service wide-dhcpv6-client start sudo service wide-dhcpv6-client start
Строка 147: Строка 167:
===== Раздача IPv6 в локальную сеть ===== ===== Раздача IPv6 в локальную сеть =====
-Тут будет три этапа:+В дополнение ко всему написанному выше, надо сделать ещё три пункта:
  * Нужно раздать ip-адреса,   * Нужно раздать ip-адреса,
  * настроить межсетевой экран,   * настроить межсетевой экран,
Строка 169: Строка 189:
{ {
  AdvSendAdvert on;   AdvSendAdvert on;
-  MaxRtrAdvInterval 30;+  MaxRtrAdvInterval 60;
  prefix ::/64   prefix ::/64
  {   {
-    AdvOnLink on; +    AdvValidLifetime 600
-    AdvAutonomous on; +    AdvPreferredLifetime 120;
-    AdvRouterAddr off; +
-    AdvValidLifetime 30+
-    AdvPreferredLifetime 10;+
  };   };
}; };
</file> </file>
 +
 +Указание префикса в виде ''::/64'' включает автоматическое его определение из адресов, имеющихся на интерфейсе. При этом в некоторых версиях ''radvd'' возможно появление в логах сообщения "invalid all-zeros prefix in /etc/radvd.conf", однако его вывод является ошибочным (позже это было [[https://github.com/reubenhwk/radvd/commit/b37baa1137d0bd5b9cceb2e447550f1c0a105ac6|исправлено]]), и даже с таким сообщением всё должно [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=891324|работать нормально]].
=== dnsmasq === === dnsmasq ===
Строка 208: Строка 227:
ip6tables -P FORWARD DROP ip6tables -P FORWARD DROP
# Accept DHCPv6 from WAN # Accept DHCPv6 from WAN
-ip6tables -A INPUT -i ${IFNAME} -p udp --dport 546 -j ACCEPT+ip6tables -A INPUT -i $IFNAME -p udp -s fe80::/10 --sport 547 --dport 546 -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT ip6tables -A INPUT -p icmpv6 -j ACCEPT
 +ip6tables -A INPUT -m state --state INVALID -j DROP
ip6tables -A INPUT -p tcp -m tcp --dport 80 -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 -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 -m state --state ESTABLISHED,RELATED -j ACCEPT 
-ip6tables -A INPUT -m state --state INVALID -j DROP +ip6tables -A INPUT -i $IFNAME -j REJECT 
-ip6tables -A INPUT -i ${IFNAME} -j REJECT +ip6tables -A OUTPUT -o $IFNAME -j ACCEPT
-ip6tables -A OUTPUT -o ${IFNAME} -j ACCEPT+
ip6tables -A FORWARD -p icmpv6 -j ACCEPT ip6tables -A FORWARD -p icmpv6 -j ACCEPT
-ip6tables -A FORWARD -i eth0 -o ${IFNAME} -j ACCEPT +ip6tables -A FORWARD -i eth0 -o $IFNAME -j ACCEPT 
-ip6tables -A FORWARD -i ${IFNAME} -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT +ip6tables -A FORWARD -i $IFNAME -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT 
-ip6tables -A FORWARD -i ${IFNAME} -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT+ip6tables -A FORWARD -i $IFNAME -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -m state --state INVALID -j DROP ip6tables -A FORWARD -m state --state INVALID -j DROP
ip6tables -A FORWARD -j REJECT ip6tables -A FORWARD -j REJECT
Строка 231: Строка 250:
Чтобы разрешить трафик между интерфейсами (т.е., чтобы из локальной сети можно было получить доступ в Интернет по IPv6): Чтобы разрешить трафик между интерфейсами (т.е., чтобы из локальной сети можно было получить доступ в Интернет по IPv6):
-<file ini /etc/sysctl.d/99-ipv6-forwarding.conf>+<file ini /etc/sysctl.d/60-ipv6-forwarding.conf>
net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1 net.ipv6.conf.default.forwarding=1
Строка 242: Строка 261:
</code> </code>
 +===== Известные проблемы =====
 +
 +  * Иногда при подключении по PPPoE не работает DHCPv6, попробуйте перезапустить PPPoE:
 +<code>
 +sudo poff dsl-provider
 +sudo pon dsl-provider
 +</code>
 +  * dhcpcd5 (по крайней мере версии 6.0.5, из Ubuntu 14.04) иногда может падать:
 +<code>
 +Sep 27 22:55:24 ubuntuhost dhcpcd[2802]: ppp0: REPLY6 received from fe80::7e20:64ff:fe84:2765
 +Sep 27 22:55:24 ubuntuhost kernel: [84643.202100] show_signal_msg: 48 callbacks suppressed
 +Sep 27 22:55:24 ubuntuhost kernel: [84643.202112] dhcpcd[2802]: segfault at 454c456c ip 08060531 sp bfb0af50 error 4 in dhcpcd5[8048000+26000]
 +</code>
 +  * а radvd при этом продолжит раздавать адресацию, которой уже нет (bugreport: [[https://github.com/reubenhwk/radvd/issues/53|radvd doesn't announce prefix added at runtime]]).
 +  * При использовании dhcpcd5 (по крайней мере версии 6.0.5, из Ubuntu 14.04) на роутере с двумя сетевыми интерфейсами, в случае если интерфейс, на котором прописывается IPv6 адрес, переходит в состояние down (например выключили коммутатор за роутером), то IPv6 адрес удаляется и сервер остаётся без IPv6. После поднятия интерфейса адрес не восстанавливается. Такой проблемы нет с wide-dhcpv6-client, благодаря скриптам /etc/network/if-down.d/wide-dhcpv6-client и /etc/network/if-up.d/wide-dhcpv6-client.

isp/domru/ubuntu-server-howto.1473796997.txt.gz · Последние изменения: 2016-09-13 20:03 UTC От vazhnov
Personal Tools