У меня есть маршрутизатор 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
radvdump
вы увидите там префикс и маску, поэтому я использую: 2607: X: X: X :: и / 64.Ответы:
Исходя из этого и ваших комментариев, кажется, что вы копируете объявленный 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.)
Нет, это абсолютно не нужно. Это все равно что пытаться установить DHCP-сервер на клиенте.
источник