Hallo,
mit den Versionen 29.04.57-freetz-1.0 und 29.04.59-freetz-devel-2473 beobachte ich eine falsche Zuordnung der IP-Adressen, sobald in der ar7.cfg ein Interface mit der Bezeichnung eth1 existiert.
Hier die Details:
Ich hatte das Szenario früher schon erfolgreich mit 29.04.29-ds-14.4 realisiert und wollte das ganze nun auf den aktuellen Stand von Freetz bringen. Hierzu habe ich die üblichen Schritte unternommen:
1. Unter System, Netzwerkeinstellungen Alle Computer befinden sich im selben IP-Netzwerk deaktivieren.
2. In der debug.cfg einen Eintrag cpmaccfg ssm split hinzufügen, der die Ports des Switch in getrennte Interfaces eth0, eth1, eth2 und eth3 aufteilt.
3. In der ar7.cfg die zusätzlichen IP-Einstellungen für die neuen Interfaces eth1, eth2 und eth3 hinzufügen, um den Interfaces die folgenden Adressen zuzuordnen:
eth0 10.240.68.1
eth1 10.240.69.1
eth2 10.240.72.1
eth3 10.240.73.1
Grundsätzlich hat das auch mit 29.04.57-freetz-1.0 funktioniert. Beim Aufruf von ifconfig -a staunte ich aber nicht schlecht, da die IP-Adressen entgegen der Angaben in ar7.cfg wie folgt zugeordnet waren 
eth0 10.240.69.1 (war für eth1 vorgesehen!)
eth1 (keine)
eth2 10.240.72.1
eth3 10.240.73.1
- Ich probierte dann in der ar7.cfg die IP-Einstellungen für die einzelnen Interfaces wegzulassen und stellte fest, dass die fehlerhafte Zuordnung nur dann auftritt, wenn ar7.cfg Einstellungen für eth1 enthält.
- Wenn man den Block für eth1 wegläßt, erhält eth0 die korrekte Adresse.
- Die Interfaces eth2 und eth3 erhalten stets die richtigen Einstellungen.
- In der ar7.cfg fiel mir ein Interface eth0:0 auf und ich habe es probehalber entfernt, aber ohne Erfolg.
- Auch die brinterfaces in der ar7.cfg habe ich probehalber entfernt. Ohne Erfolg.
- Auch ein Versuch mit einem Image 29.04.59-freetz-devel-2473, in dem ein Kernel-Patch für die dauerhafte Umschaltung des CPMAC_MODE_NORMAL in den geteilten Mode eingebaut war, zeigte das gleiche Verhalten.
- In dem Energiefunktionen sind alle Ports auf immer aktiv eingestellt.
Hier die Konfigurationen und Resultate:
Die ar7.cfg mit Einstellungen für eth1...
Code:
/*
* /var/flash/ar7.cfg
* Thu Aug 28 17:41:13 2008
*/
ar7cfg {
mode = dsldmode_router;
tsdisabled = no;
igddenabled = yes;
igdd_control_enabled = no;
wan_bridge_with_dhcpc = yes;
wan_bridge_gateway = 0.0.0.0;
dhcpc_use_static_dns = no;
ethmode = ethmode_router;
tcom_targetarch = no;
StatisticStartOfMonth = 1;
macdsl_override = 00:00:00:00:00:00;
ethinterfaces {
name = "eth0";
dhcp = no;
ipaddr = 10.240.68.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = no;
dhcpstart = 10.240.68.20;
dhcpend = 10.240.68.200;
} {
name = "eth0:0";
dhcp = no;
ipaddr = 169.254.1.1;
netmask = 255.255.0.0;
dstipaddr = 0.0.0.0;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
} {
name = "eth1";
dhcp = no;
ipaddr = 10.240.69.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = no;
dhcpstart = 10.240.69.20;
dhcpend = 10.240.69.200;
} {
name = "eth2";
dhcp = no;
ipaddr = 10.240.72.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = no;
dhcpstart = 10.240.72.20;
dhcpend = 10.240.72.200;
} {
name = "eth3";
dhcp = no;
ipaddr = 10.240.73.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = no;
dhcpstart = 10.240.73.20;
dhcpend = 10.240.73.200;
} {
name = "usbrndis";
dhcp = no;
ipaddr = 192.168.179.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
} {
name = "wlan";
dhcp = no;
ipaddr = 10.240.71.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
interfaces = "tiwlan0", "wdsup0", "wdsdw0", "wdsdw1",
"wdsdw2", "wdsdw3";
dhcpenabled = yes;
dhcpstart = 10.240.71.20;
dhcpend = 10.240.71.200;
}
brinterfaces {
name = "lan";
dhcp = no;
ipaddr = 10.240.68.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
interfaces = "eth0", "usbrndis", "tiwlan0", "wdsup0",
"wdsdw0", "wdsdw1", "wdsdw2", "wdsdw3";
dhcpenabled = no;
dhcpstart = 10.240.68.20;
dhcpend = 10.240.68.200;
} {
name = "lan:0";
dhcp = no;
ipaddr = 169.254.1.1;
netmask = 255.255.0.0;
dstipaddr = 0.0.0.0;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
}
dslinterface {
name = "dsl";
dhcp = no;
ipaddr = 169.254.2.1;
netmask = 255.255.255.255;
dstipaddr = 169.254.2.1;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
}
...bringt die fehlerhafter Zuordnung:
Code:
/var/mod/root # ifconfig -a
cpmac0 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:226 errors:1 dropped:0 overruns:0 frame:0
TX packets:316 errors:1 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:256
RX bytes:26184 (25.5 KiB) TX bytes:46879 (45.7 KiB)
eth0 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.69.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:209 errors:0 dropped:0 overruns:0 frame:0
TX packets:316 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:24564 (23.9 KiB) TX bytes:46879 (45.7 KiB)
eth1 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth2 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.72.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth3 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.73.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
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:248 errors:0 dropped:0 overruns:0 frame:0
TX packets:248 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:32693 (31.9 KiB) TX bytes:32693 (31.9 KiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.240.70.1 P-t-P:10.240.70.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:84 (84.0 B)
wlan Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.71.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:11383 (11.1 KiB)
/var/mod/root #
Wenn ich nun die IP-Einstellungen für eth1 aus der ar7.cfg entferne...
Code:
ar7cfg {
mode = dsldmode_router;
tsdisabled = no;
igddenabled = yes;
igdd_control_enabled = no;
wan_bridge_with_dhcpc = yes;
wan_bridge_gateway = 0.0.0.0;
dhcpc_use_static_dns = no;
ethmode = ethmode_router;
tcom_targetarch = no;
StatisticStartOfMonth = 1;
macdsl_override = 00:00:00:00:00:00;
ethinterfaces {
name = "eth0";
dhcp = no;
ipaddr = 10.240.68.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = no;
dhcpstart = 10.240.68.20;
dhcpend = 10.240.68.200;
} {
name = "eth0:0";
dhcp = no;
ipaddr = 169.254.1.1;
netmask = 255.255.0.0;
dstipaddr = 0.0.0.0;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
} {
name = "eth2";
dhcp = no;
ipaddr = 10.240.72.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = no;
dhcpstart = 10.240.72.20;
dhcpend = 10.240.72.200;
} {
name = "eth3";
dhcp = no;
ipaddr = 10.240.73.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = no;
dhcpstart = 10.240.73.20;
dhcpend = 10.240.73.200;
} {
name = "usbrndis";
dhcp = no;
ipaddr = 192.168.179.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
} {
name = "wlan";
dhcp = no;
ipaddr = 10.240.71.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
interfaces = "tiwlan0", "wdsup0", "wdsdw0", "wdsdw1",
"wdsdw2", "wdsdw3";
dhcpenabled = yes;
dhcpstart = 10.240.71.20;
dhcpend = 10.240.71.200;
}
brinterfaces {
name = "lan";
dhcp = no;
ipaddr = 10.240.68.1;
netmask = 255.255.255.0;
dstipaddr = 0.0.0.0;
interfaces = "eth0", "usbrndis", "tiwlan0", "wdsup0",
"wdsdw0", "wdsdw1", "wdsdw2", "wdsdw3";
dhcpenabled = no;
dhcpstart = 10.240.68.20;
dhcpend = 10.240.68.200;
} {
name = "lan:0";
dhcp = no;
ipaddr = 169.254.1.1;
netmask = 255.255.0.0;
dstipaddr = 0.0.0.0;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
}
dslinterface {
name = "dsl";
dhcp = no;
ipaddr = 169.254.2.1;
netmask = 255.255.255.255;
dstipaddr = 169.254.2.1;
dhcpenabled = yes;
dhcpstart = 0.0.0.0;
dhcpend = 0.0.0.0;
}
... stimmt alles, aber eth1 hat keine IP-Adresse, auf die ich jedoch nach Möglichkeit nicht dauerhaft verzichten möchte 
Code:
/var/mod/root # ifconfig -a
cpmac0 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:406 errors:1 dropped:0 overruns:0 frame:0
TX packets:490 errors:1 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:256
RX bytes:48682 (47.5 KiB) TX bytes:66738 (65.1 KiB)
eth0 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.68.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:402 errors:0 dropped:0 overruns:0 frame:0
TX packets:490 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:47314 (46.2 KiB) TX bytes:66738 (65.1 KiB)
eth0:0 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
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
eth1 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth2 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.72.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth3 Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.73.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
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:257 errors:0 dropped:0 overruns:0 frame:0
TX packets:257 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:33161 (32.3 KiB) TX bytes:33161 (32.3 KiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.240.70.1 P-t-P:10.240.70.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:120 (120.0 B)
wlan Link encap:Ethernet HWaddr 00:15:0C:7A:XX:XX
inet addr:10.240.71.1 Bcast:10.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:11483 (11.2 KiB)
/var/mod/root #
Wie kommt es zu der falschen Zuordnung und was kann man dagegen machen?
Grüsse,
DSLFritze