Routing

tella

Active Member
Hallo,

mein Freebsd-Rechner (Version 6.1) routet nicht.

folgendes Netz möchte ich aufbauen

inet --- 192.168.1.1 <----> [192.168.1.2 / 192.168.2.1] <----> 192.168.2.3

192.168.1.1 ist ein WLAN/Router der mit dem Inet verbunden ist.
192.168.1.2 / 192.168.2.1 ist ein Freebsd-Rechner mit 2 Netzwerkkarten.

192.168.2.3 ist ein Rechner mit dem ich Zugriff auf Netz 192.168.1.0 und das Inet haben will.

Auf dem FreeBSD Rechner ist folgendes gesetzt:

gateway_enable="YES"

von 192.168.2.3 kann ich die Adressen 192.168.1.2 und 192.168.2.1 anpingen. Allerdings nicht 192.168.1.1 (und auch weitere Rechner im Netz 192.168.1.0 nicht)

Hier die Ausgabe von ipconfig auf dem FreeBSD-Router:

ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::214:6cff:fe2c:88db%ath0 prefixlen 64 scopeid 0x1
inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:14:6c:2c:88:db
media: IEEE 802.11 Wireless Ethernet autoselect (DS/36Mbps)
status: associated
ssid ******* channel 1 bssid 00:********
authmode OPEN privacy ON deftxkey 1 wepkey 1:104-bit txpowmax 37
protmode CTS burst roaming MANUAL bintval 200
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=9<RXCSUM,VLAN_MTU>
inet6 fe80::250:4ff:fe00:489d%xl0 prefixlen 64 scopeid 0x2
inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
ether 00:50:04:00:48:9d
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet 127.0.0.1 netmask 0xff000000

Hier noch die Ausgabe von netstat -rn:

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGS 0 0 ath0
127.0.0.1 127.0.0.1 UH 0 0 lo0
192.168.1 link#1 UC 0 0 ath0
192.168.1.1 link#1 UHLW 2 0 ath0
192.168.1.2 00:14:6c:2c:88:db UHLW 1 92 lo0
192.168.2 link#2 UC 0 0 xl0
192.168.2.3 00:00:f0:92:91:d6 UHLW 1 39 xl0 1192

192.168.2.3 ist ein Windows-Rechner. Dieser hat eine Defaultroute nach 192.168.2.1:

Netzwerkziel Netzwerkmaske Gateway Schnittstelle Anzahl
0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.3 20

Auf dem FreeBSD-Rechner läuft ipfw mit folgenden Einstellungen:

00100 208 12560 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65000 285 33252 allow ip from any to any
65535 3 208 deny ip from any to any

Irgendwie stehe ich gerade auf dem Schlauch. Das sollte doch mehr oder weniger "out of the box" funktionieren. Oder?

Viele Grüße
Michael
 
sysctl net.inet.ip.forwarding steht auf 1

stimmt deine routing tabelle?

ich hoffe ja (siehe oben). Hier noch die vom Windows-Rechner.

Netzwerkziel Netzwerkmaske Gateway Schnittstelle Anzahl
0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.3 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.2.0 255.255.255.0 192.168.2.3 192.168.2.3 20
192.168.2.3 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.2.255 255.255.255.255 192.168.2.3 192.168.2.3 20
224.0.0.0 240.0.0.0 192.168.2.3 192.168.2.3 20
255.255.255.255 255.255.255.255 192.168.2.3 192.168.2.3 1
255.255.255.255 255.255.255.255 192.168.2.3 2 1
Standardgateway: 192.168.2.1
 
habe fast das gleiche Problem unter OpenBSD:
inet --- FritzBox [192.168.1.100] <----> OpenBSD [192.168.1.99 (xl0)/ 192.168.1.1 (ep1)] <----> Clienten [192.168.1.4 bis 192.168.1.29]

forwarding
Code:
$ sysctl -a |grep forwa                                                                             
net.inet.ip.forwarding=1
ist aktiviert.
Firewall ist nicht aktiv.
Er hats nicht weitergeleitet.
Nun hab ich eine Bridge eingerichtet:
Code:
brconfig bridge0 up
add xl0
add ep1
und er leitete weiter.
Aber ob das so 'korrekt' ist weiss ich nicht. ;)
Ich weiss auch nicht wo ich die default-route auf den Clienten hinzeigen lassen soll, auf die *.1/*.99 oder auf *.100?
Auf der Openbsd-Kiste auf 192.168.1.100 ist klar.

Vlt. kann uns mal ein Experte aufklären.
 
seven0fx: deine defaultroute am client sollte auf 192.168.1.1 stehen, immer auf eine nic im gleichen subnetz, da du aber für alle interfaces das gleiche subnetz vergeben hast, nimm die ip der nic die mit deinen clients verbunden ist, also 1.1

tella: hmm ich hatte hier nur müll stehn, falls dus gelesen hast vergiss es wieder :D
 
Zuletzt bearbeitet:
seven0fx schrieb:
habe fast das gleiche Problem unter OpenBSD:
inet --- FritzBox [192.168.1.100] <----> OpenBSD [192.168.1.99 (xl0)/ 192.168.1.1 (ep1)] <----> Clienten [192.168.1.4 bis 192.168.1.29]

Und was für Subnetmasken hast du da eingestellt?

marty
 
@tella: Hast du auf dem WLAN Router auch eine Route für das Netz 192.168.2.0 eingetragen? Weil sonst weis der nämlich nicht, wie er die Antwort von zum Beispiel einen ping zurück schicken soll.

marty
 
marty schrieb:
@tella: Hast du auf dem WLAN Router auch eine Route für das Netz 192.168.2.0 eingetragen? Weil sonst weis der nämlich nicht, wie er die Antwort von zum Beispiel einen ping zurück schicken soll.

marty

danke das wars.
 
@seven0fx: wenn du ein Netz aufteilst und trotzdem die "große" Subnetmaske behältst, baust du dir nur Probleme. Teile das Netz entsprechend, Stichwort Subneting. Ansonsten auch der gleiche Tipp wie bei tella: sobald da noch eine Kiste dazwischen ist, mußt du die Route zurück auf der Fritzbox bekannt machen.

marty
 
Eine Frage zur Lösung des ursprünglichen Problems:

Weshalb macht der FreeBSD router das .2.1er Netz dem WLAN router nicht bekannt? Oder ist die FreeBSD Maschine kein vollwertiger router?

Ich dachte bisher, dass die router untereinander ihre routes austauschen bzw. sich gegenseitig 'fragen', wenn sie eine route nicht kennen.

Ciao, Tobias

::EDIT::

Okay, ich hätte mir den Link zum FreeBSD Handbuch mal vorher anschauen sollen. Da steht

"hr neuer Router benötigt nun noch Routen, um zu wissen, wohin er den Verkehr senden soll. Haben Sie ein (sehr) einfaches Netzwerk, können Sie statische Routen verwenden. FreeBSD verfügt über den Standard BSD-Routing-Daemon routed(8), der RIP (sowohl Version 1 als auch Version 2) und IRDP versteht. BGP v4, OSPF v2 und andere Protokolle werden von net/zebra unterstützt.".

Für den Austausch der Daten benötigt man dann wohl noch den entsprechenden daemon, oder? Sorry für die Frage, Lesen bildet.
 
Zuletzt bearbeitet:
TobiasM schrieb:
Eine Frage zur Lösung des ursprünglichen Problems:

Weshalb macht der FreeBSD router das .2.1er Netz dem WLAN router nicht bekannt? Oder ist die FreeBSD Maschine kein vollwertiger router?

Ich dachte bisher, dass die router untereinander ihre routes austauschen bzw. sich gegenseitig 'fragen', wenn sie eine route nicht kennen.

Ciao, Tobias
Von hause macht FreeBSD das nicht. Da musst du schon den routed bemühen.

Gruß c.
 
Für's Archiv:

1) der Border-Router muß _alle_ internen Netze kennen (also Routen setzen)
2) möglicherweise hilft routed (/etc/rc.conf: router_enable="YES")
3) hat man keine Chance, dem Border-Router eine Route zu verpassen, kann man:
3.1) die Netzmaske weiter öffnen (z.B. 192.168.1.0/20 bzw. 255.255.240.0)
3.2) notfalls auf dem "Middle-Router" (bsd-Maschine) NAT aktivieren

Das ist alles 1x1 des IP-Networking / Routing (RTFM).

Dieser Thread zeigt mir mal wieder (alte Erfahrung), daß viele IP-Netze aufziehen, aber sich mit dem Thema einfach nicht beschäftigen.

Im angeführten Beispiel hätte man übrigens auch bridgen können (idealerweise natürlich eine filtering-bridge).
 
Zurück
Oben