[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: brctrl: nf_hook: hook 0 already set



Gruesse!
* Michael Renner <michael.renner@gmx.de> schrieb am [15.04.07 12:56]:
> On Friday 13 April 2007 18:33, Gerhard Brauer wrote:
> > Gruesse!
> >
> > * Michael Renner <michael.renner@gmx.de> schrieb am [13.04.07 15:10]:
> > > Ich hab' auf einem anderen Rechner etwas vergleichbares mit usb0 laufen,
> > > ohne Probleme. Die 30 Sekunden waren schon lange vorbei. Es geht so los:
> > > cassiopeia:~# ifconfig eth0 up
> > > br0: port 1(eth0) entering learning state
> > > cassiopeia:~# br0: port 1(eth0) entering forwarding state
> > > br0: topology change detected, propagating
> > > nf_hook: hook 0 already set.
> > > skb: pf=2 (unowned) dev=br0 len=56
> > > PROTO=17 192.168.5.95:1126 192.168.5.53:53 L=56 S=0x00 I=56468 F=0x0000
> > > T=64 nf_hook: hook 0 already set.
> > > skb: pf=2 (unowned) dev=br0 len=84
> > > PROTO=1 192.168.5.92:0 192.168.5.53:0 L=84 S=0x00 I=591 F=0x4000 T=64
> > > nf_hook: hook 0 already set.
> > > skb: pf=0 (unowned) dev=br0 len=46
> > > nf_hook: hook 0 already set.
> > > skb: pf=0 (unowned) dev=br0 len=46
> > > nf_hook: hook 0 already set.
> > > skb: pf=2 (unowned) dev=br0 len=66
> > > PROTO=6 72.51.38.140:8118 192.168.5.53:34867 L=66 S=0x00 I=21080 F=0x4000
> > > T=109
> > > nf_hook: hook 0 already set.
> > >
> > > Der .53 ist der Rechner auf dem die Bridge laufen soll (cassiopeia), die
> > > anderen sind andere Rechner im Netz.
> >
> > Eigentlich ist dein Vorgehen AFAIK richtig. Zu diesen Meldungen:
> > ist das ein selbstgebauter Kernel?
> 
> Ja, ein guter Hinweis, Danke! Daher also der Müll auf der Console. Jetzt sieht 
> es schon ruhiger aus. Es funktioniert einfach nicht, die Console ist aber 
> lesbar.
> 
> > Laut http://tldp.org/HOWTO/Ethernet-Bridge-netfilter-HOWTO-2.html kommen
> > diese Meldungen nur, wenn CONFIG_NETFILTER_DEBUG gesetzt ist, was in den
> > Debian-Standard-Kerneln nicht der Fall ist.
> > Wenn da netfilter-seitig auf dem Rechner gefiltert wird, evtl. das Modul
> > für gebridgtes Netfilter vergessen/nicht geladen? Kannst du netfilter
> > (wenn es denn überhaupt) läuft zum Test abschlaten?
> 
> Ne, das läuft nicht.
> 
> > Hast du ip_forward eingeschaltet?
> 
> cassiopeia:~# cat /proc/sys/net/ipv4/ip_forward
> 0
> 
> > Hast du die Route(n) auf das Device br0 gesetzt?
> 
> Hhm, guter Punkt. Da es schon im internen Netz nicht funktionierte hab ich die 
> Route nach draussen gar nicht gesetzt. Nach einigem Spielen bin ich nun 
> soweit:
> br0 bekommt eine IP im selben Subnet 192.168.5.210 (eigentlich nicht geplant)

Warum/woher kommt dann die IP? Für das Bridge-Interface soll das doch
sicher ne feste IP sein (die von cassiopeia).

> eth0 bekommt eine Adresse in einem anderen Class-C-Netz (192.168.8.53). Damit 
> ergibt sich folgendes Bild:
> cassiopeia:~# route -n
> Kernel IP routing table
> Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
> 192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
> 192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
> 0.0.0.0         192.168.5.1     0.0.0.0         UG    0      0        0 br0
> 
> Damit lässt sich nach draussen pingen. Und von anderen Rechnern im Netz 
> 192.168.5.0/24 komme ich auf cassiopeia (jetzt mit der IP 192.168.8.53) eine 
> Verbindunge, vorausgesetzt, das Routing wird verbogen:
> lyra:~# route  add -net 192.168.8.0 netmask 255.255.255.0 gw 192.168.5.92
> 
> Sobald der Server aber seine ursprüngliche IP bekommt (192.168.5.53) ist's 
> wieder aus. Gleiches, wenn br0 in das Netz 192.168.8.0/24 kommt.

Da läuft einiges schief ;-) Zum einen: die bridge barucht eine IP aus
deinem lokalen Subnet. Zweitens: wenn du eth0 in die bridge packst, dann
"gibt" es eth0 nicht mehr, brauchst keine IP, kein Paket darf/soll
direkt über eth0 (bzw. auch die tapX) gehen. Das verwaltet alles die
Bridge.

Dein Vorgehen sollte sein (auf cassiopeia):
ifconfig eth0 down
brctl addbr br0
ifconfig eth0 0.0.0.0 up
ifconfig tap0 0.0.0.0 up
  (das würde ich zum test erstmal rauslassen, ich weiß auch nicht zu
  welchem Zeitpunkt bei qemu du die virt. devives in die bridge bringst)
ifconfig br0 192.168.5.53 netmask 255.255.255.0 up
brctl addif br0 eth0
brctl addif br0 tap0 
route add default gw IP_deines_Routers/Gateways

Das sollte es gewesen sein. Als Routen auf dem Host sollten lediglich
die Netz-Route für 192.168.5.0 über br0 und die default-Route via
IP_deines_Routers auch über br0 vorhanden sein.

Wenn du dich erstmal nur auf eth0 in der Bridge beschränkst, sollte
cassiopeia alle deine Rechner im Subnet 192.168.5.0/24 erreichen und via
Gateway auch rechner außerhalb. Rechner aus dem Subnet sollten
cassiopeia über die 192.168.5.53 erreichen (ohne das extra Routing
notwendig wäre.)

Gruß
	Gerhard
-- 
Puenktlich zur Diskussion um den Bundes-Trojaner
erscheint auch das passende Betriebssystem dazu.



Reply to: