As Greg Lehey wrote:
> So. Jetzt ändere ich die Adresse ab:
>
> + === root(at)freebie (/dev/ttyp6) ~ 141 -> ifconfig tun0 139.130.136.133 204.216.27.18
> + === root(at)freebie (/dev/ttyp6) ~ 142 -> ifconfig tun0
> + tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
> + inet 139.130.136.133 --> 204.216.27.18 netmask 0xffff0000
>
> Das Routing steht noch bei der alten Adresse:
Nur deshalb geht es auch überhaupt noch. Es steht nicht mehr
vollständig auf der alten Adresse:
> + 204.216.27.18 139.130.136.133 UH 0 0 tun0
Die Route ist nämlich neu und durch Dein `ifconfig' hervorgerufen
worden. Ohne defaultroute (die ja ein Sonderfall von Routing ist)
würde in Deinem Beispiel gar nichts mehr gehen.
> Aber das Ding läuft. Ich kann hub pingen:
>
> + === root(at)freebie (/dev/ttyp6) ~ 144 -> ping hub
> + PING hub.lemis.com (204.216.27.18): 56 data bytes
> + 64 bytes from 204.216.27.18: icmp_seq=0 ttl=244 time=419.819 ms
Du pingst aber nicht Deine Gegenseite. Durch das ifconfig hast Du
Deinem Kernel vorgegaukelt, daß Deine Gegenseite 204.216.27.18 sei, so
daß er Pakete in diese Richtung auch über dieses Interface
rausschickt. (Siehe auch das Snippet, das ich Stefan geschickt habe.)
Deine Gegenseite nimmt die Pakete (in der ihre eigene richtige Adresse
ja gar nicht vorkommt), Deine Absenderadresse darin ist OK, und es
stellt anhand der Zieladresse fest, daß es die Pakete weiterleiten
soll. Die Antworten bekommst Du dann von 11 Hops weiter hinten, nicht
von Deiner Gegenseite.
> Ich kann sogar das andere Ende pingen:
>
> + === root(at)freebie (/dev/ttyp6) ~ 146 -> ping 139.130.136.129
> + PING 139.130.136.129 (139.130.136.129): 56 data bytes
> + 64 bytes from 139.130.136.129: icmp_seq=0 ttl=255 time=262.384 ms
Logisch, auch wieder zufällig, weil die Defaultroute gerade auf das
gleiche Interface zeigt, das diese Pakete handeln kann. Die
Gegenseite stellt natürlich hier fest, daß die Pakete für sie selbst
waren, und beantwortet sie.
Schmeiß in Deinem Beispiel die Defaultroute raus, und nichts geht mehr
nach dem re-ifconfigen.
> ..., wenn Du (Ihr) die einzelnen Mechanismen überleg(s)t, die
> zum Weiterreichen eines Datagramms über eine PPP-Leitungen benötigt
> werden: Die Gegenadresse wird nie benutzt.
Siehe Codebeispiel. Und: tu, was ich geschrieben habe. Schmeiß die
Defaultroute raus, wiederhole das Beispiel, und versuche, die richtige
oder die falsche Gegenseite zu pingen. Die falsche wird noch
funktionieren wie oben, sofern es den Host im Internet überhaupt gibt
(weil Du mit dem ifconfig dann eine Hostroute dahin generiert hast),
die richtige Gegenseite wirst Du einfach gar nicht mehr erreichen.
-- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)Received on Fri 01 Aug 1997 - 16:23:41 CEST