Mạng Yggdrasil (Yggdrasil Network) là mạng overlay IPv6 nhằm tạo mạng lưới (mesh network) phi tập trung, mã hóa. Xử lý mạng như lá trên cây nhị phân. Là overlay network, Yggdrasil cũng đóng vai VPN cho phép người dùng tương tác an toàn.
Yggdrasil miễn phí, cài đặt dễ, hỗ trợ nhiều nền tảng → lựa chọn mạnh cho kết nối riêng tư, an toàn.
Mesh Networking và Yggdrasil
Yggdrasil thực hiện mesh networking bằng cách biểu diễn mạng như cây các node kết nối. Các node đóng vai relay cho node khác → mesh network thực thụ.
Cấu trúc mạng cho phép Yggdrasil dễ dàng tìm máy/trang web muốn truy cập. Tương tác người dùng khác không cần server trung tâm định tuyến.
Tại sao dùng Yggdrasil?
Điểm mạnh Yggdrasil: thay đổi cách dữ liệu định tuyến qua Internet. Giả định về trạng thái mặc định mạng:
- Mọi node kết nối ít nhất 1 node khác.
- Mỗi node relay dữ liệu minh bạch cho node khác.
- Mỗi node quảng bá node kết nối với nó.
Giả định tạo cấu trúc vừa cứng/độ dự đoán, vừa linh hoạt. Ví dụ: làm máy public bằng cách kết nối 1 public node. Public node kết nối node khác → user khác peer với node đó để kết nối bạn.
Yggdrasil cũng cho tạo mạng con máy local – hữu ích tạo VPN.
Cài đặt Yggdrasil
Yggdrasil có sẵn nhiều nền tảng, hầu hết distro Linux. Nhưng không luôn trong repo mặc định → một số distro cần thêm source trước khi cài.
Cài Yggdrasil trên Debian/Ubuntu
Thêm GPG key chính thức vào apt:
gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
Thêm repo vào sources.list.d:
echo 'deb https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
Cập nhật và cài:
sudo apt update && sudo apt install yggdrasil
Cài Yggdrasil trên Fedora
Fedora đã có trong "Community Packages" → cài đơn giản:
sudo dnf copr enable rany/yggdrasil sudo dnf install yggdrasil
Cài Yggdrasil trên Arch Linux
Arch cũng có trong community repo → cài bằng pacman:
sudo pacman -Syu yggdrasil
Cấu hình cài đặt
Sau cài, thiết lập kết nối node bằng cách sửa /etc/yggdrasil.conf. Dùng nano:
sudo nano -w /etc/yggdrasil.conf
File tạo sau cài. Nếu không, tạo mới:
su --command="yggdrasil -genconf > /etc/yggdrasil.conf"
Kết nối Public Node
2 cách dùng:
- Kết nối public node → máy có thể khám phá (discoverable).
- Kết nối nhóm máy thành VPN riêng.
Cách 1: Thêm địa chỉ public node vào block Peers: trong /etc/yggdrasil.conf.
Block Peers: xác định node muốn kết nối. Các node ở đây phải public discoverable và connectable từ Internet.
Peers: [ tls://address.domain:port tcp://1.2.3.4:port socks://[aaaa:...:ffff]/[1111:...:9999] ]
Peers block: danh sách node kết nối. Hỗ trợ TLS, SOCKS (mã hóa) hoặc TCP (không mã hóa – cho thiết bị nhúng không hỗ trợ TLS).
Kết nối mạng Yggdrasil public: copy vài link node từ cộng đồng.
Bật dịch vụ:
sudo systemctl enable yggdrasil sudo systemctl start yggdrasil
Kiểm tra kết nối: truy cập trang web kiểm tra.
Tạo mạng riêng (Private Network)
Tạo private network hơi phức tạp hơn nhưng vẫn đơn giản. Cần:
- Máy public discoverable (không bị CG-NAT chặn) hoặc VPS rẻ.
- Nhiều máy ở mạng khác nhau không nói trực tiếp được.
Cấu hình Public Node cá nhân
Sửa block Listen: trong /etc/yggdrasil.conf của máy public.
Listen: [ tls://your.ipv4.address.here:12345 tcp://[your:ipv6:address:here]:12345 ]
Node nhận kết nối đến port 12345 từ IPv4 (TLS) và IPv6 (TCP không mã hóa).
Enable/start service áp dụng setting. Kết nối node này giống kết nối public node.
Khám phá địa chỉ và giới hạn truy cập
Mặc định node Yggdrasil mới chấp nhận mọi kết nối đến (đúng port). Để tạo VPN thực sự riêng tư, thêm public key vào whitelist.
Node Yggdrasil quảng bá public key duy nhất (tạo khi cài). Key này bảo mật bạn trong mạng, tạo địa chỉ.
Xem địa chỉ Yggdrasil:
sudo yggdrasilctl getself
Hiển thị địa chỉ IPv6 bắt đầu 20x:… – dùng kết nối trực tiếp qua Yggdrasil. getself cũng hiện public key – dùng tạo allowed list trên public node.
Cấu hình node cá nhân giới hạn truy cập
Sửa block AllowedPublicKeys: trong /etc/yggdrasil.conf public node. Thêm public key cho phép.
AllowedPublicKeys: [ "publickey1" "publickey2" "publickey3" ]
Khởi động lại service áp dụng:
sudo systemctl restart yggdrasil
Chúc mừng! Bạn hiểu cơ bản Yggdrasil Network và cách kết nối, cấu hình mạng riêng.
Nếu tò mò cách Internet hoạt động, xem bài chụp gói TCP với tcpdump.
Câu hỏi thường gặp
1. Thêm địa chỉ Yggdrasil bạn bè vào config nhưng không kết nối được. Sai ở đâu?
Thường do:
- Cả 2 máy sau NAT → không kết nối trực tiếp được.
- Block
Peers:vàListen:trong/etc/yggdrasil.confcấu hình sai.
Nguyên nhân 1: đảm bảo ít nhất 1 máy public accessible. Port phải port forward đúng, thấy từ ngoài mạng local.
Nguyên nhân 2: block Peers: và Listen: phải chứa địa chỉ IPv4/IPv6 thật của máy peer, KHÔNG PHẢI địa chỉ Yggdrasil.
2. Kiểm tra máy đã peer đúng nhau không?
Chạy:
sudo yggdrasilctl getpeersHiển thị peer kết nối và vị trí tương đối trong cây Yggdrasil.
3. Tạo khóa/địa chỉ Yggdrasil mạnh được không?
Có! Dùng address miner – chương trình brute-force cặp public key có số 0 đầu nhất định. Phổ biến: Simple Yggdrasil Generator (SYG) phiên bản mới viết C++.