การเชื่อมต่อ Vultr หลายโซนด้วย N2N

N2N เป็นแอปพลิเคชั่นเลเยอร์ 2/3 VPN แบบโอเพ่นซอร์ส ไม่เหมือนกับโปรแกรม VPN อื่น ๆ อีกมากมาย N2N สามารถเชื่อมต่อคอมพิวเตอร์ที่อยู่หลังเราเตอร์ NAT นี่เป็นข้อได้เปรียบอย่างมากในการเชื่อมต่อกับสภาพแวดล้อมคลาวด์โดยไม่ต้องพึ่งพาโปรโตคอลพิเศษเช่นโปรโตคอล ESP (ใช้โดย ipsec) เพื่อให้บรรลุการเชื่อมต่อนี้ N2N ใช้ supernode ซึ่งสามารถกำหนดเส้นทางข้อมูลระหว่างโหนด NAT'ed การเชื่อมต่อ VPN นี้สามารถใช้เชื่อมต่อ Vultr หลาย ๆ อินสแตนซ์ในภูมิภาคต่างๆได้ด้วยกัน

ข้อกำหนดเบื้องต้น

ในตัวอย่างนี้เราจะใช้สามโหนดในหลายโซน:

  • ปารีส
  • ไมอามี่
  • ซิดนีย์

การติดตั้งซอฟต์แวร์

คำสั่งต่อไปนี้จะถูกดำเนินการในแต่ละอินสแตนซ์

เริ่มต้นด้วยการติดตั้งbuild-essentialจาก repo และlibssl-devในขณะที่เรากำลังสร้างจากซอร์สโค้ดใหม่ล่าสุด

apt-get install -y build-essential libssl-dev

จากนั้นดาวน์โหลดซอร์สโค้ดจาก github

cd /tmp
git clone https://github.com/ntop/n2n.git

รวบรวมไบนารีทั้งหมด

cd n2n 
make
make install

make installคำสั่งจะได้สร้างsupernodeและedgeไบนารีใน/usr/sbinไดเรกทอรี เสร็จสิ้นโดยล้างไฟล์

rm -rf /tmp/n2n

การติดตั้ง - โหนดปารีส

โหนดแรกจะเป็น supernode ที่เราเรียกว่า SuperNode นี้จะเริ่มให้บริการ SuperNode 1200ที่จะฟังบนพอร์ต ตามค่าเริ่มต้นแอปพลิเคชัน N2N จะไม่สร้างไฟล์บริการ ดังนั้นเราจะต้องให้บริการของเราเอง

สร้างไฟล์บริการ 'n2n_supernode':

nano /etc/systemd/system/n2n_supernode.service

เพิ่มเนื้อหาต่อไปนี้:

[Unit]
Description=n2n supernode
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/supernode -l 1200

[Install]
WantedBy=multi-user.target

'การ -l' 1200สั่งกำหนดพอร์ต นี่คือพอร์ตที่ supernode จะรับฟัง เพื่อให้แน่ใจว่าทุกอย่างใช้งานได้ให้เริ่มบริการ supernode:

systemctl start n2n_supernode

ตรวจสอบสถานะของ supernode

systemctl status n2n_supernode

สิ่งนี้จะแสดงสถานะคล้ายกับต่อไปนี้

● n2n_supernode.service - n2n supernode
   Loaded: loaded (/etc/systemd/system/n2n_supernode.service; disabled; vendor prese
   Active: active (running) since Wed 2018-08-15 17:07:46 UTC; 5s ago
 Main PID: 4711 (supernode)
    Tasks: 1
   Memory: 80.0K
      CPU: 1ms
   CGroup: /system.slice/n2n_supernode.service
           └─4711 /usr/sbin/supernode -l 1200

ต่อไปเราจะสร้างบริการที่ทันสมัย บริการ edge นี้จะอ้างสิทธิ์ IP ส่วนตัวสำหรับการสื่อสารระหว่าง edge อื่น ๆ ในโซน Vultr อื่น ๆ

เช่นเดียวกับบริการ supernode สิ่งนี้จะต้องมีไฟล์บริการของตัวเอง

nano /etc/systemd/system/n2n_edge.service

เพิ่มเนื้อหาต่อไปนี้:

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target n2n_supernode.service

[Service]
ExecStart=/usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypassword -f

[Install]
WantedBy=multi-user.target

ในไฟล์บริการนี้เราได้กำหนดตัวเลือกบรรทัดคำสั่งต่อไปนี้:

  • -l localhost:1200: นี้จะเชื่อมต่อกับ localhost 1200บนพอร์ต
  • -c Vultr: นี่คือชุมชนที่จะเข้าร่วม ขอบทั้งหมดภายในชุมชนเดียวกันปรากฏบน LAN เดียวกัน (ส่วนเครือข่ายเลเยอร์ 2) ขอบที่ไม่ได้อยู่ในชุมชนเดียวกันจะไม่สื่อสารกัน
  • -a 192.168.1.1: IP ที่กำหนดให้กับอินเทอร์เฟซนี้ นี่คือที่อยู่ IP LAN เสมือน N2N ที่กำลังอ้างสิทธิ์
  • -k mypassword: รหัสผ่านที่ใช้สำหรับแต่ละขอบ การสื่อสารที่ขอบทั้งหมดต้องใช้คีย์และชื่อชุมชนเดียวกัน
  • -f: ปิดใช้งานโหมด daemon และทำให้ edge ทำงานในพื้นหน้า สิ่งนี้จำเป็นสำหรับไฟล์บริการมิฉะนั้นsystemctlจะไม่เริ่มบริการ

เพื่อให้แน่ใจว่าทุกอย่างใช้งานได้ให้เริ่มบริการ

systemctl start n2n_edge

จากนั้นสอบถามสถานะการบริการ

systemctl status n2n_edge   

ผลลัพธ์จะคล้ายกับต่อไปนี้

● n2n_edge.service - n2n edge
   Loaded: loaded (/etc/systemd/system/n2n_edge.service; disabled; vendor preset: en
   Active: active (running) since Wed 2018-08-15 17:10:46 UTC; 3s ago
 Main PID: 4776 (edge)
    Tasks: 1
   Memory: 396.0K
      CPU: 8ms
   CGroup: /system.slice/n2n_edge.service
           └─4776 /usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypass

หากเราตรวจสอบ 'ifconfig' คุณจะเห็น IP เสมือน N2N ถูกอ้างสิทธิ์โดยedge0ส่วนต่อประสาน

ifconfig

ผลลัพธ์จะคล้ายกับต่อไปนี้

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

เมื่อดำเนินการเสร็จแล้วให้เปิดใช้งานและสร้างกฎไฟร์วอลล์ ตรวจสอบให้แน่ใจว่าได้แทนที่node_miami_ipและnode_sydney_ipข้อความด้วย IP สาธารณะของอินสแตนซ์ซิดนีย์และไมอามี (เราจะใช้สิ่งเหล่านี้ในภายหลัง)

ufw allow 22/tcp
ufw allow from node_miami_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200
ufw enable

สิ่งสุดท้ายที่ต้องทำกับโหนดนี้คือการเปิดใช้งานบริการทั้งสองตอนบูต

systemctl enable n2n_supernode.service
systemctl enable n2n_edge.service

การติดตั้ง - โหนดไมอามี่

โหนด Miami จะเชื่อมต่อกับ super node ซึ่งกำลังทำงานในเขตปารีส เพื่อให้บรรลุเป้าหมายเราต้องสร้างไฟล์บริการสำหรับedgeแอปพลิเคชันเท่านั้น

เริ่มต้นด้วยการสร้างไฟล์บริการขอบ

nano /etc/systemd/system/n2n_edge.service

เพิ่มเนื้อหาต่อไปนี้

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.2 -k mypassword -f

[Install]
WantedBy=multi-user.target

หมายเหตุ : แทนที่node_paris_ipด้วย IP สาธารณะของอินสแตนซ์ที่ทำงานอยู่ในปารีส

สิ่งนี้จะเชื่อมต่อกับโหนดในปารีสบนพอร์ต UDP 1200เข้าร่วมชุมชน ' Vultr' อ้างสิทธิ์ IP 192.168.1.2และรับรองความถูกต้องด้วย ' mypassword'

ถัดไปเริ่มบริการ

systemctl start n2n_edge

ตรวจสอบสถานะเพื่อบ่งชี้ว่าบริการได้เริ่มต้นอย่างถูกต้องและทำงานอยู่

systemctl status n2n_edge   

ถัดไปตรวจสอบให้แน่ใจว่าedge0ได้รับ IP

ifconfig

มันจะแสดงที่192.168.1.2อยู่ IP

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

สิ่งต่อไปที่ต้องทำคือเปิดใช้บริการเมื่อบู๊ต

systemctl enable n2n_edge.service

เลือกเปิดใช้งานไฟร์วอลล์และเพิ่มกฎ SSH

ufw allow 22/tcp
ufw enable

ตอนนี้เราจะสามารถ ping ขอบทั้งสองทำงานในอินสแตนซ์ของเรา

ในปารีส ping the Vultr instance ใน Miami

ping 192.168.1.2

ในไมอามี ping edge ในปารีส

ping 192.168.1.1

การติดตั้ง - โหนดซิดนีย์

ในที่สุดเราจะเพิ่มทวีปสุดท้ายของเราลงในส่วนผสม: ออสเตรเลีย เริ่มต้นอีกครั้งโดยสร้างบริการ edge บริการ edge นี้จะเชื่อมต่อกับ supernode ที่กำหนดค่าไว้ก่อนหน้าในปารีส

nano /etc/systemd/system/n2n_edge.service

เพิ่มเนื้อหาต่อไปนี้

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.3 -k mypassword -f

[Install]
WantedBy=multi-user.target

หมายเหตุ : แทนที่node_paris_ipด้วย IP สาธารณะของอินสแตนซ์ที่ทำงานอยู่ในปารีส

สิ่งนี้จะเชื่อมต่อกับโหนดในปารีสบนพอร์ต UDP 1200เข้าร่วมชุมชน ' Vultr' อ้างสิทธิ์ IP 192.168.1.3และรับรองความถูกต้องด้วย ' mypassword'

systemctl start n2n_edge

ตรวจสอบสถานะเพื่อให้แน่ใจว่าบริการได้เริ่มขึ้นแล้ว

systemctl status n2n_edge   

ตรวจสอบให้แน่ใจว่าedge0ได้รับ IP

edge0     Link encap:Ethernet  HWaddr 46:56:b0:e9:8f:8a
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
        inet6 addr: fe80::4456:b0ff:fee9:8f8a/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

เปิดใช้งานบริการนี้อีกครั้งเมื่อบู๊ต

systemctl enable n2n_edge.service

เลือกเปิดใช้งานไฟร์วอลล์และเพิ่มกฎ SSH

ufw allow 22/tcp
ufw enable

ตอนนี้เราจะสามารถ ping แต่ละ Vultr อินสแตนซ์จากแต่ละโหนด

ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3

หากคุณต้องการทดสอบการเชื่อมต่อระหว่างขอบแต่ละโหนดให้เปิดใช้งานกฎไฟร์วอลล์ในอินสแตนซ์ของ Miami และ Paris สิ่งนี้จะช่วยให้การสื่อสารระหว่างขอบ

ในไมอามี่เพิ่มกฎต่อไปนี้ (ตรวจสอบให้แน่ใจว่าได้แทนที่node_paris_ipและnode_sydney_ipข้อความด้วย IP สาธารณะของอินสแตนซ์ซิดนีย์และปารีส)

ufw allow from node_paris_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200

ในซิดนีย์ให้เพิ่มกฎต่อไปนี้

ufw allow from node_paris_ip to any port 1200
ufw allow from node_miami_ip to any port 1200

ตอนนี้คุณสามารถปิดหรือรีบูต supernode การเชื่อมต่อเครือข่ายจะยังคงมีอยู่ เฉพาะขอบใหม่เท่านั้นที่จะประสบปัญหาการเชื่อมต่อในขณะที่บริการ supernode หยุดทำงาน

ข้อสรุป

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

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true