
Каков наилучший способ получения адресов IPv6 по протоколу PPPoe?
В настоящее время я использую NM-Applet для получения интернет-услуг от моего провайдера, но у него нет вкладки IPv6 для соединений PPPOE. Я бы не отказался от использования какого-нибудь инструмента командной строки, но было бы неплохо перенести мои настройки из NM-applet в любой инструмент, если мне это придется сделать.
решение1
Вы можете попробовать добавить
+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.
решение2
Ответ Сандера Стеффана отличный, но если вы обнаружили, что получили адрес 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