Opsætning af Debian som router - Valg af default gateway

Har du spørgsmål til andre systemer end Ubuntu kan du stille dem her.
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Opsætning af Debian som router - Valg af default gateway

Indlæg af NickyThomassen »

Sidste gang det lynede og tordnede her i det Nordsjællandske, blev min Linksys router ristet en smule, og stoppede med at virke. Heldigvis havde jeg måneden før sat en strømsvag Debian server op på netværket, som bl.a. kører DHCP, DNS og NFS. Tilfældigvis har den 2 netkort, så i stedet for at købe en ny router, satte jeg firewall'en op til at route pakker imellem netkortene, og aktiverede ip_forward.

eth0 tjener den eksterne side, altså WAN, og bruger min udbyders DHCP da jeg ikke er sikret en fast IP på deres interne netværk.

eth1 tjener dermed mit LAN, og har en i sagen natur en fast IP adresse, under 192.168.*.* netværket ligesom resten af LAN'et.

Problemet er, at kernen vælger eth1 som internet siden, hvilket betyder at jeg manuelt efter en opstart, er nødt til at skifte default gateway med kommandoerne:

Kode: Vælg alt

ip route del default
ip route add default via 192.168.40.1 dev eth0

# To clear the route cache, just in case:
ip route flush cache

Udbyderen annoncerer 192.168.40.1 som gateway via deres DHCP.

Så spørgsmålet er, kan jeg ændre opsætningen, så kernen bruger DHCP oplysningerne givet til eth0 til at sætte standard gateway? Sandt at sige er netværk på det her niveau næsten over hovedet på mig, så jeg ved ikke engang hvilket komponenter der har ansvaret for denne her opførelse.

Serverens interfaces har det her indhold:

Kode: Vælg alt

cat /etc/network/interfaces

auto lo
iface lo inet loopback

allow-hotplug eth0 eth1

iface eth0 inet dhcp

iface eth1 inet static
   address 192.168.20.1
   netmask 255.255.255.0
   gateway 192.168.20.1

I princippet kunne jeg vel bare tilføje kommandoerne til firewall scriptet, som bliver kørt efter en opstart af cron med @REBOOT. Det ville dog fjerne noget af pointen i at udbyderen bruger DHCP, som formodningsvis netop er lavet til det her formål.

Sig endelig til hvis der mangler flere oplysninger, så inkluderer jeg dem i et svar.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Opsætning af Debian som router - Valg af default gateway

Indlæg af lath »

Så spørgsmålet er, kan jeg ændre opsætningen, så kernen bruger DHCP oplysningerne givet til eth0 til at sætte standard gateway?

Det kan man godt.

Du skal starte med at fortælle at det er eth0 interfacet at DHCP klienten skal konfigurere og lytte på.
Du skal også fortælle at DHCP klienten skal holde snitterne fra eth1 interfacet.

Så skal du holde installere en DHCP server.
Den skal konfigureres til at lytte på eth1 interfacet.
DHCP serveren skal konfigureres til at holde snitterne fra eth0 interfacet.

Det er vigtigt at DHCP klient og server holder sig væk fra det andet andet netværksinterface for ellers vil DHCP serveren konfigurere DHCP klienten, der er på den samme maskine som DHCP serveren.

Deafult gateway er router IP adressen til IP netværket som giver dit IP netværk adgang til internettet.
Der kan være mere end en gateway (mere end en router) der kan give adgang til internettet, f.eks. har nogle firmaer en hoved (default) internetforbindelse, og så en backup internetforbindelse.
Hver er dem vælges så de ikke bruger samme backbone netværk - for ellers er der jo ikke meget backup over en backup internetforbindelse.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Opsætning af Debian som router - Valg af default gateway

Indlæg af lath »

Nu du skal bruge din Linux box til at route, så skal det også aktiveres.

Kun for IPv4
Sæt den her linie :

Kode: Vælg alt

net.ipv4.ip_forward = 1

... ind i /etc/sysctl.conf

Der er også nogle andre IPv4 indstillinger du kan sætte i /etc/sysctl.conf.

Hvis du ikke gider reboote, kan du nøjes med at køre den her kommando med superbruger rettigheder:

Kode: Vælg alt

sysctl -w net.ipv4.ip_forward=1


/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: Opsætning af Debian som router - Valg af default gateway

Indlæg af NickyThomassen »

Mange tak for svaret. man-filen til dhclient.conf(5) giver ganske rigtigt svaret
interface "name" { declarations ... }

A client with more than one network interface may require different behaviour ...


Udover net.ipv4.ip_forward har jeg også sat
net.ipv4.neigh.default.gc_thresh1 = 256
net.ipv4.neigh.default.gc_thresh2 = 1024
net.ipv4.neigh.default.gc_thresh3 = 2048
net.ipv4.neigh.default.gc_interval = 60
net.ipv4.neigh.default.gc_stale_time = 120

i /etc/sysctl.conf, fordi jeg jævnligt så fejl i sysloggen når serveren kørte under belastning. Det script jeg bruger til at sætte iptables op med, ser i øvrigt sådan her ud

Kode: Vælg alt

#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
sleep 5
#
# Delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
#
# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT
#
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
#
# Masquerade.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#
# Don't forward from the outside to the inside.
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
#
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward
#
exit 0


Du har sikkert ret i at det ikke nødvendigvis er en router som har 192.168.20.40 hos udbyderen, men jeg er ikke meget for at scanne adressen, i tilfælde af at udbyderen ikke bryder sig om det :)
Men det har både været, og er stadig, meget fristende at begynde at scanne deres netværk, når man nu har en Linux maskine direkte på det.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Opsætning af Debian som router - Valg af default gateway

Indlæg af lath »

TitanusEramius skrev:Du har sikkert ret i at det ikke nødvendigvis er en router som har 192.168.20.40 hos udbyderen, men jeg er ikke meget for at scanne adressen, i tilfælde af at udbyderen ikke bryder sig om det :)
Men det har både været, og er stadig, meget fristende at begynde at scanne deres netværk, når man nu har en Linux maskine direkte på det.


Det kunne godt være en layer-3 switch. I sådan en dims kan man lukke for internetforbindelsen fra interfacet der er uplink porten.

Jeg ville heller ikke scanne netværket. Det er meget sandsynligt at der er fuldautomatiske værktøjer der øjeblikkeligt sladrer til en netværksadmin ved din ISP, som så næsten helt sikker lukker for din internetforbindelse meget hurtigt.

Den slags gjorde jeg selv som netværksadmin.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: Opsætning af Debian som router - Valg af default gateway

Indlæg af NickyThomassen »

lath skrev:Jeg ville heller ikke scanne netværket. Det er meget sandsynligt at der er fuldautomatiske værktøjer der øjeblikkeligt sladrer til en netværksadmin ved din ISP, som så næsten helt sikker lukker for din internetforbindelse meget hurtigt.

Den slags gjorde jeg selv som netværksadmin.

/Lars

Jeg tænkte det nok.
Egentlig burde det ikke være nødvendigt, for som udbyder har de selvfølgelig sikret deres netværk i mod misbrug.

For DHCP klienten ser det følgende ud til at virke i /etc/dhcp/dhclient.conf

Kode: Vælg alt

interface "eth0" {
prepend domain-name-servers 127.0.0.1,208.67.222.222;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-search, host-name, dhcp6.domain-search,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;
}

Det eneste jeg har indsat er

Kode: Vælg alt

interface "eth0" {

}

så det kunne ikke være nemmere.

Og for DHCP serveren ser "local-address" ud til at være løsningen i /etc/dhcp/dhcpd.conf.