Gå til innhold

Nettverksproblemer i Linux-ruter


Anbefalte innlegg

Hei! Jeg har hatt en del mystiske problemer med latency og andre problemer i Linux-ruteren min. Jeg har nå klart å framprovosere en feil gjentatte ganger ved samme fremgangsmåte, og håper noen har noen fornuftige tilbakemeldinger å komme med. Først litt info om boksen:

 

Kjerne: 2.4.19

 

Nett: Et nettverkskort (VIA onboard) som er koblet til en switch. Til denne har jeg også koblet hjemmenettverket, og SDSL-boksen fra Catch. Disse boksene gir meg rett og slett en ethernet-linje, og har ikke noen ruter-funksjonalitet.

 

Mål: Å bruke den aktuelle boksen som ruter i tillegg til www/smb/nfs osv.

 

Status: Ruting fungerer, men det er noen problemer.

 

Problem: Diverse, hovedsakelig rare latency-problemer. Jeg fremkaller kun noen av symptomene her, men det burde være nok til en diskusjon som kan lede til oppdaging av en feil.

 

Under følger fremgangsmåten for å fremprovosere feilen, samt info underveis. Dersom noe er uklart, vennligst si fra, så skal jeg formulere meg bedre.

 

modprobe via-rhine
ifconfig eth0 10.0.0.4
ifconfig eth0:0 195.1.64.66 netmask 255.255.255.192
route add default gw 195.1.64.126
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F
iptables -A FORWARD -d 10.0.0.0/8 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/8 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
#Nettet er nå raskt både på lokal- og internett

#Kontrollerer at tcpdump fungerer, for å påvise merkelig oppførsel senere
tcpdump
#tcpdump fungerer, og lister pakker både for lokal- og internett.

#Nettet ser nå slik ut:
ifconfig
#eth0      Link encap:Ethernet  HWaddr 00:04:61:4A:0A:6B
#          inet addr:10.0.0.4  Bcast:10.255.255.255  Mask:255.0.0.0
#          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
#          RX packets:5823 errors:0 dropped:0 overruns:0 frame:0
#          TX packets:6245 errors:0 dropped:0 overruns:0 carrier:0
#          collisions:0 txqueuelen:100
#          RX bytes:3336515 (3.1 MiB)  TX bytes:4332445 (4.1 MiB)
#          Interrupt:11 Base address:0xe800
#
#eth0:0    Link encap:Ethernet  HWaddr 00:04:61:4A:0A:6B
#          inet addr:195.1.64.66  Bcast:195.1.64.255  Mask:255.255.255.192
#          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
#          Interrupt:11 Base address:0xe800
#
#lo        Link encap:Local Loopback
#          inet addr:127.0.0.1  Mask:255.0.0.0
#          UP LOOPBACK RUNNING  MTU:16436  Metric:1
#          RX packets:28 errors:0 dropped:0 overruns:0 frame:0
#          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
#          collisions:0 txqueuelen:0
#          RX bytes:2064 (2.0 KiB)  TX bytes:2064 (2.0 KiB)
#
route -n
#Kernel IP routing table
#Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
#195.1.64.64     0.0.0.0         255.255.255.192 U     0      0        0 eth0
#10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
#0.0.0.0         195.1.64.126    0.0.0.0         UG    0      0        0 eth0

#Så tar jeg ned det virtuelle interfacet mot internett:
#ifconfig eth0:0 down
#Nå svarer sshd tregt, men ssh og scp går raskt når jeg først får svar. NFS er responsiv og fin.

#Nettet ser nå slik ut:
ifconfig
#eth0      Link encap:Ethernet  HWaddr 00:04:61:4A:0A:6B
#          inet addr:10.0.0.4  Bcast:10.255.255.255  Mask:255.0.0.0
#          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
#          RX packets:5895 errors:0 dropped:0 overruns:0 frame:0
#          TX packets:6334 errors:0 dropped:0 overruns:0 carrier:0
#          collisions:0 txqueuelen:100
#          RX bytes:3343861 (3.1 MiB)  TX bytes:4417182 (4.2 MiB)
#          Interrupt:11 Base address:0xe800
#
#lo        Link encap:Local Loopback
#          inet addr:127.0.0.1  Mask:255.0.0.0
#          UP LOOPBACK RUNNING  MTU:16436  Metric:1
#          RX packets:28 errors:0 dropped:0 overruns:0 frame:0
#          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
#          collisions:0 txqueuelen:0
#          RX bytes:2064 (2.0 KiB)  TX bytes:2064 (2.0 KiB)
route -n
#Kernel IP routing table
#Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
#10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
#0.0.0.0         195.1.64.126    0.0.0.0         UG    0      0        0 eth0

#Jeg forsøker å restarte sshd, siden det bare er den som er treg:
/etc/init.d/ssh restart
#Hjelper ikke, prøver en stop og start
/etc/init.d/ssh stop
/etc/init.d/ssh start
#Ingen av disse hjelper. Sjekker tcpdump
tcpdump
#tcpdump har nå sluttet å rapportere IP- og ICMP-pakker på 10.0.0.4-nettet. Den rapporterer nå kun arp-pakker og pakker som har destinasjon på internett. Dette er rart, da jeg faktisk får kontakt på
lokalnettet. tcpdump har fungert fint tidligere i testen.

 

Jeg har nå fremprovosert to problemer som jeg ikke kan forstå hvorfor er der.

 

1: Ssh er veldig treg

2: Tcpdump gir ikke ventede resultater

 

Edit:

Jeg startet opp sshd i debug-mode. Stedet den henger er mellom:

debug 1: Setting up PAM with username "root"
Could not reverse map address 10.0.0.3

Disse to linjene vises både før og etter eth0:0 er tatt ned, men sshd henger altså her bare når eth0:0 er tatt ned.

Endret av knatten
Lenke til kommentar
Videoannonse
Annonse

Tregheten du opplever er nesten helt sikkert fordi ting venter på DNS oppslag som timer ut når du kverker internett-ifacet. Loggen fra SSHD sier også så. Når du er på nett så får SSHD avslag på den IP'en tvert, mens den timer ut når du er offline. Sett opp en egen DNS-tjener så løser du problemet.

 

Angående tcpdump.. Eneste forslag er å tvinge den til å lytte på eth0 og se om det endrer noe.

Endret av tyldum
Lenke til kommentar
Hvis kernelen fungerer så er det ikke noe poeng å oppgradere.

Er det utelukket at kernelen kan ha problemer her da? Feks. "via-rhine"-driveren kan ha hatt bugs som er fikset i nyere versjoner. (Når jeg greper nyere kernel-changelogs finner jeg sannelig en del referanser til via-rhine.)

Lenke til kommentar

Jeg skal prøve en nyere kjerne, kanskje det hjelper. Men først skal jeg prøve å fremprovosere noen andre rare symptomer som er... skal vi si interessante... Jeg har litt mye å gjøre om dagen, med designskifte på hw.no (inkl. nesten helt omskrevet frontend til publiseringssystemet) og slikt, så jeg er sårbar for litt latency i denne tråden, men takk for svar, jeg følger med! :)

Lenke til kommentar

Da har jeg prøvd å fremprovosere noen av de andre symptomene, f.eks. at jeg kun opplever latency med nett A på eth0 og nett B på eth0:0, og ikke omvendt. Det klarer jeg desverre ikke å fremprovosere igjen. Men, jeg har prøvd med kjerne 2.6.10.11, og ser de samme merkelige resultatene med tcpdump. Problemene med ssh løste seg, ikke overraskende, ved å oppdatere /etc/hosts.

 

Jeg sitter nå igjen med at jeg ikke forstår tcpdump-s oppførsel. Jeg har også sett andre, og rarere, symptomer, men disse må jeg altså klare å fremprovosere før jeg har noe vettugt å fare med.

 

Takk for alle svar så langt, og hvis noen har en god idé om hva tcpdump driver med, si fra! Jeg poster her igjen hvis jeg klarer å fremprovosere feilene jeg snakket om, eller hvis det dukker opp flere interessante spørsmål/svar i tråden.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...