Con ip netns exec puoi eseguire un comando in uno spazio dei nomi di rete personalizzato - ma c'è anche un modo per eseguire un comando nello spazio dei nomi predefinito?
Ad esempio, dopo aver eseguito questi due comandi:
sudo ip netns add test_ns
sudo ip netns exec test_ns bash
Come può il bash appena creato eseguire programmi nello spazio dei nomi di rete predefinito? Non c'è ip netns exec default o qualcosa di simile per quanto ne ho trovato.
Il mio scenario è:
Voglio eseguire un server SSH in uno spazio dei nomi di rete separato (per mantenere il resto del sistema ignaro della connessione di rete, poiché il sistema viene utilizzato per i test di rete), ma voglio essere in grado di eseguire programmi nello spazio dei nomi di rete predefinito tramite la connessione SSH.
Quello che ho scoperto finora:
Gli spazi dei nomi di rete creati sono elencati come file in / var / run / netns (ma non esiste alcun file per lo spazio dei nomi predefinito)
Il codice exec netns ip può essere trovato qui: http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/tree/ip/ipnetns.c#n132 - Non ho capito tutto che sta ancora facendo, ma non sembra molto promettente.
ip netns identifica $$ come suggerito da Howto interroga e cambia lo spazio dei nomi di rete su linux? non restituisce nulla quando si trova nello spazio dei nomi di rete predefinito