Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

เครือข่าย Yggdrasil เป็นเครือข่ายโอเวอร์เลย์ IPv6 ที่มีจุดมุ่งหมายเพื่อสร้างเครือข่ายเมชที่มีการกระจายอำนาจและเข้ารหัส ทำได้โดยถือว่าเครือข่ายเหมือนใบไม้ในไบนารีทรี เนื่องจากเป็นเครือข่ายโอเวอร์เลย์ Yggdrasil ยังทำหน้าที่เป็นเครือข่ายส่วนตัวเสมือน (VPN) ที่ช่วยให้ผู้ใช้สามารถโต้ตอบซึ่งกันและกันได้อย่างปลอดภัย

นอกจากนี้ Yggdrasil นั้นฟรี ตั้งค่าได้ง่าย และยังมีให้ใช้งานในหลากหลายแพลตฟอร์ม สิ่งนี้ทำให้ Yggdrasil เป็นทางเลือกที่ดีสำหรับผู้ที่สนใจที่จะมีการเชื่อมต่อที่ปลอดภัยและเป็นส่วนตัวกับผู้อื่น

Mesh Networking และ Yggdrasil คืออะไร

Yggdrasil บรรลุการสร้างเครือข่ายแบบเมชโดยแสดงเครือข่ายเป็นแผนผังของโหนดที่เชื่อมต่อถึงกัน โดยโหนดเหล่านี้สามารถทำหน้าที่เป็นรีเลย์ไปยังโหนดอื่นได้ สิ่งนี้ทำให้ Yggdrasil เป็นเครือข่ายตาข่ายที่แท้จริง

เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

นอกจากนี้ โครงสร้างของเครือข่ายยังช่วยให้ Yggdrasil ค้นหาเครื่องหรือเว็บไซต์ที่คุณต้องการเยี่ยมชมได้อย่างง่ายดาย ในทางกลับกัน การทำเช่นนี้จะทำให้คุณสามารถโต้ตอบกับผู้ใช้รายอื่นโดยไม่จำเป็นต้องใช้เซิร์ฟเวอร์กลางเพื่อกำหนดเส้นทางการรับส่งข้อมูลให้กับคุณ

เหตุใดจึงควรใช้ Yggdrasil

จุดขายหลักของ Yggdrasil คือการเปลี่ยนแปลงวิธีการส่งข้อมูลผ่านอินเทอร์เน็ต ทำได้โดยสมมติว่าบางสิ่งเกี่ยวกับสถานะเริ่มต้นของเครือข่ายดังกล่าว:

  • โหนดทั้งหมดเชื่อมต่อกับโหนดอื่นอย่างน้อยหนึ่งโหนด
  • แต่ละโหนดสามารถถ่ายทอดข้อมูลไปยังโหนดอื่นได้อย่างโปร่งใส
  • แต่ละโหนดสามารถเผยแพร่โหนดที่เชื่อมต่อได้
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

สมมติฐานเหล่านี้สร้างโครงสร้างที่ทั้งเข้มงวดและคาดเดาได้ แต่ยังมีความยืดหยุ่นสูงอีกด้วย ตัวอย่างเช่น คุณสามารถทำให้เครื่องของคุณเข้าถึงได้แบบสาธารณะโดยเชื่อมต่อกับโหนดสาธารณะเพียงโหนดเดียว โหนดสาธารณะนี้เชื่อมต่อกับโหนดอื่นแล้ว จากที่นั่น ผู้ใช้รายอื่นสามารถเพียร์กับโหนดนั้นเพื่อเชื่อมต่อกับคุณได้

เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

ไม่เพียงเท่านั้น Yggdrasil ยังช่วยให้คุณสร้างเครือข่ายย่อยของเครื่องในเครื่องได้ ด้วยเหตุนี้ จึงมีประโยชน์อย่างมากหากคุณต้องการสร้าง VPN

วิธีการติดตั้ง Yggdrasil

ตามที่กล่าวไว้ข้างต้น Yggdrasil มีให้บริการในหลายแพลตฟอร์มและระบบปฏิบัติการ ซึ่งรวมถึงลีนุกซ์ส่วนใหญ่ด้วย

อย่างไรก็ตาม Yggdrasil ไม่ได้อยู่ในที่เก็บเริ่มต้นเสมอไป ดังนั้น การแจกแจงบางรายการต้องการให้คุณรวมแหล่งที่มาก่อนที่จะติดตั้ง

การติดตั้ง Yggdrasil ใน Debian และ Ubuntu

ตัวอย่างเช่น หากคุณต้องการติดตั้ง Yggdrasil ใน Debian และ Ubuntu คุณต้องเพิ่มคีย์ GPG ที่เป็นทางการลงใน apt ก่อน โดยเรียกใช้คำสั่งต่อไปนี้:

gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt
gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

จากที่นั่น คุณต้องเพิ่มที่เก็บลงในรายการแหล่งที่มาที่ apt ค้นหาในแพ็คเกจ:

echo 'deb https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

เมื่อเสร็จแล้วให้อัพเดต apt และติดตั้งโปรแกรม ทำได้โดยเรียกใช้โค้ดบรรทัดเดียวนี้:

sudo apt update && sudo apt install yggdrasil
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

การติดตั้ง Yggdrasil ใน Fedora

ตรงกันข้ามกับ Debian และ Ubuntu กระบวนการติดตั้ง Yggdrasil ใน Fedora นั้นเรียบง่าย เนื่องจากเป็นส่วนหนึ่งของ “แพ็คเกจชุมชน” ของ Fedora แล้ว

ดังนั้น การติดตั้งโปรแกรมจึงง่ายพอๆ กับการรันคำสั่ง:

sudo dnf copr enable rany/yggdrasil
sudo dnf install yggdrasil

การติดตั้ง Yggdrasil ใน Arch Linux

สุดท้ายนี้ การติดตั้ง Yggdrasil ใน Arch Linux ก็ทำได้ง่ายมากเช่นกัน เช่นเดียวกับ Fedora มันถูกรวมอยู่ในแหล่งเก็บข้อมูลชุมชนของ Arch แล้ว

ดังนั้น คุณสามารถติดตั้งโปรแกรมผ่าน pacman:

sudo pacman -Syu yggdrasil

การกำหนดค่าการติดตั้งของคุณ

เมื่อเสร็จแล้ว การตั้งค่า Yggdrasil เพื่อเชื่อมต่อกับโหนดนั้นง่ายมาก โดยคุณจะต้องแก้ไข “/etc/yggdrasil.conf” เพื่อกำหนดค่าการทำงานของโปรแกรมเท่านั้น หากต้องการเข้าถึง ให้ใช้ nano:

sudo nano -w /etc/yggdrasil.conf
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

Yggdrasil จะสร้างไฟล์นี้หลังการติดตั้ง อย่างไรก็ตาม หากไม่เป็นเช่นนั้น คุณสามารถเรียกใช้คำสั่งนี้เพื่อสร้างไฟล์การกำหนดค่าใหม่:

su --command="yggdrasil -genconf > /etc/yggdrasil.conf"

เชื่อมต่อกับโหนดสาธารณะ

ดังที่เราได้กล่าวไว้ข้างต้น มีสองวิธีในการใช้โปรแกรม:

  • เชื่อมต่อกับโหนดสาธารณะเพื่อให้ค้นพบเครื่องของคุณได้
  • เชื่อมต่อเครื่องจักรจำนวนมากเข้าด้วยกันในเครือข่ายส่วนตัวเสมือน

สำหรับอันแรก ให้เพิ่มที่อยู่ของโหนดสาธารณะในไฟล์ “/etc/yggdrasil.conf” ของคุณโดยแก้ไข Peers: บล็อกในไฟล์กำหนดค่านั้น

นี่คือส่วนในการกำหนดค่าที่กำหนดโหนดที่คุณต้องการเชื่อมต่อ ด้วยเหตุนี้ เครื่องที่ระบุในที่นี้จึงควรเปิดเผยต่อสาธารณะและเชื่อมต่อได้จากอินเทอร์เน็ต

ให้พิจารณาตัวอย่างต่อไปนี้:

{
   # 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: [
         tls://address.domain:port
         tcp://1.2.3.4:port
         socks://[aaaa:...:ffff]/[1111:...:9999]
   ]
 
   [...]

บล็อกเพียร์เป็นรายการพื้นฐานของโหนดทั้งหมดที่คุณต้องการเชื่อมต่อ

เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

สามารถสร้างการเชื่อมต่อที่เข้ารหัสโดยใช้ TLS และ SOCKS หรือการเชื่อมต่อที่ไม่ได้เข้ารหัสโดยใช้ TCP ส่วนหลังนี้มีประโยชน์สำหรับการเชื่อมต่ออุปกรณ์ฝังตัวขนาดเล็กที่ไม่รองรับ TLS แต่มีการเชื่อมต่อเครือข่ายพื้นฐาน

ด้วยวิธีนี้ คุณจะเชื่อมต่อกับเครือข่าย Yggdrasil สาธารณะได้โดยคัดลอกลิงก์โหนดบางส่วนที่ชุมชนมอบให้

เมื่อเสร็จแล้ว คุณสามารถเปิดใช้งานโปรแกรมได้โดยใช้คำสั่งต่อไปนี้:

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

คุณสามารถทดสอบว่าคุณได้เชื่อมต่อกับเครือข่ายอย่างถูกต้องหรือไม่โดยไปที่หน้าเว็บนี้

การสร้างเครือข่ายส่วนตัวของคุณเอง

ในทางกลับกัน การสร้างเครือข่ายส่วนตัวอาจเกี่ยวข้องเล็กน้อย แต่ก็ยังค่อนข้างง่าย ในการสร้างเครือข่าย Yggdrasil ส่วนตัว คุณจะต้องมีสิ่งต่อไปนี้:

  • เครื่องที่เปิดเผยต่อสาธารณะ นี่อาจเป็นเครื่องในเครื่องที่ไม่ถูกบล็อกโดย CG-NAT หรือเซิร์ฟเวอร์ส่วนตัวเสมือนราคาถูก
  • จำนวนเครื่องที่อยู่ในเครือข่ายต่างๆ ที่ไม่สามารถพูดคุยกันโดยตรงได้

การกำหนดค่าโหนดสาธารณะส่วนบุคคลของคุณ

ในการสร้างเครือข่าย Yggdrasil ส่วนตัว คุณต้องอนุญาตให้เครื่องสาธารณะของคุณเชื่อมต่อกับโหนดอื่นก่อน ให้แก้ไข Listen: บล็อกของ “/etc/yggdrasil.conf” ของเครื่องสาธารณะ

ตัวอย่างเช่น โหนดที่กำหนดค่าให้ใช้การเชื่อมต่อสาธารณะอาจมีลักษณะดังนี้:

  [...]
 
  # 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: [
           tls://your.ipv4.address.here:12345
           tcp://[your:ipv6:address:here]:12345
    ]
 
  [...]

เราได้ตั้งค่าให้โหนดรับการเชื่อมต่อขาเข้าในพอร์ต 12345 จากทั้ง IPv4 และ IPv6 นอกจากนี้ การเชื่อมต่อ IPv4 จะถูกห่อด้วย TLS ในขณะที่ IPv6 อยู่ใน TCP ที่ไม่มีการเข้ารหัส

เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

จากที่นี่ เปิดใช้งานและเริ่มบริการ Yggdrasil เพื่อใช้การตั้งค่าของคุณ หลังจากนั้น การเชื่อมต่อกับโหนดนี้จะเหมือนกับการเชื่อมต่อกับโหนดสาธารณะ

การค้นหาที่อยู่และการจำกัดการเข้าถึง

โดยค่าเริ่มต้น โหนด Yggdrasil ที่สร้างขึ้นใหม่จะยอมรับการเชื่อมต่อที่เข้ามา หากใช้พอร์ตที่ถูกต้อง ในการสร้าง VPN ส่วนตัวอย่างแท้จริงสำหรับเครื่องของคุณ คุณต้องเพิ่มไปยังรายการที่อนุญาตพิเศษของคีย์สาธารณะ

โหนด Yggdrasil ทำงานโดยเผยแพร่คีย์สาธารณะที่ไม่ซ้ำกันซึ่ง Yggdrasil สร้างขึ้นเมื่อคุณติดตั้งครั้งแรก คีย์นี้ใช้เพื่อรักษาความปลอดภัยภายในเครือข่ายและสร้างที่อยู่ของคุณ

คุณสามารถตรวจสอบที่อยู่ Yggdrasil ได้โดยเรียกใช้คำสั่งนี้:

sudo yggdrasilctl getself
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

ซึ่งจะแสดงที่อยู่ IPv6 ที่ขึ้นต้นด้วย “20x:… ” สามารถใช้เชื่อมต่อโดยตรงกับเครื่องนั้นผ่าน Yggdrasil

นอกจากนี้ getself คำสั่งจะแสดงคีย์สาธารณะของเครื่องด้วย นี่คือสิ่งที่คุณต้องสร้างรายการเครื่องที่อนุญาตในโหนดสาธารณะของคุณ

การกำหนดค่าโหนดส่วนบุคคลของคุณเพื่อจำกัดการเข้าถึง

ในการจำกัดการเข้าถึงโหนด Yggdrasil คุณต้องแก้ไข AllowedPublicKeys: บล็อกในโหนดสาธารณะของคุณ “/etc/yggdrasil.conf” เพียงเพิ่มพับลิกคีย์ทั้งหมดที่คุณต้องการให้โหนดนี้ยอมรับ

ตัวอย่างเช่น นี่คือการกำหนดค่าสำหรับโหนดที่ยอมรับคีย์สาธารณะเพียงสามคีย์เท่านั้น:

 # 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: [
    "publickey1" 
    "publickey2"
    "publickey3"
    ]
เครือข่าย Yggdrasil คืออะไรและจะติดตั้งได้อย่างไร

เมื่อเสร็จแล้ว คุณสามารถใช้การตั้งค่าของคุณโดยเริ่มบริการ Yggdrasil ใหม่:

sudo systemctl restart yggdrasil

ยินดีด้วย! ตอนนี้คุณมีความเข้าใจพื้นฐานเกี่ยวกับวิธีการทำงานของเครือข่าย Yggdrasil รวมถึงแนวคิดพื้นฐานในการเชื่อมต่อและกำหนดค่าเครือข่ายส่วนตัวแล้ว

หากการพูดคุยทั้งหมดนี้ทำให้คุณสงสัยว่าอินเทอร์เน็ตทำงานอย่างไร คุณสามารถอ่านบทความนี้เกี่ยวกับการดักจับแพ็กเก็ต TCP ด้วย tcpdump

คำถามที่พบบ่อย

1. ฉันได้เพิ่มที่อยู่ Yggdrasil ของเพื่อนลงในไฟล์การกำหนดค่าแล้ว แต่ไม่สามารถเชื่อมต่อกับเขาได้ ฉันทำอะไรผิด

อาจเกิดจากหลายสาเหตุ อย่างไรก็ตาม สาเหตุที่พบบ่อยที่สุดของปัญหานี้คือ:

  • เครื่องทั้งสองเครื่องอยู่เบื้องหลัง NAT ดังนั้นจึงไม่สามารถสร้างการเชื่อมต่อโดยตรงระหว่างกัน
  • The Peers: บล็อกและ Listen: บล็อกใน “/etc/yggdrasil.conf” มีการกำหนดค่าไม่ถูกต้อง

สำหรับสาเหตุแรก คุณต้องตรวจสอบให้แน่ใจว่ามีเครื่องอย่างน้อยหนึ่งเครื่องที่สามารถเข้าถึงได้แบบสาธารณะ นอกจากนี้ คุณต้องตรวจสอบให้แน่ใจว่าพอร์ตที่คุณใช้มีการส่งต่อพอร์ตอย่างเหมาะสม และสามารถมองเห็นได้จากภายนอกเครือข่ายท้องถิ่นของคุณ

สำหรับสาเหตุที่สอง ตรวจสอบให้แน่ใจว่า Peers: และ Listen: บล็อกมี ที่อยู่ IPv4 หรือ IPv6 จริง ของเครื่องเพียร์และไม่ใช่ที่อยู่ Yggdrasil

2. ฉันจะรู้ได้อย่างไรว่าเครื่องของฉันมีการเพียร์ซึ่งกันและกันหรือไม่

คุณสามารถตรวจสอบได้อย่างง่ายดายว่าเครื่องของคุณมีการเพียร์ระหว่างกันหรือไม่โดยเรียกใช้คำสั่งนี้:

sudo yggdrasilctl getpeers

ซึ่งจะแสดงเพื่อนที่เชื่อมต่อกับคุณในปัจจุบันทั้งหมด รวมถึงตำแหน่งที่สัมพันธ์กันในแผนผังเครือข่าย Yggdrasil

3. เป็นไปได้ไหมที่จะสร้างคีย์และที่อยู่ Yggdrasil ที่รัดกุม

ใช่! คุณสามารถทำได้โดยใช้เครื่องมือขุดที่อยู่ นี่เป็นโปรแกรมง่ายๆ ที่จะคำนวณคู่คีย์สาธารณะที่มีเลขศูนย์จำนวนหนึ่งอยู่ข้างหน้าอย่างดุเดือด

โปรแกรมที่ใช้กันทั่วไปในการทำเช่นนี้คือ Simple Yggdrasil Generator (SYG) โดยมีเวอร์ชันล่าสุดเขียนด้วยภาษา C++