ทำไมเราต้องให้ที่อยู่ IP กับแต่ละอินเทอร์เฟซ จะไม่ให้แต่ละอุปกรณ์เพียงพอหรือไม่
ทำไมเราต้องให้ที่อยู่ IP กับแต่ละอินเทอร์เฟซ จะไม่ให้แต่ละอุปกรณ์เพียงพอหรือไม่
คำตอบ:
การเชื่อมต่ออินเทอร์เฟซกับเครือข่ายทำให้เป็นส่วนหนึ่งของเครือข่ายนั้น ดังนั้นที่อยู่ IP เป็นคุณสมบัติของการเชื่อมต่อไม่ใช่โฮสต์
ในทำนองเดียวกันโฮสต์สามารถมีการเชื่อมต่อเครือข่ายจำนวนมากและที่อยู่ IP อินเทอร์เฟซที่แตกต่างกันมักจะมีฟังก์ชั่นที่แตกต่างกันดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องแยกแยะความแตกต่างระหว่างพวกมัน (เช่นคอนโซลภายใน, บริการสาธารณะ, iSCSI)
เราเตอร์ต้องการที่อยู่ IP หลายรายการสำหรับส่วนต่อประสาน
เลขที่
ที่กล่าวว่ามาดูตัวอย่างที่ง่ายขึ้น:
ฉันมีคอมพิวเตอร์ที่มีสามอินเตอร์เฟส: 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 จะถูกส่ง "โดยตรง" ไปยังปลายทางเมื่อที่อยู่ IP "ตรงกับ" เครือข่ายมาสก์บางตัว (เช่น 10.0.0.0/28); ไม่เช่นนั้นแพ็กเก็ตจะถูกส่งผ่านเราเตอร์
หมายความว่า:
แพ็คเก็ตที่ส่งจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งภายในสองเครือข่ายนั้นไม่ผ่านเราเตอร์
ซึ่งหมายความว่าที่อยู่ IP ของคอมพิวเตอร์แต่ละเครื่องตรงกับรูปแบบเครือข่ายของเครือข่ายที่เชื่อมต่ออยู่
แพ็กเก็ตที่ส่งไปยังเราเตอร์ (รวมถึงแพ็กเก็ตที่เราเตอร์กำหนดเส้นทาง!) จะไม่ส่งจากคอมพิวเตอร์ไปยังเราเตอร์ผ่านเราเตอร์ตัวที่สอง
ซึ่งหมายความว่าที่อยู่ IP ของเราเตอร์จะต้องตรงกับมาสก์เครือข่ายของทั้งสองเครือข่าย
แพ็กเก็ต IP ถูกส่งจากคอมพิวเตอร์เครื่องหนึ่งในเครือข่ายหนึ่งไปยังคอมพิวเตอร์ในเครือข่ายอื่น แต่จะถูกส่งผ่านเราเตอร์
ซึ่งหมายความว่าที่อยู่ IP ของคอมพิวเตอร์ในเครือข่ายหนึ่งต้องไม่ตรงกับรูปแบบเครือข่ายของเครือข่ายอื่น
แทบจะเป็นไปไม่ได้เลยที่จะเลือกที่อยู่ IP และหน้ากากเครือข่ายสองตัวในลักษณะเดียวกับที่อยู่ IP หนึ่งที่ตรงกับรูปแบบเครือข่ายทั้งสอง แต่ที่อยู่ IP จำนวนมากตรงกับรูปแบบเครือข่ายเดียวเท่านั้น
กรณีที่ 2: เครือข่ายส่วนตัวที่แตกต่างกัน
เราอาจมีกรณีที่คอมพิวเตอร์เชื่อมต่อกับเครือข่ายส่วนตัวสองเครือข่ายที่ไม่สามารถแลกเปลี่ยนข้อมูลระหว่างกันได้
ในกรณีนี้คอมพิวเตอร์อาจมีที่อยู่ IP เดียวกันในทั้งสองเครือข่าย
ในกรณีของ IPv4 ระบบปฏิบัติการส่วนใหญ่จะไม่รองรับสิ่งนี้เพราะระบบปฏิบัติการใช้มาสก์เครือข่ายของทั้งสองเครือข่ายเพื่อแยกแยะความแตกต่างระหว่างพวกเขา เครือข่ายจำเป็นต้องมีมาสก์เครือข่ายที่แตกต่างกัน ...
ในกรณีของ IPv6 (โดยใช้ที่อยู่ "link-local") คอมพิวเตอร์สามารถมีที่อยู่ IP (link-local) เดียวกันในเครือข่ายที่แตกต่างกันสองเครือข่ายดังนั้นการ์ดเครือข่ายสองใบจึงมีที่อยู่ IP เดียวกัน!
มีอุปกรณ์ที่มีที่อยู่ IP ภายในเครือข่าย
ใช้ Router เป็นอุปกรณ์ที่เป็นจุดประสงค์หลักคือการผ่านการจราจรระหว่างเครือข่าย
เพื่อให้เราเตอร์ส่งแพ็กเก็ตระหว่างเครือข่ายสองเครือข่ายต้องมีอยู่ภายในเครือข่ายทั้งสอง
เราเตอร์จะมี "แขน" ภายในแต่ละเครือข่าย - หรือที่เราเรียกว่าเป็นอินเตอร์เฟซ และวิธีการที่อินเตอร์เฟซที่มีอยู่ภายในเครือข่ายคือการกำหนดที่อยู่ IP ภายในเครือข่าย
ดังนั้นเมื่อกำหนดค่าเราเตอร์แต่ละอินเตอร์เฟซที่ได้รับที่อยู่ IP เพื่อแจ้งเครือข่ายที่ว่าเราเตอร์เป็นภายใน
ข้อสงวนสิทธิ์: ลิงค์ด้านบนนี้เป็นบล็อกของฉัน บล็อกของฉันไม่ได้รับการสร้างรายได้ ฉันไม่ทำกำไรจากคุณอ่าน ฉันให้ลิงค์เพียงเพื่อประโยชน์ของคุณ (และผู้อ่านคนอื่น ๆ )
ฉันสงสัยว่าทำไมเราต้องให้ที่อยู่ 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 ต้นทางที่กำหนดให้กับอินเตอร์เฟซที่ได้รับหนึ่งในอีกเป็นประจำ อินเตอร์เฟสใดที่แอดเดรสถูกกำหนดให้ไม่มีผลกระทบโดยตรงต่ออินเตอร์เฟสที่แพ็กเก็ตถูกส่งออกตารางการเราต์กำหนดว่า
ในกรณีทั่วไปคุณต้องใช้หนึ่ง IP ต่อหนึ่งเครือข่ายท้องถิ่นที่คุณเชื่อมต่อและนี่เป็นวิธีที่ TCP / IP กำหนดไว้: แต่ละโฮสต์ในเครือข่ายท้องถิ่นที่กำหนดมีที่อยู่ IP ซึ่งจะช่วยให้:
ตราบใดที่คุณมีเครือข่ายท้องถิ่นที่มีอุปกรณ์หลายเครื่องเชื่อมต่ออยู่ (เครือข่ายท้องถิ่น 802.x ส่วนใหญ่รวมถึงอีเธอร์เน็ต, Wi-Fi) มันค่อนข้างยากที่จะทำสิ่งนั้นเว้นแต่ว่าคุณจะเปลี่ยนวิธีการทำงานของ TCP / IP
อย่างไรก็ตามจริงๆแล้วมันเป็นไปได้ที่จะหลีกเลี่ยงสิ่งนั้นแม้ว่ามันจะค่อนข้างเฉพาะเจาะจงก็ตาม
พิจารณาเครือข่ายที่มีการเชื่อมต่อแบบจุดต่อจุด (อีเธอร์เน็ตแบบจุดต่อจุดระหว่างอุปกรณ์สองเครื่องที่ไม่มีสวิตช์หรือฮับลิงก์ DSL, SONET / SDH ลิงก์, รีเลย์รีเลย์หรือ ATM VCs ... )
แบบแผนปกติคือใช้ / 30 สำหรับแต่ละลิงก์ดังนั้นอุปกรณ์ที่ปลายแต่ละด้านจะมีที่อยู่ IP บนลิงก์นั้น
แต่คุณสามารถใช้ "IP ที่ไม่มีหมายเลข" และไม่เชื่อมโยงที่อยู่ IP ใด ๆ กับลิงก์เหล่านั้น ในตอนนี้คุณกำหนด IP ให้กับอินเทอร์เฟซวนรอบของอุปกรณ์ (อินเทอร์เฟซใด ๆ จริง ๆ แต่ลูปแบ็คเป็นวิธีที่ง่ายที่สุดสำหรับวัตถุประสงค์นี้) และคุณใช้โปรโตคอลการกำหนดเส้นทางแบบไดนามิก (IS-IS, OSPF, EIGRP ... ) โปรโตคอลการกำหนดเส้นทางนี้จะโฆษณาวิธีกำหนดเส้นทางทราฟฟิกไปยังที่อยู่ IP นั้นผ่านลิงก์ต่างๆที่ไม่ได้กำหนดหมายเลข
ที่อยู่ IP รวมถึงข้อมูลการกำหนดเส้นทาง ที่อยู่ IP ถูกแบ่งออกเป็นสองส่วนคือหมายเลขเครือข่ายและหมายเลขโฮสต์ตามความยาวของคำนำหน้าที่ได้รับมอบหมาย (ซึ่งเดิมถูกแสดงเป็นมาสก์เครือข่ายและนี่ยังคงเป็นวิธีที่ใช้งานภายในสแต็กเครือข่าย)
เพื่อให้เราต์ทำงานได้อย่างถูกต้องอุปกรณ์ทั้งหมดที่เชื่อมต่อกับเครือข่ายนั้นจะต้องมีที่อยู่ที่มีหมายเลขเครือข่ายเดียวกัน ผู้ส่งพิจารณาว่าผู้รับอยู่ในเครือข่ายเดียวกันหรือต่างกันโดยการเปรียบเทียบหมายเลขเครือข่ายของตนเองกับที่อยู่ของผู้รับ หากพวกเขาอยู่ในเครือข่ายเดียวกันพวกเขาส่งโดยตรง ไม่เช่นนั้นพวกเขาจะส่งเราเตอร์ที่มีหน้าที่ส่งข้อความให้ใกล้ปลายทาง
ดังนั้นหากอุปกรณ์เชื่อมต่อกับหลายเครือข่ายก็ต้องมีที่อยู่ในแต่ละเครือข่ายเหล่านั้นเพื่อให้สามารถเข้าถึงได้โดยอุปกรณ์ในเครือข่ายนั้น
ที่กล่าวว่าไม่จำเป็นจริงๆสำหรับที่อยู่ที่จะได้รับมอบหมายเฉพาะให้กับส่วนต่อประสานเครือข่ายเฉพาะ อุปกรณ์สามารถมีรายการ IP ทั้งหมดที่เป็นเจ้าของในตารางเดียว แต่อินเทอร์เฟซยังต้องการข้อมูลเกี่ยวกับเครือข่ายที่เชื่อมต่อ ด้วยการกำหนด IP และหน้ากากเครือข่ายให้กับแต่ละอินเทอร์เฟซทำให้เราใส่ข้อมูลนี้ในที่เดียวทำให้การออกแบบง่ายขึ้น ไม่จำเป็นต้องใช้รหัสเพิ่มเติมเพื่อเก็บรายการ IP ที่สอดคล้องกับรายการเครือข่ายที่เชื่อมต่อกับอินเทอร์เฟซ
มันอาจจะเพียงพอที่จะมี IP หนึ่งรายการในกรณีมาตรฐาน แต่ตามที่ไฮไลต์โดยคำตอบอื่น ๆ มีหลายกรณีที่ไม่มี
คำตอบอื่น ๆ ได้กล่าวถึงกรณีของเราเตอร์แล้ว กล่องหนึ่งกล่าวถึง virtualbox ซึ่งเป็นกรณีของเครื่องเสมือน: คุณอาจใช้งานบนอุปกรณ์จริงเครื่องเดียวหลายเครื่อง อีกกรณีหนึ่งคือ VLAN คุณอาจมีจริงเชื่อมต่อกับการ์ดเครือข่ายเดียว LAN เสมือนที่แตกต่างกันหลายที่มีที่อยู่ IP ที่แตกต่างกัน และคุณอาจมีเหตุผลบางอย่างที่มีส่วนต่อประสานที่มีหลาย IP ตัวอย่างเช่นเนื่องจากคุณต้องการเรียกใช้เว็บเซิร์ฟเวอร์หลายเครื่องบนพอร์ต TCP 80 การกำหนดค่าดังกล่าวไม่ใช่เรื่องแปลกสำหรับเซิร์ฟเวอร์ฮาร์ดแวร์ที่คุณเช่าอาจมีการ์ดเครือข่ายอินเทอร์เฟซเดียว แต่คุณจะต้องกำหนดค่าที่อยู่ IP หลายแห่ง