ฉันทำงานกับตารางเส้นทางที่กำหนดเองบน Linux และฉันรู้สึกสับสนเล็กน้อยกับเอกสารและพฤติกรรมของคำสั่ง "ip route" ดูเหมือนว่าค่าที่ถูกต้องควรเป็น 0-255 รวมถึงชื่อที่กำหนดใน / etc / iproute2 / rt_tables:
255 local
254 main
253 default
0 unspec
สิ่งนี้จะปล่อยให้ 1-252 สำหรับตารางที่กำหนดเอง การพยายามใช้ชื่อตารางที่ไม่ได้กำหนดจะทำให้เกิดข้อผิดพลาด:
$ ip route show table kermit
Error: argument "kermit" is wrong: table id value is invalid
อย่างไรก็ตามดูเหมือนว่าฉันสามารถใช้ตัวเลขที่สูงกว่า 255 ได้โดยไม่มีข้อผิดพลาด:
$ ip route show table 1000
[no output]
$ ip route add 10.10.10.0/24 dev eth0 table 1000
[no output]
$ ip route show table 1000
10.10.10.0/24 dev eth0 scope link
เมื่อถึงจุดหนึ่งสิ่งต่าง ๆ ก็ยิ่งแปลก ขวาที่ maxint (2 ^ 31) มัน "ล้น" ลงในตารางท้องถิ่น (255):
$ ip route show table 2147483647
[no output]
$ ip route show table 2147483648
[exact output of table 255 (local)]
ใครสามารถอธิบายสิ่งที่เกิดขึ้น มีตารางเส้นทางที่กำหนดเองที่สามารถใช้งานได้จริงหรือไม่?