IPv6 через PPPoe?
Каков наилучший способ получить адреса IPv6 через PPPoe?
В настоящее время я использую NM-Applet для получения интернет-услуг от моего провайдера, но у него нет вкладки IPv6 на соединениях PPPOE. Я не возражаю против использования какого-либо инструмента командной строки, но было бы неплохо перенести мои настройки из NM-апплета в любой инструмент, если мне придется это сделать.
2 ответа
Вы можете попробовать добавить
+ipv6 ipv6cp-use-ipaddr
в /etc/ppp/options. В зависимости от того, как ваш провайдер предоставляет IPv6, этого может быть достаточно, чтобы дать самому компьютеру IPv6.
Многие интернет-провайдеры предполагают, что маршрутизатор соединяется с PPPoE вместо ПК, поэтому это может не сработать. Единственный способ получить IPv6 в этой ситуации - настроить компьютер в качестве маршрутизатора. Затем следует использовать DHCP для IPv6, чтобы запросить делегирование префикса. Полученный префикс может затем использоваться для назначения /64 подсетей вашей сети или вашей локальной машине. И если вы хотите предоставлять услугу IPv6 для своих локальных сетей, вы должны запустить radvd (демон объявления маршрутизатора), чтобы объявить, что ваша машина является маршрутизатором.
Для этого проще всего использовать wide-dhcpdv6. Основная идея состоит в том, чтобы запросить делегирование префикса из одного интерфейса, а затем использовать этот префикс для назначения подсетей другим интерфейсам, например:
interface ppp0 {
# Request Prefix Delegation on ppp0, and give the received prefix id 0
send ia-pd 0;
};
# Use subnets from the prefix with id 0
id-assoc pd 0 {
prefix-interface eth0 {
# Assign subnet 1 to eth0
sla-id 1;
};
};
Допустим, вы получили префикс 2001:db8:1234::/48 от вашего провайдера. Этот пример затем назначит 2001:db8:1234:1::/64 для eth0.
Базовый radvd.conf будет выглядеть так:
interface eth0
{
AdvSendAdvert on;
prefix ::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
Ох, и не забудьте поставить
net.ipv6.conf.all.forwarding=1
в вашем /etc/sysctl.conf.
Ответ Сандера Штеффанна великолепен, но если вы обнаружили, что получили адрес IPv6 (можно проверить через
ip addr
или же
ifconfig
), а также
mtr -6 www.google.com
все еще не работал, это может быть вызвано каким-то назначением маршрутизации по умолчанию в вашем локальном маршрутизаторе (можно проверить через
ip -6 route
или же
netstat -6rn
).
Один из способов решить эту проблему — отключить RA на вашем порту Ethernet, например (изменить существующий файл в
/etc/netplan/
):
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
accept-ra: false