[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