การใช้
ip r เพิ่ม 0.0.0.0 ผ่าน 172.20.10.10 src 10.0.100.10
ได้:
ข้อผิดพลาด: ที่อยู่ prefsrc ไม่ถูกต้อง
จะแก้ไขปัญหานี้ได้อย่างไร?
เป้าหมาย:
netns (โฮสต์) => ppp0 => อินเทอร์เน็ตผ่าน ppp0
การกำหนดค่าของฉัน:
/home# ไอพีเน็ต
ns2
ns1 (id: 0) <<<<<<<<<<<<<<<<<<
/home# ip netns exec ns1 ip a
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์ lo
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 :: โฮสต์ขอบเขต 1/128
valid_lft ตลอดไป reserved_lft ตลอดไป
2: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop สถานะ DOWN กลุ่มเริ่มต้น qlen 1000
ลิงค์/ipip 0.0.0.0 brd 0.0.0.0
15: virt1@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ 02:e6:f6:3a:19:2f brd ff:ff:ff:ff:ff:ff ลิงค์-netnsid 0
inet 10.0.100.10/24 ขอบเขต global virt1 <<<<<<<<<<<<<<<<<<<<<<<<<<<
valid_lft ตลอดไป reserved_lft ตลอดไป
ลิงค์ขอบเขต inet6 fe80::e6:f6ff:fe3a:192f/64
valid_lft ตลอดไป reserved_lft ตลอดไป
/home# ip netns exec ns1 ip r
ค่าเริ่มต้นผ่าน 10.0.100.1 dev virt1
10.0.100.0/24 dev virt1 โปรโตเคอร์เนลขอบเขตลิงก์ src 10.0.100.10
/home# ไอพี
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์ lo
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 :: โฮสต์ขอบเขต 1/128
valid_lft ตลอดไป reserved_lft ตลอดไป
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel สถานะกลุ่ม UP เริ่มต้น qlen 1000
ลิงค์/อีเธอร์ 11:22:33:44:31:34 brd ff:ff:ff:ff:ff:ff
inet 1.2.3.4/20 brd 1.2.3.255 ขอบเขต global eth0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet 10.10.0.8/16 brd 10.10.255.255 ขอบเขต global eth0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 1111::2222:3333:4444:5555/64 ลิงค์ขอบเขต
valid_lft ตลอดไป reserved_lft ตลอดไป
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UNKNOWN กลุ่มเริ่มต้น qlen 3
ลิงค์/pp
inet 172.20.10.1 เพียร์ 172.20.10.10/32 ขอบเขต global ppp0
valid_lft ตลอดไป reserved_lft ตลอดไป
14: virt-h@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP กลุ่มเริ่มต้น qlen 1,000
ลิงค์/อีเธอร์ f2:7e:68:40:ff:13 brd ff:ff:ff:ff:ff:ff link-netns ns1
inet 10.0.100.1/24 ขอบเขต global virt-h <<<<<<<<<<<<
valid_lft ตลอดไป reserved_lft ตลอดไป
ลิงค์ขอบเขต inet6 fe80::f07e:68ff:fe40:ff13/64
valid_lft ตลอดไป reserved_lft ตลอดไป
netns : virt1 <> virt-h
/home# ไอพีอาร์
ค่าเริ่มต้นผ่าน 1.2.3.4 dev eth0 proto static
10.0.100.0/24 dev virt-h ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.100.1
1.2.3.0/20 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 1.2.3.4
172.20.10.10 dev ppp0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 172.20.10.1
การส่งต่อเปิดอยู่
netns ถูกตั้งค่าตามที่เขียนไว้ที่นี่:
https://blogs.igalia.com/dpino/2016/04/10/network-namespaces/
อีกด้วย:
/home# ip netns exec ns1 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 8.8.8.8: icmp_seq=1 ttl=117 เวลา=2.39 ms
64 ไบต์จาก 8.8.8.8: icmp_seq=2 ttl=117 เวลา=1.52 ms
/home# ip netns exec ns1 ping 172.20.10.1
PING 172.20.10.1 (172.20.10.1) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 172.20.10.1: icmp_seq=1 ttl=64 เวลา=0.071 ms
64 ไบต์จาก 172.20.10.1: icmp_seq=2 ttl=64 เวลา=0.118 ms
ยูพีดี 1: เส้นทางนี้ควรตั้งค่าบนโฮสต์ แต่สำหรับผู้แสดงความคิดเห็น สิ่งนี้ยังให้ข้อผิดพลาด (ตามที่เขียนใน เหตุใด "Nexthop มีเกตเวย์ที่ไม่ถูกต้อง" เมื่อดูเหมือนจะถูกกำหนด):
/home# ip netns exec ns1 ip r เพิ่มค่าเริ่มต้นผ่าน 172.20.10.10 src 10.0.100.10
ข้อผิดพลาด: Nexthop มีเกตเวย์ที่ไม่ถูกต้อง