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
Другие вопросы по тегам