Страница 4 из 6

Yggdrasil (2)

Добавлено: 05 июн 2023, 01:38
Olej
Olej писал(а):
31 май 2023, 19:26
Как определить геолокацию своих пиров
Такое решение грубое, не годится...
Смотрим сюда:

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

olej@R420:~/2023/Yggdrasil/URL2country$ sudo yggdrasilctl getPeers | grep ":\/\/" | cut -f8
tcp://195.123.245.146:7743             
tcp://y.zbin.eu:7743                   
tcp://51.15.204.214:12345              
tcp://212.154.86.134:8800              
tcp://158.101.229.219:17002            
tls://[fe80::522d:d0bd:b221:a526]:44803
tls://[fe80::522d:d0bd:b221:a526]:44803
tcp://yggdrasil.su:62486               
1. локальные IPv6 мультикаст по LAN (строки 6 и 7) нужно исключить
2. пиры могут задаваться не только их IP, но и URL хоста (строки 2 и 8) - их нужно разрешить в IP
3. (гипотетически) пиры могут задаваться в IPv6 ... но это я не могу проверить, поэтому сюда не будем обращать внимания.

Yggdrasil (2)

Добавлено: 05 июн 2023, 01:43
Olej
Olej писал(а):
31 май 2023, 19:26
Настолько полезно, что эти команды есть смысл сохранить как отдельные скрипты!

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

olej@R420:~/2023/Yggdrasil/URL2country$ cat ./ygg.geolock.1.sh
sudo yggdrasilctl getPeers | grep ":\/\/" | cut -f8 | grep -v "\[fe80" |  cut -d'/' -f3 | cut -d':' -f1 | while read ip; \
    do printf "%-16s\t" "$ip"; geoiplookup $ip | sed 's/GeoIP Country Edition: \([A-Z ]\{2\}\).*/\1/'; 
    done;

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

olej@R420:~/2023/Yggdrasil/URL2country$ ./ygg.geolock.1.sh
195.123.245.146 	CZ
y.zbin.eu       	SK
51.15.204.214   	FR
212.154.86.134  	TR
158.101.229.219 	SA
yggdrasil.su    	DE

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

olej@R420:~/2023/Yggdrasil/URL2country$ cat ./ygg.geolock.2.sh
LIST=$(sudo yggdrasilctl getPeers | grep -v Port | grep -v "\[fe80" | cut -f8 | cut -d'/' -f 3 | cut -d':' -f1)

for url in $LIST; do \
    if [[ $url =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; 
	then ip=$url;
	else ip=$(host $url | head -n1 | cut -d' ' -f4);
    fi
    loc=$(whois $ip | awk '/[Cc]ountry:/{print $0}')
    cou=$(echo $loc | awk '/ountry: ..$/{print $2}')
    printf "%-16s\t%2s\n" $url $cou 
done

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

olej@R420:~/2023/Yggdrasil/URL2country$ ./ygg.geolock.2.sh
195.123.245.146 	CZ
y.zbin.eu       	SK
51.15.204.214   	FR
212.154.86.134  	TR
158.101.229.219 	US
yggdrasil.su    	DE

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

olej@R420:~/2023/Yggdrasil/URL2country$ cat ./ygg.geolock.3.sh
LIST=$(sudo yggdrasilctl getPeers | grep -v Port | grep -v "\[fe80" | cut -f8 | cut -d'/' -f 3 | cut -d':' -f1)

for url in $LIST; do \
    if [[ $url =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; 
	then ip=$url;
	else ip=$(host $url | head -n1 | cut -d' ' -f4);
    fi
    loc=$(curl --silent "ipinfo.io/$ip")
    cou=$(echo $loc | jq .country | cut -d\" -f2)
    printf "%-16s\t%2s\n" $url $cou 
done

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

olej@R420:~/2023/Yggdrasil/URL2country$ ./ygg.geolock.3.sh
195.123.245.146 	CZ
y.zbin.eu       	SK
51.15.204.214   	FR
212.154.86.134  	TR
158.101.229.219 	SA
yggdrasil.su    	DE

Yggdrasil (2)

Добавлено: 17 июн 2023, 20:41
Olej
Установка Yggdrasil на такого вот специфического малыша: Изображение + и с особенной ОС:

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

root@galliumos:/etc# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	GalliumOS 3.1
Release:	18.04
Codename:	bionic
Система ещё и 32-бит:

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

root@galliumos:/etc# uname -a
Linux galliumos 4.16.18-galliumos #1 SMP PREEMPT Sun Jun 23 04:14:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Yggdrasil (2)

Добавлено: 17 июн 2023, 21:10
Olej
Yggdrasil есть в репозиториях системы - совместима с Debian:

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

root@galliumos:/etc# cat /etc/debian_version 
buster/sid
Но как обсуждалось ранее, никогда не ставим Yggdrasil из репозиториев :!: (из-за несовместимости сетевых протоколов между версиями).
Устанавливать языковую систему GoLang + компилировать Yggdrasil из исходников в этом случае тоже не вариант из-за ограничености встроенного SSD этого нетбука:

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

root@galliumos:/etc# inxi -Dxxx
Drives:    HDD Total Size: NA (-)
           ID-1: /dev/mmcblk0 model: N/A size: 15.8GB serial: N/A

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

root@galliumos:/etc# df
Файл.система   1K-блоков Использовано Доступно Использовано% Cмонтировано в
udev             1961736            0  1961736            0% /dev
tmpfs             395696         1444   394252            1% /run
/dev/mmcblk0p2  14563208      7026852  6776856           51% /
tmpfs            1978472            0  1978472            0% /dev/shm
tmpfs               5120            4     5116            1% /run/lock
tmpfs            1978472            0  1978472            0% /sys/fs/cgroup
/dev/mmcblk0p1    523248         9496   513752            2% /boot/efi
tmpfs             395692            8   395684            1% /run/user/1000

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

olej@galliumos:~$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 5c:c5:d4:b4:0b:72 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp1s0
       valid_lft 85680sec preferred_lft 85680sec
    inet6 fe80::406a:3f6b:5155:d9e9/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
Беру вот отсюда:
Olej писал(а):
27 май 2023, 18:11
3. https://github.com/yggdrasil-network/yg ... o/releases - собранные релизы последней стабильной версии (и также предыдущих) непосредственно для инсталляции:

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

    yggdrasil-0.4.7-amd64.deb 3.53 MB 2022-11-20T21:26:39Z
    yggdrasil-0.4.7-arm.msi 2.93 MB 2022-11-20T21:26:21Z
    yggdrasil-0.4.7-arm64.deb 3.17 MB 2022-11-20T21:26:37Z
    yggdrasil-0.4.7-arm64.msi 2.84 MB 2022-11-20T21:26:19Z
    yggdrasil-0.4.7-armel.deb 3.29 MB 2022-11-20T21:26:35Z
    yggdrasil-0.4.7-armhf.deb 3.27 MB 2022-11-20T21:26:33Z
    yggdrasil-0.4.7-i386.deb 3.35 MB 2022-11-20T21:26:32Z
    yggdrasil-0.4.7-macos-amd64.pkg 3.66 MB 2022-11-20T21:26:14Z
    yggdrasil-0.4.7-macos-arm64.pkg 3.41 MB 2022-11-20T21:26:11Z
    yggdrasil-0.4.7-mips.deb 3.04 MB 2022-11-20T21:26:30Z
    yggdrasil-0.4.7-mipsel.deb 3.11 MB 2022-11-20T21:26:29Z
    yggdrasil-0.4.7-vendored.tar.gz 2.12 MB 2022-11-20T22:32:21Z
    yggdrasil-0.4.7-x64.msi 3.16 MB 2022-11-20T21:26:17Z
    yggdrasil-0.4.7-x86.msi 3.03 MB 2022-11-20T21:26:16Z
    yggdrasil-edgeos2x-0.4.7-mips.deb 3.04 MB 2022-11-20T21:26:27Z
    yggdrasil-edgeos2x-0.4.7-mipsel.deb 3.12 MB 2022-11-20T21:26:25Z
    yggdrasil-vyos13-0.4.7-amd64.deb 3.53 MB 2022-11-20T21:26:24Z
    yggdrasil-vyos13-0.4.7-i386.deb 3.35 MB 2022-11-20T21:26:22Z
    Source code (zip) 2022-11-20T21:20:11Z
    Source code (tar.gz)  2022-11-20T21:20:11Z

Yggdrasil (2)

Добавлено: 17 июн 2023, 21:15
Olej
Olej писал(а):
17 июн 2023, 21:10
Беру вот отсюда:

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

olej@galliumos:~/2023$ wget https://github.com/yggdrasil-network/yggdrasil-go/releases/download/v0.4.7/yggdrasil-0.4.7-i386.deb
--2023-06-17 18:00:45--  https://github.com/yggdrasil-network/yggdrasil-go/releases/download/v0.4.7/yggdrasil-0.4.7-i386.deb
Распознаётся github.com (github.com)… 140.82.121.4
Подключение к github.com (github.com)|140.82.121.4|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Found
Адрес: https://objects.githubusercontent.com/github-production-release-asset-2e65be/115685026/f7c2e2cd-0353-45a5-8187-85ca3ed9497c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230617%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230617T150046Z&X-Amz-Expires=300&X-Amz-Signature=8602c5744f062bab544f0458ee340b3264e20e239dfbffb67150737ae3001feb&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=115685026&response-content-disposition=attachment%3B%20filename%3Dyggdrasil-0.4.7-i386.deb&response-content-type=application%2Foctet-stream [переход]
--2023-06-17 18:00:46--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/115685026/f7c2e2cd-0353-45a5-8187-85ca3ed9497c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230617%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230617T150046Z&X-Amz-Expires=300&X-Amz-Signature=8602c5744f062bab544f0458ee340b3264e20e239dfbffb67150737ae3001feb&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=115685026&response-content-disposition=attachment%3B%20filename%3Dyggdrasil-0.4.7-i386.deb&response-content-type=application%2Foctet-stream
Распознаётся objects.githubusercontent.com (objects.githubusercontent.com)… 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Подключение к objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 3508366 (3,3M) [application/octet-stream]
Сохранение в: «yggdrasil-0.4.7-i386.deb»

yggdrasil-0.4.7-i386.deb                   100%[=======================================================================================>]   3,35M  1,64MB/s    за 2,0s    

2023-06-17 18:00:48 (1,64 MB/s) - «yggdrasil-0.4.7-i386.deb» сохранён [3508366/3508366]

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

olej@galliumos:~/2023$ ls -l
итого 3428
-rw-rw-r-- 1 olej olej 3508366 ноя 20  2022 yggdrasil-0.4.7-i386.deb
Установка:

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

olej@galliumos:~/2023$ sudo dpkg -i yggdrasil-0.4.7-i386.deb 
[sudo] пароль для olej: 
Выбор ранее не выбранного пакета yggdrasil:i386.
(Чтение базы данных … на данный момент установлено 190211 файлов и каталогов.)
Подготовка к распаковке yggdrasil-0.4.7-i386.deb …
Распаковывается yggdrasil:i386 (0.4.7) …
Настраивается пакет yggdrasil:i386 (0.4.7) …
Generating initial configuration file /etc/yggdrasil.conf
Please familiarise yourself with this file before starting Yggdrasil

Yggdrasil (2)

Добавлено: 17 июн 2023, 21:16
Olej
Olej писал(а):
17 июн 2023, 21:15
Установка:
Массив внешних пиров в конфиге, естественно, пустой:

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

olej@galliumos:~/2023$ sudo grep -v \# /etc/yggdrasil.conf | grep -v ^$
{
  Peers: []
  InterfacePeers: {}
  Listen: []
  AdminListen: unix:///var/run/yggdrasil.sock
  MulticastInterfaces:
  [
    {
      Regex: .*
      Beacon: true
      Listen: true
      Port: 0
      Priority: 0
    }
  ]
  AllowedPublicKeys: []
  PublicKey: 96a0409173dfda806a553e10f1e10215f8cc3f392a1a836f2c18ad70ab47fcb0
  PrivateKey: b0afece92639a3c02946c484bd43a417b0653b6143b6c8615b4763ca95dc6cb996a0409173dfda806a553e10f1e10215f8cc3f392a1a836f2c18ad70ab47fcb0
  IfName: auto
  IfMTU: 65535
  NodeInfoPrivacy: false
  NodeInfo: {}
}

Yggdrasil (2)

Добавлено: 17 июн 2023, 21:17
Olej
Olej писал(а):
17 июн 2023, 21:16
Массив внешних пиров в конфиге, естественно, пустой:
Прописываю проверенный соседним хостом набор пиров:

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

root@galliumos:/etc# cp yggdrasil.conf yggdrasil.conf.1 

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

root@galliumos:/etc# grep -v \# /etc/yggdrasil.conf | grep -v ^$
{
  Peers: [
    tcp://195.123.245.146:7743
    tcp://yggdrasil.su:62486
    tcp://y.zbin.eu:7743
    tcp://51.15.204.214:12345
    tcp://aaoth.xyz:7777
    tcp://45.95.202.21:12403
    tcp://212.154.86.134:8800
    tcp://158.101.229.219:17002
  ]
  InterfacePeers: {}
  Listen: []
  AdminListen: unix:///var/run/yggdrasil.sock
  MulticastInterfaces:
  [
    {
      Regex: .*
      Beacon: true
      Listen: true
      Port: 0
      Priority: 0
    }
  ]
  AllowedPublicKeys: []
  PublicKey: 96a0409173dfda806a553e10f1e10215f8cc3f392a1a836f2c18ad70ab47fcb0
  PrivateKey: b0afece92639a3c02946c484bd43a417b0653b6143b6c8615b4763ca95dc6cb996a0409173dfda806a553e10f1e10215f8cc3f392a1a836f2c18ad70ab47fcb0
  IfName: auto
  IfMTU: 65535
  NodeInfoPrivacy: false
  NodeInfo: {}
}

Yggdrasil (2)

Добавлено: 17 июн 2023, 21:43
Olej
Olej писал(а):
17 июн 2023, 21:17
Прописываю проверенный соседним хостом набор пиров:
Старт - сразу как сервис:

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

root@galliumos:/etc# systemctl start yggdrasil

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

root@galliumos:/etc# systemctl status --no-pager --full yggdrasil
● yggdrasil.service - yggdrasil
   Loaded: loaded (/etc/systemd/system/yggdrasil.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2023-06-17 18:06:09 EEST; 17s ago
  Process: 2875 ExecStartPre=/sbin/modprobe tun (code=exited, status=0/SUCCESS)
 Main PID: 2876 (yggdrasil)
    Tasks: 13 (limit: 4575)
   CGroup: /system.slice/yggdrasil.service
           └─2876 /usr/bin/yggdrasil -useconffile /etc/yggdrasil.conf

июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Your IPv6 subnet is 300:d2bf:7edd:1840::/64
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected inbound TLS: 200:18c7:b2b4:2571:49a5:f90a:c83c:4d16@fe80::d901:49c4:77df:7acc, source [fe80::406a:3f6b:5155:d9e9%wlp1s0]:33483
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Failed to dial TCP aaoth.xyz:7777: dial tcp 5.255.103.81:7777: connect: connection refused
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected outbound TCP: 202:db60::9ce0:a73d:7498:d7ae@195.123.245.146:7743, source 192.168.1.103:45380
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected outbound TCP: 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1@94.130.176.250:62486, source 192.168.1.103:60080
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected outbound TCP: 21e:e795:8e82:a9e2:ff48:952d:55f2:f0bb@51.15.204.214:12345, source 192.168.1.103:38652
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected outbound TCP: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.103:34114
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected outbound TCP: 21b:8286:225b:2fa8:3d1f:2250:72f1:57a3@45.95.202.21:12403, source 192.168.1.103:46328
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected outbound TCP: 201:ca29:d4c5:50c8:b6f3:aa9a:e5d7:616c@158.101.229.219:17002, source 192.168.1.103:51002
июн 17 18:06:09 galliumos yggdrasil[2876]: 2023/06/17 18:06:09 Connected outbound TCP: 200:fb97:f9b6:38cb:9c3:f854:98ec:72fa@212.154.86.134:8800, source 192.168.1.103:40144

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

root@galliumos:/etc# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 5c:c5:d4:b4:0b:72 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp1s0
       valid_lft 84989sec preferred_lft 84989sec
    inet6 fe80::406a:3f6b:5155:d9e9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet6 200:d2bf:7edd:1840:4aff:2b55:83de:1c3d/7 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::4a49:25fc:fe1c:3dfa/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Yggdrasil (2)

Добавлено: 17 июн 2023, 21:46
Olej
Olej писал(а):
17 июн 2023, 21:43
Старт - сразу как сервис:
Проверка...
К хосту а). за 40-50 км., б). оба в LAN и за NAT в). от разных провайдеров:

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

root@galliumos:/etc# ping -c3 -6 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f
PING 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f(21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f) 56 data bytes
64 bytes from 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f: icmp_seq=1 ttl=64 time=570 ms
64 bytes from 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f: icmp_seq=2 ttl=64 time=78.5 ms
64 bytes from 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f: icmp_seq=3 ttl=64 time=75.2 ms

--- 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 75.271/241.592/570.920/232.874 ms

Хорошо видно как 1-й ICTP6 "пробивает" трассу, все следующие - быстро...
И сразу же 2-й:

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

 
root@galliumos:/etc# ping -c3 -6 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f
PING 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f(21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f) 56 data bytes
64 bytes from 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f: icmp_seq=1 ttl=64 time=79.7 ms
64 bytes from 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f: icmp_seq=2 ttl=64 time=77.6 ms
64 bytes from 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f: icmp_seq=3 ttl=64 time=79.3 ms

--- 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 77.651/78.934/79.769/0.949 ms
Трафик идёт по уже настроенной трассе.

Yggdrasil (2)

Добавлено: 17 июн 2023, 22:14
Olej
Olej писал(а):
17 июн 2023, 21:46
Проверка...
И в завершение:

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

root@galliumos:/etc# systemctl is-enabled yggdrasil
disabled

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

root@galliumos:/etc# systemctl enable yggdrasil
Created symlink /etc/systemd/system/multi-user.target.wants/yggdrasil.service → /etc/systemd/system/yggdrasil.service.

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

root@galliumos:/etc# systemctl is-enabled yggdrasil
enabled