LINUX.ORG.RU
решено ФорумAdmin

Gentoo, 6to4 - полурабочий коннект

 ,


0

1

Имеется VPS с установленной Gentoo и /128-подсетью IPv6 (то бишь, всего одним IPv6-адресом). Из-за недостатка адресов решил прикрутить туннельного брокера (в данном случае he.net), действовал согласно инструкции с гентувики.
Вроде бы всё настроилось, интерфейс поднялся, но полноценной работы не наблюдается:

  • С самого VPS всевозможные IPv6-хосты пингуются без каких-либо проблем, traceroute также проходит.
  • Попытки сделать что-либо, кроме пинга и трассировки (например, выгрузить страницу через curl), от имени обычного пользователя приводят к Permission denied. Из-под рута всё в порядке.
  • Снаружи (с домашнего ПК) выданные брокером адреса не пингуются без какого-либо выхлопа, выгрузить что-либо с поднятого на интерфейсе вебсервера тоже не выходит (соединение закрывается по таймауту). Вероятно, это всё связано с предыдущим пунктом, так как тот же nginx крутится из-под своего пользователя.

В чём может заключаться причина подобного поведения и как это починить?

Справочная информация:

  • /etc/conf.d/net:
    config_eth0="XX.XX.XX.XX/32 xxxx:xxxx:xxxx:xxxx::xxxx/128"
    routes_eth0="XX.XX.XX.1 dev eth0
    xxxx:xxxx:xxxx:xxxx::1 dev eth0
    default via XX.XX.XX.1
    default via xxxx:xxxx:xxxx:xxxx::1"
    dns_servers_eth0="1.1.1.1"
    
    iptunnel_sit1="mode sit remote XXX.XXX.XXX.XXX local XX.XX.XX.XX ttl 64"
    depend_sit1="net.eth0"
    config_sit1="2001:xxxx:xxxx:xxxx::2/64"
    routes_sit1="default via 2001:xxxx:xxxx:xxxx::1 dev sit1"
    mtu_sit1="1280"
    RC_NEED_sit1="net.eth0"
    
  • Выхлоп ifconfig для eth0 и sit1 соответственно:
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet XX.XX.XX.XX  netmask 255.255.255.255  broadcast 0.0.0.0
            inet6 fe80::xxxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>
            inet6 xxxx:xxxx:xxxx:xxxx::xxxx  prefixlen 128  scopeid 0x0<global>
            ether fa:16:3e:d6:b5:c1  txqueuelen 1000  (Ethernet)
            RX packets 27351  bytes 6565250 (6.2 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 32545  bytes 66334636 (63.2 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    sit1: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1280
            inet6 2001:xxxx:xxxx:xxxx::2  prefixlen 64  scopeid 0x0<global>
            inet6 fe80::xxxx:xxxx  prefixlen 64  scopeid 0x20<link>
            sit  txqueuelen 1000  (IPv6-in-IPv4)
            RX packets 16  bytes 1376 (1.3 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 4  bytes 416 (416.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • В tcpdump все неудачные запросы заканчиваются на ICMP6, destination unreachable, unreachable prohibited.


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

Имеется VPS с установленной Gentoo

VPS контейнерный(LXC/OpenVZ/Docker/...) или полноценный(KVM/VMWare/...)? В контейнерном может быть побанено много чего хостером.

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

Не совсем понял вопрос. Настройка сети стандартная, каких-либо дополнительных правил фаерволла не вносил, ip6tables пуст.

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

По умолчанию IPv6 идёт на eth0, но при ручном задании интерфейса (-I у ping, --interface у curl и т.д.) от рута всё работает.

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

Ну все нормально, работает так как настроено, ошибок в поведении нет. :)

В чём может заключаться причина подобного поведения

Пакет с адресом he отправляется по маршруту через прова vds, он и не пропускает(и правильно делает) чужой пакет.

и как это починить?

Используйте pbr, настраивается так же как и для v4. Вариант простой:

ip -6 route add default dev sit1 table 500
ip -6 rule add from 2001:xxxx:xxxx:xxxx::2 table 500
ip -6 rule add from $HE_NET table 500
$HE_NET - сеть которую вам выделил he

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

Работает! Правда, пришлось пересобрать ядро со включённым CONFIG_IPV6_MULTIPLE_TABLES. Большое спасибо.

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

Правда, пришлось пересобрать ядро со включённым CONFIG_IPV6_MULTIPLE_TABLES.

Ага, бывает такое. В слаке тоже из каробки выключено.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.