Aktivera IP-vidarebefordran för IPv4 i Debian GNU/Linux

Enabling Ip Forwarding



Det kan ibland vara svårt att skapa ett datanätverk. Att aktivera IPv4 -vidarebefordran på en Linux -maskin är en ganska enkel uppgift, som tur är.

Termen IP -vidarebefordran beskriver att man skickar ett nätverkspaket från ett nätverksgränssnitt till ett annat på samma enhet. Det bör aktiveras när du vill att ditt system ska fungera som en router som överför IP -paket från ett nätverk till ett annat.







På ett Linux -system har Linux -kärnan en variabel med namnet 'ip_forward' som håller detta värde. Det är tillgängligt med filen `/proc/sys/net/ipv4/ip_forward`. Standardvärdet är 0 vilket betyder ingen IP -vidarebefordran, eftersom en vanlig användare som kör en enda dator utan ytterligare komponenter inte brukar behöva det. Däremot är det för routrar, gateways och VPN -servrar en ganska viktig funktion.



Därefter kommer vi att förklara för dig hur du aktiverar IP -vidarebefordran tillfälligt och permanent.



IP -vidarebefordran som en tillfällig lösning

För att aktivera denna kärnparameter i farten har du två alternativ. Alternativ 1 lagrar helt enkelt värdet 1 i variabeln ovanifrån enligt följande:





#kastade ut 1 > /procent/sys/netto/ipv4/ip_forward

Alternativ 2 använder kommandot 'sysctl' som låter dig justera olika kärnparametrar även vid körning [2]. Som administrativ användare kör följande kommando:

#sysctl-inet.ipv4.ip_forward =1

Tänk på att denna inställning ändras direkt. Resultatet bevaras inte heller efter att systemet har startats om.



Du kan fråga efter det lagrade värdet enligt följande:

#katt /procent/sys/netto/ipv4/ip_forward

Det här kommandot returnerar värdet 0 för ingen IP -vidarebefordran och ett värde 1 för IP -vidarebefordran aktiverat. Som ett alternativ visar 'sysctl' dig också aktuell status:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward =0
#

Aktivera IP -vidarebefordran permanent

För att uppnå detta måste några andra steg göras. Redigera först filen `/etc/sysctl.conf`. Sök efter en rad som innehåller posten # net.ipv4.ip_forward = 1 och ta bort # i början av raden.

Spara sedan filen och kör kommandot 'sysctl' för att aktivera de justerade inställningarna:

#sysctl-s /etc/sysctl.conf

Alternativet '-p' är kort för '–load' och kräver ett namn för konfigurationsfilen som ska följas.

Starta sedan om proc -filsystemet som ger information om Linux -kärnans status med följande kommando:

#/etc/init.d/ansluter omstart

Omkring 2015 förkortades filnamnet från 'procps.sh' till 'procps'. Så på äldre Debian -system heter manuset som du måste åberopa 'procps.sh' istället.

Hanterar Systemd

Nästa hinder kom med lanseringen av Systemd version 221. IP -vidarebefordran är inaktiverad som standard, och aktivering kräver att en ytterligare fil finns där. Om det inte finns där ännu, lägg bara till det. Filnamnet består av namnet på nätverksgränssnittet följt av suffixet '.network', till exempel 'eth0.network' för nätverksgränssnittet '/dev/eth0'. Som anges i dokumentationen [4] ignoreras andra tillägg.

Följande kodavsnitt visar konfigurationen för nätverksgränssnittet '/dev/tun0'. Den innehåller två avsnitt - 'Match' och 'Nätverk'. I avsnittet Matcha definiera namnet på nätverksgränssnittet och i nätverksavsnittet aktivera IP -vidarebefordran.

# cat /etc/systemd/network/tun0.network
[Match]
namn= tun0
[Nätverk]
IPForward= ipv4

Slutsats

Att aktivera IP -vidarebefordran för IPv4 är inget mysterium. Bara några steg, och du är där. Glad hackning!

Länkar och referenser

* [1] Konfigurera Systemd-Networkd, Debian Wiki
* [2] Juergen Haas: Lär dig Linux sysctl -kommandot
* [3] Systemd News för version 221
* [4] Dokumentation för Systemd