News:

Welcome to Yggdrasil forum! It is maintained and administrated by Revertron, you can ask me questions in Telegram, Matrix and Fediverse.
This forum is created to provide a platform where your questions and their answers will not get lost like in all messengers, but to be available for all users for years.

Main Menu

Доступ из ygg в ipv4 сеть.

Started by ufm, February 17, 2022, 06:54:38 AM

Previous topic - Next topic

ufm

Это в бОльшей степени для себя, что бы не забыть. Если кто-то посчитает нужным из этого сделать статью на howto.ygg будет очень хорошо, но я не возьмусь.

И так.

Первая часть - NAT64:

Берём Линукс. Я использовал Ubuntu. Думаю с Debian тоже проблем не будет. Остальное не проверял.

Устанавливаем yggdrasil как обычно.

В /etc/sysctl.conf добавляем
Quotenet.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

Скачиваем и устанавливаем jool с официального сайта: https://www.jool.mx/en/download.html

Создаём конфигурационный файл /etc/jool/jool.conf
Quote
{
        "comment": "Configuration for the systemd NAT64 Jool service for yggdrasil.",

        "instance": "default",
        "framework": "netfilter",

        "global": {
                "comment": "Sample pool6 prefix",
                "pool6": "3xx:xxxx:xxxx:xxxx:ff::/96",
                "maximum-simultaneous-opens": 100
        },

        "comment": "Sample pool4 table",
        "pool4": [],

        "bib": []
}

xxxx меняем на адреса из yggdrasil.

далее всё как обычно - systemctl enable jool; systemctl restart jool

Делаем с любой ygg ноды ping 3xx:xxxx:xxxx:xxxx:ff::8.8.8.8 и наслаждаемся. В процессе наслаждения внезапно понимаем, мы только что сделали доступную всем подряд дырку через ygg в белую сеть. Что бы не пришёл страшный роскомнадзор и не отвык - настраиваем файервол.
Кстати, сделав ping 3xx:xxxx:xxxx:xxxx:ff::192.168.0.1 (или что там у вас) понимаем что это может быть дырка не только наружу но и в уютную локалочку.

Вторая часть - DNS64

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

Но тут есть три проблемы:

  • Обычные DNS сервера с поддержкой DNS64 работают не совсем так как нам нужно. А именно - они прекрасно умеют трансляцию простых A записей, но, вполне обоснованно, считают, что транслировать существующие AAAA записи не нужно. Если кто нибудь разберётся как это сделать в powerdns, bind или еще каком DNS сервере - будет очень хорошо.
  • Автор популярного в наших кругах alfis - ленивая жопа очень занятой человек, и за пол года так и не нашёл время встроить поддержку DNS64 в свой отличный (без шуток) DNS.
  • https://github.com/ufm/yggdns64 Но его автор - ленивая жопа очень занятой человек и поэтому написать на коленке dns64 он смог, а заняться редистрибуцией ему лень. Поэтому сборкой под свою платформу придётся заниматься самому.

Максимум на что меня хватило - могу поделиться готовым /etc/systemd/system/yggdns64.service
Quote
[Unit]
Description=yggdns64
Wants=network.target
After=network.target

[Service]
SyslogIdentifier=yggdns64
WorkingDirectory=/tmp
ExecStart=/usr/local/bin/yggdns64 -file /etc/yggdns64.yml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target

Собственно на этом всё.

salvare

Примерно то же самое можно сделать с помощью туннеля (GRE, IPIP etc.). Всё нативно, в ядре.
Ну, разве что, туннель на обоих концах настраивать нужно, и в случае с Windows это, наверное, можно, но ХЗ как. В Linux - без проблем.

loskiq

можно сделать проще - wireguard over yggdrasil