13

Мост Yggdrasil — LAN в Windows

Серия Творчество: Музыка, инженерия, живопись, наука.

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

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

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

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

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

1. Определение IPv6-адреса, подсети и имени сетевого интерфейса Yggdrasil Network.

В 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 опираются на факт того, как интерфейс называется реально. Если в вашем yggdrasil.conf имя изменено, то и в командах упоминающих действительные сетевые имена типа:

Set-NetIPInterface -InterfaceAlias "Yggdrasil" -Forwarding Enabled

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

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

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

Примечание: Сам Build name технически не является IfName, но в рамках статьи этот вопрос рассматриваться не будет поскольку не имеет определяющего значения на результат. Главное - использовать действительные имена сетевых интерфейсов Windows.

Продолжаем разбираться:

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.

Замечание: Так как имя сетевого интерфейса Yggdrasil Network привязано к параметру IfName из yggdrasil.conf, изменение его средствами Windows (через GUI или PowerShell) нецелесообразно: оно действует только в рамках текущего запуска yggdrasil.exe и после перезапуска будет автоматически заменено на значение из IfName. Это может привести к несоответствию реального имени интерфейса и настроек netsh после, например, аварийной перезагрузки или других подобных ситуаций. Используйте только имя, указанное в IfName.

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 на интерфейсах Yggdrasil и LAN.

Выполняем:

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. Включение IPv6-Forwarding для Yggdrasil и LAN на уровне интерфейса netsh.

netsh interface ipv6 set interface "Yggdrasil" forwarding=enabled

netsh interface ipv6 set interface "Ethernet" forwarding=enabled

OK.

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-сайт по адресу видa:

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-маршрутизацию.

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

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

Лига Сисадминов

2.6K постов19K подписчика

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества