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