Jump to content

Recommended Posts

Posted
14 часов назад, reddaddy сказал:

keenos 4.3А12

Подскажите, если ipv6 с /48 роутер получает по туннелю 6in4 от брокера, как раздать ipv6 клиентам подключенным к роутеру по wireguard? Хочу с мобильного ходить по ipv6 через домашнего провайдера.

Возможно такое вообще реализовать в настоящее время?

Попробуйте и узнаем. Для начала на сервере пропишите подсеть ipv6 и адрес ipv6 сервера. У каждого клиента пропишите ipv6 из этой подсети.

Далее для сервера, каждый ip клиента добавьте в ndp proxy

ip -6 neigh add proxy 2a00:5940:00:91 dev ens3
ip -6 neigh add proxy 2a00:5940:00:92 dev ens3
ip -6 neigh add proxy 2a00:5940:00:93 dev ens3

 

Posted (edited)
12 часов назад, avn сказал:

Я раздавал ipv6 клиентам Wireguard (пирам) путем прописывания ipv6 адреса у каждого клиента.

Не совсем то, что я спрашивал.

У меня на VPS /48 от HE.

Клиенты WG настроенные вручную, включая и кинетик отлично работают. У всех /64

Но Кинетик отказывается делигировать свою сетку клиентам.

Костыль AdvDefaultLifetime руками даёт эффект, но ровно до изменения статуса любого интерфейса. Дёрнул LAN кабель - всё в radvd.conf обновляется.

То есть, либо городить какой-то hook с костылём, либо надеяться что разрабы добавят возможность ходить в ipv6 через Wireguard не только роутеру, но и его клиентам.

 

UPD

Думал, может префикс кинетику не нравится. Сделал ему на входе /52 - не помогло.

До чего смог докопаться:

  1. ip6tables -A FORWARD -j ACCEPT - само собой.
  2. /var/run/radvd.conf меняем:
    1. В префиксе:
      1. AdvAutonomous off; на on - позволит дать клиентам адреса
      2. AdvPreferredLifetime 0; на значение в минутах (1440) - не совсем понял на кого влияет - на клиента или на роутер. Но без этой настройки на клиентах ipv6 хоть и назначен, но не работает.
    2. В общей части  AdvDefaultLifetime 0; на значение в минутах (1440) - позволит назначить роутер маршрутизатором ipv6 по умолчанию для клиентов.
  3. /var/run/radvd.conf менять придётся после КАЖДОГО изменения статуса КАЖДОГО интерфейса. Во всяком случае локального - точно.
  4. Ну из killall -s HUP radvd
  5. Имеем нативный ipv6 на клиентах кинетика по цепочке: Клиент->Роутер->(wg)->VPS->(tun6in4)->HE->IPV6 internet. Ровно до изменения статуса какого-либо интерфейса.

 

Осталось автоматизировать. По идее, если IPV6 получаем только статичные - можно просто сделать копию radvd.conf и подкладывать её перед перезапуском radvd. Но если есть ещё провайдерский ipv6 то нужно менять в файле как то

А самое интересное что для 6in4 это всё отлично работает. Только вот мой пров включив нативный ipv6 похоже, перестал пропускать 6in4 трафик

Edited by Mr.Weegley
  • Upvote 1
Posted (edited)
17 часов назад, Mr.Weegley сказал:

Не совсем то, что я спрашивал.

У меня на VPS /48 от HE.

Клиенты WG настроенные вручную, включая и кинетик отлично работают. У всех /64

Но Кинетик отказывается делигировать свою сетку клиентам.

Костыль AdvDefaultLifetime руками даёт эффект, но ровно до изменения статуса любого интерфейса. Дёрнул LAN кабель - всё в radvd.conf обновляется.

То есть, либо городить какой-то hook с костылём, либо надеяться что разрабы добавят возможность ходить в ipv6 через Wireguard не только роутеру, но и его клиентам.

 

UPD

Думал, может префикс кинетику не нравится. Сделал ему на входе /52 - не помогло.

До чего смог докопаться:

  1. ip6tables -A FORWARD -j ACCEPT - само собой.
  2. /var/run/radvd.conf меняем:
    1. В префиксе:
      1. AdvAutonomous off; на on - позволит дать клиентам адреса
      2. AdvPreferredLifetime 0; на значение в минутах (1440) - не совсем понял на кого влияет - на клиента или на роутер. Но без этой настройки на клиентах ipv6 хоть и назначен, но не работает.
    2. В общей части  AdvDefaultLifetime 0; на значение в минутах (1440) - позволит назначить роутер маршрутизатором ipv6 по умолчанию для клиентов.
  3. /var/run/radvd.conf менять придётся после КАЖДОГО изменения статуса КАЖДОГО интерфейса. Во всяком случае локального - точно.
  4. Ну из killall -s HUP radvd
  5. Имеем нативный ipv6 на клиентах кинетика по цепочке: Клиент->Роутер->(wg)->VPS->(tun6in4)->HE->IPV6 internet. Ровно до изменения статуса какого-либо интерфейса.

 

Осталось автоматизировать. По идее, если IPV6 получаем только статичные - можно просто сделать копию radvd.conf и подкладывать её перед перезапуском radvd. Но если есть ещё провайдерский ipv6 то нужно менять в файле как то

А самое интересное что для 6in4 это всё отлично работает. Только вот мой пров включив нативный ipv6 похоже, перестал пропускать 6in4 трафик

А зачем это все, если есть нативный ipv6 от провайдера? Будет работать цепочка без проблем и ната (native ipv6-> wg ipv6(vps) -> ipv6 vps)

Edited by avn
Posted (edited)
7 часов назад, avn сказал:

А зачем это все, если есть нативный ipv6 от провайдера? Будет работать цепочка без проблем и ната (native ipv6-> wg ipv6(vps) -> ipv6 vps)

Для "выборочного роутинга" в dual stack (если Вы понимаете о чём я😎)

Upd

Только через время понял, кажется, Вашу мысль. Надо проверить.

Edited by Mr.Weegley
Posted (edited)
Только что, Mr.Weegley сказал:

Для "выборочного роутинга" в dual stack (если Вы понимаете о чём я😎)

Upd

Только через время понял, кажется, Вашу мысль. Надо проверить.

У меня так работает на версии 4.3a7. Нативный ipv6 - 2a05::, WireGuard VPS - 2a09::. Ip (2a09::) прописан только на wg интерфейсе. У клиентов только нативные ип (2a05::).

image.png.9367298c842e84bb4596c4926b4323ec.png

Трейс через провайдера

image.png.385fad64619bbfa9eef4cba6623f619e.png

Трейс еще через другой WG (wg2 ipv6 - 2a12::)

image.png.9c699c165134e8051ef9ec3eb301136a.png

ipconfig

image.png.f4aeec6600f2da02b26e72e8ee35a2ec.png

 

Edited by avn
Posted

Т.е. настройка примерно такая

Спойлер

Server:

[Interface]
Address = 172.16.97.90/29, 2a12::90/126
ListenPort = 8888
PrivateKey = GFvEaXzng=
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip -6 neigh add proxy 2a12::91 dev ens3; 
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip -6 neigh del proxy 2a12::91 dev ens3;

### Client ZyWG
[Peer]
PublicKey = 5/99C9J0lU=
AllowedIPs = 172.16.97.91/32, 2a12::91/128

Client:

[Interface]
PrivateKey = QMXP2UltVrbI8XhHR209Es=
Address = 172.16.97.91/32, 2a12::91/128

[Peer]
PublicKey = rRMGSMqnSg=
PresharedKey = gBdBmI=
Endpoint = wg.sample.com:8888
AllowedIPs = 0.0.0.0/0, 2000::/3, 200::/7
PersistentKeepalive = 25

Server:

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp=1
net.ipv6.conf.ens3.forwarding=1

 

 

Posted
1 час назад, avn сказал:

настройка примерно такая

эта настройка для получения нативного ipv6 клиентами локальной сети роутера через wg, а если надо наоборот через wg прокинуть нативный ipv6 удаленнному клиенту?

пробовал настраивать по аналогии, присваивая ipv6 туннелю. но в таком порядке проброс не идет.

возможна ли вообще такая настройка?

Posted
8 часов назад, reddaddy сказал:

эта настройка для получения нативного ipv6 клиентами локальной сети роутера через wg, а если надо наоборот через wg прокинуть нативный ipv6 удаленнному клиенту?

пробовал настраивать по аналогии, присваивая ipv6 туннелю. но в таком порядке проброс не идет.

возможна ли вообще такая настройка?

Возможна. Настройка для интерфейса wg для ipv6 приведена постом выше как для сервера wg, так и для клиента wg.

Posted (edited)
1 час назад, avn сказал:

Возможна.

я имел ввиду ситуацию когда нет никакого VPS. есть роутер, он пулачает /48 от брокера по тунелю 6in4, все клиенты локальной сети|сетей этого роутера получают нативный ipv6. так же роутер выступает сервером wg соединения с мобильным телефоном. я так понял без использования ndppd прокинуть ipv6 не получится?

Edited by reddaddy
Posted
9 часов назад, reddaddy сказал:

я имел ввиду ситуацию когда нет никакого VPS. есть роутер, он пулачает /48 от брокера по тунелю 6in4, все клиенты локальной сети|сетей этого роутера получают нативный ipv6. так же роутер выступает сервером wg соединения с мобильным телефоном. я так понял без использования ndppd прокинуть ipv6 не получится?

Попробуйте, и узнаем

Posted
В 10.01.2025 в 23:07, avn сказал:

У меня так работает на версии 4.3a7. Нативный ipv6 - 2a05::, WireGuard VPS - 2a09::. Ip (2a09::) прописан только на wg интерфейсе. У клиентов только нативные ип (2a05::).

Действительно, включил на роутере нативный IPV6 и клиенты получив его и fe80::/10 имеют доступ к ipv6 и через натив и через туннель.

ipconfig.io показывает ipv6 клиента из подсети 2001 от HE, НО он не пингуется ни просто извне, ни даже с роутера.

В общем, получается такой себе IP6NAT... Но хоть так...

Posted (edited)
1 час назад, Mr.Weegley сказал:

Действительно, включил на роутере нативный IPV6 и клиенты получив его и fe80::/10 имеют доступ к ipv6 и через натив и через туннель.

ipconfig.io показывает ipv6 клиента из подсети 2001 от HE, НО он не пингуется ни просто извне, ни даже с роутера.

В общем, получается такой себе IP6NAT... Но хоть так...

Ната нету, если вы его на vps не настроили. На vps нужно настроить ndp proxy.

 

P/S/

Посмотрел нынче на кинетик nat поднят. Раньше не было и пакеты вроде как ходили.

Edited by avn
Posted
В 30.12.2024 в 10:29, Le ecureuil сказал:

Вообще все уже есть в стандартной поставке, только настраивается неочевидно.

Просто так NAT66 включить не выйдет, поскольку нужно в локалку раздать какой-то префикс. Потому на Wireguard0 через команду interface Wireguard0 ipv6 prefix вешаете prefix из site-local сети (fd00::/8), он будет роздан в локалку и автоматически включится NAT66. Если же префикс будет "реальный", то NAT66 не включится.

Проверил. 4.3.a13 префикс не раздается в сеть клиентам, nat не выключился.

Posted

Так, ситуацию обсудили.

Вкратце: нужно реальный префикс на Wireguard, а не site-local. Можете взять что-то из 3000::/8. Остальное в силе и все должно заработать "само".

Posted (edited)
1 час назад, Le ecureuil сказал:

Так, ситуацию обсудили.

Вкратце: нужно реальный префикс на Wireguard, а не site-local. Можете взять что-то из 3000::/8. Остальное в силе и все должно заработать "само".

Там же реальный префикс 2a12::/64

Edited by avn
Posted
21 час назад, avn сказал:

Там же реальный префикс 2a12::/64

@Le ecureuil  Есть мысли, и еще маршрут не создается. Конфигурация была отослана скрытым сообщением выше.

(config)> ipv6 route 2a12:0000:0000:9700::/56 Wireguard0 2a12:0000:0000:9700::91 auto reject
Network::Ip6::RoutingTable error[4980739]: invalid route format.

 

Posted
2 часа назад, avn сказал:

@Le ecureuil  Есть мысли, и еще маршрут не создается. Конфигурация была отослана скрытым сообщением выше.

(config)> ipv6 route 2a12:0000:0000:9700::/56 Wireguard0 2a12:0000:0000:9700::91 auto reject
Network::Ip6::RoutingTable error[4980739]: invalid route format.

 

Ну тут я могу только поддержать ядро, потому что маршрут глупый. Как же так может быть, что шлюз лежит в префиксе назначения? В таком случае вообще шлюз указывать не нужно, попробуйте без него.

Posted (edited)
В 14.01.2025 в 16:20, avn сказал:

Ната нету, если вы его на vps не настроили. На vps нужно настроить ndp proxy.

 

P/S/

Посмотрел нынче на кинетик nat поднят. Раньше не было и пакеты вроде как ходили.

ndp proxy на vps работает. Вернее, запущен. Я так и не понял правильно ли я там конфиг написал и, соответственно, работает ли оно вообще

Конфиг ndppd на vps:

Спойлер
proxy wg0 {
    router yes
    rule 2001:470:54a3::/48 {
        static
        }
}

А заодно, он запущен и на кинетике, со следующим конфигом:

Спойлер
proxy br0 {

   router yes

   rule 2001:470:54a3:700::/56 {

      static

   }
}

 

 

всё это каким то образом работает в одну сторону. Собственно, для моих нужд маршрутизация ipv6 в сторону клиентов и не нужна, а даже и вредна так как работает сидбокс, но в целом как то неполноценно получается...

UPD

Поотключал везде ndppd, заодно выяснив, что оно не правильно, по ходу настроено было. Поправил radvd, клиент получил свой ipv6 из подсети назначенной туннелю. Ходит в ipv6 по маршруту роутер->(wg)->vds->tunnelbroker->ipv6

Причем, ходит, даже имея только link-local и провайдерский адреса.

И ipv6 адрес ipconfig.io показывает всегда верный.

Мистика какая то.

Клиент пингуется с роутера, но не пингуется извне.

В моём конкретном случае меня это устраивает, поскольку работает раздача торрентом, но в целом - как то неполноценно.

Edited by Mr.Weegley
добавил
Posted (edited)
1 час назад, Le ecureuil сказал:

Ну тут я могу только поддержать ядро, потому что маршрут глупый. Как же так может быть, что шлюз лежит в префиксе назначения? В таком случае вообще шлюз указывать не нужно, попробуйте без него.

(config)> ipv6 route 2a12:0000:0000:99::/64 Wireguard0 2a12:0000:0000:9700::91
Network::Ip6::RoutingTable error[4980739]: invalid route format.

Для любого маршрута. Без шлюза работает.

И второе, почему nat на префиксе 2a12::/64 поднимается и префикс не раздается?

Edited by avn
Posted (edited)
14 часов назад, avn сказал:

 

(config)> ipv6 route 2a12:0000:0000:99::/64 Wireguard0 2a12:0000:0000:9700::91
Network::Ip6::RoutingTable error[4980739]: invalid route format.

 

И второе, почему nat на префиксе 2a12::/64 поднимается и префикс не раздается?

Извиняюсь, что влезаю.

На wireguard пробовал префиксы от /48, 52, 56, 64

Не делегируется ни один вариант. Как будто вообще wg "исключён из списка доверенных"

Кажется, 6in4 делегировал, но сейчас почему-то он не поднимается (даже пакеты к брокеру не отправляет) - проверить не могу.

Edited by Mr.Weegley
  • Need more info 1
Posted
19 часов назад, avn сказал:
(config)> ipv6 route 2a12:0000:0000:99::/64 Wireguard0 2a12:0000:0000:9700::91
Network::Ip6::RoutingTable error[4980739]: invalid route format.

Для любого маршрута. Без шлюза работает.

И второе, почему nat на префиксе 2a12::/64 поднимается и префикс не раздается?

Понятия не имею, вы не выложили никаких логов и селф-тестов, гадать безсполезно.

Сейчас специально настроил WG вот в таком виде:

interface Wireguard0
    security-level public
    ip address 10.168.127.65 255.255.255.255
    ip global 65200
    ip tcp adjust-mss pmtu
    ipv6 address fd7d:76ee:e68f:a993:64d0:6132:447a:90b/128
    ipv6 prefix 3009::/64
    wireguard peer PyLCXAQT8KkM4T+dUsOQfn++hk=
        endpoint vps.org:1637
        keepalive-interval 15
        preshared-key 42Be1ev3wXJyFWAMBO9C7tuU=
        allow-ips 0.0.0.0 0.0.0.0
        allow-ips :: 0
        connect
    !
    up
!

И при включении сразу все поднялось:

(config)> show ipv6 prefixes 

           prefix: 
                 prefix: fdca:1e2:5cef::/48
              interface: 
         valid-lifetime: infinite
     preferred-lifetime: infinite
                 global: no

           prefix: 
                 prefix: 3009::/64
              interface: Wireguard0
         valid-lifetime: infinite
     preferred-lifetime: infinite
                 global: yes

В винде в локальной сети тоже IPv6 появился и без проблем работает:

Untitled.jpg

 

Важно!

Для работы IPv6 обязательно этот интерфейс должен быть самым приоритетным.

Сценарий, когда на основном WAN нет IPv6, а на резерве есть - не работает, причем осознанно, потому что приоритеты интерфейсов были специально выровнены для обоих протоколов (настройка ip global едина, и возможности выбирать на каком интерфейсе будет IPv4 главным, а на каком IPv6 - нет, только совместно).

Posted (edited)
12 минут назад, Le ecureuil сказал:

Понятия не имею, вы не выложили никаких логов и селф-тестов, гадать безсполезно.

Сейчас специально настроил WG вот в таком виде:

interface Wireguard0
    security-level public
    ip address 10.168.127.65 255.255.255.255
    ip global 65200
    ip tcp adjust-mss pmtu
    ipv6 address fd7d:76ee:e68f:a993:64d0:6132:447a:90b/128
    ipv6 prefix 3009::/64
    wireguard peer PyLCXAQT8KkM4T+dUsOQfn++hk=
        endpoint vps.org:1637
        keepalive-interval 15
        preshared-key 42Be1ev3wXJyFWAMBO9C7tuU=
        allow-ips 0.0.0.0 0.0.0.0
        allow-ips :: 0
        connect
    !
    up
!

И при включении сразу все поднялось:

(config)> show ipv6 prefixes 

           prefix: 
                 prefix: fdca:1e2:5cef::/48
              interface: 
         valid-lifetime: infinite
     preferred-lifetime: infinite
                 global: no

           prefix: 
                 prefix: 3009::/64
              interface: Wireguard0
         valid-lifetime: infinite
     preferred-lifetime: infinite
                 global: yes

В винде в локальной сети тоже IPv6 появился и без проблем работает:

Untitled.jpg

 

Важно!

Для работы IPv6 обязательно этот интерфейс должен быть самым приоритетным.

Сценарий, когда на основном WAN нет IPv6, а на резерве есть - не работает, причем осознанно, потому что приоритеты интерфейсов были специально выровнены для обоих протоколов (настройка ip global едина, и возможности выбирать на каком интерфейсе будет IPv4 главным, а на каком IPv6 - нет, только совместно).

Как не выкладывал. Вот скриншот

 

image.thumb.png.16240fce409d22ed7053993f64f32c62.png

Edited by avn
Posted
1 минуту назад, Le ecureuil сказал:

Думаю вопрос именно в ip global 100.

Так, если мне надо часть трафика гнать на wg ipv6 и у меня есть префикс от провайдера на eth3 и на клиентах bridge, есть адрес ipv6 на wg0, зачем мне нат и подсеть на wg0?

Posted
5 часов назад, Le ecureuil сказал:

Важно!

Для работы IPv6 обязательно этот интерфейс должен быть самым приоритетным.

 

Ну так не интересно. Тогда и весь ipv4 трафик через него пойдет, верно же?

Posted (edited)
В 17.01.2025 в 09:11, Mr.Weegley сказал:

Кажется, 6in4 делегировал, но сейчас почему-то он не поднимается (даже пакеты к брокеру не отправляет) - проверить не могу.

Сорян, недоглядел. 6in4 работает. Правда, похоже, пров его читает и блочит что приказано...

Edited by Mr.Weegley
Posted
В 17.01.2025 в 14:06, Le ecureuil сказал:
    ipv6 address fd7d:76ee:e68f:a993:64d0:6132:447a:90b/128
    ipv6 prefix 3009::/64

А почему у вас ipv6 address - fd** ?

Для ipv6 - 2606:*/128  пробовал ставить prefix и ULA и глобал (3009::/64, и fd7d::/64), результат один и тот-же. Префикс в локалку раздается, IP-шники присваиваются, при пинге с компа адрес ya.ru резолвится, ping дальше роутера не идет.

 

Posted
16 часов назад, Sano сказал:

А почему у вас ipv6 address - fd** ?

Для ipv6 - 2606:*/128  пробовал ставить prefix и ULA и глобал (3009::/64, и fd7d::/64), результат один и тот-же. Префикс в локалку раздается, IP-шники присваиваются, при пинге с компа адрес ya.ru резолвится, ping дальше роутера не идет.

 

Потому что такой адрес дает провайдер.

Сейчас nat66 включается автоматически только если стоит site-local адрес.

Posted
2 часа назад, Le ecureuil сказал:

Сейчас nat66 включается автоматически только если стоит site-local адрес.

А если global но /128, как быть? 

Логично было бы включать и для него

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.