Jak używać przestrzeni nazw sieci Linux

Jak używać przestrzeni nazw sieci Linux

Przestrzeni nazw sieci Linux to funkcja jądra Linux, która pozwala nam izolować środowiska sieciowe poprzez wirtualizację. Na przykład za pomocą przestrzeni nazw sieci możesz tworzyć osobne interfejsy sieciowe i tabele routingu, które są odizolowane od reszty systemu i działać niezależnie.

Aby łatwo zrozumieć przestrzenie nazw, warto powiedzieć, że przestrzenie nazw Linux są podstawą technologii kontenerowych, takich jak Docker lub Kubernetes.

Na razie Linux zawiera 6 rodzajów przestrzeni nazw: PID, NET, UTS, MNT, IPC i Użytkownik. Ten samouczek koncentruje się na przestrzeni nazw sieci Linux.

Jeśli rozkazujesz LSN, wyświetli wszystkie istniejące przestrzenie nazw w twoim systemie, jak pokazano na poniższym obrazku.

LSNS

Notatka: Przestrzeń nazw używana w tym samouczku nazywa się Linuxhint; Zastąp to swoją nazwą przestrzeni nazw.

Dodanie przestrzeni nazw sieci Linux:

Zarządzanie przestrzeniami nazw sieci odbywa się za pomocą polecenia IP Netns, a następnie odpowiednich opcji.

Aby utworzyć przestrzeń nazw sieci w systemie Linux, musisz wykonać polecenie IP, a następnie opcję netns (przestrzeń nazwy sieciowej), opcję Dodaj i nową nazwę przestrzeni nazw, jak pokazano na poniższym zrzucie ekranu. Następnie można uruchomić polecenie IP Netns, aby pokazać tylko istniejące przestrzenie nazw sieci. Pamiętaj, aby zastąpić Linuxhint nazwą swojej przestrzeni nazw.

IP Netns Dodaj Linuxhint
IP Netns

Jak widać, stworzono nową przestrzeń nazw o nazwie Linuxhint.

Przestrzenie nazw sieci mają własne interfejsy, tabele routingu, interfejs pętli, reguły iptables itp. Musisz utworzyć te zasoby dla swojej przestrzeni nazw.

Tworzenie interfejsu Loopback dla przestrzeni nazw:

Aby uruchomić polecenia w przestrzeni nazw sieci, składnia jest następująca.

IP Netns Exec

Domyślnie interfejs Loopback jest w dół. Musisz wykonać następujące polecenie; Jak wyjaśniono wcześniej, poniższe polecenie wykonuje link IP Ustaw urządzenie w wybranej przestrzeni nazw.

IP Netns Exec Linuxhint IP Link Ustaw Dev LO UP

Możesz sprawdzić, czy Twój interfejs pętli został poprawnie dodany, uruchamiając następujące polecenie:

IP Netns Exec Linuxhint Adres IP

Możesz także pingować interfejs pętli nazwowej, aby go przetestować, jak pokazano poniżej.

IP Netns Exec Linuxhint Ping 127.0.0.1

Dodawanie interfejsów sieciowych do swojej przestrzeni nazw:

Możesz powiązać kartę sieciową ze swoją przestrzenią nazw lub możesz dodawać wirtualne urządzenia sieciowe. Dodając wirtualne interfejsy sieciowe, możesz umożliwić łączność między różnymi przestrzeniami nazw. Wirtualne urządzenia sieciowe nazywane są Veth (Virtual Ethernet Device).

Aby utworzyć wirtualne urządzenie Ethernet Network, uruchom następujące polecenie, w którym ENP2S0 jest dla nowego urządzenia i V-Peer1 jego dowolna nazwa, zastąp go swoim.

Link IP Dodaj V-ENP2S0 Typ Veth Peer Nazwa V-ETH0

Teraz przypisz urządzenie wirtualne do swojej przestrzeni nazw, uruchamiając poniższe polecenie.

Zestaw linków IP V-ETH0 NETNS Linuxhint

Przypisz adres IP do nowego urządzenia sieciowego, jak pokazano poniżej.

ip -n Linuxhint addr Dodaj 10.0.1.0/24 Dev V-ETH0

Domyślnie urządzenie sieciowe jest wyłączone; Musisz to skonfigurować. Aby ustawić wirtualne urządzenie sieciowe, uruchom następujące polecenie.

IP -n Linuxhint Zestaw V -ETH0 UP

Jak widać na zrzucie ekranu poniżej, urządzenie wirtualne zostało poprawnie dodane.

IP netns exec Linuxhint sudo ifconfig

Poniższy przykład pokazuje, jak przypisać fizyczną kartę sieciową do przestrzeni nazw sieci. W takim przypadku fizyczną kartą sieciową jest ENP2S0.

Ustaw link IP Dev Enp2S0 Netns Linuxhint

Jak widać, uruchamiając poniższy przykład, karta sieciowa została poprawnie dodana. Możesz przypisać adres IP za pomocą tych samych poleceń wyjaśnionych wcześniej.

IP netns exec Linuxhint sudo ifconfig

Jak wyjaśniono wcześniej, każda przestrzeń nazw ma własną tabelę tras, IP i więcej, w tym własne zasady zapory. Dodanie reguł zapory do twojej przestrzeni nazw jest proste; Wystarczy uruchom polecenia po IP Netns exec Linuxhint, jak pokazano poniżej. Poniższy przykład będzie wymienić zasady IPTABLES, jeśli istnieją.

IP Netns Exec Linuxhint sudo iptables -l

Poniższy przykład pokazuje to samo, ale użycie UFW (nieskomplikowana zapora) zamiast iptables. W takim przypadku zapora jest zgłaszana jako niepełnosprawna.

IP Netns Exec Linuxhint Sudo UFW

Usuwanie przestrzeni nazw sieci Linux:

Usuwanie przestrzeni nazw sieci jest dość proste, na przykład przy ich dodawaniu.

Aby usunąć przestrzeń nazw, uruchom polecenie poniżej, zastąp Linuxhint na swoją przestrzeń nazwową.

IP Netns del Linuxhint

Jak widać, po uruchomieniu IP Netns nie pokazano żadnej przestrzeni nazw sieci; został pomyślnie usunięty.

Wniosek:

Przestrzeni nazw Linux to potężna metoda izolowania procesów, systemów plików, sieci i innych. Ta funkcjonalność pozwala nam niezależnie wykonywać instancje. Jest to niezwykle przydatne do celów bezpieczeństwa. Przestrzeni nazw są pojemnikami, których zawartość jest w pełni odizolowana od reszty systemu, w tym z innych przestrzeni nazw. W ten sposób możemy uruchomić różne usługi w różnych kontenerach. Jeśli przestrzeń nazw zostanie naruszona w ramach ataku, reszta systemu pozostaje bezpieczna. Korzystając z przestrzeni nazw Linux, możesz zaoferować wielu klientom ich środowisko; Ta funkcja jest również świetna do celów testowych lub do uruchomienia oprogramowania, którego pochodzenie jest podejrzane; W przypadku wykonania złośliwego kodu, wpłynie to tylko na twoją przestrzeń nazw, pozostawiając urządzenie bezpieczne.

Mam nadzieję, że ten samouczek na temat przestrzeni nazw Linux był przydatny. Kontynuuj podążaj za Linux, aby uzyskać więcej wskazówek i samouczków Linux.