วิธีการตั้งค่าที่อยู่ IP แบบคงที่และสาเหตุ
แจ้งให้ทราบ! ฉันไม่ได้พูดถึงวิธีอื่น ๆ ในการตั้งค่าเครือข่ายเช่นเดียวกับ NetworkManager อุปกรณ์ใด ๆ ที่กล่าวถึง/etc/network/interfaces
ไม่มีการสัมผัสโดย NM
เพื่อให้สามารถสื่อสารผ่านเครือข่าย IP (IPv4 และ IPv6) คอมพิวเตอร์จะต้องรู้ว่ามีที่อยู่ IP ใดอยู่ ดังนั้นจึงaddress
จำเป็นต้องมีคำสั่งเพื่อบอกคอมพิวเตอร์ว่า
เมื่อคอมพิวเตอร์ต้องการคุยกับคอมพิวเตอร์เครื่องอื่นจะใช้ที่อยู่ IP ของคอมพิวเตอร์เครื่องอื่นเพื่อตรวจสอบว่าคอมพิวเตอร์เครื่องนั้นอยู่ในเครือข่าย LAN เดียวกันหรือไม่ ถ้าเป็นเช่นนั้นคอมพิวเตอร์สามารถสื่อสารโดยตรงกับคอมพิวเตอร์เครื่องอื่น
ดังนั้นคอมพิวเตอร์จะรู้ได้อย่างไรเมื่อมีการสื่อสารกับคอมพิวเตอร์บน LAN เดียวกัน โดยการใช้เครือข่ายnetmask
ที่ส่วนสุทธิของที่อยู่ถูกตั้งค่าเป็นคนและส่วนโฮสต์ถูกตั้งค่าเป็นศูนย์ ดังนั้นโดยการทำ bitwise และการดำเนินการระหว่างแต่ละบิตในที่อยู่ IP และ netmask เราจะได้รับที่อยู่เครือข่ายของที่อยู่ IP ที่ส่วนโฮสต์เป็นศูนย์ ดังนั้นหากเราทำเช่นนี้กับที่อยู่ IP ของคอมพิวเตอร์และที่อยู่ IP ของคอมพิวเตอร์เครื่องอื่นเราจะได้รับที่อยู่เครือข่ายแต่ละอันถ้ามันเท่ากันก็หมายความว่าคอมพิวเตอร์นั้นอยู่ในเครือข่ายเดียวกันและสามารถพูดคุยกันได้โดยตรง
หากที่อยู่เครือข่ายไม่เท่ากันจะอยู่ใน LAN อื่นและไม่สามารถสื่อสารกันโดยตรง จากนั้นคอมพิวเตอร์จะต้องใช้คอมพิวเตอร์พิเศษที่เชื่อมต่อกับ LAN อื่น คอมพิวเตอร์เครื่องนั้นเป็นเราเตอร์ (ที่อาจมีไฟร์วอลล์และ NAT) ดังนั้นเมื่อคอมพิวเตอร์ต้องการพูดคุยกับคอมพิวเตอร์อื่นนอก LAN นั้นจำเป็นต้องทราบที่อยู่ของคอมพิวเตอร์เครื่องนั้นที่ตั้งค่าไว้ด้วยgateway
คำสั่ง หากอินเตอร์เฟสอื่นได้ตั้งgateway
ค่าไว้คุณจะไม่ทำและไม่ควรตั้งค่าคำสั่งเกตเวย์อื่นสำหรับอินเทอร์เฟซนี้ gateway
สั่งชุดเส้นทางเริ่มต้นสำหรับเครื่องคอมพิวเตอร์เพื่อให้คุณต้องการเพียงหนึ่งสำหรับ IPv4 และเพียงหนึ่งสำหรับ IPv6 ในแต่ละเครื่อง ที่อยู่เครือข่ายนี้สามารถกำหนดด้วยตนเองได้ด้วยnetwork
คำสั่ง
บางครั้งคอมพิวเตอร์ต้องการสื่อสารกับคอมพิวเตอร์ทุกเครื่องใน LAN และใช้การออกอากาศ ที่อยู่นี้รับฟังโดยคอมพิวเตอร์ทุกเครื่องใน LAN เดียวกัน นี่คือพื้นฐานเหมือนกับที่อยู่เครือข่ายยกเว้นส่วนโฮสต์ไม่ใช่ศูนย์ทั้งหมดและแทนที่ทั้งหมด ที่อยู่การออกอากาศนี้กำหนดโดยคำสั่งbroadcast
ในอินเทอร์เฟซ
ที่network
อยู่อินเทอร์เฟซจำเป็นสำหรับการคำนวณเพียงครั้งเดียวและโดยปกติจะคำนวณอย่างถูกต้องจากที่นั้นaddress
และnetmask
คำสั่ง เช่นเดียวกันกับที่broadcast
อยู่ ดังนั้นคุณไม่จำเป็นต้องตั้งค่า อันที่จริงถ้าคุณตั้งค่าหนึ่งหรือทั้งสองเป็นค่าที่ไม่ถูกต้องคุณอาจสูญเสียการเชื่อมต่อกับอินเทอร์เน็ตและคอมพิวเตอร์เครื่องอื่นใน LAN ของคุณ ดังนั้นหากคุณไม่มีค่าแปลก ๆ ให้ปล่อยให้คอมพิวเตอร์คำนวณให้คุณ
ดังนั้นการตั้งค่าสแตติกขั้นต่ำหรือ stanza /etc/network/interfaces
อาจมีลักษณะเช่นนี้สำหรับอุปกรณ์eth1
ในเครือข่ายส่วนตัว:
iface eth1 static inet
address 192.168.44.10
netmask 255.255.255.0
gateway 192.168.44.1
การจำแนกชื่อทำงานอย่างไรและเชื่อมโยงกับ DNS อย่างไร
ชื่อโดเมนจะใช้ในการแปลงระหว่างง่าย ๆ สำหรับมนุษย์ในการอ่านและจดจำชื่อโดเมนและคอมพิวเตอร์ที่จำ IP ได้ง่ายดังที่กล่าวข้างต้น นี้เรียกว่าชื่อแก้ไข
นี้มักจะถูกควบคุมโดยไฟล์และสายที่เริ่มต้นด้วย/etc/nsswitc.conf
hosts:
หากคุณถามคอมพิวเตอร์เพื่อเชื่อมต่อกับคอมพิวเตอร์my.example.com
ก็จะมองเข้าไปในไฟล์นี้และพยายามที่จะแก้ปัญหาที่อยู่ IP my.example.com
จากชื่อ ไฟล์นี้ไม่ตอบคำถามที่ว่า "IP ของฉันมีอะไรบ้างตัวอย่าง example.com" เพียงบอกคอมพิวเตอร์ว่าจะหาคำตอบได้จากที่ใด
โดยปกติแล้วจะพยายาม/etc/hosts
ไฟล์เป็นครั้งแรกสำหรับชื่อท้องถิ่นคงที่แล้ว avahi mDNS
สำหรับชื่อท้องถิ่นแบบไดนามิกและจากนั้นชื่อโดเมน DNS resovler เพื่อรับชื่อจากอินเทอร์เน็ต
หากสิ่งเหล่านี้บางอย่างช้าในการตอบคำถามของคุณมันอาจดูเหมือนว่าคอมพิวเตอร์ค้างอยู่ครู่หนึ่ง ดังนั้นหากคุณได้รับสิ่งนั้นให้ตรวจสอบการแก้ไขชื่อก่อน
ดังนั้นการเพิ่มที่อยู่คงที่คุณสามารถเพิ่มไปยัง/etc/hosts
ไฟล์ของคุณ อย่างไรก็ตามถ้าคุณมีที่อยู่แบบคงที่คุณควรเปลี่ยนที่อยู่ IP ที่เครื่องของคุณเป็นที่อยู่ IP ไม่ใช่ค่าเริ่มต้น127.0.1.1
(ซึ่งอยู่ในเครือข่าย localnet ที่ localhost อยู่127.0.0.1
) ใช้งานได้ดีกับลูกค้าเท่านั้นไม่ใช่สำหรับเซิร์ฟเวอร์
ที่อยู่แบบไดนามิกที่คุณได้รับจากเครื่อง Linux พร้อมavahi
แพ็คเกจและจากเครื่อง Apple (และ MS Windows ด้วย iTunes?) ที่จัดการโดย "เวทมนต์" และคุณไม่จำเป็นต้องแก้ไข
DNS ใช้เพื่อเข้าถึงอินเทอร์เน็ตและคุณต้องบอกคอมพิวเตอร์ว่าเซิร์ฟเวอร์ DNS เหล่านั้นที่คุณต้องการใช้คือที่อยู่ IP ใดที่จะใช้และโดเมน DNS เริ่มต้นของคุณคืออะไร
สิ่งนี้ทำในไฟล์/etc/resolv.conf
และสามารถตั้งค่าแบบสแตติก สิ่งนี้ใช้ไม่ได้ผลกับโลกที่ไม่คงที่ของเราดังนั้นโดยปกติคุณจะมีแพ็คเกจที่เรียกว่าresolvconf
ติดตั้ง ให้คุณตั้งค่าเหล่านี้ใน/e/n/interfaces
ไฟล์
ดังนั้นหากเราสมมติว่าเราต้องการเพิ่มเซิร์ฟเวอร์ DNS ของ Googles และเซิร์ฟเวอร์ DNS 8.8.8.8
ของ ISP 192.0.2.1
และโดเมนโดเมนของคุณmy.example.org
เป็นค่าเริ่มต้นคุณเพียงแค่แก้ไข/etc/network/interfaces
ไฟล์และเพิ่มสองบรรทัดนี้ใน stanza สำหรับอุปกรณ์แบบคงที่
dns-nameservers 8.8.8.8 192.0.2.10
dns-search my.example.org
คุณอาจสังเกตเห็นว่าตัวแก้ไข DNS จะใช้เซิร์ฟเวอร์ DNS ไม่เกินสามตัวเท่านั้น โปรดดูนี้ขึ้นในman
-page resolv.conf
ของ ในฐานะที่เป็นปกติคุณสามารถใช้คำสั่งman nsswitch.conf
, man resolv.conf
และman resolvconf
สำหรับข้อมูลเพิ่มเติม
ขอให้สังเกตว่าฉันใช้โดเมน example.com และ example.org และเครือข่าย IP 192.0.2.0/24 สำหรับ ISP เซิร์ฟเวอร์ DNS ตัวอย่าง ตัวอย่างเหล่านี้ถูกกำหนดไว้อย่างชัดเจนเพื่อใช้ในตัวอย่าง ดูhttp://example.com/หรือhttp://tools.ietf.org/html/rfc2606และ rfc5735
จากนั้นคุณจะตรวจสอบว่ามันทำงานอย่างไร
คุณสามารถทำได้หลายวิธี แต่ฉันมักจะใช้
getent hosts my.test.com
เพื่อทดสอบการตั้งค่าทั้งหมดสำหรับการจำแนกชื่อ หากฉันต้องการตรวจสอบว่า DNS ใช้งานได้หรือไม่ฉันใช้คำสั่งอย่างใดอย่างหนึ่งต่อไปนี้:
host my.test.com
dig my.test.com
แต่จำไว้ว่าผู้ที่ทดสอบ DNS ผ่านการตั้งค่าใน/etc/resolv.conf
ไฟล์ไม่ใช่เฉพาะ/etc/nsswitch.conf
ส่วนนั้น มันอาจเป็นสิ่งที่คุณต้องการหรือไม่