internet von wlan0 auf eth1 bridgen geht nicht

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Fabeltier
Beiträge: 49
Registriert: 29.08.2006 17:56:01

internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von Fabeltier » 16.10.2008 17:18:25

Hallo,
ich habe folgendes Problem: zur Installation eines Debian Lenny Systems will ich folgendes realisieren:

Netz ---- Router (DHCP) ----wlan0---- notebook ----eth1---- tower

IPs (mask 255.255.255.0):
192.168.2.1 - Router
192.168.2.100 - wlan0 an Notebook (normalerweise, da DHCP)
192.168.2.10 - eth1 an Notebook (wenn statisch, sollte aber ueber-bridged sein mit br0)
192.168.2.29 - eth0 bei Tower (wenn statisch)

Der Router arbeitet als DCHP Server, also dynamische IP vergabe, das Notebook hat ein interface wlan0 in /etc/network/interfaces konfiguriert und laeuft problemlos und wenn ich bei eth1 statische IPs vergebe funktioniert ping und Samba auch einwandfrei. Meine Idee ist nun, das Interface eth1 vom Notebook (Ethernetkarte) als bridge br0 zu konfigurieren und somit einem daran angeschlossenen Rechner, zB meinen Tower, ebenfalls Internet zu ermoeglichen. Auf dem Notebook laueft Debian Lenny / 2.6.26, auf Tower soll es so installiert werden.

Die konfiguration der Bridge sieht momentan so aus:

Code: Alles auswählen

iface br0 inet dhcp
bridge_ports eth1
...und statisch habe ich folgendes probiert:

Code: Alles auswählen

iface br0 inet static
address 192.168.2.10
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
bridge_ports eth1
Damit kann ich, wenn ich wlan0 und br0 aktiviert habe, zwar mit dem Notebook ins internet aber mit "Tower" nicht. Vergebe ich bei br0 statische IPs kann ich gegenseitig pingen, und auch die Drives von Tower ueber Samba mounten, den Router (192.168.2.1) kann ich jedoch nicht pingen von Tower aus.

Fragen:
1. Warum habe ich KEIN Internet bei Tower bzw warum kann Tower nicht auf den Router pingen (ich habe was von iptables gelesen, muss ich diese verwenden? Gibt es da keine einfache ohne-Firewall-ohne-QoS-Loesung?

Die IP's sind alle aus 192.168.2.x / 255.255.255.0:
2. Kann das ueberhaupt funktionieren oder muss ich bei Tower die Subnetmask auf 255.255.0.0 aufbrechen und ein anderes Subnet nehmen?

3. Darf ich bei Notebook ueberhaupt DHCP verwenden, aber gleichzeitig bei Tower statische IPs vergeben (bin mir da nicht mehr ganz sicher)?

4. Bei der Aktivierung von br0 mit DHCP wartet das Bridgeinterface ausserdem auf die Vergabe einer IP - is das normal, sollte die Bridge nicht ohne IP auskommen?


Danke fuer's lesen bis hier.. :hail:

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von gms » 16.10.2008 19:20:12

verzeih mir bitte wenn ich nicht auf deine Fragen direkt eingehe, eine Bridge-Lösung finde ich hier völlig übertrieben und zu unflexibel
Laß einfach beide Interfaces im gleichen Subnet und verbinde diese Netze über Proxy-Arp. Dazu mußt du nur, die folgenden Einstellungen in der /etc/sysctl.conf treffen:

Code: Alles auswählen

net.ipv4.ip_forward = 1
net.ipv4.conf.all.proxy_arp = 1
net.ipv4.conf.default.proxy_arp = 1
und nach einem "sysctl -p" sollte das auch das gewünschte Ergebnis bringen



Gruß
gms

Fabeltier
Beiträge: 49
Registriert: 29.08.2006 17:56:01

Re: internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von Fabeltier » 16.10.2008 20:27:40

Geht immer noch nich! Danke trotzdem. :(

die entsprechenden Eintraege habe ich gar nicht in der sysctl.conf, diese sieht bei mir so aus:

Code: Alles auswählen

#
# /etc/sysctl.conf - Configuration file for setting system variables
# See sysctl.conf (5) for information.
#

#kernel.domainname = example.com
#net/ipv4/icmp_echo_ignore_broadcasts=1

# Uncomment the following to stop low-level messages on console
#kernel.printk = 4 4 1 7

##############################################################3
# Functions previously found in netbase
#

# Uncomment the next line to enable Spoof protection (reverse-path filter)
#net.ipv4.conf.default.rp_filter=1

# Uncomment the next line to enable TCP/IP SYN cookies
#net.ipv4.tcp_syncookies=1

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.conf.default.forwarding=1

# Uncomment the next line to enable packet forwarding for IPv6
net.ipv6.conf.default.forwarding=1
die letzten beiden Punkte habe ich entkommentiert, da es eigentlich das ist was ich will, nur laufen tuts deshalb trotzdem nicht. In der /etc/network/interfaces hab ich also die br0 konfiguration komplett auskommentiert, gut, nun fehlt mir aber auch jegliche konfiguration fuer das Interface eth1 - ein Test, Tower an Notebook angestoepselt, bei Tower mal schnell auf http://www.google.com - nix! Dann eben eth1 mit IPs konfiguriert (oder haette ich DHCP nehmen sollen?), selber Test, auch nix. Nja, diesmal geht wenigstens ping, aber eben nur zwischen Notebook und Tower, aber nicht zu Router (s.o.).

Warum nicht gleich... *seufz*
Tja, ich quaele mich mit dieser Herkules-Aufgabe schon seit einigen Tagen. Ich habe zuerst mal in einem anderen Forum gefragt, dort wurde mir der Hinweis gegeben, dass es hier nur zwei Moeglichkeiten gibt: entweder Routing und Masquerading oder "einfach eine Bridge", dann kam leider nix mehr... Im Netz habe ich schon so einige Tutorials gefunden wie man das etwa auf Redhat machen wuerde, oder mit dem "neuen" Kernel 2.0.5 oder wie man das per brctl machen kann (ging auch nicht) oder wie Debian das "automagially" nach einem Reboot von alleine regelt, oder, oder oder...
Nja, ich halte es dennoch fuer moeglich, also prinzipiell.. so.. nur, scheint es etwas fuerchterlich geheimes zu sein und - sollte ich es irgendwann herausfinden, werde ich es schnell vergessen oder maximal noch mein Wissen an die Illuminaten verkaufen! So! :roll:

Brauch ich denn gar keine Konfiguration fuer eth1, wenn ich bei dem /etc/sysctl.conf das forwarding freischalte? Warum nicht Bridge - oder eher, warum geht die Bridge nicht, das waere doch eig das einfachste nicht??

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von gms » 16.10.2008 22:11:06

Fabeltier hat geschrieben: die entsprechenden Eintraege habe ich gar nicht in der sysctl.conf
dann könnte man sie eventuell da rein tun :wink:
Fabeltier hat geschrieben: Brauch ich denn gar keine Konfiguration fuer eth1, wenn ich bei dem /etc/sysctl.conf das forwarding freischalte?
warum hast du die Konfiguration von eth1 nicht wieder hergestellt, statisch oder über dhcp ist wurscht, nur eine gleiche IP im selbem Subnet sollte sie bekommen

Fabeltier hat geschrieben: Warum nicht Bridge - oder eher, warum geht die Bridge nicht, das waere doch eig das einfachste nicht??
die drei Zeilen in der /etc/sysctl.conf sind sehr einfach, aber eine Bridge ist auch schnell erstellt. Bei der Bridge hast du noch zusätzlich das Bridgeinterface, aber im wesentlichen steht hinter beiden die gleiche Technologie dahinter ( beide verbinden zwei physisch getrennte Netze zu einem Subnet, beide leiten daher Arp-Request und Arp-Replies auf das jeweilige andere Interface weiter ). Die Bridge ist mächgtiger, Proxy-Arp braucht weniger Resourcen und ist daher in diesem Fall sicherlich besser. Proxy-Arp hat auch den Vorteil, daß du beide Netzwerkinterfaces auf dhcp konfigurieren kannst und wenn du den Laptop auf Reisen mit nimmst, oder wieder zurück, mußt du nicht immer deine Netzkonfiguration ändern. ( Bei der Bridgelösung bleiben die beiden physischen Interfaces unkonfiguriert, hier bekommt nur das Bridgeinterface eine IP, siehe z.B hier http://www.faqs.org/docs/Linux-HOWTO/Et ... html#ss3.1 )
Wenn du auf deinem Router die Routing-Tabelle ändern könntest, dann würde ich die Routing-Lösung einschlagen, wenn es dich interessiert, dann kann ich dir dazu auch noch eine Mini-Anleitung posten

Gruß
gms

Fabeltier
Beiträge: 49
Registriert: 29.08.2006 17:56:01

Re: internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von Fabeltier » 17.10.2008 00:30:46

Hallo,

Ja, waere interessant wenn Du mehr Info dazu hast. Dieses Tutorial habe ich auch schon gelesen und mich damals schon gefragt, was denn der Unterschied ist zwischen einer Bridge die ich mit brctl erstelle (und die nicht funktioniert hat) und einer die ich per /etc/network/interfaces erstelle (und auch nicht funktioniert)?!

Ich frage mich momentan ob ich evtl beim Kernel den ARPd benoetige fuer dieses forwarding, da ich ja bei sysctl keinerlei Optionen im config file hab. Ich hab diese nun auch mal nachgetragen, klar - ging aber trotzdem nix. Mom kompiliere ich gerade einen Kernel mit ARP "extended" Support, dh, ARPd, ARP packet Filtering, eb tables, etc. mal sehn, obs daran liegt.

Mein Problem v.a. ich kann nicht auf den Router pingen vom Tower aus, in keiner Konfiguration. Ich kann zwar ein eth1 als Ethernetverbindung aufbauen, dh nur wenn ich eth Verbindungen auf 192.168.1.x belege und bei "wlan" bei 192.168.2.x bleibe, obwohl beide eine 255.255.255.0 Mask haben, dh diese das doch eigentlich relativieren sollte... kennt sich damit jemand aus? :|

Das ganze ist mir etwas esotherisch, aber ich wuerde gerne mehr darueber wissen (abgesehn, davon dass ich das Ding noch in diesem Urlaub, der damit schon halb drauf gegangen ist, auf die Beine stellen wollen wuerde). Danke fuer Deine Geduld soweit, bin immer offen fuer Links und Tutorials, die ich noch nicht gelesen habe. ;-)

Beste Gruesse
L =)

Nachtrag: hab nun den neuen Kernel versucht - keine Aenderung, am Kernel hat's nicht gelegen.. ich kann immer noch von Tower zwar auf's Notebook pingen, aber nicht auf den dahinter gelegenen Router, der am Netz haengt - das Internet ist fuer Tower komplett ausser Reichweite, ping www.google.com verendet jmmer noch :-(

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von gms » 17.10.2008 09:52:51

keine Ahnung was da bei dir schief läuft, die paar sysctl Einträge zu setzen sind normalerweise nicht so das große Ding, siehe z.B hier http://www.debianforum.de/forum/viewtop ... 8&p=627556
Fabeltier hat geschrieben: da ich ja bei sysctl keinerlei Optionen im config file hab
Im Config-File hast du sowieso immer nur ein kleines Subset, vom Debian-Maintainer wurden hier einige oftmalig verwendete Settings eingetragen und du kannst natürlich auch jederzeit zusätzliche Einstellungen treffen
Mit "sysctl -a" bekommst du eine Liste aller Einträge
Fabeltier hat geschrieben: was denn der Unterschied ist zwischen einer Bridge die ich mit brctl erstelle und einer die ich per /etc/network/interfaces erstell
wenn du beide gleich konfigurierst, ist da kein Unterschied. Die /etc/network/interfaces wird interpretiert intern werden aber die gleichen Kommandos abgesetzt

Routing Lösung:
Versuche zuerst einmal alle deine Änderungen zurückzubauen, sodaß alles funktioniert, was schon einmal funktioniert hat (Dein Hauptproblem ist wahrscheinlich, daß du nicht sorgfältig genug testest):
1) Router + Laptop-wlan0 sind in einem Subnet, Laptop-eth1 und Tower im anderen Subnet
2) Laptop verwendet Router als Default-Gateway. Tower verwendet Laptop als Default-Gateway ( bzw das entsprechende Interface als Default-Route )
3) auf dem Laptop wird Forwarding aktiviert
4) Router bekommt eine Netz-Route in das Subnet des Towers ( oder eine Host-Route mit der IP des Towers ) über die wlan0 IP des Laptops

Gruß
gms

Fabeltier
Beiträge: 49
Registriert: 29.08.2006 17:56:01

Re: internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von Fabeltier » 20.10.2008 12:28:29

Hallo,

Ich habe also versucht das WE etwas weiter daran herumzuspielen, das grobe Resultat ist, dass ich mich wohl erstmal informieren muss, was eine Bridge eigentlich genau macht. Es laeuft immer noch nicht (wirklich was).

Hauptfrage: Brauche ich fuer eine Bridge irgendwelche Tabelleneintraege, derart iptables oder aehnliches?



Mein Netzaufbau ist nun folgender:

inet / WAN (verwendet das Netz 192.168.1.0)
|
|
192.168.2.1 Router (static IP - bei DHCP kommt kein Ping an 192.168.100.120 zurueck - Trick: subnetmask 16 bit!)
|
| WLAN
|
192.168.2.100 wlan0 an Notebook (static IP)
|
| ??? automagically ???
|
192.168.100.110 eth1 an Notebook (static, gateway 192.168.2.1, IPs vom x.x.2.x Netz gehn nicht (warum??), darum wechsel auf x.x.100.x)
|
| ethernet
|
192.168.100.120 eth0 an Tower (static, mask 24, gateway 192.168.2.100)

So, zunaechst hab ich angenommen, das eine Bridge zwei komplett _unabhaengige_ Netzwerke ueber Layer 2 - also ungeroutet / ueber MACs - verbindet. Deshalb duerfte es imho auch eigentlich gar keine Konflikte, sogar mit gleichen IPs, geben, also etwa eine IP x in Netz A und dieselbe IP in Netz B. Ich dachte eine Bridge verbindet zwei solche Netze. Gut, ich musste jedoch nun feststellen, dass schon die Verwendung von IPs des gleichen Netzes, also 192.168.2.0, ueberall in meinem Aufbau zu Schwierigkeiten fuehrt (ping geht nicht mehr, ethernet Verbindung bleibt "down").
Also zwei versch. Netze, damit konnte ich von "Notebook" aus zwar alle anpingen, von "Tower" (192.168.100.120) aus gings aber nur immer bis maximal 192.168.2.100, aber vom Router kam nie mehr was zurueck. Dabei wurde auch keine "unreachable" gemeldet - Ping hing sich einfach auf. Imho schon so ein Zeichen, naja, daraufhin hab ich mir den Router naeher angesehen und habe dort einfach mal die Subnetmask aufgeweitet, von 24 bit auf 16 bit, also auf 255.255.0.0. Das half, jetzt kommt der Ping zurueck, dh ich kann alles anpingen und bekomme Antwort (DNS ging nich, irgendwas fehlt am Resolver also konnte ich mit dem Browser auf keinem der Systeme mehr ins Internet mit dieser Einstellung, hab an der /etc/resolv.conf einfach einen Eintrag nachgetragen - das half provisorisch)!

Das kann imo aber definitiv keine Dauerloesung sein! Aber es beweist mir, dass
1. alle irgendwie anscheinend im selben Netz liegen (warum geht dann nicht alles mit 192.168.2.x IPs??)
2. wahrscheinlich der Router das Netz 192.168.100.0 nicht "kennt" (warum antwortet er nicht bei anfragen dieses Netzes?)

Also wuerde ich folgendes folgern (ohne einen blassen Schimmer zu haben, wie man das macht):
-> entweder braucht der Router eine direkte Durchleitung auf 192.168.100.0 ueber 192.168.2.0
-> oder die Bridge braucht evtl noch eine Information um Messages fuer 192.168.100.0 rauszufischen und auf die andere Seite zu leiten (was fehlt also an der Bridge - ich wuerde diese Loesung eindeutig vorziehen, als mir den Router zu verstellen?).

Ach ja nochwas, ich habe festgestellt, dass ich mit entsprechend eingestellter /etc/network/interfaces allein den Aufbau nicht starten konnte, also gehe ich folgendermassen vor (auf Notebook):
# ifup wlan0
# ifconfig eth1 up
# ifup br0

Das "ifconfig eth1 up" scheint notwendig, da die Bridge br0 alleine nicht in der Lage zu sein scheint das verbundene Interface vorher mitzustarten (frag mich da schon etwas..). eth1 wird so _ohne_ Konfiguration einfach eingeschaltet.


Also, bin immer noch fuer Tipps und Links dankbar, auch wenn sich keiner damit auszukennen scheint.


@gms: die Rolle der "forward" Funktionen von Sysctl bleibt mir immer noch unklar, wie sollen sie forwarden koennen ohne Interface(s)? Wie soll ich die Interfaces starten ohne Config? Evtl mit "ifconfig eth0 up" aber wie dann Notebook und Tower verbinden ohne Config? Bzw welche Config?

Fabeltier
Beiträge: 49
Registriert: 29.08.2006 17:56:01

Re: internet von wlan0 auf eth1 bridgen geht nicht

Beitrag von Fabeltier » 24.10.2008 18:38:30

Hallo - geloest (mehr oder weniger)

..nur der Vollstaendigkeit halber, ich glaube eine Loesung gefunden zu haben: Ich habe kurzerhand beim Router (192.168.2.1) eine statische Route in das gebridgte Subnetz gelegt. Das Problem scheint gewesen zu sein, dass ein ping zB des Computers "tower" zwar bis zum Router gelangt, jedoch der Router dann keine Ahnung hat wohin er antworten soll, da das Netz des pingenden Rechners ein anderes ist (mit der verwendeten 24bit Mask). Desweiteren waren / sind bei diesem Router alle IPs desselben Netzes 192.168.2.0 schon "vergeben", weshalb ich ein anderes Netz waehlen musste, oder eben eine Fehlermeldung "IP schon vergeben" bekam.

Bei folgendem Netzaufbau (hatte die IPs nochmals geaendert)...

inet
|
|
192.168.2.1 Router (static IP )
|
| WLAN
|
192.168.2.100 wlan0 an Notebook (static IP)
|
| ??? automagically ???
|
10.1.1.10 eth1 an Notebook (static, gateway 192.168.2.1)
|
| ethernet
|
10.1.1.20 eth0 an Tower (static, mask 24, dns 192.168.2.1, gateway 10.1.1.10)

Die am Router nun eingetragene statische Route ist folgende:

Code: Alles auswählen

Netz 10.1.1.0, gateway 192.168.2.100, mask 255.255.255.0
Danke nochmal fuer die Hinweise!

Antworten