การตั้งค่าอินเทอร์เฟซเครือข่ายเดเบียน

Debian Network Interface Setup



ความรู้เกี่ยวกับการตั้งค่าอินเทอร์เฟซเครือข่ายใน Debian GNU/Linux และการกระจายที่เกี่ยวข้องกับ Debian เป็นสิ่งจำเป็นสำหรับวิศวกร Linux ทุกคน ในบทความนี้ เราจะอธิบายให้คุณทราบถึงตำแหน่งที่จะหาข้อมูลที่เหมาะสม และวิธีตั้งค่าสำหรับ IPv4 IPv4 [2] และ IPv6 [3] . จำนวนตัวเลือกค่อนข้างยาว แต่ให้ความยืดหยุ่นอย่างมากสำหรับสถานการณ์เฉพาะของคุณ

การตั้งค่าเครือข่ายเดเบียน

การกำหนดค่าทั้งหมดสำหรับอินเทอร์เฟซเครือข่ายถูกเก็บไว้ในไฟล์ข้อความธรรมดาในไดเร็กทอรีเดียวชื่อ /etc/network ไดเร็กทอรีนี้ประกอบด้วยไฟล์และไดเร็กทอรีย่อยจำนวนหนึ่งเพื่อให้ครอบคลุมทั้งการตั้งค่าสำหรับ IPv4 และ IPv6







  • interfaces and interfaces.d: การกำหนดค่าทั่วไปต่ออินเทอร์เฟซ
  • if-down.d: สคริปต์ที่ทำงานในกรณีที่อินเทอร์เฟซล่ม
  • if-post-down.d: สคริปต์ที่ทำงานหลังจากอินเทอร์เฟซหยุดทำงาน
  • if-up.d: สคริปต์ที่ทำงานหากอินเทอร์เฟซเพิ่มขึ้น
  • if-pre-up.d: สคริปต์ที่ทำงานก่อนที่อินเทอร์เฟซจะขึ้น

การกำหนดค่าเฉพาะจะทำต่ออินเทอร์เฟซเครือข่าย คุณสามารถจัดเก็บทั้งหมดไว้ในไฟล์เดียวชื่อ interfaces หรือแยกเป็นไฟล์ในไดเร็กทอรี interfaces.d การกำหนดค่า IPv4 ทั่วไปจากอุปกรณ์พกพาแสดงอยู่ด้านล่าง ประกอบด้วยอินเทอร์เฟซแบบวนรอบ |_+_| อินเทอร์เฟซอีเทอร์เน็ต |_+_| และอินเทอร์เฟซไร้สาย |_+_| บรรทัดที่ 1 หมายถึงรวมสคริปต์ทั้งหมดที่เก็บอยู่ในไดเร็กทอรี |_+_| บรรทัดที่ 3 ถึง 5 กำหนดค่า |_+_| บรรทัดที่ 7 ถึง 9 /dev/eth0 และบรรทัดที่ 11 ส่วนต่อประสาน /dev/wlan0 คำอธิบายโดยละเอียดสำหรับคำสั่งเดียวมีดังต่อไปนี้



1 แหล่งที่มา /ฯลฯ/เครือข่าย/interfaces.d/ *
2
3 # อินเทอร์เฟซเครือข่ายลูปแบ็ค
4รถมัน
5iface lo inet ลูปแบ็ค
6
7 # อินเทอร์เฟซเครือข่ายหลัก
8อนุญาต-hotplug eth0
9iface eth0 inet dhcp
10
สิบเอ็ดiface wlan0 inet dhcp

สำหรับ Debian GNU/Linux รุ่นอื่น ๆ หรือการแจกจ่ายตามนั้น อินเทอร์เฟซของไฟล์อาจดูคล้ายกัน แต่มีชื่อต่างกันสำหรับอุปกรณ์เครือข่าย ณ Debian 9 ขยายชื่อเครือข่ายเก่าเช่น |_+_| และ |_+_| หายไปเนื่องจากชื่ออุปกรณ์สามารถเปลี่ยนแปลงได้ ชื่อใหม่คล้ายกับชื่อเหล่านี้ — |_+_|, |_+_|, |_+_| และ |_+_| [1] . สำหรับอินเทอร์เฟซเครือข่ายที่มีให้ดูที่ไฟล์ /sys/class/net - ในกรณีของเราอินเทอร์เฟซมีชื่อว่า |_+_| และ |_+_|.



รายการอินเทอร์เฟซเครือข่ายที่ใช้ได้:


การกำหนดค่าสำหรับอินเทอร์เฟซเหล่านี้มีลักษณะดังนี้ ภาพด้านล่างนำมาจาก Debian GNU/Linux 9.5'





การกำหนดค่าเครือข่ายพื้นฐานบน Debian GNU/Linux 9.5:


ในขั้นตอนต่อไป เราจะดูที่คำสั่งเดียวเพื่อกำหนดค่าอินเทอร์เฟซที่ต้องการ

รายละเอียดการกำหนดค่าเครือข่ายเดเบียน

เปิดใช้งานอินเทอร์เฟซอัตโนมัติเมื่อเริ่มต้น

เมื่อเริ่มต้นระบบของคุณ สคริปต์การตั้งค่าจะผ่านไฟล์การกำหนดค่าสำหรับอินเทอร์เฟซเครือข่าย เพื่อเปิดใช้งานอินเทอร์เฟซโดยอัตโนมัติ ให้เพิ่มคำหลักอัตโนมัติ (ย่อมาจาก allow-auto) ตามด้วยชื่อตรรกะของอินเทอร์เฟซ สคริปต์การตั้งค่าจะเรียกคำสั่ง ifup -a (ย่อมาจาก –all) ซึ่งจะเปิดใช้งานอินเทอร์เฟซดังกล่าว บรรทัดต่อไปนี้จะแสดงอินเทอร์เฟซแบบวนรอบ /dev/lo เท่านั้น:



รถมัน

อินเทอร์เฟซเครือข่ายถูกนำขึ้นตามลำดับที่แสดง บรรทัดต่อไปนี้จะแสดง /dev/lo ตามด้วย /dev/wlan0 และ /dev/eth0 ในที่สุด

อัตโนมัติ lo wlan0 eth0

เปิดใช้งานอินเทอร์เฟซหากเสียบสายเคเบิลเครือข่ายไว้

คีย์เวิร์ด allow-hotplug นำไปสู่เหตุการณ์ตามการเชื่อมต่อทางกายภาพ อินเทอร์เฟซเครือข่ายที่ระบุชื่อจะเปิดใช้งานทันทีที่เสียบสายเคเบิลเครือข่าย และปิดใช้งานทันทีที่ถอดสายเคเบิลเครือข่าย บรรทัดถัดไปสาธิตสิ่งนี้สำหรับอินเตอร์เฟสอีเทอร์เน็ต /dev/eth0 (คล้ายกับบรรทัดที่ 8 ของรายการ 1)

อนุญาต-hotplug eth0

การกำหนดค่าอินเทอร์เฟซแบบคงที่

ในการสื่อสารกับคอมพิวเตอร์เครื่องอื่นในเครือข่าย อินเทอร์เฟซจะถูกกำหนดที่อยู่ IP ที่อยู่นี้ได้รับแบบไดนามิก (ผ่าน DHCP) หรือตั้งค่าด้วยวิธีคงที่ (การกำหนดค่าแบบคงที่) ดังนั้น การประกาศอินเทอร์เฟซเริ่มต้นด้วยคีย์เวิร์ด iface ตามด้วยชื่อตรรกะของอินเทอร์เฟซเครือข่าย ประเภทการเชื่อมต่อ และวิธีการที่ใช้เพื่อรับที่อยู่ IP ตัวอย่างต่อไปจะแสดงสิ่งนี้สำหรับอินเทอร์เฟซเครือข่าย /dev/eth0 ที่มีที่อยู่ IPv4 แบบคงที่ 192.168.1.5

iface eth0 inet คงที่
ที่อยู่ 192.168.1.5
เน็ตมาสก์ 255.255.255.0
เกตเวย์ 192.168.1.1

หลังจากการประกาศอินเทอร์เฟซ คุณได้รับเชิญให้ระบุตัวเลือกจำนวนหนึ่ง (ชื่อตัวเลือกในวงเล็บ) ซึ่งรวมถึงค่าต่างๆ เช่น ที่อยู่ IP (ที่อยู่) เน็ตมาสก์ (เน็ตมาสก์) ช่วงการออกอากาศ (การออกอากาศ) เมตริกการกำหนดเส้นทางสำหรับเกตเวย์เริ่มต้น (เมตริก) เกตเวย์เริ่มต้น (เกตเวย์) ที่อยู่ของจุดสิ้นสุดอื่น (pointtopoint) ที่อยู่ของลิงก์ (hwaddress) ขนาดแพ็กเก็ต (mtu) และขอบเขตความถูกต้องของที่อยู่ (ขอบเขต) ตัวอย่างต่อไปแสดงการกำหนดค่าสำหรับ IPv6 สำหรับอินเทอร์เฟซเครือข่าย /dev/enp0s3 [4] .

iface enp0s3 inet6 คงที่
ที่อยู่ fd4e:a32c:3873:9e59:0004::254
เน็ตมาสก์80
เกตเวย์ fd4e:a32c:3873:9e59:0004::1

การกำหนดค่าอินเทอร์เฟซแบบไดนามิกผ่าน DHCP

การเชื่อมต่อกับเครือข่ายต่างๆ ต้องใช้ความยืดหยุ่น โปรโตคอลการควบคุมโฮสต์แบบไดนามิก ( DHCP ) [5] ทำให้ความยืดหยุ่นนี้เป็นไปได้และสคริปต์เครือข่ายกำหนดที่อยู่ IP ให้กับอินเทอร์เฟซเครือข่ายที่ส่งมาจากเซิร์ฟเวอร์ DHCP บรรทัดต่อไปนี้สาธิตสิ่งนี้สำหรับอินเทอร์เฟซ wlan ชื่อ /dev/wlan0:

iface wlan0 inet dhcp

#สำหรับ IPv6 ใช้บรรทัดนี้แทน:
iface wlan0 inet6 dhcp

คล้ายกับการกำหนดค่าแบบคงที่จากด้านบน มีตัวเลือกมากมายที่สามารถตั้งค่าได้ ตัวเลือกเหล่านี้ขึ้นอยู่กับการตั้งค่า DHCP ของคุณ รายการรวมถึงชื่อโฮสต์ที่จะขอ (ชื่อโฮสต์) ตัวชี้วัดสำหรับเส้นทางที่เพิ่ม (ตัวชี้วัด) เวลาเช่าที่ต้องการเป็นชั่วโมงหรือวินาที (leasehours, Leasetime) ตัวระบุไคลเอนต์ (ไคลเอนต์) หรือที่อยู่ฮาร์ดแวร์ (hwaddress ).

ตัวเลือกอื่น

ไฟล์การกำหนดค่า /etc/interfaces ยังอนุญาตให้ตั้งค่าสำหรับ Bootstrap Protocol ( BOOTP ) [6] (bootp), PPP (ppp) เช่นเดียวกับ IPX [7].

กำลังแสดงการกำหนดค่าอินเทอร์เฟซ

จนถึงรุ่น 8 ของ Debian GNU/Linux ใช้คำสั่ง /sbin/ifconfig เพื่อแสดงการกำหนดค่าอินเทอร์เฟซ ดูการกำหนดค่าสำหรับอินเทอร์เฟซอีเทอร์เน็ตแรกด้านล่าง

การกำหนดค่าอินเทอร์เฟซโดยใช้ ifconfig :

ตั้งแต่รุ่น 9 เป็นต้นไป คำสั่ง ifconfig จะไม่ถูกติดตั้งไว้ล่วงหน้าอีกต่อไป และแทนที่ด้วย ip รุ่นก่อน ใช้คำสั่ง ip addr show แทน

การกำหนดค่าอินเทอร์เฟซโดยใช้ ip:

การเปิดใช้งานและปิดใช้งานอินเทอร์เฟซ

ตามที่อธิบายไว้ข้างต้น ตัวเลือกอัตโนมัติจะเปิดใช้งานอินเทอร์เฟซเมื่อเริ่มต้นโดยอัตโนมัติ มีสองคำสั่งสำหรับเปิดและปิดอินเทอร์เฟซด้วยตนเอง มากถึง Debian 8 ใช้ ifconfig eth0 up หรือ ifup eth0 เพื่อเปิดใช้งานอินเทอร์เฟซ จาก Debian 9 ให้ใช้ ifup eth0 เท่านั้น คู่กันคือ ifconfig eth0 down และ ifdown eth0 รูปภาพด้านล่างแสดงเอาต์พุตเริ่มต้นเมื่อเปิดใช้งานอินเทอร์เฟซ

การเปิดใช้งานส่วนต่อประสานโดยใช้ ifup:

เพิ่มตัวเลือกเพิ่มเติม

คุณสามารถเพิ่มการดำเนินการเพิ่มเติมในกรณีที่อินเทอร์เฟซถูกเปิดใช้งานหรือปิดใช้งาน สคริปต์เหล่านี้เรียกว่าสคริปต์ if-pre-up และ if-post-down และจะมีผลใช้ก่อนเปิดใช้งานและหลังปิดใช้งานอินเทอร์เฟซ

ตัวอย่างต่อไปจะสาธิตสิ่งนี้ร่วมกับไฟร์วอลล์ที่ทำงานอยู่ในกรณีที่อินเทอร์เฟซยังทำงานอยู่ด้วย ในบรรทัดที่ 3 สคริปต์ /usr/local/sbin/firewall-enable.sh ถูกเรียกก่อนที่อินเทอร์เฟซจะเปิดใช้งาน (ด้วยเหตุนี้ แท็กล่วงหน้า และในบรรทัดที่ 4 สคริปต์ /usr/local/sbin/firewall-disable.sh ถูกเรียกหลังจากปิดอินเตอร์เฟส

1อนุญาต-hotplug eth0
2iface eth0 inet dhcp
3ก่อนขึ้น/usr/ท้องถิ่น/sbin/firewall-enable.sh
4หลังลง/usr/ท้องถิ่น/sbin/firewall-disable.sh

บทสรุป

การกำหนดค่าพื้นฐานของอินเทอร์เฟซเครือข่ายใน Debian GNU/Linux นั้นง่ายเหมือนๆ กัน — โค้ดเพียงไม่กี่บรรทัด และทำเสร็จแล้ว สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเพิ่มเติม คุณสามารถดูได้จากแหล่งข้อมูลด้านล่าง

ลิงค์และข้อมูลอ้างอิง

[1] Debian Wiki, การกำหนดค่าเครือข่าย
[2] IPv4, Wikipedia
[3] IPv6, Wikipedia
[4] Debian Static Ip IPv4 และ IPv6
[5] Dynamic Host Control Protocol (DHCP), Wikipedia
[6] Bootstrap Protocol (BOOTP), Wikipedia
[7] Internetwork Packet Exchange (IPX), Wikipedia

ขอบคุณ

ผู้เขียนขอขอบคุณ Axel Beckert สำหรับความช่วยเหลือและความคิดเห็นที่สำคัญขณะเตรียมบทความนี้