LINUX.ORG.RU
ФорумAdmin

Сеть IPv6 на Ubuntu Server v22

 , ,


1

1

Здравствуйте.

Никак не получается заставить работать сеть IPv6.

Дано: Выделенный IPv4 вида: 45.80.XX.XX/32 и шлюз 10.0.0.1; IPv6 подсеть: 2a03:XX:XX::5b8/125 (префикс /125) и шлюз 2a03:XX:XX::5b9

Итог: IPv4 работает нормально, а вот IPv6 ни в какую не хочет…

Вопрос: кто подскажет возможное решение проблемы с IPv6 ???

Мой конфиг в /etc/netplan/00-network-all.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      dhcp6: no
      addresses:
        - 45.80.XX.XX/32
        - 2a03:XX:XX::5b8/125
        - 2a03:XX:XX::5ba/128
      nameservers:
        addresses:
        - 1.1.1.1
        - 8.8.8.8
        - 2606:4700:4700::1111
        - 2001:4860:4860::8888
      routes:
        - to: 0.0.0.0/0 # default
          via: 10.0.0.1
          metric: 20
          on-link: true
        - to: ::/0 # default
          via: 2a03:XX:XX::5b9
          metric: 10
          on-link: true

ip a

=======================================================
nick@myhost:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul                                                 t qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP gr                                                 oup default qlen 1000
    link/ether 52:54:00:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 45.80.XX.XX/32 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 2a03:XX:XX::5ba/128 scope global
       valid_lft forever preferred_lft forever
    inet6 2a03:XX:XX::5b8/125 scope global
       valid_lft forever preferred_lft forever
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN gro                                                 up default qlen 1000
    link/none
    inet 10.66.66.1/24 scope global wg0
       valid_lft forever preferred_lft forever
    inet6 fd42:42:42::1/64 scope global
       valid_lft forever preferred_lft forever
=======================================================

ip r

=======================================================
nick@myhost:~$ ip r
default via 10.0.0.1 dev ens3 proto static metric 20 onlink
10.66.66.0/24 dev wg0 proto kernel scope link src 10.66.66.1
nick@myhost:~$
=======================================================

ip -6 r

=======================================================
nick@myhost:~$ ip -6 r
::1 dev lo proto kernel metric 256 pref medium
2a03:XX:XX::5ba dev ens3 proto kernel metric 256 pref medium
2a03:XX:XX::5b8/125 dev ens3 proto kernel metric 256 pref medium
fd42:42:42::/64 dev wg0 proto kernel metric 256 pref medium
default via 2a03:XX:XX::5b9 dev ens3 proto static metric 10 onlink pref medium
=======================================================

ip neigh

=======================================================
nick@myhost:~$ ip neigh
10.0.0.1 dev ens3 lladdr 02:00:00:00:00:01 REACHABLE
2a03:XX:XX::5b9 dev ens3  FAILED
=======================================================

mtr google.com -6

=======================================================
Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. (no route to host)
=======================================================



Последнее исправление: Nick1 (всего исправлений: 1)

Ответ на: комментарий от Pinkbyte

Вот, что отвечает:

nick@myhost:~$ sudo tcpdump -i ens3 -nn ip6
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
18:38:51.596284 IP6 2a03:XX:XX::5ba > ff02::1:XX:5b9: ICMP6, neighbor solicitation, who has 2a03:XX:XX::5b9, length 32
1 packets captured
1 packets received by filter
0 packets dropped by kernel
Nick1
() автор топика
Ответ на: комментарий от Spider55

Здравствуйте.

а зачем 2a03:XX:XX::5ba/128 ? Де ещё и с такой маской...

Это я просто экспериментировал и пробовал различные варианты... Если этот адрес убрать, то тоже ничего не изменится...

=======================

P.S. Вопрос остаётся открытым по поводу IPv6 (сеть так и не работает)!..

Nick1
() автор топика
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP gr                                                 oup default qlen 1000
    link/ether 52:54:00:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 45.80.XX.XX/32 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 2a03:XX:XX::5ba/128 scope global
       valid_lft forever preferred_lft forever
    inet6 2a03:XX:XX::5b8/125 scope global
       valid_lft forever preferred_lft forever

куда делся link local адрес на интерфейсе?

ivlad ★★★★★
()
Ответ на: комментарий от Pinkbyte

если IPv6 на этом интерфейсе включен

Точно включён и выделена мне подсеть (/125).

его должна сама система назначать

Тогда подскажите, пожалуйста, как заставить систему его заново назначить???

Nick1
() автор топика
Ответ на: комментарий от Nick1

2a03:XX:XX::5b8/125 - это галиматья. Если тебе роутится эта сетка, то первый легитимный адрес будет 2a03:XX:XX::5b9/125. И все это вместе не отвечает на вопрос что у тебя должен быть легитимный ipv6 адрес на который роутится сетка 2a03:XX:XX::5b8/125 и, конечно, легитимный гейт для этого адреса. Пока что у тебя каша вместо головы.

В терминах ipv4 тебе роутится сетка 192.168.0.0/29. И ты радостно указываешь шлюз - 192.168.0.1 (???) сам в себя ??? Это сеть для твоего внутреннено периметра. Для того, чтобы это работало, тебе надо быть участником внешней сети между тобой и провайдером. Т.е. нужно еще 2 параметра - валидный ipv6 адрес и гейт.

Ну и если у тебя 6to4 и 4to6 то ты вообще все не так делаешь.

Anoxemian ★★★★★
()
Последнее исправление: Anoxemian (всего исправлений: 2)
Ответ на: комментарий от Anoxemian

Пока что всё также не работает... Что ещё нужно проверить/сделать ???

Так и указываю в netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      dhcp6: no
      addresses:
        - 45.80.XX.XX/32
        - 2a03:XX:XX::5ba/125
      nameservers:
        addresses:
        - 1.1.1.1
        - 8.8.8.8
        - 2606:4700:4700::1111
        - 2001:4860:4860::8888
      routes:
        - to: 0.0.0.0/0 # default
          via: 10.0.0.1
          metric: 200
          on-link: true
        - to: ::/0 # default
          via: 2a03:XX:XX::5b9
          metric: 100
          on-link: true

Nick1
() автор топика
Ответ на: комментарий от Nick1

А у тебя, кстати, netplan try то не ругается? Я бы так записал:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      dhcp6: no
      addresses:
        - 45.80.XX.XX/32
        - 2a03:XX:XX::5ba/125
      gateway4: 10.0.0.1
      gateway6: 2a03:XX:XX::5b9
      nameservers:
        addresses:
          - 1.1.1.1
          - 8.8.8.8
          - 2606:4700:4700::1111
          - 2001:4860:4860::8888
      routes:
        - to: 10.0.0.1
          scope: link
        - to: 2a03:XX:XX::5b9
          scope: link
Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

2a03:XX:XX::5b8/125 - это галиматья. Если тебе роутится эта сетка, то первый легитимный адрес будет 2a03:XX:XX::5b9/125.

нет. В IPv6 нет «номера сети» и броадкаста, все адреса используемы.

ivlad ★★★★★
()
Ответ на: комментарий от Nick1

Подскажите, пожалуйста, как правильно вычислить (подсчитать) его через терминал и добавить в интерфейс «ens3»…

Я бы начал с проверки того, что ipv6 включен в переменных ядра:

sysctl -a |grep ipv6

и посмотреть, не отключено ли там что-то.

Потом загрузиться без настроенного IPv6 и посмотреть на настройки интерфейса.

Потом поднять запустить в одном окне tcpdump -i ens3 -nn ip6, а в другом поднять IPv6 адрес:

ip address add 2a03:XX:XX::5ba/125 dev eth0

и посмотреть, сработал ли ND. В настройках интерфейса должно быть что-то типа

ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet6 2400:6180:0:d0::1157:5001/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::74d2:e4ff:fede:2590/64 scope link
       valid_lft forever preferred_lft forever

Вот тут fe80::74d2:e4ff:fede:2590 - это link-local, у него scope link.

Если ND сработал, попробовать пингануть гейт,

ping -6 2a03:XX:XX::5b9

если не сработал, что-то не так с поддержкой IPv6 в ОС, и нужно копать там.

Провайдеру, конечно, нужно руки оторвать за /125.

ivlad ★★★★★
()
Ответ на: комментарий от ivlad

to Anoxemian:

А у тебя, кстати, netplan try то не ругается? Я бы так записал:

Нет, не ругается. (я обычно и стараюсь пробовать сначала через «sudo netplan try») В вашем конфиге написано gateway4 и gateway6, он предупреждает только, что это устаревшая конструкция…

Видимо, дело не в netplan…

============================

to ivlad:

Я бы начал с проверки того, что ipv6 включен в переменных ядра:

sysctl -a |grep ipv6

Везде IPv6 включен:

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.ens3.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.wg0.disable_ipv6 = 0

Потом поднять запустить в одном окне tcpdump -i ens3 -nn ip6, а в другом поднять IPv6 адрес: sudo ip address add 2a03:XX:XX::5ba/125 dev ens3

sudo tcpdump -i ens3 -nn ip6

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:29:07.970574 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 4 group record(s), length 88
11:29:08.410633 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 4 group record(s), length 88
11:29:08.858577 IP6 :: > ff02::1:ff00:5ba: ICMP6, neighbor solicitation, who has 2a03:XX:XX::5ba, length 32
11:29:09.894564 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
11:29:10.202794 IP6 2a03:XX:XX::5ba.5353 > ff02::fb.5353: 0*- [0q] 2/0/0 (Cache flush) PTR myhost.local., (Cache flush) AAAA 2a03:XX:XX::5ba (138)
11:29:10.554585 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
11:29:11.060192 IP6 2a03:XX:XX::5ba.5353 > ff02::fb.5353: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
11:29:12.449323 IP6 2a03:XX:XX::5ba.5353 > ff02::fb.5353: 0*- [0q] 2/0/0 (Cache flush) PTR myhost.local., (Cache flush) AAAA 2a03:XX:XX::5ba (138)
11:29:15.062656 IP6 2a03:XX:XX::5ba.5353 > ff02::fb.5353: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
11:29:23.071199 IP6 2a03:XX:XX::5ba.5353 > ff02::fb.5353: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
11:29:39.076342 IP6 2a03:XX:XX::5ba.5353 > ff02::fb.5353: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
11:30:02.248222 IP6 2a03:XX:XX::5ba > ff02::2: ICMP6, router solicitation, length 16
11:30:11.105814 IP6 2a03:XX:XX::5ba.5353 > ff02::fb.5353: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
^C
13 packets captured
13 packets received by filter
0 packets dropped by kernel

и посмотреть, сработал ли ND. В настройках интерфейса должно быть что-то типа

Вы имеете в виду под ND - network discovery???

ip a

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 45.80.XX.XX/32 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 2a03:XX:XX::5ba/125 scope global
       valid_lft forever preferred_lft forever

если не сработал, что-то не так с поддержкой IPv6 в ОС, и нужно копать там.

Почему-то автоматически не добавляется Link-Local. Подскажите, пожалуйста, тогда как добавить правильный Link-Local на интерфейс ens3 ???

Провайдеру, конечно, нужно руки оторвать за /125.

К сожалению, с этим ничего не поделаешь…

Nick1
() автор топика