เหตุใดจึงมีการระบุที่อยู่ IP ให้กับแต่ละอินเทอร์เฟซไม่ใช่อุปกรณ์ ความหมายของสิ่งนั้นจะเป็นอย่างไร


12

ทำไมเราต้องให้ที่อยู่ IP กับแต่ละอินเทอร์เฟซ จะไม่ให้แต่ละอุปกรณ์เพียงพอหรือไม่


3
อุปกรณ์บางอย่างจะได้รับ IP สำหรับการจัดการเท่านั้นซึ่งไม่ได้เชื่อมโยงกับส่วนต่อประสานใด ๆ คนอื่นทำงานในแบบที่คุณอธิบาย มันแตกต่างกันไปตามอุปกรณ์รุ่นและซอฟต์แวร์ / เฟิร์มแวร์ นอกจากนี้คุณอาจต้องกำหนดที่อยู่ IP ที่แตกต่างกันสำหรับแต่ละอินเตอร์เฟสขึ้นอยู่กับข้อกำหนดของงาน
Jesse P.

3
คำตอบสั้น ๆ - เพื่อทำให้เราเตอร์เป็นไปได้ เราเตอร์เป็นเพียงคอมพิวเตอร์ (ในปัจจุบันมักเป็นลีนุกซ์) ที่ต้องเชื่อมต่อกับเครือข่ายที่ต่างกัน - ดังนั้นจะต้องมีความสามารถในการมีที่อยู่ IP หลายแห่ง IP หลายรายการต่ออุปกรณ์เกิดขึ้นในเวลาเดียวกับการประดิษฐ์ของเราเตอร์
slebetman

ไม่มีคำตอบเกี่ยวกับข้อมูลประวัติ? ผิดหวัง :-)
Daniel W.

คำถามนี้ไม่เข้าท่าหรือไม่ชัดเจนหรือมีเหตุผลอย่างสมบูรณ์ มันเป็นเพียงการผสมผสานของคำ ที่อยู่ IP เป็นจำนวนเต็มที่ใช้ในอินเทอร์เน็ตโปรโตคอลที่กำหนดไว้ในคำขอต่างๆสำหรับความคิดเห็น ฉันไม่เชื่อว่าแนวคิดของ "อุปกรณ์" หรือ "อินเทอร์เฟซถูกกำหนดไว้ตลอดไป"
marshal craft

ตัวอย่างเช่นแอปพลิเคชัน windows สองเครื่องที่ทำงานบนเครื่องจริงเดียวกันสามารถใช้เครือข่ายที่ใช้โปรโตคอล ip เพื่อสื่อสาร มีข้อดีข้อเสียคือ ที่กล่าวว่าอีกครั้งโปรโตคอล ip เป็นสิ่งที่เป็นนามธรรมเชิงตรรกะที่ทำงานบนชั้นพื้นฐานที่พวกเขาสามารถเป็นนามธรรมเช่นเดียวกับ IP
เรือจอมพล

คำตอบ:


25

การเชื่อมต่ออินเทอร์เฟซกับเครือข่ายทำให้เป็นส่วนหนึ่งของเครือข่ายนั้น ดังนั้นที่อยู่ IP เป็นคุณสมบัติของการเชื่อมต่อไม่ใช่โฮสต์

ในทำนองเดียวกันโฮสต์สามารถมีการเชื่อมต่อเครือข่ายจำนวนมากและที่อยู่ IP อินเทอร์เฟซที่แตกต่างกันมักจะมีฟังก์ชั่นที่แตกต่างกันดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องแยกแยะความแตกต่างระหว่างพวกมัน (เช่นคอนโซลภายใน, บริการสาธารณะ, iSCSI)

เราเตอร์ต้องการที่อยู่ IP หลายรายการสำหรับส่วนต่อประสาน


14

เลขที่

ที่กล่าวว่ามาดูตัวอย่างที่ง่ายขึ้น:

ฉันมีคอมพิวเตอร์ที่มีสามอินเตอร์เฟส: eth0(อีเธอร์เน็ตต่อสาย), wlan0(wifi) และvboxnet0(Virtualbox) อินเทอร์เฟซตัวหนึ่งเชื่อมต่อกับเครือข่ายภายในหนึ่งตัวเชื่อมต่อกับอินเทอร์เน็ตและตัวสุดท้ายเชื่อมต่อกับเครือข่ายคอมพิวเตอร์เสมือน สมมติว่าฉันมีที่อยู่เดียว 10.1.2.3 และต้องการส่งแพ็คเก็ตจำนวนมากไปที่ 192.168.1.2 เข้าถึงได้จากเครือข่ายหนึ่ง - ฉันจะส่งพวกเขาไปที่ใด ไม่เพียงแค่ส่งพวกเขาไปทุกหนทุกแห่งพฤติกรรมเช่นนี้จะทำให้ทุกเครือข่ายเสียหายในระยะสั้น

แต่ถ้าอินเตอร์เฟส eth0 มี 192.168.1.3, wlan0 มี 10.1.2.3 และ vboxnet0 มี 172.0.0.1 ดังนั้นตารางเส้นทางเริ่มต้นอาจจะพูดว่า "ส่งออก eth0" (สิ่งนี้สามารถทำให้ซับซ้อนยิ่งขึ้นได้ด้วยกฎการกำหนดเส้นทางที่ซับซ้อนมากขึ้น)

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


1
ทำไมคุณถึงไม่รู้ว่าแต่ละอินเตอร์เฟสสามารถเข้าถึงอะไรได้หากไม่มีที่อยู่ IP ที่ต่างกัน
Paŭlo Ebermann

คุณสามารถ (และเป็นไปได้ที่จะมีกฎการกำหนดเส้นทางเช่นนี้) แต่จากนั้นคุณจะไปสู่ระดับที่ต่ำกว่าของนามธรรมแทนที่จะพูดว่า "ส่งสิ่งใด ๆ ที่ไม่ใช่การจับคู่กับ 10.1.2.1" และทำได้ด้วยเลเยอร์ OSI 3) ตอนนี้คุณต้องจัดการ "ฉันต้องการอินเทอร์เฟซใด (เลเยอร์ 2)" มันเป็นไปได้เช่นกัน แต่สิ่งที่เป็นนามธรรมทำให้เรื่องต่าง ๆ ง่ายขึ้น
Piskvor ออกจากอาคารเมื่อ

2
และอีกอย่าง - ที่อยู่ IP นั้นถูกกำหนดให้ผู้อื่นสามารถติดต่อคุณได้เช่นกัน สมมติว่าคุณเชื่อมต่อผ่าน wifi และผ่านอีเธอร์เน็ต อินเทอร์เฟซแต่ละรายการจะเข้าสู่เครือข่ายที่แตกต่างกัน แต่ทั้งสองเครือข่ายสามารถเข้าถึงอินเทอร์เน็ตได้ ตอนนี้คุณส่งแพ็กเก็ตไปที่ 1.2.3.4 จาก 10.1.2.3 ของคุณ - เส้นทางกลับคืออะไร? Wifi หรือแบบใช้สาย? คุณสามารถเดาได้ แต่ถ้าคุณเดาผิดแพ็กเก็ตจะกลับมาผ่านอินเตอร์เฟสที่ไม่ถูกต้องและอาจถูกทิ้ง (ใช่มีหลายกรณีที่คุณต้องการอินเทอร์เฟซหลายรายการที่มี IP addr เดียวกันหรือ iface ที่มี IP addrs มากขึ้นหรือ iface ที่ไม่มี addr เลย - ผิดปกติ)
Piskvor ออกจากอาคารเมื่อ

5

กรณีที่ 1: เราเตอร์

ในทางทฤษฎีนี้จะเป็นไปได้

อย่างไรก็ตามโดยปกติแพ็คเก็ต IP จะถูกส่ง "โดยตรง" ไปยังปลายทางเมื่อที่อยู่ IP "ตรงกับ" เครือข่ายมาสก์บางตัว (เช่น 10.0.0.0/28); ไม่เช่นนั้นแพ็กเก็ตจะถูกส่งผ่านเราเตอร์

หมายความว่า:

  • เราเตอร์เชื่อมต่อสองเครือข่าย แต่ละเครือข่ายทั้งสองมีรูปแบบเครือข่าย
  • แพ็คเก็ตที่ส่งจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งภายในสองเครือข่ายนั้นไม่ผ่านเราเตอร์

    ซึ่งหมายความว่าที่อยู่ IP ของคอมพิวเตอร์แต่ละเครื่องตรงกับรูปแบบเครือข่ายของเครือข่ายที่เชื่อมต่ออยู่

  • แพ็กเก็ตที่ส่งไปยังเราเตอร์ (รวมถึงแพ็กเก็ตที่เราเตอร์กำหนดเส้นทาง!) จะไม่ส่งจากคอมพิวเตอร์ไปยังเราเตอร์ผ่านเราเตอร์ตัวที่สอง

    ซึ่งหมายความว่าที่อยู่ IP ของเราเตอร์จะต้องตรงกับมาสก์เครือข่ายของทั้งสองเครือข่าย

  • แพ็กเก็ต IP ถูกส่งจากคอมพิวเตอร์เครื่องหนึ่งในเครือข่ายหนึ่งไปยังคอมพิวเตอร์ในเครือข่ายอื่น แต่จะถูกส่งผ่านเราเตอร์

    ซึ่งหมายความว่าที่อยู่ IP ของคอมพิวเตอร์ในเครือข่ายหนึ่งต้องไม่ตรงกับรูปแบบเครือข่ายของเครือข่ายอื่น

แทบจะเป็นไปไม่ได้เลยที่จะเลือกที่อยู่ IP และหน้ากากเครือข่ายสองตัวในลักษณะเดียวกับที่อยู่ IP หนึ่งที่ตรงกับรูปแบบเครือข่ายทั้งสอง แต่ที่อยู่ IP จำนวนมากตรงกับรูปแบบเครือข่ายเดียวเท่านั้น

กรณีที่ 2: เครือข่ายส่วนตัวที่แตกต่างกัน

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

ในกรณีนี้คอมพิวเตอร์อาจมีที่อยู่ IP เดียวกันในทั้งสองเครือข่าย

ในกรณีของ IPv4 ระบบปฏิบัติการส่วนใหญ่จะไม่รองรับสิ่งนี้เพราะระบบปฏิบัติการใช้มาสก์เครือข่ายของทั้งสองเครือข่ายเพื่อแยกแยะความแตกต่างระหว่างพวกเขา เครือข่ายจำเป็นต้องมีมาสก์เครือข่ายที่แตกต่างกัน ...

ในกรณีของ IPv6 (โดยใช้ที่อยู่ "link-local") คอมพิวเตอร์สามารถมีที่อยู่ IP (link-local) เดียวกันในเครือข่ายที่แตกต่างกันสองเครือข่ายดังนั้นการ์ดเครือข่ายสองใบจึงมีที่อยู่ IP เดียวกัน!


ในกรณีเฉพาะข้อกำหนด TSN สำหรับอีเธอร์เน็ตอนุญาตให้มีหลายอินเตอร์เฟสที่มีIP, มาสก์และที่อยู่ MAC เดียวกันเพื่อสนับสนุนเส้นทางสำรองที่ต่อเนื่องสำหรับอีเธอร์เน็ตที่กำหนด (802.1cb) ความซ้ำซ้อนถูกจัดการในระดับ MAC (การตรวจจับข้อมูลที่ซ้ำกันที่บรรจุและไม่สนใจข้อมูลซ้ำซ้อน) ดังนั้นจากมุมมองโฮสต์มันเป็นหนึ่งอินเทอร์เฟซ
crasic

4

มีอุปกรณ์ที่มีที่อยู่ IP ภายในเครือข่าย

ใช้ Router เป็นอุปกรณ์ที่เป็นจุดประสงค์หลักคือการผ่านการจราจรระหว่างเครือข่าย

เพื่อให้เราเตอร์ส่งแพ็กเก็ตระหว่างเครือข่ายสองเครือข่ายต้องมีอยู่ภายในเครือข่ายทั้งสอง

เราเตอร์จะมี "แขน" ภายในแต่ละเครือข่าย - หรือที่เราเรียกว่าเป็นอินเตอร์เฟซ และวิธีการที่อินเตอร์เฟซที่มีอยู่ภายในเครือข่ายคือการกำหนดที่อยู่ IP ภายในเครือข่าย

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

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


1
คำตอบที่ดีและรัดกุมวิธีการที่ชัดเจนมากของการอธิบายว่าทำไม
Stilez

3

ฉันสงสัยว่าทำไมเราต้องให้ที่อยู่ IP กับแต่ละอินเทอร์เฟซ จะไม่ให้แต่ละอุปกรณ์เพียงพอหรือไม่

ผมขอเริ่มด้วยการท้าทายสมมติฐานของคุณ ทำไมคุณถึงพูดแบบนี้ไม่ได้เป็นวิธีการทำงานของเครื่องจักร? สมมติว่าฉันมอบหมาย 192.168.1.1/24 ให้กับ eth1 และ 192.168.2.1/24 ให้กับ eth2 นอกเหนือจากการติดตั้งเส้นทางสำหรับ 192.168.1.0/24 out eth1 และ 192.168.2.0/24 out eth2 และการกำหนดที่อยู่ IP ต้นทางที่ต้องการสำหรับแพ็กเก็ตที่ส่งไปตามเส้นทางนั้นมีความสำคัญต่ออินเตอร์เฟสใดที่ฉันกำหนดที่อยู่ IP ให้กับมัน มีการเปลี่ยนแปลงอะไร เครื่องไม่ทำงานไม่เหมือนกับว่าที่อยู่ IP ทั้งหมดที่กำหนดให้กับอินเทอร์เฟซบนเครื่องเป็นของเครื่องหรือไม่

มีการใช้ทั้งสองวิธี วิธีการที่พบมากที่สุดคือการผสมผสานของทั้งสองวิธี

ที่ "ให้ที่อยู่ IP ของอุปกรณ์" สุดขีดคุณสามารถจินตนาการอุปกรณ์ที่ทำงานราวกับว่าอินเทอร์เฟซทั้งหมดของมันถูกเชื่อมต่อกับบริดจ์การกรองโดยมีที่อยู่ IP หนึ่งรายการที่กำหนดให้กับบริดจ์

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

ในทางปฏิบัติเครื่องจักรส่วนใหญ่ทำงานที่ไหนสักแห่งระหว่างกัน พวกเขาทำหน้าที่ราวกับว่าที่อยู่ IP ทั้งหมดเป็นของเครื่อง การกำหนด IP ให้กับอุปกรณ์เฉพาะนั้นไม่ได้ทำอะไรมากไปกว่าการบอกให้ระบบปฏิบัติการติดตั้งเส้นทางเริ่มต้นจากอินเตอร์เฟสนั้นและเพื่อตั้งค่าที่อยู่ IP ต้นทางเริ่มต้นสำหรับแพ็คเก็ตที่ส่งออกอินเทอร์เฟซนั้น บังคับ

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


2

ในกรณีทั่วไปคุณต้องใช้หนึ่ง IP ต่อหนึ่งเครือข่ายท้องถิ่นที่คุณเชื่อมต่อและนี่เป็นวิธีที่ TCP / IP กำหนดไว้: แต่ละโฮสต์ในเครือข่ายท้องถิ่นที่กำหนดมีที่อยู่ IP ซึ่งจะช่วยให้:

  • เพื่อกำหนดเส้นทางการรับส่งข้อมูลไปยังเครือข่ายท้องถิ่นที่เหมาะสมโดยยึดตามที่อยู่ IP ปลายทาง
  • เพื่อนำทราฟฟิกไปยังอุปกรณ์ appopriate บนเครือข่ายท้องถิ่นนั้น (เช่นหลังจากการค้นหา ARP บนเครือข่ายท้องถิ่น 802.x เป็นต้น)

ตราบใดที่คุณมีเครือข่ายท้องถิ่นที่มีอุปกรณ์หลายเครื่องเชื่อมต่ออยู่ (เครือข่ายท้องถิ่น 802.x ส่วนใหญ่รวมถึงอีเธอร์เน็ต, Wi-Fi) มันค่อนข้างยากที่จะทำสิ่งนั้นเว้นแต่ว่าคุณจะเปลี่ยนวิธีการทำงานของ TCP / IP

อย่างไรก็ตามจริงๆแล้วมันเป็นไปได้ที่จะหลีกเลี่ยงสิ่งนั้นแม้ว่ามันจะค่อนข้างเฉพาะเจาะจงก็ตาม

พิจารณาเครือข่ายที่มีการเชื่อมต่อแบบจุดต่อจุด (อีเธอร์เน็ตแบบจุดต่อจุดระหว่างอุปกรณ์สองเครื่องที่ไม่มีสวิตช์หรือฮับลิงก์ DSL, SONET / SDH ลิงก์, รีเลย์รีเลย์หรือ ATM VCs ... )

แบบแผนปกติคือใช้ / 30 สำหรับแต่ละลิงก์ดังนั้นอุปกรณ์ที่ปลายแต่ละด้านจะมีที่อยู่ IP บนลิงก์นั้น

แต่คุณสามารถใช้ "IP ที่ไม่มีหมายเลข" และไม่เชื่อมโยงที่อยู่ IP ใด ๆ กับลิงก์เหล่านั้น ในตอนนี้คุณกำหนด IP ให้กับอินเทอร์เฟซวนรอบของอุปกรณ์ (อินเทอร์เฟซใด ๆ จริง ๆ แต่ลูปแบ็คเป็นวิธีที่ง่ายที่สุดสำหรับวัตถุประสงค์นี้) และคุณใช้โปรโตคอลการกำหนดเส้นทางแบบไดนามิก (IS-IS, OSPF, EIGRP ... ) โปรโตคอลการกำหนดเส้นทางนี้จะโฆษณาวิธีกำหนดเส้นทางทราฟฟิกไปยังที่อยู่ IP นั้นผ่านลิงก์ต่างๆที่ไม่ได้กำหนดหมายเลข


0

ที่อยู่ IP รวมถึงข้อมูลการกำหนดเส้นทาง ที่อยู่ IP ถูกแบ่งออกเป็นสองส่วนคือหมายเลขเครือข่ายและหมายเลขโฮสต์ตามความยาวของคำนำหน้าที่ได้รับมอบหมาย (ซึ่งเดิมถูกแสดงเป็นมาสก์เครือข่ายและนี่ยังคงเป็นวิธีที่ใช้งานภายในสแต็กเครือข่าย)

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

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

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


0

มันอาจจะเพียงพอที่จะมี IP หนึ่งรายการในกรณีมาตรฐาน แต่ตามที่ไฮไลต์โดยคำตอบอื่น ๆ มีหลายกรณีที่ไม่มี

คำตอบอื่น ๆ ได้กล่าวถึงกรณีของเราเตอร์แล้ว กล่องหนึ่งกล่าวถึง virtualbox ซึ่งเป็นกรณีของเครื่องเสมือน: คุณอาจใช้งานบนอุปกรณ์จริงเครื่องเดียวหลายเครื่อง อีกกรณีหนึ่งคือ VLAN คุณอาจมีจริงเชื่อมต่อกับการ์ดเครือข่ายเดียว LAN เสมือนที่แตกต่างกันหลายที่มีที่อยู่ IP ที่แตกต่างกัน และคุณอาจมีเหตุผลบางอย่างที่มีส่วนต่อประสานที่มีหลาย IP ตัวอย่างเช่นเนื่องจากคุณต้องการเรียกใช้เว็บเซิร์ฟเวอร์หลายเครื่องบนพอร์ต TCP 80 การกำหนดค่าดังกล่าวไม่ใช่เรื่องแปลกสำหรับเซิร์ฟเวอร์ฮาร์ดแวร์ที่คุณเช่าอาจมีการ์ดเครือข่ายอินเทอร์เฟซเดียว แต่คุณจะต้องกำหนดค่าที่อยู่ IP หลายแห่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.