DNS судного дня

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DNS судного дня

Непрочитанное сообщение Olej » 31 май 2023, 14:37

Meshname – DNS судного дня
5 апр 2021
Параноики есть в каждом сообществе. Например, туристы порой превращаются в выживальщиков, постоянно готовящихся к БП – «Большому Происшествию», когда от их готовности будет зависеть жизнь родных, человечества в целом, и сохранность себя родимого. Нельзя однозначно заявить плохо это или хорошо, потому что не секрет, что БП застанет и тех, у кого не запасено 50 килограммов гречки, бензин и оружие. Среди опытных ай-тишников также развита профессиональная деформация личности, которая нередко подразумевает паранойю: тяжело спать спокойно, когда понимаешь технологии изнутри и хрупкость их бытия!
Эта статья посвящена альтернативной доменной системе, рассчитанной на случай глобальной сегментации интернета, катаклизмов, или возможных искусственных ограничений коммуникации. Не спешите с пренебрежительной ухмылкой. По аналогии с запасами выживальщика, эта информация не требует больших затрат, а в нужный момент сможет выручить!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DNS судного дня

Непрочитанное сообщение Olej » 31 май 2023, 15:10

https://howto.yggno.de/yggdrasil:dns:meshname
На данный момент в meshname используются две зоны: .meshname и .meship.

.meshname требует наличие запущенного meshnamed на сервере, IP-адрес которого необходимо определить. Позволяет использовать субдомены.

.meship - это просто закодированный IPv6-адрес, который будет возвращен локально запущенным meshnamed.
Meshname – DNS судного дня
Вся суть заключается в кодировании адреса в base32 (RFC 4648). Так как заранее известно количество байт, паддинги урезаются (заполнение в виде символов =). Обратите внимание, что кодируется не текстовая строка адреса, а его бинарное представление.
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DNS судного дня

Непрочитанное сообщение Olej » 31 май 2023, 15:18

Код: Выделить всё

olej@R420:~/2023/alt.DNS/2$ git clone https://github.com/zhoreeq/meshname.git
Клонирование в «meshname»...
remote: Enumerating objects: 376, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 376 (delta 14), reused 11 (delta 11), pack-reused 353
Получение объектов: 100% (376/376), 1.01 МиБ | 98.00 КиБ/с, готово.
Определение изменений: 100% (171/171), готово.

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname$ cd meshname
Сборка (вот так странненько для GoLAng):

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname/meshname$ make
GOARCH=$GOARCH GOOS=$GOOS go build -ldflags "-s -w" ./cmd/meshnamed
go: downloading github.com/miekg/dns v1.1.27
go: downloading golang.org/x/net v0.0.0-20190923162816-aa69164e4478
go: downloading golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe
go: downloading golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DNS судного дня

Непрочитанное сообщение Olej » 31 май 2023, 15:21

Olej писал(а):
31 май 2023, 15:18
Сборка

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname/meshname$ cat meshnamed.service 
[Unit]
Description=Distributed naming system for IPv6 mesh networks
Wants=network.target
After=network.target

[Service]
User=nobody
Group=nogroup
ProtectHome=true
ProtectSystem=true
SyslogIdentifier=meshnamed
ExecStart=/usr/local/bin/meshnamed -listenaddr [::1]:53535
Restart=always
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname/meshname$ ls -l meshnamed 
-rwxrwxr-x 1 olej olej 4485120 мая 31 15:16 meshnamed

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DNS судного дня

Непрочитанное сообщение Olej » 31 май 2023, 15:33

Запуск резолвера:

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname/meshname$ ./meshnamed
2023/05/31 15:27:02 Listening on: [::1]:53535
...

Код: Выделить всё

olej@R420:~$ sudo netstat -tunlp | grep mesh
udp6       0      0 ::1:53535               :::*                                33851/./meshnamed

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DNS судного дня

Непрочитанное сообщение Olej » 31 май 2023, 16:21

Olej писал(а):
31 май 2023, 15:33
Запуск резолвера:
А выглядит это всё (как я понял) примерно так:
Имеем имя, например разрешаемое через альтернативный DNS Alfis

Код: Выделить всё

olej@R420:~$ host linux-ru.ygg 127.0.0.4
Using domain server:
Name: 127.0.0.4
Address: 127.0.0.4#53
Aliases:

linux-ru.ygg has IPv6 address 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
Это реальный хост, в чём убеждаемся:

Код: Выделить всё

olej@R420:~$ ping -c3 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
PING 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771(221:58c9:9a6:99be:f3d:c1ac:2b5b:9771) 56 data bytes
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=1 ttl=64 time=118 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=2 ttl=64 time=117 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=3 ttl=64 time=120 ms

--- 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 117.310/118.459/119.806/1.028 ms
Для этого IPv6 meshname-имя выглядит так:

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname/meshname$ ./meshnamed -getname 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
aiqvrsiju2m34dz5ygwcww4xoe

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname/meshname$ ./meshnamed -getip aiqvrsiju2m34dz5ygwcww4xoe
221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
И если такое имя подсунуть резолверу meshnamed, то он из него вытянет адрес:

Код: Выделить всё

olej@R420:~/2023/alt.DNS/meshname/meshname$ ./meshnamed
2023/05/31 16:03:13 Listening on: [::1]:53535
...

Код: Выделить всё

olej@R420:~$ host -6 -p53535 aiqvrsiju2m34dz5ygwcww4xoe.meship ::1
Using domain server:
Name: ::1
Address: ::1#53535
Aliases:

aiqvrsiju2m34dz5ygwcww4xoe.meship has IPv6 address 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

DNS судного дня

Непрочитанное сообщение Olej » 31 май 2023, 17:30

Olej писал(а):
31 май 2023, 16:21
И если такое имя подсунуть резолверу meshnamed, то он из него вытянет адрес:
Это выглядит слегка ущербненько :-x ... но на худой конец сгодится. :oops:
Логика в том, что в доменной зоне .meship ничего вообще не хранится, поэтому и БД никаких не надо... а всё просто взаимнооднозначно трансформируется.

Вот из обсуждений той же статьи Meshname – DNS судного дня:
— Домены уродливы.
— Да. Если вы хотите децентрализации, у вас либо нечитабельные имена, либо блокчейн. У мешнейма уродливые имена, но он работает!

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей