Score:0

อินเทอร์เน็ตใน linux netns ไม่สามารถเข้าถึงได้ nexthop ผิด

ธง jp

ฉันตั้งค่า octoprints 2 อันสำเร็จใน 1 armbian linux บน 2 พอร์ตที่แตกต่างกัน 5,000 และ 5001 โดยใช้ netns ฉันสามารถเชื่อมต่อเป็น 10.10.10.233:5000 และ 10.10.10.233:5001 ได้โดยไม่มีปัญหาใดๆ ประการแรก (5000) อยู่บนระบบหลักและเชื่อมต่อกับอินเทอร์เน็ตสำเร็จ ประการที่สอง (พอร์ต 5001) ไม่สามารถเชื่อมต่อกับอินเทอร์เน็ตได้ มันสามารถเชื่อมต่อกับโฮสต์ผ่าน veth เท่านั้น

การตั้งค่าทั้งหมดคือ:

sudo ip link เพิ่ม dev virt01 พิมพ์ veth peer name virt02

sudo ip netns เพิ่ม octo2
ลิงก์ sudo ip ตั้งค่า virt01 netns octo2
sudo ip netns exec octo2 ip addr เพิ่ม 10.1.1.1/24 dev virt01
sudo ip addr เพิ่ม 10.1.1.2/24 dev virt02
sudo ip netns exec octo2 ip link ตั้งค่า dev virt01 ขึ้น
ลิงก์ sudo ip ตั้งค่า dev virt02 ขึ้น
sudo ip netns exec octo2 ip link ตั้งค่า lo up
sudo ip netns exec octo2 ip route เพิ่มค่าเริ่มต้นผ่าน 10.1.1.2

#ขออนุญาติส่งต่อ
sudo ip netns exec octo2 sysctl net.ipv4.ip_forward=1
เสียงสะท้อน 1 > /proc/sys/net/ipv4/ip_forward

ณ จุดนี้โฮสต์มี:

netstat -rn
ตารางเส้นทางเคอร์เนล IP
เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะหน้าต่าง MSS irtt Iface
0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0
10.1.1.0 0.0.0.0 255.255.255.0 คุณ 0 0 0 virt02
10.10.10.0 0.0.0.0 255.255.255.0 คุณ 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 คุณ 0 0 0 eth0

ในเน็ต:

sudo ip netns exec octo2 netstat -rn
ตารางเส้นทางเคอร์เนล IP
เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะหน้าต่าง MSS irtt Iface
0.0.0.0 10.1.1.2 0.0.0.0 ยูจี 0 0 0 virt01
10.1.1.0 0.0.0.0 255.255.255.0 คุณ 0 0 0 virt01

ดังนั้นการเชื่อมต่อจากโฮสต์จึงดีต่ออินเทอร์เน็ต (ผ่านเราเตอร์ 10.10.10.1/24) และไปยัง netns

Orangepi:~$ ปิง 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 1.1.1.1: icmp_seq=1 ttl=54 เวลา=21.6 ms
64 ไบต์จาก 1.1.1.1: icmp_seq=2 ttl=54 เวลา=21.4 ms

Orangepi:~$ ปิง 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 10.1.1.1: icmp_seq=1 ttl=64 เวลา=0.242 ms

แต่จาก netns มีการเชื่อมต่อกับโฮสต์เท่านั้นและไม่มีอินเทอร์เน็ต:

orangepi:~$ sudo ip netns exec octo2 ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 10.1.1.2: icmp_seq=1 ttl=64 เวลา=0.250 ms

# ข้อผิดพลาดที่นี่ ไม่มีอินเทอร์เน็ตจาก NETNS:
orangepi:~$ sudo ip netns exec octo2 ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) ไบต์ของข้อมูล
^ซี
--- 1.1.1.1 สถิติการปิง ---
ส่ง 2 แพ็กเก็ต ได้รับ 0 แพ็กเก็ต สูญเสีย 100% เวลา 1017 มิลลิวินาที

Orangepi:~$ sudo ip netns exec octo2 traceroute 1.1.1.1
ติดตามเส้นทางไปยัง 1.1.1.1 (1.1.1.1), สูงสุด 30 hops, 60 แพ็คเก็ตไบต์
 1 _เกตเวย์ (10.1.1.2) 0.288 ms 0.094 ms 0.079 ms
 2 * * *            
 3 * * *
 4 * * *
 5 * * *
 6 *^ค

iptables ของโฮสต์:

orangepi:~$ sudo iptables -S
-P อินพุตยอมรับ
-P ยอมรับไปข้างหน้า
-P เอาต์พุตยอมรับ

orangepi:~$ sudo iptables -S -t แนท
-P PREROUTING ยอมรับ
-P อินพุตยอมรับ
-P เอาต์พุตยอมรับ
-P หลังยอมรับ

ยังมีข้อมูลบางอย่าง:

orangepi:~$ ip r
ค่าเริ่มต้นผ่าน 10.10.10.1 dev eth0 proto dhcp metric 100
10.1.1.0/24 dev virt02 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.1.1.2
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.234 เมตริก 100
169.254.0.0/16 dev eth0 ขอบเขตลิงก์เมตริก 1,000

orangepi:~$ sudo ip netns exec octo2 ip r
เริ่มต้นผ่าน 10.1.1.2 dev virt01
10.1.1.0/24 dev virt01 โปรโตเคอร์เนลขอบเขตลิงก์ src 10.1.1.1

ed@orangepizero:~$ cat /proc/sys/net/ipv4/ip_forward
1

ed@orangepizero:~$ sudo ip netns exec octo2 cat /proc/sys/net/ipv4/ip_forward
1

orangepi:~$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

orangepi:~$ sudo ip netns exec octo2 sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

ระบบไม่มี ufw และไฟร์วอลล์อื่นๆ

จะแก้ไขและให้ netns เข้าถึงอินเทอร์เน็ตได้อย่างไร

Score:0
ธง jp

เราเตอร์ 10.10.10.1 ได้รับคำขอจาก 10.1.1.1 (netns ภายใน orangepi) ดังนั้นจึงห้ามการเข้าถึง WAN เนื่องจากไม่มีเส้นทางให้

แก้ไข: ใช้ NAT ภายใน orangepi เพื่อให้ 10.1.1.1 มองเห็นได้จากเราเตอร์เป็น 10.10.10.234 ดังนั้นจึงสามารถเข้าถึงอินเทอร์เน็ตได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา