Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

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

Схема такая: PC → VPS (Ubuntu, WireGuard) → Keenetic Hero (через SIM-модем) → интернет.
IPv4 работает идеально, трафик с мака уходит наружу именно через симку.
А вот с IPv6 засада.

Что делал:

на VPS включил форвардинг IPv6 (sysctl net.ipv6.conf.all.forwarding=1), пробовал и SNAT, и MASQUERADE через ip6tables;

крутил policy-routing, fwmark и таблицы маршрутов;

на Keenetic поднимал WG-интерфейс с адресом fd00:20::30/64, VPS с fd00:20::1/64, PC с fd00:20::2/128;

на PC адрес появляется, пинг по fd00 работает, но во внешний интернет IPv6 трафик не уходит;

curl -6 ifconfig.co на маке пустой, хотя сам роутер по IPv6 наружу выходит без проблем;

пробовал разные варианты AllowedIPs (::/0 у пира VPS, фиксированные префиксы и т.д.).

По итогу получается, что IPv6 на клиенте остаётся только локальный (fd00), а наружу он не пробрасывается. Нужно, чтобы именно PC получал реальный IPv6 от симки и чтобы отпечаток в сети (IP+WebRTC) совпадал, а не шёл через VPS-адрес.

Может, кто-то уже настраивал похожую схему и подскажет, как правильно прокинуть глобальный IPv6 с Keenetic через WireGuard на клиент?

 

Spoiler

Я собираю такую схему: есть клиент (например, MacBook), он подключается по WireGuard к моему VPS в Польше. VPS нужен только как промежуточная точка. С этого VPS весь трафик дальше должен уходить по второму туннелю в Keenetic, который стоит в Польше и подключён через SIM-карту к мобильному оператору.

Идея в том, чтобы весь интернет у клиента шёл через роутер, а наружу он выходил именно через польскую SIM, чтобы IP и геолокация были не как у VPS, а как у мобильного интернета. Хочу, чтобы работал и IPv4, и IPv6 (если оператор даёт).

То есть схема примерно такая:
Клиент → VPS (WireGuard) → Keenetic (WireGuard) → SIM → Интернет.

VPS тут нужен только как хаб, чтобы я мог подключаться из разных мест и устройств.

Spoiler

@Le ecureuil

<?xml version="1.0" encoding="UTF-8"?>
<selftest xmlns="https://www.keenetic.com/ns/ndm" version="0.1">
    <!-- cat -->
    <file name="ndm:sharing-config">
        <![CDATA[
! $$$ Agent: http/rci
! $$$ Last change: Tue, 30 Sep 2025 xxxx:xxxx:xxxx:04:07 GMT
! $$$ Md5 checksum: <KEY_REDACTED>
! $$$ Model: Keenetic Hero 4G
! $$$ Username: admin
! $$$ Version: 2.06.1

system
    set net.ipv4.ip_forward 1
    set net.ipv4.neigh.default.gc_thresh1 256
    set net.ipv4.neigh.default.gc_thresh2 1024
    set net.ipv4.neigh.default.gc_thresh3 2048
    set net.ipv4.tcp_fin_timeout 30
    set net.ipv4.tcp_keepalive_time 120
    set net.ipv6.neigh.default.gc_thresh1 256
    set net.ipv6.neigh.default.gc_thresh2 1024
    set net.ipv6.neigh.default.gc_thresh3 2048
    set net.netfilter.nf_conntrack_tcp_timeout_established 1200
    set vm.overcommit_memory 0
    set vm.swappiness 60
    set vm.vfs_cache_pressure 1000
    clock timezone Europe/Vienna
    domainname WORKGROUP
    hostname Keenetic-0406
    caption default
]]>
    </file>

    <file name="ndm:interfaces-config">
<![CDATA[
interface UsbQmi0
    description "Mobile Broadband"
    security-level public
    mobile pdp ipv4v6
    ip global xxx.xxx.xxx.45
    ip name-servers <REDACTED_DNS>
    ipv6 address auto
    ipv6 prefix auto
    ipv6 name-servers auto
    up

interface Wireguard0
    description WGG-TUNA-NEW
    security-level private
    ip address xxx.xxx.xxx.12 255.255.255.0
    ip mtu 1500
    ip global <REDACTED_PRIORITY>
    ip nat loopback
    ipv6 address fd00:xxxx:xxxx::2/64
    wireguard peer <WG_PUB_1>
        endpoint <ENDPOINT_REDACTED>
        keepalive-interval 5
        allow-ips 10.20.10.0 255.255.255.0
        allow-ips fd00:xxxx:xxxx::1/128
        allow-ips fd00:xxxx:xxxx::/64
        allow-ips ::/0
        connect
    !
    up

interface Bridge0
    rename Home
    description "Home network"
    mac address 00:11:22:xx:xx:xx
    security-level private
    ip address xxx.xxx.xxx.1 255.255.255.0
    ipv6 address fd00:xxxx:abcd::1/64
    up
]]>
    </file>

    <file name="ndm:network-stat">
<![CDATA[
WAN: MobileBroadband (UsbQmi0)
    status: up
    ip: xxx.xxx.xxx.45
    ipv6: xxxx:xxxx:xxxx:abcd:1234
    signal: -77 dBm
    operator: OPERATOR
]]>
    </file>

    <file name="ndm:wireguard-config">
<![CDATA[
wireguard peer <WG_PUB_1>
    publickey = <WG_PUB_KEY_REDACTED>
    allowedips = 10.20.10.0/24, fd00:xxxx:xxxx::/64
    endpoint = <ENDPOINT_REDACTED>
]]>
    </file>

    <file name="ndm:routes">
<![CDATA[
IPv4 routing table:
    default via xxx.xxx.xxx.1 dev UsbQmi0
    10.20.10.0/24 dev Wireguard0 proto kernel scope link src xxx.xxx.xxx.12

IPv6 routing table:
    ::/0 via xxxx:xxxx:xxxx:abcd::1 dev UsbQmi0
    fd00:xxxx:xxxx::/64 dev Wireguard0 proto kernel scope link src fd00:xxxx:abcd::2
]]>
    </file>

    <file name="ndm:logs">
<![CDATA[
[info] wireguard: interface Wireguard0 up
[info] wireguard: peer <WG_PUB_1> handshake OK, endpoint <ENDPOINT_REDACTED>
[warn] ipv6: no route for fd00:xxxx:abcd:: -> attempting RA discovery
[error] dns: query timeout for resolver <REDACTED_DNS>
]]>
    </file>
</selftest>
 

 

Изменено пользователем Kentx
mac pc
  • Kentx изменил название на Не работает IPv6 через WireGuard туннель (PC → VPS → Keenetic → SIM)

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.