Network Namespace
Basic Information
Mrežni prostor imena je funkcija Linux jezgra koja obezbeđuje izolaciju mrežnog steka, omogućavajući svakom mrežnom prostoru imena da ima svoju nezavisnu mrežnu konfiguraciju, interfejse, IP adrese, tabele usmeravanja i pravila vatrozida. Ova izolacija je korisna u raznim scenarijima, kao što je kontejnerizacija, gde svaki kontejner treba da ima svoju mrežnu konfiguraciju, nezavisno od drugih kontejnera i host sistema.
How it works:
Kada se kreira novi mrežni prostor imena, počinje sa potpuno izolovanim mrežnim stekom, sa nema mrežnih interfejsa osim za loopback interfejs (lo). To znači da procesi koji se izvršavaju u novom mrežnom prostoru imena ne mogu komunicirati sa procesima u drugim prostorima imena ili host sistemu po defaultu.
Virtuelni mrežni interfejsi, kao što su veth parovi, mogu se kreirati i premestiti između mrežnih prostora imena. To omogućava uspostavljanje mrežne povezanosti između prostora imena ili između prostora imena i host sistema. Na primer, jedan kraj veth para može biti postavljen u mrežni prostor imena kontejnera, a drugi kraj može biti povezan sa mostom ili drugim mrežnim interfejsom u host prostoru imena, obezbeđujući mrežnu povezanost kontejneru.
Mrežni interfejsi unutar prostora imena mogu imati svoje vlastite IP adrese, tabele usmeravanja i pravila vatrozida, nezavisno od drugih prostora imena. To omogućava procesima u različitim mrežnim prostorima imena da imaju različite mrežne konfiguracije i funkcionišu kao da se izvršavaju na odvojenim umreženim sistemima.
Procesi mogu prelaziti između prostora imena koristeći
setns()
sistemski poziv, ili kreirati nove prostore imena koristećiunshare()
iliclone()
sistemske pozive saCLONE_NEWNET
zastavicom. Kada proces pređe u novi prostor imena ili ga kreira, počeće da koristi mrežnu konfiguraciju i interfejse povezane sa tim prostorom imena.
Lab:
Create different Namespaces
CLI
Montiranjem nove instance /proc
datotečnog sistema ako koristite parametar --mount-proc
, osiguravate da nova mount namespace ima tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace.
Docker
Proverite u kojem je namespace vaš proces
Pronađite sve mrežne imenske prostore
Uđite unutar mrežnog imenskog prostora
Takođe, možete ući u drugi procesni prostor imena samo ako ste root. I ne možete ući u drugo ime prostora bez deskriptora koji na njega pokazuje (kao što je /proc/self/ns/net
).
References
Last updated