iptables nat
lama007 03.01.2009 - 20:02 869 9
lama007
OC Addicted
|
Hallo! Ich versuche die ganze Zeit mit meinem Netbook via PC (umts) ins Internet zu gelangen - komme aber auf keinen grünen Zweig. Mein aktuellster Versuch: mm@linux1:~> cat /proc/sys/net/ipv4/ip_forward 1 linux1:/home/mm # iptables --flush linux1:/home/mm # iptables --table nat --flush linux1:/home/mm # iptables --delete-chain linux1:/home/mm # iptables --table nat --delete-chain linux1:/home/mm # iptables -A FORWARD -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT linux1:/home/mm # iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT linux1:/home/mm # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE Beim Netbook habe ich in "Netzwerkeinstellungen/Routing/Standardgateway" die IP-Asresse (192.168.0.2) des PC's mit dem UMTS-Modem eingetragen. Anpingen funktioniert in beide Richtungen. Pingen nach aussen geht nur mit dem Host. Beim Pingen vom Netbook nach aussen bekomme ich ein "From 192.168.0.2: icmp_seq=1 Destination Protocol Unreachable". Was fehlt hier noch oder was stimmt hier nicht?
|
COLOSSUS
AdministratorGNUltra
|
Ich sehe da leider nicht eindeutig heraus, auf welchem Host welches Kommando ausgefuehrt wird, und welcher Host welche Aufgabe/welches OS hat/haben soll. Kannst du das verdeutlichen?
|
Marcellus
OC Addicted
|
Hast du überhaupt einen dhcp server laufen? Die Netzwerkkonfiguration wär auch interessant. Wieso suchst du dir nicht sowas für deine Distribution?
|
COLOSSUS
AdministratorGNUltra
|
Er braucht keinen DHCP-Server fuer sein Vorhaben.
|
Marcellus
OC Addicted
|
Er braucht keinen DHCP-Server fuer sein Vorhaben. Ansich nicht, aber die ip und die route jedesmal von Hand einzutragen ist auch etwas anstrengend.
|
COLOSSUS
AdministratorGNUltra
|
Das ist 1.) sehr einfach skriptbar, und 2.) viel angenehmer als zwei dhcpds im LAN, die sich dann vielleicht darum streiten, wer nun authoritative ist oder nicht
|
lama007
OC Addicted
|
Host: Pc (mit umts) Client: Netbook verbunden mit Crosslinkkabel OS: je openSUSE 11.0 die iptables-Befehle habe ich auf dem Host eingegeben
Zuerst hatte ich es mit einem DHCP-Server auf dem Host versucht.
|
COLOSSUS
AdministratorGNUltra
|
Eigentlich ist es keine Hexerei, einem GNU/Linux-System NAT-Routing beizubringen. Ich wuerde vorschlagen, du deaktivierst erst einmal via YaST die "Firewalls", die beide Systeme wohl ziemlich sicher aktiviert haben (und schaust dich bei dieser Gelegenheit gleich um, ob es da nicht eine ein-Klick-FUnktion gibt, die dir das gewuenschte Verhalten beschert). Dann wuerde ich folgendes machen (waehrend dieses Vorganges sollte auf HOST die Internetverbindung hergestellt sein, und Gimmicks wie NetworkManager und Co. duerfen nicht dazwischenpfuschen!): # auf HOST (PC mit UMTS)
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -X
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > "$i" ; done
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ifconfig eth0 down
ifconfig eth0 192.168.0.2 netmask 255.255.255.0
# auf CLIENT (Netbook)
ifconfig eth0 down
ifconfig eth0 192.168.0.3 netmask 255.255.255.0
route add default gw 192.168.0.2 #(Das ist die IP-Adresse von HOST)
Dann sollte es eigentlich funktionieren. Hth!
|
nexus_VI
Overnumerousness!
|
Die YaST Firewall ist hier ein heißer Tipp, pfuscht mir in der Arbeit auch immer sehr gern dazwischen Möglicherweise bietet YaST auf der anderen Seite eine komfortable 1-Klick-Lösung für dich? Weiß ich jetzt nicht auswendig.
|
lama007
OC Addicted
|
Dank Colossuses Anleitung klappt es jetzt.
Bei meinen erfolglosen Versuchen waren auch welche mit ausgeschalteten Firewalls dabei. (wobei ich mir nicht sicher war, da in den Firewalleinstellungen der Punkt Masquerading einzustellen ist)
YaST-Klick-Lösung: Aus Neugier werde ich das nochmal versuchen.
|