วิธีทำความเข้าใจตารางเส้นทางในไคลเอนต์ OpenVPN


13

ฉันเพิ่งติดตั้ง OpenVPN และทำงานได้ตามที่คาดไว้ อย่างไรก็ตามตารางเส้นทางของลูกค้าทำให้ฉันสับสนไม่สิ้นสุด นี่คือตารางเส้นทาง:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
54.202.18.143   10.0.2.2        255.255.255.255 UGH   0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

ดังนั้นให้ตัดมันทีละบรรทัด

  1. แพ็กเก็ตใด ๆ ที่ถูกกำหนดให้10.8.0.5ไม่มีเกตเวย์และจะใช้tun0
  2. แพ็กเก็ตใด ๆ ที่ถูกกำหนด10.8.0.1จะใช้10.8.0.5เป็นเกตเวย์ผ่านtun0
  3. แพ็กเก็ตใด ๆ ที่ถูกกำหนด54.202.18.143จะใช้10.0.2.2เป็นเกตเวย์ผ่านeth0
  4. แพ็กเก็ตปลายทางที่10.0.2.0/24ไม่มีเกตเวย์และจะใช้eth0
  5. ให้ละเว้นส่วน 169.254.0.0
  6. แพ็คเก็ตอื่น ๆ ทั้งหมด (ลิขิต0.0.0.0) จะให้เราเป็นค่าเริ่มต้นเกตเวย์ผ่าน10.8.0.5 ดังนั้นนี่คือเกตเวย์เริ่มต้นใช่ไหมtun0
  7. แพ็กเก็ตที่กำหนดไว้128.0.0.0/7จะใช้10.8.0.5เป็นเกตเวย์เริ่มต้นผ่านtun0
  8. แพ็กเก็ตอื่นทั้งหมด ( 0.0.0.0) จะใช้10.0.2.2เป็นเกตเวย์เริ่มต้นผ่านeth0

คำถาม:

  • ฉันมีเกตเวย์เริ่มต้น 2 แห่งหรือไม่หากเราพิจารณาจุดที่ 6 และ 8 (อาจมีเกตเวย์เริ่มต้นเพียง 1 ตัวเท่านั้นดังนั้นฉันรู้ว่าฉันผิด แต่ไม่สามารถปรับได้) ( อาจตอบให้ดูด้านล่าง )
  • เมื่อพิจารณาถึงจุดที่ 1 และ 2 สิ่งที่เกิดขึ้น10.8.0.1ไม่ได้ใช้เกตเวย์ผ่าน tun0 จริงๆ ถูกต้องหรือไม่
  • พิจารณาจุดที่ 3 และ 4 อะไรจะให้54.202.18.143ไม่ได้จริงๆโดยใช้ประตูใด ๆ eth0ผ่านทาง ถูกต้องหรือไม่

UPDATE ...

หลังจากอ่านบทความนี้ฉันพบข้อมูลเพิ่มเติม บรรทัดด้านล่างทำให้ฉันรู้สึกอย่างมากตอนนี้:

0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0

ดังนั้น 1 เส้นจะกำหนดและครั้งที่สองหนึ่งคือการกำหนด0.0.0.0/128.0.0.0 128.0.0.0/128.0.0.0เป็นหลัก:

0.0.0.0/128.0.0.0 = 0.0.0.0/1 = 0.0.0.0 TO 127.255.255.255
128.0.0.0/128.0.0.0 = 128.0.0.0/1 = 128.0.0.0 TO 255.255.255.255

ดังนั้นมากกว่า 2 [0.0.0.0 TO 255.255.255.255]เส้นทางจะครอบคลุมทั้งช่วงที่อยู่ มันเป็นวิธีที่ฉลาดของ OpenVPN tun0เพื่อเพิ่มเส้นทางเริ่มต้นโดยไม่ต้องเปลี่ยนเส้นทางเริ่มต้นเดิมและเส้นทางเริ่มต้นนี้จะถูกส่งผ่านทาง

ดังนั้นฉันคิดว่าฉันมีคำตอบสำหรับคำถามแรกของฉัน:

ฉันมีเกตเวย์เริ่มต้น 2 แห่งหรือไม่หากเราพิจารณาจุดที่ 6 และ 8

ไม่มีเกตเวย์เริ่มต้นเดียวเท่านั้นและนั่นคือ:

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

2
0.0.0.0เส้นทางแรกมี Genmask 128.0.0.0ซึ่งอาจไม่ทำให้เป็นเส้นทางเริ่มต้น ฉันต้องบอกว่าฉันไม่มีความคิดแม้แต่น้อยว่าหน้ากากนี้หมายถึงอะไรและมีเส้นทางอะไรสำหรับ: /
Martin von Wittich

นอกจากนี้ยังน่าตกใจว่าการกำหนดเส้นทาง 128.0.0.0 ในเครือข่ายของคุณนั้นแปลกมากเพราะเป็นไอพีสาธารณะหรือสงวนไว้ฉันไม่จำ แต่ในทั้งสองกรณีนี้มันแปลก
Kiwy

ส่วนที่ 128.0.0.0 มาจาก openvpn มันมีคำอธิบายที่นี่
slayedbylucifer

คุณควรหัน "UPDATE" ของคุณให้เป็นคำตอบที่มันเป็นเพียงแค่นี้: คำตอบที่ช่วยให้ผมที่จะเข้าใจปัญหาที่แน่นอนเดียวกันผมมี :)
WoJ

@slayedbylucifer คำอธิบายสำหรับ 128.0.0.0 ดูเหมือนจะไม่ทำงานและไม่มีไฟล์เก็บถาวรของมัน คุณมีลิงค์ออนไลน์เกี่ยวกับเรื่องนี้หรือไม่?
SaAtomic

คำตอบ:


4

ฉันมีเกตเวย์เริ่มต้น 2 แห่งหรือไม่หากเราพิจารณาจุดที่ 6 และ 8 (อาจมีเกตเวย์เริ่มต้นเพียง 1 ตัวเท่านั้นดังนั้นฉันรู้ว่าฉันผิด แต่ไม่สามารถปรับได้) (อาจตอบให้ดูด้านล่าง)

บรรทัดที่ 6 กำลังกำหนดช่วง 0.0.0.0 - 127.255.255.255 และบรรทัดที่ 7 กำลังกำหนดช่วง 128.0.0.0 - 255.255.255.255

ฉันมีเกตเวย์เริ่มต้น 2 แห่งหรือไม่หากเราพิจารณาจุดที่ 6 และ 8

ไม่มีเกตเวย์เริ่มต้นเดียวเท่านั้นและนั่นคือ:

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

เมื่อพิจารณาถึงจุดที่ 1 และ 2 สิ่งที่เกิดขึ้นกับ 10.8.0.1 นั้นไม่ได้ใช้เกตเวย์ใด ๆ ผ่านทาง tun0 ถูกต้องหรือไม่

ไม่ถูกต้องแพ็คเก็ตที่กำหนดไว้สำหรับ 10.8.0.1 จะถูกส่งไปที่ 10.8.0.5 (ซึ่งสามารถเข้าถึงได้โดยtun0 lan ตามที่กำหนดโดยบรรทัดแรก)
คุณพูดถูกถ้า netmask ไม่ใช่ 255.255.255.255

เมื่อพิจารณาถึงจุดที่ 3 และ 4 สิ่งที่เกิดขึ้นกับ 54.202.18.143 นั้นไม่ได้ใช้เกตเวย์ผ่าน eth0 จริงๆ ถูกต้องหรือไม่

ไม่ถูกต้องแพ็กเก็ตที่กำหนดไว้สำหรับ 54.202.18.143 จะถูกส่งไปที่ 10.0.2.2 (ซึ่งเป็นโฮสต์อื่นบนeth0 lan และสามารถเข้าถึงได้โดยบรรทัดที่ 4)


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