พูดง่ายๆ ก็คือ คุณสามารถแยกความแตกต่างระหว่างลิงก์สองประเภท (นี่คือการทำให้เข้าใจง่าย แต่เพียงพอสำหรับคำถามนี้):
- ลิงก์แบบเพียร์ทูเพียร์ โดยที่แต่ละด้านของลิงก์เป็นแบบเพียร์เดียวเพียร์แต่ละคนรู้ว่ามีเพียงเพียร์อื่นที่อยู่เบื้องหลังลิงก์และทุกคนจะถูกกำหนดเส้นทาง ตัวอย่างคือลิงก์อนุกรม (ผ่านโมเด็ม PSTN)
- ลิงก์การเข้าถึงหลายลิงก์ ซึ่งอาจมีเพียร์อื่นมากกว่าหนึ่งคนอยู่เบื้องหลังลิงก์นั้น มีตัวอย่างมากมาย เช่น อีเธอร์เน็ต WiFi และบางอันที่ล้าสมัย
เมื่อคุณกำหนดค่าที่อยู่ให้กับอินเทอร์เฟซในรูปแบบ (ปกติ) ของ "ที่อยู่และเน็ตมาสก์" ผ่าน ที่อยู่ IP เพิ่ม x.y.z.t/n dev eth
คุณทำสิ่งต่อไปนี้เป็นหลัก:
- บอกเคอร์เนลว่าควรรู้จักไฟล์
x.y.z.t
เช่น ของมันเอง ที่อยู่ดังนั้นจึงเพิ่มขอบเขตเส้นทางท้องถิ่นเข้าไป ท้องถิ่น
ตารางเส้นทาง
- บอกเคอร์เนลที่อยู่เช่น
x.y.z.00...0
เอ·x.y.z.11...1
สามารถเข้าถึงได้โดยตรงหลังลิงก์ ดังนั้นจึงเพิ่มเส้นทางลิงก์ขอบเขตผ่านอินเทอร์เฟซนี้ใน หลัก
ตารางเส้นทาง (/น
ระบุจำนวนบิตของที่อยู่ทั่วไปสำหรับโฮสต์ทั้งหมดบนเครือข่ายนั้น)
- บอกเคอร์เนล x.y.z.11...1 เป็นที่อยู่ "ออกอากาศ" ของลิงก์ ดังนั้นมันจึงเพิ่มเส้นทางออกอากาศลงใน
ท้องถิ่น
ตาราง (และจะพิจารณาแพ็กเก็ตที่ส่งไปยังที่อยู่นั้น นอกเหนือจากที่อยู่ "โหนดส่วนบุคคล" x.y.z.t
)
แต่ไม่มี "เครือข่าย" อยู่เบื้องหลังลิงก์เพียร์ทูเพียร์ ไม่มีใครถ่ายทอดให้ อาจมีเพียร์อื่นเพียงคนเดียว เมื่อคุณเพิ่มที่อยู่ในลิงค์ในแบบฟอร์ม ที่อยู่ IP เพิ่มท้องถิ่น x.y.z.t ระยะไกล b.c.d.e dev tun
คุณต้องทำสิ่งต่อไปนี้เป็นหลัก:
- บอกเคอร์เนลที่ควรรู้จัก
x.y.z.t
เช่น ของมันเอง ที่อยู่ดังนั้นจึงเพิ่มขอบเขตเส้นทางท้องถิ่นเข้าไป ท้องถิ่น
ตารางเส้นทาง
- บอกเคอร์เนลที่อยู่
พ.ศ
สามารถเข้าถึงได้โดยตรงผ่านลิงค์นั้น ดังนั้นมันจึงเพิ่มเส้นทางไปยังที่อยู่นั้นผ่านทางอินเทอร์เฟซนี้ไปยัง หลัก
ตารางเส้นทาง
เช่น. คำสั่ง ที่อยู่ IP เพิ่มท้องถิ่น 10.0.1.0 ระยะไกล 10.0.1.1 dev tun0
เพียงสร้างเส้นทางต่อไปนี้:
ท้องถิ่น 10.0.1.0 dev tun0 โปรโตเคอร์เนลขอบเขตโฮสต์ src 10.0.1.0
(ใน ท้องถิ่น
ตาราง)
10.0.1.1 dev tun0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.1.0
(ใน หลัก
ตาราง)
ตรวจสอบตารางเส้นทางก่อนและหลังออกคำสั่ง "เพิ่มที่อยู่ IP" ในทั้งสองกรณี
สังเกตคุณ อาจ เพิ่มการกำหนดค่าสไตล์เพียร์ทูเพียร์ให้กับอินเทอร์เฟซการเข้าถึงหลายรายการและในทางกลับกัน คุณยังสามารถเพิ่มที่อยู่ "/32" เดียวแล้วเพิ่มการกำหนดเส้นทาง "ผ่านอินเทอร์เฟซ" ด้วยมือได้ และนั่นจะทำงานเหมือนกับว่าคุณตั้งค่า netmask หรือที่อยู่ระยะไกลที่มีความหมายในคำสั่ง คุณยังสามารถเพิ่มการกำหนดค่าหลายประเภทลงในอินเทอร์เฟซเดียว และทั้งหมดสามารถทำงานพร้อมกันได้! ดังนั้นอย่าใช้พารามิเตอร์ทั้งหมดเหล่านี้อย่างจริงจังเกินไป ให้คิดว่าพารามิเตอร์เหล่านี้เป็นวิธีเพิ่มเส้นทางที่จำเป็นโดยอัตโนมัติเมื่อคุณกำหนดค่าที่อยู่