Toon posts:

[linux] hoe routing tussen 2 subnets (netwerkkaarten) ?

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Vandaag even een wireless access node het netwerk ingeklust en heb het nu bijna helemaal werkend... bijna dus
1 nic (eth0 met 192.168.0.1) doet het traditionele netwerk met als gateway 192.168.01, aan de 2e nic hangt de access node. IP vd 2e nic is eth2 met 192.168.0.128. DHCP doet beide nics en geeft als gateway 192.168.0.1 voor de traffic naar buiten (via 3e nic & pppoe op eth1).

Alles werkt naar buiten toe vanuit de subnets, maar wanneer een host vanuit het 1e subnet naar een host in het 2e subnet wil werkt het niet. Dat resulteert (in windows) in "The network path was not found". Ik vermoed dat het een routing issue is, maar weet het fijne er niet van.

Misschien nuttig, dit is de routing table:
code:
1
2
3
4
5
6
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
3eea1401.cable. *               255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     *               255.255.255.128 U     0      0        0 eth0
192.168.0.128   *               255.255.255.128 U     0      0        0 eth2
default         3eea1401.cable. 0.0.0.0         UG    0      0        0 ppp0


Wat moet ik doen om zodat hosts in beide subnets ook elkaar kunnen benaderen?
En voor wie het nog niet door had, de server draait linux, Gentoo 2.4.19 om precies te zijn ;)
Thnx!

Verwijderd

Topicstarter
Niemand een idee :?

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 24-07 11:23

grep

meer begrep...

Ik weet er niet het fijne van, maar volgens mij is de range 192.168.x.x niet routeerbaar (net als 10.x.x.x). Misschien als je een ander ip nummer reeks probeert dat het wel werkt?
(nogmaals ik weet het niet zeker).

Verwijderd

Om te beginnen , waarom zou je verschillende subnets willen voor je wireless/LAN segment?

  • Predator
  • Registratie: Januari 2001
  • Laatst online: 15:33

Predator

Suffers from split brain

grep schreef op 10 oktober 2002 @ 18:38:
Ik weet er niet het fijne van, maar volgens mij is de range 192.168.x.x niet routeerbaar (net als 10.x.x.x). Misschien als je een ander ip nummer reeks probeert dat het wel werkt?
(nogmaals ik weet het niet zeker).

Jawel hoor, lokaal is die prima routeerbaar :)

Begin eens met:
code:
1
echo 1 > /proc/sys/net/ipv4/ip_forward

en probeer dan van een host uit subnet 1 te pingen naar een host uit subnet 2

PS: dit is wel weg na reboot, dus ofwel in opstartscript zetten ofwel
Redhat achtig:
in /etc/sysconfig/network
FORWARD_IPV4=yes
Debian:
/etc/network/options.
ip_forward=yes

Everybody lies | BFD rocks ! | PC-specs


  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
Gaat dat met die netmask wel goed op deze manier.
is het niet veel simpeler om het zo te doen:
192.168.0.x / 255.255.255.0
192.168.1.x / 255.255.255.0

Verwijderd

1de tip van Predator (echo 1 > /proc/sys/net/ipv4/ip_forward) is inderdaad onmimsbaar.

En verder, ik weet niet welke linux-versie je gebruikt maar sommige, erg oude, routing software heeft problemen met subnets die alleen uit 1-en of 0-en bestaan. Je gebruikt nu een klasse C ip-range met een subnet van 1 bit, dat dus altijd 0 of 1 is. Gebruik voor de zekerheid 192.168.1.0 en 192.168.2.0 (/24). Heb je daar iig geen last van 8)

edit:
192.168.0.0 en 192.168.1.0 mag natuurlijk ook. Ik ben gewoon allergisch voor 0-en in netwerkadressen

Verwijderd

192.168.0.128 is het netwerk adres van je 192.168.0.128/25 netwerk, dus je zult op zijn minst 192.168.0.129 moeten gebruiken of zo.

Verder moet de default gateway van je 192.168.0.128 netwerk wel binnen het subnetmasker vallen natuurlijk. dat zal dan gezien het bovenstaande 192.168.0.129 zijn bijvoorbeeld.

Beide subnetmaskers zijn toch wel 255.255.255.128 hoop ik?

  • Jorn
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:27
Verwijderd schreef op 10 oktober 2002 @ 22:30:
192.168.0.128 is het netwerk adres van je 192.168.0.128/25 netwerk, dus je zult op zijn minst 192.168.0.129 moeten gebruiken of zo.

Verder moet de default gateway van je 192.168.0.128 netwerk wel binnen het subnetmasker vallen natuurlijk. dat zal dan gezien het bovenstaande 192.168.0.129 zijn bijvoorbeeld.

Beide subnetmaskers zijn toch wel 255.255.255.128 hoop ik?
Lijkt me bullshit, ip in de 192.168.1.x range en subnet 255.255.255.0 werkt prima hoor, dit waar jij het allemaal over hebt is allemaal onnodig.

* Erkens is een sukkel en ramt in mirc op f5 :+
* XTerm GROOOOOOTE kuis houden op hd's :)


Verwijderd

j_iscool schreef op 10 oktober 2002 @ 22:32:
[...]


Lijkt me bullshit, ip in de 192.168.1.x range en subnet 255.255.255.0 werkt prima hoor, dit waar jij het allemaal over hebt is allemaal onnodig.
Topicstarter heeft twee verschillende netwerken op twee verschillende interfaces, DUS zijn dit de netwerken:

Eth0 nwadres=192.168.0.0 ipadres=192.168.0.1 sm=255.255.255.128
Eth2 nwadres=192.168.0.128 ipadres=192.168.0.129 sm=255.255.255.128

Wat ik vertel is JUIST wel nodig |:(

En dan is de default gateway voor:

Eth0 defaultgw=192.168.0.1
Eth2 defaultgw=192.168.0.129

En dan ben ik nog de heflt vergeten (is basis TCP/IP hoor :+ )

  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
Maar ik snap niet waarom je een 192.168.0 netwerk zo nodig moet opdelen in 2 subnets, je maakt het op die manier wel lastig en onoverzichtelijk.

Verwijderd

Thijs B schreef op 10 oktober 2002 @ 22:44:
Maar ik snap niet waarom je een 192.168.0 netwerk zo nodig moet opdelen in 2 subnets, je maakt het op die manier wel lastig en onoverzichtelijk.
Inderdaad, je kunt dat access point net zo goed in de hub/switch prikken die aan eth0 zit. Het je eth2 helemaal niet meer nodig.Scheelt weer een netwerk, routering weer iets simpeler.

Verwijderd

Topicstarter
Ik zal eens het 1 en ander gaan proberen. De access node direct in de hub prikken was leuk geweest, maar het is een 100Mbit hub en daar kan de 10Mbit node niet aangehangen worden. Helaas, maar daarom dus ook 2 subnets en een xtra netwerkkaart.

Uiteraard is echo 1 > /proc/sys/net/ipv4/ip_forward gedaan, want de server deed altijd al masquarading naar het internet toe voor het interne lan.

De default gateway van het 2e subnet is nu 192.168.0.1, en dat ligt inderdaad in de address range van het 1e subnet, maar het werkt wel! :?
Er kan draadloos ge-internet worden, dus komen de packets aan bij de gateway. Zou ik (om het netjes volgens de regels te doen...) dan eth2 als ip 192.168.0.129 (default gateway adres in die range) moeten geven en dat dan ook als default gateway aangeven voor dat subnet? Snapt ie dan dan alle verkeer eigenlijk door moet naar de gateway van het 1e subnet, ie. 192.168.0.1 ? En ja, beide subnetmaskers zijn .128 ;)

Verwijderd

Topicstarter
Ok, heb het iets veranderd. Eth2 is nu 192.168.0.129, dhcp geeft op dat (2e) subnet dat ip als router door en dat werkt. Er kan fijn naar de server en naar buiten toe gepingt worden vanaf de wifi laptop. Prima, maar dat werkte dus eerst eigenlijk ook al.

Wat nog niet werkt is pingen naar andere hosts in het 1e subnet. Dus zeg vanaf de wifi laptop met ip 192.168.0.131 naar een vaste host met ip 192.168.0.2 (of andersom). Hoe moet ik dat voor elkaar krijgen?

Verwijderd

Verwijderd schreef op 11 oktober 2002 @ 15:01:
Wat nog niet werkt is pingen naar andere hosts in het 1e subnet. Dus zeg vanaf de wifi laptop met ip 192.168.0.131 naar een vaste host met ip 192.168.0.2 (of andersom). Hoe moet ik dat voor elkaar krijgen?
Beiden segmenten moeten als default gateway de router-interface hebben.


Je hebt nog steeds niet verteld waarom je wifi niet in zelfde LAN kan zitten....

Verwijderd

Topicstarter
Wat bedoel je precies? Als ik eth2 een ip in de range van het eerste subnet geef, met dezelfde gateway en mask als eth0, dan krijgen ze 'ruzie'. Tenminste, 1 vd twee eist alle verkeer op, en pingen naar hosts die aan de andere interface hangen lukt dan niet.

Verwijderd

pc1(=192.168.0.2)ethernet(192.168.0.1-ROUTER-192.168.0.129)ethernet(192.168.0.130)pc2

PC1 moet DG 192.168.0.1 hebben
PC2 moet DG 192.168.0.129 hebben

Verwijderd

Topicstarter
Ok, dat heb ik nu. Maar hoe route je dat? Met andere worden, wat moet ik waar aanpassen zodat de router vanaf het 192.168.0.0 net naar het 192.168.0.128 net en omgedraaid route? Ik loop hier vast iets simpels mis, maar het werkt niet "vanzelf".

Verwijderd

met het eerder genoemde command
echo 1 > /proc/sys/net/ipv4/ip_forward
zet je routing aan.

Door six10again - Friday 11 October 2002 15:51

quote:
--------------------------------------------------------------------------------
vert schreef op 11 oktober 2002 @ 15:01:
Wat nog niet werkt is pingen naar andere hosts in het 1e subnet. Dus zeg vanaf de wifi laptop met ip 192.168.0.131 naar een vaste host met ip 192.168.0.2 (of andersom). Hoe moet ik dat voor elkaar krijgen?

--------------------------------------------------------------------------------


Beiden segmenten moeten als default gateway de router-interface hebben.


Je hebt nog steeds niet verteld waarom je wifi niet in zelfde LAN kan zitten....

  • redguy
  • Registratie: Augustus 2000
  • Niet online

redguy

Can Cow come out to to play ?

je kunt met linux ook 2 ethernet interfaces laten bridgen.. ze zitten dan dus wel in het zelfde segment..

Persoonlijk vind ik het wel een goede oplossig dat je 2 losse segmenten hebt gemaakt.. Zo kun je d.m.v. ipchains/iptables wat extra veiligheid in bouwen als je dat wil. Wireless lan blijft een security breach als je er verder niets aan doet.

Mijn persoonlijke mening blijft dat wifi gezienmoet worden als een externe link en dus d.m.v. een firewall en vpn beveiligd zou moeten worden maargoed.

check in ieder geval eens even of je dhcp server wel de juiste subnetmaskers uitgeeft naar je clients ! als je dhcp server gewoon een /24 masker uitgeeft dan gaat dit zeker niet werken.

aangezien je ook een ppp link naar buiten gebruikt voor internet ga ik er van uit dat je d.m.v. ipchains/iptables een NAT achtig iets hebt opgezet. Ik denk dat je daarin nog iets in moet stellen om de 2 interfaces toegang tot elkaar te geven.

Zet anders je ipchains/iptables rules ook eens in een post !

IP Rocks


Verwijderd

Topicstarter
Nou, het werkt volgens mij eindelijk. Bleek dus toch een simpele oplossing te zijn. In dhcp geef ik nu 2 gateways op , 192.168.0.1 EN 192.168.0.129. That's it 8)
Gevolg is dat de server niet hoeft te routen tussen de 2 subnets en dat houdt het leven simpel ;)

Verwijderd

Topicstarter
Ok, dat was dus niet de oplossing. Het helpt voor het pingen, maar M$ wilde nog steeds niet het netwerpat vinden. Uiteindelijk denk ik het nu toch echt gevonden te hebben, dus voor diegenen die ook tegen dit probleem aanlopen hier mijn oplossing:
simpelweg de interfaces waar het om gaat in promiscuous zetten, oftewel "ifconfig ethX1 promisc" en "ifconfig ethX2 promisc"
e voila! verder heb ik dus nog steeds 2 subnets

Verwijderd

Dus al het verkeer voor Eth0 zendt je ook uit op Eth2 en vice versa?

Dan zie ik dus echt niet waarom je twee subnets hebt aangemaakt. Volgens moet je een paar routeringsregels maken, that's it.

Ik schat dat je onderstaande routes moet zien aan te maken.

(hierbij heeft je internetverbinding 62.54.88.7/23 DG 62.54.88.1)


Active Routes:

Netw Destination--Netmask------------Gateway--------Interface-----Metric
0.0.0.0---------------0.0.0.0-------------- 62.54.88.1-----62.54.88.7------30
62.54.88.0----------255.255.254.0-----62.54.88.7------62.54.88.7-----30
62.54.88.7----------255.255.255.255--127.0.0.1-------127.0.0.1-------30
62.255.255.255----255.255.255.255--62.54.88.7------62.54.88.7------30
127.0.0.0------------255.0.0.0------------127.0.0.1--------127.0.0.1---------1
192.168.0.0--------255.255.255.128---192.168.0.1-----192.168.0.1----30
192.168.0.1--------255.255.255.255---127.0.0.1--------127.0.0.1--------30
192.168.0.127-----255.255.255.255---192.168.0.1----192.168.0.1------30
192.168.0.128-----255.255.255.128---192.168.0.129--192.168.0.1-----30
192.168.0.129-----255.255.255.255---127.0.0.1--------127.0.0.1---------30
192.168.0.255-----255.255.255.255---192.168.0.129--192.168.0.1-----30
224.0.0.0-----------240.0.0.0-------------62.54.88.7-------62.54.88.7-------30
224.0.0.0-----------240.0.0.0-------------192.168.0.1-----192.168.0.1------30
255.255.255.255--255.255.255.255---62.54.88.7-------62.54.88.7--------1
255.255.255.255--255.255.255.255---192.168.0.1-----192.168.0.1-------1

Wie help met uitleggen, want ik weet wel iets van routeren, maar niet hoe je dat in Linux voor elkaar moet krijgen...

Verwijderd

Topicstarter
Ok, het werkte dus, en nu niet meer :( Heb werkelijk waar geen idee waarom het nu niet meer werkt, maar gelukkig was er nog een reply gekomen met enige route informatie :) Thnx Max_Kool! Ik heb het bovenstaande verwerkt in een bash scriptje (ben geen linux guru, maar weet er gelukkig wel iets van). Wat ik alleen niet snap is dat er geen enkele keer naar eth2 device geroute wordt... klopt dat?? En wanneer mogelijk, kan je iets van uitleg kunnen geven? Met name de 224.0.0.0 regels en een toelichting op 'metric' zou ik zeer fijn vinden :P Dit is het scriptje, vrij simpel lijkt me.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash

## lo   : 127.0.01      (local loop)
## eth0 : 192.168.0.1   (vaste subnet)
## eth2 : 192.168.0.129 (wireless subnet)
## ppp0 : casema        (internet via eth1)    

PPP=ppp0
DYNIP=62.234.26.6
DYNIP-GW=62.234.26.1
DYNIP-NET=62.234.26.0
DYNIP-ALL=62.255.255.255


## Current IP table ##
# Kernel IP routing table
# Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
# 3eea1a01.cable. *               255.255.255.255 UH    0      0        0 ppp0
# 192.168.0.0     *               255.255.255.128 U     0      0        0 eth0
# 192.168.0.128   *               255.255.255.128 U     0      0        0 eth2
# default         3eea1a01.cable. 0.0.0.0         UG    0      0        0 ppp0


## oude routes verwijderen ##

route del -net $DYNIP-GW     netmask 255.255.255.255 dev $PPP
route del -net 192.168.0.0   netmask 255.255.255.128 dev eth0
route del -net 192.168.0.128 netmask 255.255.255.128 dev eth2
route del default gw $DYNIP-GW


## Nieuwe routes definieren ##

route add -net 0.0.0.0         netmask 0.0.0.0         gw $DYNIP-GW     dev $PPP metric 30
route add -net $DYNIP-NET      netmask 255.255.254.0   gw $DYNIP        dev $PPP metric 30
route add -net $DYNIP          netmask 255.255.255.255 gw 127.0.0.1     dev lo   metric 30
route add -net $DYNIP-ALL      netmask 255.255.255.255 gw $DYNIP        dev $PPP metric 30
route add -net 127.0.0.1       netmask 255.0.0.0       gw 127.0.0.1     dev lo   metric 1

route add -net 192.168.0.0     netmask 255.255.255.128 gw 192.168.0.1   dev eth0 metric 30
route add -net 192.168.0.1     netmask 255.255.255.255 gw 127.0.0.1     dev lo   metric 30
route add -net 192.168.0.127   netmask 255.255.255.255 gw 192.168.0.1   dev eth0 metric 30
route add -net 192.168.0.128   netmask 255.255.255.128 gw 192.168.0.129 dev eth0 metric 30
route add -net 192.168.0.129   netmask 255.255.255.255 gw 127.0.0.1     dev lo   metric 30
route add -net 192.168.0.255   netmask 255.255.255.255 gw 192.168.0.129 dev eth0 metric 30

route add -net 224.0.0.0       netmask 240.0.0.0       gw $DYNIP        dev $PPP metric 30
route add -net 224.0.0.0       netmask 240.0.0.0       gw 192.168.0.1   dev eth0 metric 30

route add -net 255.255.255.255 netmask 255.255.255.255 gw $DYNIP        dev $PPP metric 1
route add -net 255.255.255.255 netmask 255.255.255.255 gw 192.168.0.1   dev eth0 metric 1

Verwijderd

Die 224 routes kun je weglaten, da's bedoeld voor multicasts.

Effe Googlelen:
Are you talking about the fact that 224.0.0.0 shows up in the routing
table?


I think this is just a default entry that's put in to keep unicast packets
that happen to be misaddressed to class D or higher addresses from being
sent to the default gateway.
Hoeft trouwens als ik het zo zie ook alleen maar maar 1 van je lokale ip-adressen te wijzen, meerdere entries zou weleens helemaal niet goed kunnen zijn... Wat metric is weet ik eigenlijk niet O-) heb het gewoon overgetiept.

Verwijderd

Topicstarter
thnx, zal zelf eens zoeken naar dat metric verhaald dan, was net een beetje lui ;)
Maar nog suggesties over het feit dat eth2 nergens meer voorkomt? Nu ik er nog eens naar kijk, moet dan in dit stukje code eth0 niet eth2 worden?? Denk dat ik dat maar eens ga proberen.
code:
1
2
3
route add -net 192.168.0.128   netmask 255.255.255.128 gw 192.168.0.129 dev eth0 metric 30
route add -net 192.168.0.129   netmask 255.255.255.255 gw 127.0.0.1     dev lo   metric 30
route add -net 192.168.0.255   netmask 255.255.255.255 gw 192.168.0.129 dev eth0 metric 30

Verwijderd

Topicstarter
FF gegoogled, en dit gevonden over metric:

-----------------
The metric option specifies a metric value for this route. Metric values are used when there is more than one route to a specific location, and the system must make a decision about which to use. Routes with lower metric values are preferred. In this case, we set the metric value for our default route to 1, which forces that route to be preferred over all others.

How could there possibly be more than one route to a particular location? First of all, you may use multiple route commands in rc.inet1 for a particular destination--if you have more than one gateway to a particular network, for example. However, your routing tables may dynamically acquire additional entries in them if you run routed (discussed further below). If you run routed, other systems may broadcast routing information to machines on the network, causing extra routing table entries to be created on your machine. By setting the metric value for your default route to 1, you ensure that any new routing table entries will not supersede the preference of your default gateway.
------------------

Dus ik denk dat er wel meer van de metrics op 1 gezet kunnen worden...

Verwijderd

Topicstarter
Nou, het werkte dus niet :(
In ieder geval klopt het netmask niet in deze regel (volgens route dan)

route add -net 127.0.0.1 netmask 255.0.0.0 gw 127.0.0.1 dev lo metric 1

en verder konden de clients het internet niet meer op en zeurde windows nog steeds over netwerkpaden die niet gevonden konden worden. Kijk er morgen wel weer naar, ben nu moe en ga slapen :z
Pagina: 1