ด้วยip netns execคุณสามารถรันคำสั่งในเนมสเปซเครือข่ายที่กำหนดเองได้ แต่มีวิธีการรันคำสั่งในเนมสเปซเริ่มต้นด้วยหรือไม่
ตัวอย่างเช่นหลังจากรันคำสั่งทั้งสองนี้:
sudo ip netns add test_ns
sudo ip netns exec test_ns bash
bash ที่สร้างขึ้นใหม่สามารถรันโปรแกรมในเนมสเปซเครือข่ายเริ่มต้นได้อย่างไร ไม่มีเป็นIP netns exec เริ่มต้นหรืออะไรที่คล้ายกันเท่าที่ผมได้พบ
สถานการณ์ของฉันคือ:
ฉันต้องการเรียกใช้เซิร์ฟเวอร์ SSH ในเนมสเปซเครือข่ายแยกต่างหาก (เพื่อให้ระบบที่เหลือไม่รู้จักการเชื่อมต่อเครือข่ายเนื่องจากระบบใช้สำหรับการทดสอบเครือข่าย) แต่ต้องการให้สามารถรันโปรแกรมในเนมสเปซเครือข่ายเริ่มต้นผ่าน การเชื่อมต่อ SSH
สิ่งที่ฉันค้นพบแล้ว:
เนมสเปซเครือข่ายที่สร้างขึ้นจะแสดงเป็นไฟล์ภายใต้ / var / run / netns (แต่ไม่มีไฟล์สำหรับเนมสเปซเริ่มต้น)
รหัสip netns execสามารถพบได้ที่นี่: http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/tree/ip/ipnetns.c#n132 - ฉันไม่เข้าใจทุกอย่าง มันกำลังทำอยู่ แต่มันก็ดูไม่ค่อยสดใสเท่าไหร่นัก
ip netns ระบุ $$ตามที่แนะนำโดยHowto เคียวรีและเปลี่ยนเนมสเปซเครือข่ายบน linux? ไม่มีอะไรส่งคืนเมื่ออยู่ในเนมสเปซเครือข่ายเริ่มต้น