Goedenavond uw allen
Ik heb een probleem met een linux router die mensen naar verschillende gateways moet routen.
De situatie is als volgt:
De gebruikers + 1 poort van Router 1 zit in VLAN 1, de internet routers + poort 2 van Router 1 zit in VLAN 2.
Info:
Vlan 1 = 10.0.0.0/8
Vlan 2 = 172.16.0.0/24
Router 1 - poort 1 = 10.0.0.1
Router 1 - poort 2 = 172.16.0.254
De 3 andere routers hebben 172.16.0.1 - 172.16.0.2
De 3 internet routers draaien op coyote linux, lekker dicht en alleen MASQ voor 172.16.0.254 (Router 1).
Router 1 draait op Debian Linux met 2.4.14 kernel met iptables support.
vb.
Gebruiker 1 = 10.0.10.1
Gebruiker 2 = 10.0.10.2
Nu wil ik dat Gebruiker 1 via 'Router 1 Chello' wordt geroute en Gebruiker 2 via 'Router 2 Chello'.
Dat kan gedaan worden met 'iproute2'.
De uitleg van iproute2 staat op http://www.ds9a.nl/2.4Routing/HOWTO//cvs/2.4routing/2.4routing-howto.html .
Dit werkt opzich goed. Als je een traceroute doet zie je als 1e hop Router 1 (10.0.0.1) en als 2e hop Router 2 of 3
en daarna het internet op.
Nu komt het probleem.
Als er nu een beetje gesurft wordt op de 2 Gebruikers pc's, zijn er spontaan pagina's die niet werken. Dit is opzich niet zo vreemd want het gebeurt wel vaker dat een pagina plat is. Maar als je vervolgens op de andere gebruikers pc kijkt.. doet die pagina het ineens wel.
Dus als test Router 1 als default gw het zelfde gemaakt als een van de gebruikers pc's... Vervolgens een aantal sites bezocht waar van net toevallig tweakers niet werkte. Router 1 bekeken, lynx opgestart en daar de pagina in geopent.. en je raad 't al.. dat werkt wel ! Nog maar een keer refreshen op de gebruikers pc, nogsteeds down.
Erg vreemd probleem.
De zelfde test ook met een simpele ping gedaan.
Op de router ping www.tweakers.net gedaan en lekker laten lopen. Ondertussen op de gebruikers pc in een command ook een ping laten lopen en daar zijn dan ineens spontane timeouts. Terwijl er op de router nog niet eens een verhoging van 2 ms te zien is.
Aan het netwerk ligt 't niet, dat is 100% zeker.
Ook niet aan de coyote linux bakjes, want wanneer deze in vlan 1 hangen en de gebruikers pc's als default gw een van die losse bakjes neemt hebben ze ineens nergens last van.
Op Router 1 heb ik ook een tijdje met tcpdump lopen spelen.
Je ziet dan allemaal leuke 'requests' voorbij komen. Wanneer ik vervolgens weer ga pingen, en ik krijg een timeout op de gebruikers pc (en op de router niet) zie ik in tcpdump bij die request staan: <mss 1460,nop,nop,sackOK>.
Ik heb al een aantal verschillende kernels geprobeert en ook verschillende bakken en netwerkkaarten.
Ondertussen heel google al afgezocht, de manual pages van iproute2 3x gelezen en nogsteeds niets wijzer.
Weet iemand misschien wat hier 't probleem is, hoe het op te lossen is, of een andere manier om source based te routen ?
Bijvoorbaat Dank
Ik heb een probleem met een linux router die mensen naar verschillende gateways moet routen.
De situatie is als volgt:
code:
1
2
3
4
5
6
7
8
| --------------
| Switch 24p |
--------------
| | | |||---------[ Router 2 Chello ]---
[Gebruikers]----| | | ||----------[ Router 3 Chello ]---
| | |-----------[ Router 4 ADSL ]-----
| |
[Router 1] |
De gebruikers + 1 poort van Router 1 zit in VLAN 1, de internet routers + poort 2 van Router 1 zit in VLAN 2.
Info:
Vlan 1 = 10.0.0.0/8
Vlan 2 = 172.16.0.0/24
Router 1 - poort 1 = 10.0.0.1
Router 1 - poort 2 = 172.16.0.254
De 3 andere routers hebben 172.16.0.1 - 172.16.0.2
De 3 internet routers draaien op coyote linux, lekker dicht en alleen MASQ voor 172.16.0.254 (Router 1).
Router 1 draait op Debian Linux met 2.4.14 kernel met iptables support.
vb.
Gebruiker 1 = 10.0.10.1
Gebruiker 2 = 10.0.10.2
Nu wil ik dat Gebruiker 1 via 'Router 1 Chello' wordt geroute en Gebruiker 2 via 'Router 2 Chello'.
Dat kan gedaan worden met 'iproute2'.
De uitleg van iproute2 staat op http://www.ds9a.nl/2.4Routing/HOWTO//cvs/2.4routing/2.4routing-howto.html .
code:
1
2
3
4
5
6
7
8
9
| iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.0.10.1 iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.0.10.2 ip route add default via 172.16.0.1 table 1 ip route add default via 172.16.0.2 table 2 ip route add default via 172.16.0.3 table 3 ip rule add from 10.0.10.1 lookup 1 ip rule add from 10.0.10.2 lookup 2 |
Dit werkt opzich goed. Als je een traceroute doet zie je als 1e hop Router 1 (10.0.0.1) en als 2e hop Router 2 of 3
en daarna het internet op.
Nu komt het probleem.
Als er nu een beetje gesurft wordt op de 2 Gebruikers pc's, zijn er spontaan pagina's die niet werken. Dit is opzich niet zo vreemd want het gebeurt wel vaker dat een pagina plat is. Maar als je vervolgens op de andere gebruikers pc kijkt.. doet die pagina het ineens wel.
Dus als test Router 1 als default gw het zelfde gemaakt als een van de gebruikers pc's... Vervolgens een aantal sites bezocht waar van net toevallig tweakers niet werkte. Router 1 bekeken, lynx opgestart en daar de pagina in geopent.. en je raad 't al.. dat werkt wel ! Nog maar een keer refreshen op de gebruikers pc, nogsteeds down.
Erg vreemd probleem.
De zelfde test ook met een simpele ping gedaan.
Op de router ping www.tweakers.net gedaan en lekker laten lopen. Ondertussen op de gebruikers pc in een command ook een ping laten lopen en daar zijn dan ineens spontane timeouts. Terwijl er op de router nog niet eens een verhoging van 2 ms te zien is.
Aan het netwerk ligt 't niet, dat is 100% zeker.
Ook niet aan de coyote linux bakjes, want wanneer deze in vlan 1 hangen en de gebruikers pc's als default gw een van die losse bakjes neemt hebben ze ineens nergens last van.
Op Router 1 heb ik ook een tijdje met tcpdump lopen spelen.
Je ziet dan allemaal leuke 'requests' voorbij komen. Wanneer ik vervolgens weer ga pingen, en ik krijg een timeout op de gebruikers pc (en op de router niet) zie ik in tcpdump bij die request staan: <mss 1460,nop,nop,sackOK>.
Ik heb al een aantal verschillende kernels geprobeert en ook verschillende bakken en netwerkkaarten.
Ondertussen heel google al afgezocht, de manual pages van iproute2 3x gelezen en nogsteeds niets wijzer.
Weet iemand misschien wat hier 't probleem is, hoe het op te lossen is, of een andere manier om source based te routen ?
Bijvoorbaat Dank