Yggdrasil в RPM

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

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

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 15:06

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

[olej@xenix FUJITSU.ESPRIMO.P420]$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 38 (Thirty Eight)
Release:	38
Codename:	ThirtyEight
В репозетории есть:

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

[olej@xenix FUJITSU.ESPRIMO.P420]$ dnf list yggdrasil
Последняя проверка окончания срока действия метаданных: 0:00:20 назад, Вт 27 июн 2023 15:01:46.
Имеющиеся пакеты
yggdrasil.x86_64                                                                                  0.3.1-2.fc38                                                                                   fedora

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

[olej@xenix FUJITSU.ESPRIMO.P420]$ dnf info yggdrasil
Последняя проверка окончания срока действия метаданных: 0:00:29 назад, Вт 27 июн 2023 15:01:46.
Имеющиеся пакеты
Имя          : yggdrasil
Версия       : 0.3.1
Выпуск       : 2.fc38
Архитектура  : x86_64
Размер       : 4.3 M
Источник     : yggdrasil-0.3.1-2.fc38.src.rpm
Репозиторий  : fedora
Краткое опис : Remote data transmission and processing client
URL          : https://github.com/redhatinsights/yggdrasil
Лицензия     : GPL-3.0-only
Описание     : yggdrasil is a system daemon that subscribes to topics on an MQTT broker and
             : routes any data received on the topics to an appropriate child "worker" process,
             : exchanging data with its worker processes through a D-Bus message broker.
Но это не интересно, по версии 0.3

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 15:09

Olej писал(а):
27 июн 2023, 15:06
В репозетории
В сборке бинарных пакетов от авторов Version 0.4.7

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

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
Они собирают только в DEB ... и исходники.

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 15:13

Olej писал(а):
27 май 2023, 18:11
4. Но исходники лучше, конечно, брать на том же GIT, но вот здесь: https://github.com/yggdrasil-network/yggdrasil-go - обычными командами клонирования git.
Конспектирую...

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

[olej@xenix IPv6]$ pwd
/home/olej/2023/IPv6

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

[olej@xenix IPv6]$ git clone https://github.com/yggdrasil-network/yggdrasil-go.git
Клонирование в «yggdrasil-go»...
remote: Enumerating objects: 12260, done.
remote: Counting objects: 100% (397/397), done.
remote: Compressing objects: 100% (188/188), done.
remote: Total 12260 (delta 234), reused 334 (delta 202), pack-reused 11863
Получение объектов: 100% (12260/12260), 3.40 МиБ | 183.00 КиБ/с, готово.
Определение изменений: 100% (8242/8242), готово.

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

[olej@xenix IPv6]$ du -hs yggdrasil-go 
4,5M	yggdrasil-go

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 15:44

Для сборки нужен GoLang...
Которого на этом компьютере нет:

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

[olej@xenix IPv6]$ which go
/usr/bin/which: no go in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/olej/.local/bin:/home/olej/bin)
Но свежую версию можно не собирать, а взять готовую:

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

[olej@xenix FUJITSU.ESPRIMO.P420]$ dnf info golang
Последняя проверка окончания срока действия метаданных: 0:15:46 назад, Вт 27 июн 2023 15:01:46.
Имеющиеся пакеты
Имя          : golang
Версия       : 1.20.5
Выпуск       : 1.fc38
Архитектура  : x86_64
Размер       : 604 k
Источник     : golang-1.20.5-1.fc38.src.rpm
Репозиторий  : updates
Краткое опис : The Go Programming Language
URL          : https://go.dev
Лицензия     : BSD and Public Domain
Описание     : The Go Programming Language.

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

[olej@xenix FUJITSU.ESPRIMO.P420]$ sudo dnf install golang
[sudo] пароль для olej: 
Последняя проверка окончания срока действия метаданных: 1:21:13 назад, Вт 27 июн 2023 13:57:07.
Зависимости разрешены.
=======================================================================================================================================================================================================
 Пакет                                            Архитектура                                  Версия                                              Репозиторий                                   Размер
=======================================================================================================================================================================================================
Установка:
 golang                                           x86_64                                       1.20.5-1.fc38                                       updates                                       604 k
Установка зависимостей:
 golang-bin                                       x86_64                                       1.20.5-1.fc38                                       updates                                        58 M
 golang-src                                       noarch                                       1.20.5-1.fc38                                       updates                                        11 M

Результат транзакции
=======================================================================================================================================================================================================
Установка  3 Пакета

Объем загрузки: 70 M
Объем изменений: 204 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/3): golang-1.20.5-1.fc38.x86_64.rpm                                                                                                                                 243 kB/s | 604 kB     00:02    
(2/3): golang-src-1.20.5-1.fc38.noarch.rpm                                                                                                                             1.4 MB/s |  11 MB     00:07    
[MIRROR] golang-bin-1.20.5-1.fc38.x86_64.rpm: Curl error (18): Transferred a partial file for http://mirror.ihost.md/fedora/updates/38/Everything/x86_64/Packages/g/golang-bin-1.20.5-1.fc38.x86_64.rpm [transfer closed with 55033290 bytes remaining to read]
(3/3): golang-bin-1.20.5-1.fc38.x86_64.rpm                                                                                                                             208 kB/s |  58 MB     04:44    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Общий размер                                                                                                                                                           249 kB/s |  70 MB     04:46     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно.
Выполнение транзакции
  Запуск скриптлета: golang-1.20.5-1.fc38.x86_64                                                                                                                                                   1/1 
  Подготовка       :                                                                                                                                                                               1/1 
  Установка        : golang-src-1.20.5-1.fc38.noarch                                                                                                                                               1/3 
  Установка        : golang-bin-1.20.5-1.fc38.x86_64                                                                                                                                               2/3 
  Запуск скриптлета: golang-bin-1.20.5-1.fc38.x86_64                                                                                                                                               2/3 
  Установка        : golang-1.20.5-1.fc38.x86_64                                                                                                                                                   3/3 
  Запуск скриптлета: golang-1.20.5-1.fc38.x86_64                                                                                                                                                   3/3 
  Проверка         : golang-1.20.5-1.fc38.x86_64                                                                                                                                                   1/3 
  Проверка         : golang-bin-1.20.5-1.fc38.x86_64                                                                                                                                               2/3 
  Проверка         : golang-src-1.20.5-1.fc38.noarch                                                                                                                                               3/3 

Установлен:
  golang-1.20.5-1.fc38.x86_64                                    golang-bin-1.20.5-1.fc38.x86_64                                    golang-src-1.20.5-1.fc38.noarch                                   

Выполнено!

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

[olej@xenix FUJITSU.ESPRIMO.P420]$ go version
go version go1.20.5 linux/amd64

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 15:56

Сборка:

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

[olej@xenix IPv6]$ cd yggdrasil-go/
Всё что нужно, из пакетов, GoLang подтянет сам...

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

[olej@xenix yggdrasil-go]$ time ./build
Building: yggdrasil
go: downloading github.com/gologme/log v1.2.0
go: downloading github.com/hashicorp/go-syslog v1.0.0
go: downloading github.com/hjson/hjson-go v3.1.0+incompatible
go: downloading github.com/kardianos/minwinsvc v1.0.2
go: downloading github.com/mitchellh/mapstructure v1.4.1
go: downloading golang.org/x/text v0.7.0
go: downloading github.com/Arceliar/ironwood v0.0.0-20221115123222-ec61cea2f439
go: downloading golang.org/x/net v0.7.0
get "golang.org/x/net": found meta tag vcs.metaImport{Prefix:"golang.org/x/net", VCS:"git", RepoRoot:"https://go.googlesource.com/net"} at //golang.org/x/net?go-get=1
get "golang.org/x/text": found meta tag vcs.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text?go-get=1
go: downloading github.com/Arceliar/phony v0.0.0-20210209235338-dde1a8dca979
go: downloading golang.org/x/sys v0.5.0
get "golang.org/x/sys": found meta tag vcs.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys?go-get=1
go: downloading github.com/vishvananda/netlink v1.1.0
go: downloading golang.zx2c4.com/wireguard v0.0.0-20211017052713-f87e87af0d9a
get "golang.zx2c4.com/wireguard": found meta tag vcs.metaImport{Prefix:"golang.zx2c4.com/wireguard", VCS:"git", RepoRoot:"https://git.zx2c4.com/wireguard-go"} at //golang.zx2c4.com/wireguard?go-get=1
go: downloading golang.org/x/crypto v0.0.0-20221012134737-56aed061732a
get "golang.org/x/crypto": found meta tag vcs.metaImport{Prefix:"golang.org/x/crypto", VCS:"git", RepoRoot:"https://go.googlesource.com/crypto"} at //golang.org/x/crypto?go-get=1
go: downloading github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f
internal/goarch
internal/unsafeheader
internal/coverage/rtcov
internal/goexperiment
internal/goos
internal/cpu
runtime/internal/syscall
runtime/internal/atomic
internal/race
internal/abi
sync/atomic
runtime/internal/math
runtime/internal/sys
unicode
unicode/utf8
internal/itoa
math/bits
crypto/subtle
crypto/internal/alias
crypto/internal/boring/sig
encoding
unicode/utf16
internal/nettrace
github.com/kardianos/minwinsvc
internal/bytealg
container/list
vendor/golang.org/x/crypto/cryptobyte/asn1
math
vendor/golang.org/x/crypto/internal/alias
golang.org/x/crypto/internal/alias
golang.org/x/crypto/salsa20/salsa
github.com/yggdrasil-network/yggdrasil-go/src/version
golang.org/x/text/encoding/internal/identifier
golang.org/x/net/internal/iana
golang.org/x/text/internal/utf8internal
runtime
github.com/Arceliar/phony
internal/reflectlite
sync
internal/godebug
internal/singleflight
internal/testlog
runtime/cgo
internal/intern
math/rand
errors
sort
internal/oserror
io
path
strconv
vendor/golang.org/x/net/dns/dnsmessage
internal/safefilepath
crypto/internal/nistec/fiat
syscall
container/heap
hash
bytes
crypto/internal/randutil
strings
golang.org/x/text/transform
reflect
crypto
net/netip
regexp/syntax
crypto/rc4
golang.org/x/text/encoding
golang.org/x/text/runes
golang.org/x/text/encoding/internal
golang.org/x/text/encoding/unicode
internal/syscall/unix
internal/syscall/execenv
time
regexp
internal/poll
io/fs
context
embed
os
internal/fmtsort
encoding/binary
encoding/base64
crypto/md5
vendor/golang.org/x/crypto/internal/poly1305
crypto/internal/edwards25519/field
golang.org/x/crypto/curve25519/internal/field
crypto/cipher
crypto/internal/nistec
fmt
net
encoding/pem
path/filepath
crypto/internal/edwards25519
io/ioutil
crypto/internal/boring
crypto/des
vendor/golang.org/x/crypto/chacha20
crypto/sha512
crypto/aes
crypto/hmac
crypto/sha1
crypto/sha256
vendor/golang.org/x/sys/cpu
vendor/golang.org/x/crypto/hkdf
golang.org/x/crypto/curve25519
crypto/ecdh
vendor/golang.org/x/crypto/chacha20poly1305
golang.org/x/sys/cpu
golang.org/x/crypto/internal/poly1305
golang.org/x/sys/unix
os/signal
math/big
encoding/hex
encoding/json
flag
github.com/gologme/log
log
net/url
golang.org/x/crypto/blake2b
golang.org/x/crypto/nacl/secretbox
golang.org/x/net/bpf
github.com/hjson/hjson-go
crypto/elliptic
crypto/internal/boring/bbig
crypto/internal/bigmod
encoding/asn1
crypto/dsa
crypto/rand
golang.org/x/crypto/nacl/box
crypto/ed25519
crypto/rsa
github.com/yggdrasil-network/yggdrasil-go/src/address
github.com/Arceliar/ironwood/encrypted/internal/e2c
github.com/yggdrasil-network/yggdrasil-go/src/config
github.com/yggdrasil-network/yggdrasil-go/src/defaults
crypto/x509/pkix
vendor/golang.org/x/crypto/cryptobyte
golang.zx2c4.com/wireguard/rwcancel
github.com/vishvananda/netns
crypto/ecdsa
log/syslog
github.com/Arceliar/ironwood/types
golang.org/x/net/internal/socks
github.com/mitchellh/mapstructure
golang.org/x/net/internal/socket
github.com/vishvananda/netlink/nl
crypto/x509
github.com/Arceliar/ironwood/network
github.com/hashicorp/go-syslog
golang.org/x/net/proxy
golang.org/x/net/ipv6
golang.org/x/net/ipv4
github.com/vishvananda/netlink
github.com/Arceliar/ironwood/encrypted
golang.zx2c4.com/wireguard/tun
golang.org/x/net/icmp
crypto/tls
github.com/yggdrasil-network/yggdrasil-go/src/core
github.com/yggdrasil-network/yggdrasil-go/src/ipv6rwc
github.com/yggdrasil-network/yggdrasil-go/src/admin
github.com/yggdrasil-network/yggdrasil-go/src/tun
github.com/yggdrasil-network/yggdrasil-go/src/multicast
# github.com/yggdrasil-network/yggdrasil-go/src/tun
src/tun/tun.go:125:13: tun.setupFD undefined (type *TunAdapter has no field or method setupFD)

real	2m9,967s
user	0m44,119s
sys	0m5,935s
Но вот тут - сбой :!: :-(
Это (см. Yggdrasil (2)) предпоследний шаг сборки, ... но он не проходит!

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 16:11

Olej писал(а):
27 июн 2023, 15:56
предпоследний шаг сборки, ... но он не проходит!

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

[olej@xenix yggdrasil-go]$ git log -1
commit db9b57c052e628fa7dcef909a24bc39e532df469 (HEAD -> develop, origin/develop, origin/HEAD)
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jun 6 22:11:49 2023 +0100

    Update `contrib/mobile` for the latest iOS build
А ведь было где-то в обсуждениях что последний девлоперский комит не собирается :!:
Проект в разработке, в изменениях...

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

[olej@xenix yggdrasil-go]$ git branch -a
* develop
  remotes/origin/HEAD -> origin/develop
  remotes/origin/arc/linkfix
  remotes/origin/develop
  remotes/origin/future
  remotes/origin/master
  remotes/origin/neil/handshake
  remotes/origin/neil/multicast
  remotes/origin/neil/quic
  remotes/origin/netstack

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

[olej@xenix yggdrasil-go]$ git checkout master
branch 'master' set up to track 'origin/master'.
Переключились на новую ветку «master»

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

[olej@xenix yggdrasil-go]$ git branch 
  develop
* master
Переключились:

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

[olej@xenix yggdrasil-go]$ git log -1
commit 14f1cd4696a37b0f7fdcb067fac337c46953f8af (HEAD -> master, tag: v0.4.7, origin/master)
Merge: 4c66a13 b0f6544
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Sun Nov 20 21:20:11 2022 +0000

    Version 0.4.7

    Merge pull request #986 from yggdrasil-network/develop

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

[olej@xenix yggdrasil-go]$ time ./build
Building: yggdrasil
go: downloading golang.org/x/text v0.3.8
go: downloading golang.org/x/net v0.0.0-20221014081412-f15817d10f9b
go: downloading golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43
get "golang.org/x/text": found meta tag vcs.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text?go-get=1
get "golang.org/x/net": found meta tag vcs.metaImport{Prefix:"golang.org/x/net", VCS:"git", RepoRoot:"https://go.googlesource.com/net"} at //golang.org/x/net?go-get=1
get "golang.org/x/sys": found meta tag vcs.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys?go-get=1
golang.org/x/net/internal/iana
golang.org/x/text/internal/utf8internal
golang.org/x/text/encoding/internal/identifier
golang.org/x/text/transform
golang.org/x/sys/unix
golang.org/x/text/encoding
golang.org/x/text/runes
golang.org/x/net/internal/socks
golang.org/x/net/bpf
golang.org/x/text/encoding/internal
golang.org/x/sys/cpu
golang.org/x/net/proxy
golang.org/x/text/encoding/unicode
golang.org/x/crypto/blake2b
golang.org/x/crypto/nacl/box
github.com/Arceliar/ironwood/encrypted
golang.zx2c4.com/wireguard/rwcancel
github.com/vishvananda/netns
golang.org/x/net/internal/socket
github.com/yggdrasil-network/yggdrasil-go/src/core
github.com/vishvananda/netlink/nl
golang.org/x/net/ipv6
golang.org/x/net/ipv4
golang.zx2c4.com/wireguard/tun
github.com/yggdrasil-network/yggdrasil-go/src/admin
github.com/vishvananda/netlink
golang.org/x/net/icmp
github.com/yggdrasil-network/yggdrasil-go/src/multicast
github.com/yggdrasil-network/yggdrasil-go/src/ipv6rwc
github.com/yggdrasil-network/yggdrasil-go/src/tun
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil
Building: yggdrasilctl
go: downloading github.com/olekukonko/tablewriter v0.0.5
go: downloading github.com/mattn/go-runewidth v0.0.13
go: downloading github.com/rivo/uniseg v0.2.0
github.com/rivo/uniseg
bufio
github.com/mattn/go-runewidth
encoding/csv
github.com/olekukonko/tablewriter
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl

real	6m45,581s
user	0m19,401s
sys	0m3,079s
Вот так!

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

[olej@xenix yggdrasil-go]$ ls -l | grep ^\-rwx
-rwxr-xr-x 1 olej olej     848 июн 27 15:11 build
-rwxr-xr-x 1 olej olej      25 июн 27 15:11 clean
-rwxr-xr-x 1 olej olej 5595136 июн 27 16:05 yggdrasil
-rwxr-xr-x 1 olej olej 3104768 июн 27 16:06 yggdrasilctl

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

[olej@xenix yggdrasil-go]$ ./yggdrasil --version
Build name: yggdrasil
Build version: 0.4.7

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 16:27

Olej писал(а):
27 июн 2023, 15:13
Конспектирую...
... "с нуля" ... (см. Yggdrasil (2)) - по шагам и по пунктам

1. Генерируем черновой конфиг-файл:

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

[olej@xenix yggdrasil-go]$ ./yggdrasil -genconf > yggdrasil.conf

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

[olej@xenix yggdrasil-go]$ ./yggdrasil -genconf
{
  # List of connection strings for outbound peer connections in URI format,
  # e.g. tls://a.b.c.d:e or socks://a.b.c.d:e/f.g.h.i:j. These connections
  # will obey the operating system routing table, therefore you should
  # use this section when you may connect via different interfaces.
  Peers: []

  # List of connection strings for outbound peer connections in URI format,
  # arranged by source interface, e.g. { "eth0": [ "tls://a.b.c.d:e" ] }.
  # Note that SOCKS peerings will NOT be affected by this option and should
  # go in the "Peers" section instead.
  InterfacePeers: {}

  # Listen addresses for incoming connections. You will need to add
  # listeners in order to accept incoming peerings from non-local nodes.
  # Multicast peer discovery will work regardless of any listeners set
  # here. Each listener should be specified in URI format as above, e.g.
  # tls://0.0.0.0:0 or tls://[::]:0 to listen on all interfaces.
  Listen: []

  # Listen address for admin connections. Default is to listen for local
  # connections either on TCP/9001 or a UNIX socket depending on your
  # platform. Use this value for yggdrasilctl -endpoint=X. To disable
  # the admin socket, use the value "none" instead.
  AdminListen: unix:///var/run/yggdrasil.sock

  # Configuration for which interfaces multicast peer discovery should be
  # enabled on. Each entry in the list should be a json object which may
  # contain Regex, Beacon, Listen, and Port. Regex is a regular expression
  # which is matched against an interface name, and interfaces use the
  # first configuration that they match gainst. Beacon configures whether
  # or not the node should send link-local multicast beacons to advertise
  # their presence, while listening for incoming connections on Port.
  # Listen controls whether or not the node listens for multicast beacons
  # and opens outgoing connections.
  MulticastInterfaces:
  [
    {
      Regex: .*
      Beacon: true
      Listen: true
      Port: 0
      Priority: 0
    }
  ]

  # List of peer public keys to allow incoming peering connections
  # from. If left empty/undefined then all connections will be allowed
  # by default. This does not affect outgoing peerings, nor does it
  # affect link-local peers discovered via multicast.
  AllowedPublicKeys: []

  # Your public key. Your peers may ask you for this to put
  # into their AllowedPublicKeys configuration.
  PublicKey: 6308742a685608a965a14212999b35e4d01519d86d98494e1bf40cf4c98171a3

  # Your private key. DO NOT share this with anyone!
  PrivateKey: 3a388e473b60156c80c3efd998dd0a2817b78fc0b8ba7bef460e69cda928b0ce6308742a685608a965a14212999b35e4d01519d86d98494e1bf40cf4c98171a3

  # Local network interface name for TUN adapter, or "auto" to select
  # an interface automatically, or "none" to run without TUN.
  IfName: auto

  # Maximum Transmission Unit (MTU) size for your local TUN interface.
  # Default is the largest supported size for your platform. The lowest
  # possible value is 1280.
  IfMTU: 65535

  # By default, nodeinfo contains some defaults including the platform,
  # architecture and Yggdrasil version. These can help when surveying
  # the network and diagnosing network routing problems. Enabling
  # nodeinfo privacy prevents this, so that only items specified in
  # "NodeInfo" are sent back if specified.
  NodeInfoPrivacy: false

  # Optional node info. This must be a { "key": "value", ... } map
  # or set as null. This is entirely optional but, if set, is visible
  # to the whole network on request.
  NodeInfo: {}
}
Описание конфига, на русском языке, здесь: Конфигурационный файл Yggdrasil на русском
Вложения
yggdrasil.conf
(3.48 КБ) 29 скачиваний

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 16:37

Olej писал(а):
27 июн 2023, 16:27
1. Генерируем черновой конфиг-файл:
2. В принципе, если в LAN есть уже работающий хост Yuggdrasil ( :!: ), то уже бы можно пробоввать запускать ... за счёт link-local IPv6 Multicast Peer Discovery (см. IPv6 хосты LAN (link-local) + Yggdrasil in LAN)...

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

[olej@xenix yggdrasil-go]$ sudo ./yggdrasil -useconffile ./yggdrasil.conf 
2023/06/27 16:43:09 Build name: yggdrasil
2023/06/27 16:43:09 Build version: 0.4.7
2023/06/27 16:43:09 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/27 16:43:09 Interface name: tun0
2023/06/27 16:43:09 Interface IPv6: 201:1171:48a7:6391:3920:2499:1ebd:757f/7
2023/06/27 16:43:09 Interface MTU: 53049
2023/06/27 16:43:09 Your public key is 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
2023/06/27 16:43:09 Your IPv6 address is 201:1171:48a7:6391:3920:2499:1ebd:757f
2023/06/27 16:43:09 Your IPv6 subnet is 301:1171:48a7:6391::/64
2023/06/27 16:43:10 TLS listener started on [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Link handler tls://[fe80::522d:d0bd:b221:a526%enp2s0]:37861 error ([fe80::522d:d0bd:b221:a526%enp2s0]:37861): read handshake: EOF
2023/06/27 16:43:10 Connected inbound TLS: 201:617b:8699:5a7f:356b:1da6:a5d6:c960@fe80::921b:eff:fe2b:fe3a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Connected outbound TLS: 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0@fe80::522d:d0bd:b221:a526, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:53729
...
Видно как он сразу подцепился к локальным пирам IPv6: fe80::...

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

[olej@xenix yggdrasil-go]$ host ygg.linux-ru.lib
ygg.linux-ru.lib has IPv6 address 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771

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

[olej@xenix yggdrasil-go]$ 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=454 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=2 ttl=64 time=530 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=3 ttl=64 time=480 ms

--- 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 454.113/487.961/529.800/31.411 ms
Это далеко :-D ... за 4000 км. ...

Но лучше сразу подобрать и прописвать в yggdrasil.conf внешние пиры...

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 17:00

Olej писал(а):
27 июн 2023, 16:37
можно пробоввать запускать
3. Но проба пробой, а нужно прописать внешние пиры...
Откуда берутся URL внешних пиров прописано здесь: Yggdrasil. Это зависит от собственного местоположения ... но у меня уже есть список для другого хоста LAN (то же местоположение) - можно его использовать - только обязательно проверить "живые" ли IP и ранжировать их по времени доступа (по ping)...
У меня для этого получился такой список:

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

[olej@xenix yggdrasil-go]$ grep -v "#" yggdrasil.conf | grep -v ^$ | grep " Peers" -A9
  Peers: [
    tcp://195.123.245.146:7743
    tcp://yggdrasil.su:62486
    tcp://y.zbin.eu:7743
    tcp://45.95.202.21:12403
    tcp://aaoth.xyz:7777
    tcp://51.15.204.214:12345
    tcp://212.154.86.134:8800
    tcp://158.101.229.219:17002
  ]

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

[olej@xenix yggdrasil-go]$ sudo ./yggdrasil -useconffile ./yggdrasil.conf 
[sudo] пароль для olej: 
2023/06/27 17:13:21 Build name: yggdrasil
2023/06/27 17:13:21 Build version: 0.4.7
2023/06/27 17:13:21 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/27 17:13:21 TLS listener started on [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Interface name: tun0
2023/06/27 17:13:21 Interface IPv6: 201:1171:48a7:6391:3920:2499:1ebd:757f/7
2023/06/27 17:13:21 Interface MTU: 53049
2023/06/27 17:13:21 Your public key is 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
2023/06/27 17:13:21 Your IPv6 address is 201:1171:48a7:6391:3920:2499:1ebd:757f
2023/06/27 17:13:21 Your IPv6 subnet is 301:1171:48a7:6391::/64
2023/06/27 17:13:21 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected inbound TLS: 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0@fe80::522d:d0bd:b221:a526, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected inbound TLS: 201:617b:8699:5a7f:356b:1da6:a5d6:c960@fe80::921b:eff:fe2b:fe3a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected outbound TCP: 202:db60::9ce0:a73d:7498:d7ae@195.123.245.146:7743, source 192.168.1.20:58136
2023/06/27 17:13:21 Connected outbound TCP: 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1@94.130.176.250:62486, source 192.168.1.20:53090
2023/06/27 17:13:21 Connected outbound TCP: 21b:8286:225b:2fa8:3d1f:2250:72f1:57a3@45.95.202.21:12403, source 192.168.1.20:56850
2023/06/27 17:13:21 Failed to dial TCP 212.154.86.134:8800: dial tcp 212.154.86.134:8800: connect: connection refused
2023/06/27 17:13:21 Failed to dial TCP aaoth.xyz:7777: dial tcp 5.255.103.81:7777: connect: connection refused
2023/06/27 17:13:21 Connected outbound TCP: 21e:e795:8e82:a9e2:ff48:952d:55f2:f0bb@51.15.204.214:12345, source 192.168.1.20:53286
2023/06/27 17:13:21 Connected outbound TCP: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.20:40020
2023/06/27 17:13:21 Connected outbound TCP: 201:ca29:d4c5:50c8:b6f3:aa9a:e5d7:616c@158.101.229.219:17002, source 192.168.1.20:47348
...

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

[olej@xenix 2023]$ ip a s dev tun0
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet6 201:1171:48a7:6391:3920:2499:1ebd:757f/7 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::5eb6:93:a26c:d08/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

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

[olej@xenix yggdrasil-go]$ 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=588 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=116 ms

--- 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 116.420/273.972/588.331/222.285 ms
Теперь и с ping всё становится лучше...

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

[olej@xenix yggdrasil-go]$ sudo ./yggdrasilctl getself
Build name:   	yggdrasil                                                       	
Build version:	0.4.7                                                           	
IPv6 address: 	201:1171:48a7:6391:3920:2499:1ebd:757f                          	
IPv6 subnet:  	301:1171:48a7:6391::/64                                         	
Coordinates:  	[1 17 8 10]                                                     	
Public key:   	7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773	

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

Yggdrasil в RPM

Непрочитанное сообщение Olej » 27 июн 2023, 17:36

Olej писал(а):
27 июн 2023, 15:56
Сборка:
4. Собранные бинарники не используют каких-то своих библиотек:

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

[olej@xenix yggdrasil-go]$ ldd yggdrasil 
	linux-vdso.so.1 (0x00007ffdeaf25000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff814280000)
	libc.so.6 => /lib64/libc.so.6 (0x00007ff8140a2000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff8142b2000)

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

[olej@xenix yggdrasil-go]$ ldd yggdrasilctl 
	linux-vdso.so.1 (0x00007ffdc25f5000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f23c99d2000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f23c97f4000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f23c9a04000)
Поэтому отправляю их в места доступности ("места постоянной дислокации" :-D ):

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

[olej@xenix yggdrasil-go]$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/olej/.local/bin:/home/olej/bin

[olej@xenix yggdrasil-go]$ ls /usr/local/sbin
miredo  miredo-checkconf  miredo-server

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

[olej@xenix yggdrasil-go]$ sudo cp yggdrasil /usr/local/sbin

[olej@xenix yggdrasil-go]$ sudo cp yggdrasilctl /usr/local/sbin
Olej писал(а):
27 июн 2023, 16:27
Генерируем черновой конфиг-файл:
Конфиг-файл готов:

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

[olej@xenix yggdrasil-go]$ sudo cp yggdrasil.conf /etc
Проверка:

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

[olej@xenix yggdrasil-go]$ sudo yggdrasil -useconffile /etc/yggdrasil.conf 
[sudo] пароль для olej: 
2023/06/27 17:34:30 Build name: yggdrasil
2023/06/27 17:34:30 Build version: 0.4.7
2023/06/27 17:34:30 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/27 17:34:30 TLS listener started on [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Interface name: tun0
2023/06/27 17:34:30 Interface IPv6: 201:1171:48a7:6391:3920:2499:1ebd:757f/7
2023/06/27 17:34:30 Interface MTU: 53049
2023/06/27 17:34:30 Your public key is 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
2023/06/27 17:34:30 Your IPv6 address is 201:1171:48a7:6391:3920:2499:1ebd:757f
2023/06/27 17:34:30 Your IPv6 subnet is 301:1171:48a7:6391::/64
2023/06/27 17:34:30 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected inbound TLS: 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0@fe80::522d:d0bd:b221:a526, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected inbound TLS: 201:617b:8699:5a7f:356b:1da6:a5d6:c960@fe80::921b:eff:fe2b:fe3a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected outbound TCP: 202:db60::9ce0:a73d:7498:d7ae@195.123.245.146:7743, source 192.168.1.20:52454
2023/06/27 17:34:30 Connected outbound TCP: 21b:8286:225b:2fa8:3d1f:2250:72f1:57a3@45.95.202.21:12403, source 192.168.1.20:39102
2023/06/27 17:34:30 Connected outbound TCP: 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1@94.130.176.250:62486, source 192.168.1.20:42434
2023/06/27 17:34:30 Connected outbound TCP: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.20:34420
2023/06/27 17:34:30 Connected outbound TCP: 21e:e795:8e82:a9e2:ff48:952d:55f2:f0bb@51.15.204.214:12345, source 192.168.1.20:36722
2023/06/27 17:34:31 Connected outbound TCP: 201:ca29:d4c5:50c8:b6f3:aa9a:e5d7:616c@158.101.229.219:17002, source 192.168.1.20:53736
...
Всё ОК :!:

Ответить

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

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

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