У меня есть маршрутизатор Ubiquiti, на котором ipv6 работает нормально. Вывод radvdump , наряду с различными другими соответствующими данными, приведен ниже. Моя проблема с ipv6 на машине с Ubuntu 16.04 за маршрутизатором.

При настройке маршрутизатора в качестве клиента DHCP на стороне глобальной сети и DHCP-сервера с префиксом /{без сохранения состояния с сохранением состояния} на стороне локальной сети у меня остаются только локальные адреса ссылок на клиенте. Настройка маршрутизатора как {DHCP-клиент, SLAAC} на стороне WAN, статического адреса на стороне LAN и DHCP-сервера {без сохранения состояния с сохранением состояния} для клиента предоставляет мне адреса ipv6 на клиенте, но без подключения.

Я понимаю, что мне, возможно, потребуется отредактировать конфигурацию Network Manager, /etc/dhclient.conf, и что хотя ключи в sysctl также актуальны, они могут не очень хорошо работать с Network Manager. Буду признателен за любую информацию о том, как начать.

Кроме того, я не решаюсь установить radvd на клиенте Ubuntu. Я обеспокоен тем, что это может конфликтовать с функциями DHCP или SLAAC на клиенте. Это проблема?

-------------------------------------------------- ------------------

# radvdump [запустить на роутере ]

interface ath0
{
    AdvSendAdvert on;
    # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
    AdvManagedFlag off;
    AdvOtherConfigFlag on;
    AdvReachableTime 0;
    AdvRetransTimer 0;
    AdvCurHopLimit 64;
    AdvDefaultLifetime 1800;
    AdvHomeAgentFlag off;
    AdvDefaultPreference medium;
    AdvSourceLLAddress on;

    RDNSS 2607:X:X:X::53
    {
        AdvRDNSSPreference 0;
        AdvRDNSSOpen off;
        AdvRDNSSLifetime 1800;
    }; # End of RDNSS definition


    prefix 2607:X:Y:Y::/64
    {
        AdvValidLifetime 2592000;
        AdvPreferredLifetime 604800;
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr off;
    }; # End of prefix definition

}; # End of interface definition
#
# radvd configuration generated by radvdump 1.2
# based on Router Advertisement from fe80::Z:Z:Z:Z
# received by interface ath0

IP-6 адрес [на маршрутизаторе ]

inet6 2607:X:X:X:Y:yff:fey:Y/64 scope global dynamic
plus a link-local address

$ ip -6 addr [на клиенте. первый адрес присутствует только при использовании сервера с состоянием]

inet6 2607:X:X:X::x/128         scope global dynamic
inet6 2607:X:X:X:Y':Y':Y':Y'/64 scope global temporary dynamic 
inet6 2607:X:X:X:Z:Z:Z:Z/64     scope global mngtmpaddr noprefixroute dynamic

$ ip -6 route [на клиенте. первый маршрут присутствует только при использовании сервера с сохранением состояния, а fe80::Y:yff:fey:Y является локальным ip-каналом интерфейса локальной сети маршрутизатора]

2607:X:X:X::x dev enp0s25 proto kernel metric 256 expires 86292sec pref medium 
2607:X:X:X::/64 via fe80::Y:yff:fey:Y dev enp0s25 proto ra metric 100 pref medium
2607:X:X:X::/64 dev enp0s25 proto kernel metric 256 expires 7090sec pref medium
fe80::/64 dev enp0s25 proto kernel metric 256 pref medium
default via fe80::Y:yff:fey:Y dev enp0s25 proto static metric 100 pref medium
plus a link-local address

$ cat /etc /network /interfaces [без изменений из установки Ubuntu]

auto lo
iface lo inet loopback

$ sudo sysctl -a | grep accept_ra

net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_from_local = 0
net.ipv6.conf.all.accept_ra_min_hop_limit = 1
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_from_local = 0
net.ipv6.conf.default.accept_ra_min_hop_limit = 1
net.ipv6.conf.default.accept_ra_mtu = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.enp0s25.accept_ra = 1
net.ipv6.conf.enp0s25.accept_ra_defrtr = 0
net.ipv6.conf.enp0s25.accept_ra_from_local = 0
net.ipv6.conf.enp0s25.accept_ra_min_hop_limit = 1
net.ipv6.conf.enp0s25.accept_ra_mtu = 1
net.ipv6.conf.enp0s25.accept_ra_pinfo = 0
net.ipv6.conf.enp0s25.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.enp0s25.accept_ra_rtr_pref = 0
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_from_local = 0
net.ipv6.conf.lo.accept_ra_min_hop_limit = 1
net.ipv6.conf.lo.accept_ra_mtu = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.lo.accept_ra_rtr_pref = 1
net.ipv6.conf.virbr0.accept_ra = 0
net.ipv6.conf.virbr0.accept_ra_defrtr = 1
net.ipv6.conf.virbr0.accept_ra_from_local = 0
net.ipv6.conf.virbr0.accept_ra_min_hop_limit = 1
net.ipv6.conf.virbr0.accept_ra_mtu = 1
net.ipv6.conf.virbr0.accept_ra_pinfo = 1
net.ipv6.conf.virbr0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.virbr0.accept_ra_rtr_pref = 1
net.ipv6.conf.virbr0-nic.accept_ra = 1
net.ipv6.conf.virbr0-nic.accept_ra_defrtr = 1
net.ipv6.conf.virbr0-nic.accept_ra_from_local = 0
net.ipv6.conf.virbr0-nic.accept_ra_min_hop_limit = 1
net.ipv6.conf.virbr0-nic.accept_ra_mtu = 1
net.ipv6.conf.virbr0-nic.accept_ra_pinfo = 1
net.ipv6.conf.virbr0-nic.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.virbr0-nic.accept_ra_rtr_pref = 1
net.ipv6.conf.wlp3s0.accept_ra = 0
net.ipv6.conf.wlp3s0.accept_ra_defrtr = 0
net.ipv6.conf.wlp3s0.accept_ra_from_local = 0
net.ipv6.conf.wlp3s0.accept_ra_min_hop_limit = 1
net.ipv6.conf.wlp3s0.accept_ra_mtu = 1
net.ipv6.conf.wlp3s0.accept_ra_pinfo = 0
net.ipv6.conf.wlp3s0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.wlp3s0.accept_ra_rtr_pref = 0

1 ответ1

1

При настройке маршрутизатора в качестве клиента DHCP на стороне глобальной сети и DHCP-сервера с префиксом /{без сохранения состояния с сохранением состояния} на стороне локальной сети у меня остаются только локальные адреса ссылок на клиенте. Настройка маршрутизатора как {DHCP-клиент, SLAAC} на стороне WAN, статического адреса на стороне LAN и DHCP-сервера {без сохранения состояния с сохранением состояния} для клиента предоставляет мне адреса ipv6 на клиенте, но без подключения.

Исходя из этого и ваших комментариев, кажется, что вы копируете объявленный SLAAC префикс WAN непосредственно в конфигурацию интерфейса локальной сети. Это не сработает (по той же причине, что не будет с WAN DHCP на IPv4).

В IPv6 SLAAC, как и в IPv4 DHCP, объявленный префикс просто указывает, в какой подсети находится интерфейс WAN , и маршрутизатор выбирает собственный адрес WAN из этой подсети. Однако это не имеет ничего общего со стороной локальной сети - ваш маршрутизатор является маршрутизатором, а не мостом, поэтому локальная сеть является собственной сетью и нуждается в собственном префиксе.

Чтобы получить префикс для интерфейсов локальной сети, маршрутизатор обычно должен отправить запрос на делегирование префикса с помощью DHCPv6-PD на стороне глобальной сети. (Обычно существует некоторая интеграция, которая автоматически запускает объявление делегированного префикса в локальной сети.)

Размер префикса, который вы можете запросить, зависит от провайдера (некоторые предоставляют до /60, другие до /56 и т.д.), Но отдельные интерфейсы ЛВС по-прежнему должны использовать /64.

(Тем не менее, не все интернет - провайдеры делают DHCPv6-PD, иногда вы должны запросить префикс IPv6 самостоятельно и настроить это вручную. Существует также возможность продолжения практики IPv4 по использованию диапазона частных адресов для ЛВС, и 1: много NAT (маскировка) выполняется на маршрутизаторе. Хотя я бы не рекомендовал 1: много NAT, кроме как в крайнем случае; это уже достаточно плохо на IPv4.)

Кроме того, я не решаюсь установить radvd на клиенте Ubuntu.

Нет, это абсолютно не нужно. Это все равно что пытаться установить DHCP-сервер на клиенте.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .