Netplan และวิธีการเตรียมตัวอย่างถูกต้อง

Ubuntu เป็นระบบปฏิบัติการที่น่าทึ่ง ฉันไม่ได้ทำงานกับเซิร์ฟเวอร์ Ubuntu มาเป็นเวลานาน และไม่มีประโยชน์ที่จะอัพเกรดเดสก์ท็อปของฉันจากเวอร์ชันเสถียร และเมื่อไม่นานมานี้ฉันต้องจัดการกับเซิร์ฟเวอร์ Ubuntu 18.04 รุ่นล่าสุด ความประหลาดใจของฉันก็ไม่มีขอบเขตเมื่อฉันรู้ว่าฉันล้าหลังอย่างไม่มีที่สิ้นสุดและไม่สามารถตั้งค่าเครือข่ายได้เพราะระบบเก่าที่ดีสำหรับการตั้งค่าอินเทอร์เฟซเครือข่ายโดย การแก้ไขไฟล์ /etc/network /interfaces หมดลงแล้ว และอะไรมาแทนที่มัน? สิ่งที่แย่และเข้าใจยากเมื่อมองแวบแรกพบกับ "Netplan"

พูดตามตรง ตอนแรกฉันไม่เข้าใจว่าเกิดอะไรขึ้นและ "ทำไมถึงจำเป็น เพราะทุกอย่างสะดวกมาก" แต่หลังจากฝึกฝนไปสักพักฉันก็รู้ว่ามันมีเสน่ห์ในตัวเอง และเนื้อเพลงก็เพียงพอแล้ว มาดูกันว่า Netplan คืออะไรนี่คือยูทิลิตี้ใหม่สำหรับการตั้งค่าเครือข่ายใน Ubuntu อย่างน้อย“ ฉันไม่เห็นอะไรแบบนี้ในการแจกแจงอื่น ๆ ” ความแตกต่างที่สำคัญระหว่าง Netplan คือการกำหนดค่านั้นเขียนด้วยภาษา ย.มใช่ คุณได้ยินถูกต้องแล้ว YAML นักพัฒนาจึงตัดสินใจที่จะตามให้ทัน (และไม่ว่าพวกเขาจะชื่นชมมันมากแค่ไหน ฉันก็ยังคิดว่ามันเป็นภาษาที่แย่มาก) ข้อเสียเปรียบหลักของภาษานี้คือมันไวต่อช่องว่างมาก ลองดูการกำหนดค่าโดยใช้ตัวอย่าง

ไฟล์การกำหนดค่าตั้งอยู่ตามเส้นทาง /etc/netplan/filename.yaml ระหว่างแต่ละบล็อกควรมีช่องว่าง + 2 ช่อง

1) ส่วนหัวมาตรฐานมีลักษณะดังนี้:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4:no

มาดูสิ่งที่เราทำไปตอนนี้:

  • เครือข่าย: - นี่คือจุดเริ่มต้นของบล็อกการกำหนดค่า
  • renderer: networkd - ที่นี่เราระบุผู้จัดการเครือข่ายที่เราจะใช้ ซึ่งก็คือ networkd หรือ NetworkManager
  • เวอร์ชัน: 2 - ตามที่ฉันเข้าใจคือเวอร์ชัน YAML
  • อีเธอร์เน็ต: - บล็อกนี้ระบุว่าเราจะกำหนดค่าโปรโตคอลอีเธอร์เน็ต
  • enps0f0: - ระบุอะแดปเตอร์เครือข่ายที่เราจะกำหนดค่า
  • dhcp4:no - ปิดการใช้งาน DHCP v4 สำหรับ 6 v6 dhcp6 ตามลำดับ

2) ลองกำหนดที่อยู่ IP กัน:

    enp3s0f0:
      dhcp4:no
      macaddress: bb:11:13:ab:ff:32
      addresses: [10.10.10.2/24, 10.10.10.3/24]
      gateway4: 10.10.10.1
      nameservers:
        addresses: 8.8.8.8

ที่นี่เราตั้งค่า poppy, ipv4, เกตเวย์และเซิร์ฟเวอร์ DNS โปรดทราบว่าหากเราต้องการที่อยู่ IP มากกว่าหนึ่งรายการ เราจะเขียนที่อยู่ IP เหล่านั้นโดยคั่นด้วยเครื่องหมายจุลภาคและเว้นวรรคตามหลัง

3) จะทำอย่างไรถ้าเราต้องการ พันธะ?

  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1

  • พันธบัตร: - บล็อกที่อธิบายว่าเราจะกำหนดค่าการเชื่อม
  • Bond0: - ชื่ออินเทอร์เฟซที่กำหนดเอง
  • อินเทอร์เฟซ: - ชุดของอินเทอร์เฟซที่รวบรวมไว้ใน Bond-ding “ตามที่ระบุไว้ข้างต้น หากมีพารามิเตอร์หลายตัว เราจะอธิบายพารามิเตอร์เหล่านั้นในวงเล็บเหลี่ยม”
  • พารามิเตอร์: — อธิบายบล็อกการตั้งค่าพารามิเตอร์
  • โหมด: — ระบุโหมดที่การเชื่อมจะทำงาน
  • mii-monitor-interval: - ตั้งค่าช่วงเวลาการตรวจสอบเป็น 1 วินาที

ภายในบล็อกชื่อบอนด์ คุณยังสามารถกำหนดค่าพารามิเตอร์ เช่น ที่อยู่ เกตเวย์ 4 เส้นทาง ฯลฯ ได้

เราได้เพิ่มความซ้ำซ้อนสำหรับเครือข่ายของเรา ตอนนี้เหลือเพียงการติดตั้ง วแลน และถือว่าการตั้งค่าเสร็จสมบูรณ์

vlans: 
    vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      gateway: 10.10.10.1
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true

  • vlans: - ประกาศบล็อกการกำหนดค่า vlan
  • vlan10: — ชื่อที่กำหนดเองของอินเทอร์เฟซ vlan
  • id: - แท็กของ vlan ของเรา
  • ลิงค์: - อินเทอร์เฟซที่ vlan จะสามารถเข้าถึงได้
  • เส้นทาง: - ประกาศบล็อกคำอธิบายเส้นทาง
  • — ถึง: — ตั้งค่าที่อยู่/ซับเน็ตที่ต้องการเส้นทาง
  • ผ่าน: — ระบุเกตเวย์ที่จะเข้าถึงซับเน็ตของเรา
  • on-link: — เราระบุว่าควรลงทะเบียนเส้นทางเสมอเมื่อมีการยกลิงก์

ให้ความสนใจกับวิธีที่ฉันวางช่องว่าง สิ่งนี้สำคัญมากใน YAML

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

หลังจากรวบรวมโค้ดก่อนหน้านี้ทั้งหมดแล้ว นี่คือสิ่งที่เราได้รับ:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4: no
    ensp3s0f1:
      dhcp4: no
  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1
  vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true
  vlan20:
    id: 20
    link: bond0
    dhcp4: no
    addresses: [10.10.11.2/24]
    gateway: 10.10.11.1
    nameserver:
      addresses: [8.8.8.8]
    

ตอนนี้เครือข่ายของเราพร้อมใช้งานแล้ว ทุกอย่างกลับกลายเป็นว่าไม่น่ากลัวอย่างที่คิดในตอนแรก และโค้ดก็ดูสวยงามและอ่านง่ายมาก PC ขอบคุณสำหรับ netplan มีคู่มือที่ดีเยี่ยมอยู่ที่ลิงค์ https://netplan.io/.

ที่มา: will.com

เพิ่มความคิดเห็น