Ein Windows-PC (Vista) stellt die Internet-Verbindung her und gibt diese für Clients im lokalen Netz über Internet Connection Sharing (ICS) frei. Einer dieser Clients ist eine Fritz!Box 7170, die mit "Internetzugang über LAN 1" betrieben wird.
Prinzipiell kann die Fritz!Box mit dem Internet kommunizieren, allerdings werden ankommende Rufe nicht signalisiert.
Um der Ursache auf den Grund zu gehen, habe ich auf dem PC mit Wiresharek den Datenverkehr mitgelsen, a) auf der Schnittstelle, die die Internet-Verbindung herstellt, und b) auf dem lokalen Netz.
Wenn man in der FBF "Portweiterleitung aktiv halten alle 30s" aktiviert, dann werden die Port-Nummern vom NAT des ICS offenbar auch korrekt zugeordnet. Jedoch ist mir aufgefallen, dass die von 1&1 kommenden INVITE-Pakete (für ankommende Anrufe) sehr groß sind (zwischen 1600 und 1700 Byte, also größer als die Ethernet-MTU), weshalb sie auf IP-Ebene zwingend fragmentiert werden müssen. Das wäre an sich noch kein Problem, wenn nur ICS alle Fragmente korrekt weiterleiten würde. Allerdings wird - so wie es aussieht - vom NAT des ICS nur jeweils das erste IP-Fragment eines INVITE-Pakets weitergereicht, und die Folgefragmente nicht :-( Die Fritz!Box antwortet folgerichtig mit ICMP wegen Reassemblierungs-Timeout, das (unvollständige) INVITE-Paket kommt nicht beim voipd an, und das Telefon klingelt nicht...
Weiß zufällig jemand, ob und wie man das ICS von Vista so konfigurieren kann, dass es auch große UDP-Pakete, die zur Übertragung über Ethernet zwingend in mehrere IP-Fragmente aufgeteilt werden müssen, korrekt weiterleitet? [Windows-Firewall habe ich sicherheitshalber schon abgeschaltet, das macht aber offenbar auch keinen Unterschied. Und auch mit Google bin ich bisher nicht fündig geworden...] Alternativ könnte man kleinere SIP-Pakete schicken, um das Problem zu vermeiden [aber wie bringe ich wiederum 1und1 dazu, das zu tun?].
Viele Grüße
Gerhard
Prinzipiell kann die Fritz!Box mit dem Internet kommunizieren, allerdings werden ankommende Rufe nicht signalisiert.
Um der Ursache auf den Grund zu gehen, habe ich auf dem PC mit Wiresharek den Datenverkehr mitgelsen, a) auf der Schnittstelle, die die Internet-Verbindung herstellt, und b) auf dem lokalen Netz.
Wenn man in der FBF "Portweiterleitung aktiv halten alle 30s" aktiviert, dann werden die Port-Nummern vom NAT des ICS offenbar auch korrekt zugeordnet. Jedoch ist mir aufgefallen, dass die von 1&1 kommenden INVITE-Pakete (für ankommende Anrufe) sehr groß sind (zwischen 1600 und 1700 Byte, also größer als die Ethernet-MTU), weshalb sie auf IP-Ebene zwingend fragmentiert werden müssen. Das wäre an sich noch kein Problem, wenn nur ICS alle Fragmente korrekt weiterleiten würde. Allerdings wird - so wie es aussieht - vom NAT des ICS nur jeweils das erste IP-Fragment eines INVITE-Pakets weitergereicht, und die Folgefragmente nicht :-( Die Fritz!Box antwortet folgerichtig mit ICMP wegen Reassemblierungs-Timeout, das (unvollständige) INVITE-Paket kommt nicht beim voipd an, und das Telefon klingelt nicht...
Weiß zufällig jemand, ob und wie man das ICS von Vista so konfigurieren kann, dass es auch große UDP-Pakete, die zur Übertragung über Ethernet zwingend in mehrere IP-Fragmente aufgeteilt werden müssen, korrekt weiterleitet? [Windows-Firewall habe ich sicherheitshalber schon abgeschaltet, das macht aber offenbar auch keinen Unterschied. Und auch mit Google bin ich bisher nicht fündig geworden...] Alternativ könnte man kleinere SIP-Pakete schicken, um das Problem zu vermeiden [aber wie bringe ich wiederum 1und1 dazu, das zu tun?].
Viele Grüße
Gerhard