เมื่อใดที่เครือข่ายการออกอากาศและเกตเวย์จำเป็นสำหรับการกำหนดค่าส่วนต่อประสานเครือข่ายด้วยตนเอง


10

https://wiki.debian.org/NetworkConfiguration#Bridging_without_Switching

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

หากคุณกำหนดค่าด้วยตนเองสิ่งนี้จะเป็นการตั้งค่าเกตเวย์เริ่มต้น (เครือข่ายการออกอากาศและเกตเวย์เป็นตัวเลือก):

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254

2
ใน Ubuntu รุ่นล่าสุดซึ่งใช้ dnsmasq คุณต้องประกาศ DNS nameservers ด้วย
chili555

@ chili555 ใช้งานได้หากคุณเพิ่มแพ็คเกจ resolvconf อ่านคำตอบของฉันลงใต้นี้ ;-) คุณตอบตกลงแล้วใช่ไหม user1424739?
Anders

ฉันเชื่อใน Ubuntu รุ่นล่าสุดว่า resolvconf ถูกติดตั้งตามค่าเริ่มต้น ไม่ ??
chili555

1
คุณช่วยลองทบทวนคำตอบของ @Anders ได้ไหม ดูฉันควรทำอย่างไรเมื่อมีคนตอบคำถามของฉัน
user.dz

@ chili555 ใช่มันเป็น แต่ฉันแค่ต้องการทำให้ชัดเจนการเชื่อมต่อระหว่างแพคเกจนั้นและเซิร์ฟเวอร์ dns ใน / e / n / อินเตอร์เฟส ขออภัยถ้าฉันไม่ชัดเจน
Anders

คำตอบ:


25

วิธีการตั้งค่าที่อยู่ 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ส่วนนั้น มันอาจเป็นสิ่งที่คุณต้องการหรือไม่


1
คำอธิบายที่ดีขอบคุณ ในฐานะที่เป็น chili555 กล่าวถึงความสำคัญของ DNS ในการแก้ไขชื่อโดเมนมันจะดีถ้าคุณเพิ่มจุดเกี่ยวกับมัน (สำหรับการเชื่อมต่ออินเทอร์เน็ตหรือ WAN จำเป็นต้องมีการตั้งค่าทั้งหมด)
user.dz

อะไรแบบนี้?
Anders

1
ยินดี. :-) สงสัยว่ามันเป็นคำตอบที่ดีพอสำหรับผู้ใช้ 1424739
Anders

อย่างไรก็ตาม/etc/internet/interfacesกำลังจะล้าสมัยโดยอูบุนตูเพื่อตัวเองNetPlanดู/etc/netplan/*.yamlและNM(ซึ่งสามารถแก้ไขได้ด้วยnm-tools)
Anders
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.