Network Namespace

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Att använda nätverksnamnrymd för att skapa isolerade nätverksmiljöer

Att använda nätverksnamnrymd (Network Namespace) är en effektiv metod för att skapa isolerade nätverksmiljöer på Linux-system. Detta kan vara särskilt användbart för att köra applikationer i isolerade nätverk, vilket kan bidra till ökad säkerhet och minskad risk för konflikter mellan applikationer.

Steg 1: Skapa en nätverksnamnrymd

För att skapa en ny nätverksnamnrymd, använder du ip netns add kommandot följt av namnet på den namnrymd du vill skapa. Ersätt <namespace> med det namn du vill ge din nätverksnamnrymd:

sudo ip netns add <namespace>

Steg 2: Kontrollera nätverksnamnrymden

För att lista alla tillgängliga nätverksnamnrymder, använd följande kommando:

ip netns list

Steg 3: Skapa en virtuell nätverksgränssnittspar

För att kommunikation ska kunna ske mellan nätverksnamnrymden och resten av systemet, behöver du skapa ett par av virtuella nätverksgränssnitt (veth-par).

sudo ip link add veth1 type veth peer name veth2

Steg 4: Flytta ett av gränssnitten till nätverksnamnrymden

Flytta ett av de virtuella nätverksgränssnitten till din nätverksnamnrymd:

sudo ip link set veth2 netns <namespace>

Steg 5: Konfigurera nätverksgränssnitten

Konfigurera IP-adresser och aktivera gränssnitten. Först, konfigurera gränssnittet i den globala namnrymden:

sudo ip addr add 192.168.1.1/24 dev veth1
sudo ip link set veth1 up

Sedan, byt till din nätverksnamnrymd och konfigurera det andra gränssnittet:

sudo ip netns exec <namespace> ip addr add 192.168.1.2/24 dev veth2
sudo ip netns exec <namespace> ip link set veth2 up
sudo ip netns exec <namespace> ip link set lo up

Steg 6: Testa nätverkskommunikationen

För att testa kommunikationen mellan den globala namnrymden och din nya nätverksnamnrymd, kan du pinga den ena från den andra. Från den globala namnrymden till din nätverksnamnrymd:

ping 192.168.1.2

Från din nätverksnamnrymd till den globala namnrymden:

sudo ip netns exec <namespace> ping 192.168.1.1

Sammanfattning

Genom att följa dessa steg har du skapat en isolerad nätverksmiljö med hjälp av nätverksnamnrymder. Detta är ett kraftfullt sätt att isolera applikationers nätverkstrafik från varandra på ett Linux-system, vilket kan vara särskilt användbart i utvecklings- och testmiljöer.