[linux-l] ping funktioniert nicht

Ihno Krumreich ihno at lst.de
Sa Dez 6 12:36:23 CET 2003


Hi,

On Fri, Dec 05, 2003 at 10:50:56PM +0100, Peter Koppatz wrote:
> Hallo!
> 
> Ich will ?ber meinen Router vom Mini-LAN ins internet.
> Die Rechner sind ?ber einen hub verbunden und erhalten eine ip
> vom Router ?ber dhcp.
> Ein ping vom Router ins Internet funktioniert. 
> Ein ping vom Laptop funkioniert nicht, warum?
> Folgende Einstellungen habe ich jetzt:
> Router mit fester IP 192.168.1.1
> Laptop mit dhcpcd 192.168.122

Ich gehe davon aus das der Laptop die Adresse 192.168.1.22
besitzt.

> Ausgaben von route -n
> Router:
> Ziel            Router          Genmask         Flags Metric Ref    Use Iface
> 192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
> 
> Nach dem Verbindungsaufbau:
> Ziel            Router          Genmask         Flags Metric Ref    Use Iface
> 217.5.117.165 0.0.0.0     255.255.255.255 UH      0     0         0 ppp0
> 192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
> 0.0.0.0        217.5.117.165 0.0.0.0            UG      0     0         0 ppp0
> 
> auf dem Laptop:
>  Ziel            Router          Genmask         Flags Metric Ref    Use Iface
> 192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
> 0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
> 
> Ein interner Ping funktioniert.
> Wo mu? ich  noch drehen um mit dem Laptop ins Internet zu kommen?

Als Router ist die Maschine korrekt konfiguriert. Aber so wirst du nicht
ins Internet kommen. Folgendes spricht dagegen:

- Router leiten Pakete weiter. D.h. die urspruengliche Absenderadresse
  (192.168.1.22) bleibt erhalten. Damit ein Paket auf dem Laptop
  ankommen kann muss das Internet wissen wie der Laptop zu erreichen
  ist (d.h. die Adresse 192.168.1.22). Mit der Adresse des Laptops
  geht dies grundsaetzlich nicht, da dies eine sogenannte private-IP
  Adresse ist, die zum Aufbau lokaler Netzwerke vorgesehen sind. Diese
  Adressen duerfen im globalen Internet nicht verwendet werden und
  duerfen dort auch nicht zu sehen sein (d.h. die meisten Provider
  blockieren diese Adressen explieziet). 
  siehe Stichwort "private Internets" in
  http://zeus.fh-brandenburg.de/~ihno/lehre/internet/index.html

- damit du nun mit dem laptop ins in Internet kommst muss also die
  Adresse deines Laptops verschwinden (aus der Sicht des Internets).
  Dazu gibt es zwei Moeglichkeiten:

  - NAT oder Masquerading
    Bei Nat wird bei jedem Paket des Laptops die Absendeadresse des
    Laptops durch die Absendeadresse des ppp-Interfaces ersetzt
    (Also 192.168.1.22 durch 217.5.117.165). Die Adresse
    217.5.117.165 ist im Internet bekannt und erreichbar. Fuer
    jedes Paket das zurueckkommt wird der Adresse wieder
    zurueckgetauscht.

  - proxy
    Auf deinem Gateway-Rechner (der mit dem ppp-Interface) wird
    beispielsweise squid installiert (ein http/ftp-proxy) und
    dein Laptop nimmt Verbindung mit dem Proxy auf und der
    Proxy mit dem Internet.

  Was du also wahrscheinlich willst ist NAT.
  Also Masquerading aktivieren und dein Laptop wird gluecklich sein.

  Wie macht man das nun? Da leider die verschiedenen Linux-derivate
  es etwas anders machen....
  Ich habe ein SuSE linux 8.1 laufen, da geht es so:

  ========================================================================
  # If you just want to do masquerading without filtering, ignore this
  # script
  # and run this line (exchange "ippp0" "ppp0" if you use a modem, not
  # isdn):
  iptables -A POSTROUTING -t nat -j MASQUERADE -o ippp0
  echo 1 > /proc/sys/net/ipv4/ip_forward
  # and additionally the following lines to get at least a minimum of
  # security:
  iptables -A INPUT -j DROP -m state --state NEW,INVALID -i ippp0
  iptables -A FORWARD -j DROP -m state --state NEW,INVALID -i ippp0
  #
  ========================================================================
  Dies ist ein Ausschnitt aus der Datei /etc/sysconfig/SuSEfirewall2

  Andere Linuxe benutzten ipchains


Gruss

Ihno




Mehr Informationen über die Mailingliste linux-l