Opsætning af Debian som router - Valg af default gateway Emnet er løst
-
- Admin
- Indlæg: 3649
- 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
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:
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:
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.
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.
-
- 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 Emnet er løst
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
-
- 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
Nu du skal bruge din Linux box til at route, så skal det også aktiveres.
Kun for IPv4
Sæt den her linie :
... 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:
/Lars
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
-
- Admin
- Indlæg: 3649
- 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
Mange tak for svaret. man-filen til dhclient.conf(5) giver ganske rigtigt svaret
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
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.
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.
-
- 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
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
-
- Admin
- Indlæg: 3649
- 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
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.
Hvem er online
Brugere der læser dette forum: [Crawler] og 0 gæster