multid macht DNS- und DHCP-Server. Und eigentlich sollte sichergestellt sein, dass der dnsmasq immer den Port vor dem multid belegt.
Ich glaube auch nicht, dass dnsmasq beim Booten der FB wegen belegten Ports nicht richtig tut, denn dann würde das Problem ja nicht verschwinden, wenn man dnsmasq nochmal von Hand neu startet.
Der wesentliche Grund, weswegen ich ein Reihenfolgeproblem bzgl. dnsmasq und dsld in Verdacht habe:
- Wenn man man dsld beim Build mit make menuconfig ganz rauskonfiguriert (ich brauche kein DSL, da ich die FB nur als Ethernet-Router betreibe) geht kein Routing mehr. dsld scheint also für's Routing nötig zu sein.
- Wenn man nach dem Booten "ps" auf der FB eingibt, erscheint dnsmasq _vor_ dsld. Meine Theorie ist, dass er dann traurig ist, weil das Routing noch nicht geht.
- In jedem Fall hat es mich gewundert, dass route -n auf der FB weder mit noch ohne dsld (und unabhängig davon, ob man dnsmasq benutzt oder nicht) eine Default-Route zu dem Router anzeigt, der den (DSL)-Zugang ins Internet bereitstellt. Mit meiner Konfiguration (FB 7170 als DSL-Router mit der IP 192.168.178.1 und FB 7270 als Ethernet-Router mit der IP 192.168.178.3 zum DSL Router und 192.168.0.1 zum LAN) habe ich auf meinem Client PC wie zu erwarten:
Code:
christof@scooter:~$ route -n
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
auf der FB 7270 aber nur:
Code:
/var/mod/root # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.180.1 0.0.0.0 255.255.255.255 UH 2 0 0 dsl
192.168.180.2 0.0.0.0 255.255.255.255 UH 2 0 0 dsl
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 lan
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 lan
0.0.0.0 0.0.0.0 0.0.0.0 U 2 0 0 dsl
Hier fehlt mir eine Zeile in der Art:
Code:
0.0.0.0 192.168.178.1 0.0.0.0 UG 0 0 0 ???
wobei ich nicht weiß, welches Interface da stehen müsste, denn bei einem ifconfig auf der FB gibt es keins mit der IP 192.168.178.3:
Code:
/var/mod/root # ifconfig
ath0 Link encap:Ethernet HWaddr 00:1C:4A:4E:E4:B8
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:2290 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:95 errors:0 dropped:2 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:20472 (19.9 KiB)
cpmac0 Link encap:Ethernet HWaddr 00:1C:4A:68:25:BD
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1464 errors:0 dropped:0 overruns:0 frame:0
TX packets:1270 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:256
RX bytes:716079 (699.2 KiB) TX bytes:699300 (682.9 KiB)
dsl Link encap:Point-to-Point Protocol
inet addr:169.254.2.1 P-t-P:169.254.2.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:363 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:7948 (7.7 KiB) TX bytes:35807 (34.9 KiB)
eth0 Link encap:Ethernet HWaddr 00:1C:4A:68:25:BD
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:701 errors:0 dropped:0 overruns:0 frame:0
TX packets:363 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:75681 (73.9 KiB) TX bytes:56752 (55.4 KiB)
lan Link encap:Ethernet HWaddr 00:1C:4A:68:25:BD
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:698 errors:0 dropped:0 overruns:0 frame:0
TX packets:365 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:62847 (61.3 KiB) TX bytes:56864 (55.5 KiB)
lan:0 Link encap:Ethernet HWaddr 00:1C:4A:68:25:BD
inet addr:169.254.1.1 Bcast:169.254.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:289 errors:0 dropped:0 overruns:0 frame:0
TX packets:289 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:37076 (36.2 KiB) TX bytes:37076 (36.2 KiB)
wan Link encap:Ethernet HWaddr 00:1C:4A:68:25:BD
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:763 errors:0 dropped:0 overruns:0 frame:0
TX packets:473 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:640398 (625.3 KiB) TX bytes:50177 (49.0 KiB)
wifi0 Link encap:Ethernet HWaddr 00:1C:4A:4E:E4:B8
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:151 errors:0 dropped:0 overruns:0 frame:9
TX packets:121 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26423 (25.8 KiB) TX bytes:25957 (25.3 KiB)
Interrupt:80 Memory:c0320000-c0330000
Egal, Punkt 3 verstehe ich zwar nicht und es ist auch schade, dass man dsld nicht rausschmeißen kann, um Speicherplatz zu sparen. Aber das Routing geht ja immerhin, solange dsld läuft.
Es bleibt also die Kernfrage, warum der DNS Lookup nach innen (ins 192.168.0.0-Netz) erst geht, wenn dnsmasq neu gestartet wird. Um hier weiter zu debuggen, würde ich dnsmasq testweise gerne erst später (nach dsld) starten. Aber leider finde ich nicht, wo dnsmasq gestartet wird: Über /etc/inittab wird /etc/init.d/rc.S und von da /etc/init.d/rc.net
aufgerufen. Und in /etc/init.d/rc.net finde ich die Zeilen:
Code:
igddstart
multidstart
if [ "$CONFIG_DSL" ] ; then
if [ "`pidof dsld`" = "" ] ; then
if [ "$CONFIG_RAMSIZE" = 8 ] ; then
dsld -i -n $NICEPARAM -r 600 $VERBOSEPARAM $DSLDDPARAM
else
dsld -i -n $NICEPARAM $VERBOSEPARAM $DSLDDPARAM
fi
fi
fi
}
aber ein "ps" ergibt (Ausschnitt):
Code:
/etc/init.d # ps
...
604 root 3828 S usermand
609 root 4960 S igdd
638 root 860 S dnsmasq -S 192.168.178.1 -p 53 -E -s fritz.box
641 root 3996 S multid
657 root 4984 S dsld -i -n
...
Irgendjemand startet also offensichtlich dnsmasq zwischen dem Aufruf von iggdstart und multidstart, aber hier komme ich einfach nicht weiter: Ich finde einfach nicht, wo.
Sorry für das lange Posting und vielen Dank schonmal für jede Hilfe,
Christof