Мост Yggdrasil ↔ LAN на Windows

(на примере Windows Server 2012 R2).

По мотивам HowToYgg статей «Как подключиться к Yggdrasil, не устанавливая его клиент на устройство» и «Адрес из подсети 300::/64».



Мост Yggdrasil ↔ LAN позволяет получить доступ к сети Yggdrasil устройствам, на которых клиент не установлен, объединив вашу домашнюю IPv6-сеть с глобальной подсетью вашего узла Yggdrasil Network и, соответственно, всей Ygg-сетью целиком. Пример частный, но принципы применимы почти везде.

Предполагается, что протокол IPv6 на LAN-интерфейсе включен, установлен Yggdrasil, добавлены публичные пиры и есть факт корректной работы Yggdasil-сети.

Для удобства рекомендуется добавить путь к yggdrasilctl.exe в переменную PATH. Если не хотите — запускайте команды из каталога установки Yggdrasil.

1. Узнаём IPv6-адрес и подсеть Yggdrasil.

В PowerShell от имени администратора:

yggdrasilctl getSelf

Пример вывода:

Build name:             yggdrasil
Build version:          #Ваша версия
IPv6 address:           200:aaaa:bbbb:cccc:XXXX:XXXX:XXXX:XXXX
IPv6 subnet:            300:aaaa:bbbb:cccc::/64
Public key:             #Ваш публичный ключ

Разбираем:

Build name:             yggdrasil

В конфигурационном файле Yggdrasil (yggdrasil.conf) есть параметр IfName. Именно он определяет имя сетевого интерфейса, который создаёт Yggdrasil в Windows. По умолчанию это просто «Yggdrasil», но вы можете изменить название на любое, например: «Ygg0», «Mesh6», «HyperLAN» или другое в рамках ANSI. Это важно, потому что все дальнейшие команды PowerShell опираются на факт того, как интерфейс называется реально. Если в вашем конфиге имя изменено, то и в командах упоминающих действительные сетевые имена типа:

Set-NetIPInterface -InterfaceAlias "Yggdrasil" -Forwarding Enabled

нужно будет подставить своё значение, например:

Set-NetIPInterface -InterfaceAlias "Ваше название" -Forwarding Enabled

В данной статье используются стандартные имена «Yggdrasil» и «Ethernet» для LAN, чтобы избежать путаницы и сделать примеры универсальными.

Продолжаем разбираться: 200:aaaa:bbbb:cccc:XXXX:XXXX:XXXX:XXXX — индивидуальный адрес вашей Yggdrasil-машины. 300:aaaa:bbbb:cccc::/64 — подсеть, которую мы и будем раздавать клиентам LAN. Это ваша «внутренняя Ygg-подсеть».

Скопируйте значение IPv6 subnet — оно потребуется позже.

2. Идентификация имён сетевых интерфейсов Yggdrasil и LAN.

Через GUI: Панель управления → Сеть и Интернет → Центр управления сетями → Изменение параметров адаптера или в powershell:

netsh interface ipv6 show interfaces

Ищем строки примерно такого вида:

31           0       65535  connected     Yggdrasil
12          20        1500  connected     Ethernet

Yggdrasil — виртуальный интерфейс самого Yggdrasil, а Ethernet (или другое имя) - ваша LAN. MTU можно запомнить, но это не критично — главное знать имена интерфейсов. Эти два имени обязательно понадобятся далее при включении IPv6-форвардинга и назначении адреса подсети 300::/64.

3. Включаем IPv6-маршрутизацию в Windows.

По умолчанию Windows не маршрутизирует IPv6-пакеты, поэтому включаем эту функцию. Нас интересуют два ключа в реестре из:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters

DisabledComponents = 0 — включает полный IPv6-стек без ограничений.

EnableICSIPv6 = 1 — разрешает Windows действовать как IPv6-маршрутизатор при использовании Internet Connection Sharing.

Создаём параметры при необходимости в regedit или powershell-командами:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisabledComponents" -PropertyType DWord -Value 0 -Force
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "EnableICSIPv6" -PropertyType DWord -Value 1 -Force

Примечание: На Windows Server 2012 R2 обычно требуется только DisabledComponents=0.

4. Включаем IPv6-Forwarding на интерфейсах

Выполняем:

Set-NetIPInterface -InterfaceAlias "Yggdrasil" -Forwarding Enabled
Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled

Проверяем:

Get-NetIPInterface | Select InterfaceAlias, Forwarding

Вывод

Yggdrasil   Enabled
Ethernet    Enabled

говорит о верной настройке.

5. Проверяем общие IPv6-настройки.

netsh interface ipv6 show global

Здесь особого действия не требуется — вывод носит справочный характер.

6. Разрешаем форвардинг на уровне интерфейса netsh.

netsh interface ipv6 set interface "Yggdrasil" forwarding=enabled
netsh interface ipv6 set interface "Ethernet" forwarding=enabled

7. Назначаем LAN-интерфейсу адрес из вашей подсети 300::.

Используем записанное ранее значение подсети: 300:aaaa:bbbb:cccc::/64 и назначаем LAN-интерфейсу адрес, например ::a из GUI, либо в powersell:

netsh interface ipv6 add address "Ethernet" "300:aaaa:bbbb:cccc::a"

Префикс: 64

Важно: нельзя использовать адрес, который выводится в строке из yggdrasilctl getSelf: IPv6 address: 200:aaaa:bbbb:cccc:XXXX:XXXX:XXXX:XXXX - он уже занят самим Ygg-нодом и находится в диапазоне 200:.

Замечание: Интернет (WAN) и LAN на Windows-мосте обязательно должны быть разными интерфейсами. Интерфейс с подсетью 300::/64 — это чисто внутренняя сеть. Интернет, через который Yggdrasil подключается к пирам, должен приходить через другой сетевой адаптер. Если интернет приходит в эту же LAN-сеть, Windows может перепутать маршрутизацию и попытаться отправлять Ygg-трафик обратно в LAN, что приводит к полной неработоспособности моста. Сам факт корректной маршрутизации возможен даже и при таких условиях, однако потребует дополнительных сведений о конфигурации вашей сети, знаний и опыта в маршрутизации.

Команды:

netsh interface ipv6 show addresses "Ethernet"
netsh interface ipv6 show addresses "Yggdrasil"

расскажут вам дополнительные подробности. Если все действия совершены верно, Windows готов выполнять роль моста Yggdrasil ↔ LAN.

8. Настройка клиентов LAN.

На каждом клиентском устройстве указываются:

IPv6-адрес: 300:aaaa:bbbb:cccc::b (или любой другой в этой подсети)

Префикс: 64

Основной шлюз: 300:aaaa:bbbb:cccc::a (адрес вашего Windows-моста)

9. Проверка.

С любого устройства LAN:

ping любой:узел:Yggdrasil

или откройте в браузере Ygg-сайт по адресу вида:

http://[300:....]

http://[200:....]

например http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]

Если всё работает — мост настроен.

Стоит отметить, что разворачивая мост, вы по сути выводите всю вашу LAN в глобальную IPv6-среду Yggdrasil. И даже если у вас дома всё под контролем помните, что теперь локальные машины и сам сетевой мост - часть общей yggdrasil-сети без сквозного шифрования. Если сомневаетесь в добросовестности абсолютно всех пользователей Yggdrasil Network или имеете индивидуальные требования к сетевой безопасности - есть смысл настроить фильтрацию в брандмауэре Windows или на внешнем маршрутизаторе согласно вашим нуждам.

Заключение

Описанный метод успешно работает у меня в домашней сети, где шлюзом выступает Windows Server 2012 R2. Аналогичный подход применим ко всем версиям Windows, поддерживающим PowerShell и запуск Yggdrasil, а также полезен как общее введение в IPv6-маршрутизацию.

Выражаю благодарность Microsoft, OpenAI, HowToYgg wiki, разработчикам и сообществу Yggdrasil Network.

Успехов в настройках, господа сетевые администраторы!

Только авторизованные участники могут оставлять комментарии.
yggdrasil/yggdrasi-lan_bridge_on_windows.txt · Последнее изменение: 2025/12/08 22:45 — Александр
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki