• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

openSUSE 11.4: PC als Router

Das Thema ist oft genug behandelt worden, aber ich finde trotz alledem keine Lösung. Das Wiki nimmt zwar darauf bezug, ist aber bereits etwas veraltet und nicht ganz auf mich zugeschnitten.

Ich möchte meinen Laptop als Router nutzen, um sein WLAN-Device auch für andere Rechner verfügbar zu machen. Dazu sind alle Rechner an einen Switch gestöpselt und befinden sich in einem Netz. Die IP-Adressen werden durch einen DHCP-Server auf meinem Laptop vergeben.
Unter Ubuntu und unter Linux Mint Debian hatte ich mit folgender Vorgehensweise keinerlei Probleme: PC als router.

Nun habe ich umgerüstet auf openSuSE 11.4 und muß feststellen, das sich die Dinge hier anders darstellen, also genau gesagt, das Ganze nicht funktioniert.
Gleich vorweg: Bis zum DHCP-Server funzt alles prima. Die Clients bekommen eine Adresse aus dem gleichen Netzwerk und als Gateway wird mein Router-Laptop eingetragen.

Der Laptop kann mit der reinen WLAN-Verbindung prima ins Internet. Sobald ich aber die eth0-Schnittstelle an den Switch stöpsle um die anderen Rechner zu versorgen, kommt der Internetverkehr zum erliegen. Die Namensauflösung funktioniert nicht mehr. Bedeutet also ein Problem mit dem DNS-Server (127.0.0.1) oder mit dem Forwarding (iptables).

By the way: Die Firewall ist vorerst abgeschaltet und dahr nicht das Problem.

Leider habe ich zu wenig Ahnung von DNS und Forwarding um eine Lösung zu finden. Was ist unterSUSE anders als bei Ubuntu? Irgendwo ist hier der Hund begraben und ich weiß nicht wo.

Wenn mir also jemand weiterhelfen könnte, wäre ich sehr dankbar. Für Fragen stehe ich immer gern zur Verfügung. :/
 

framp

Moderator
Teammitglied
transwarp schrieb:
... By the way: Die Firewall ist vorerst abgeschaltet und dahr nicht das Problem.../
Das ist erst einmal Problem No1. Die SuSE FW steuert auch das Forwarding, masquerading usw. D.h. die muss an sein und richtig konfiguriert sein.
Poste mal die Ausgabe von
Code:
 cat /etc/sysconfig/SuSEfirewall2 | egrep -v "^#|^$"
und
Code:
cat /proc/sys/net/ipv4/ip_forward
 
Naja, vielleicht hab ich mich etwas mißverständlich ausgedrückt.
Die Firewall ist schon aktiv, aber ich hatte sie zeitweise zu Testzwecken abgeschaltet, was aber wohl nicht der Bringer war.

Hier der erste Befehl:
Code:
cat /etc/sysconfig/SuSEfirewall2 | egrep -v "^#|^$"
FW_DEV_EXT="eth0 wlan0"
FW_DEV_INT=""
FW_DEV_DMZ=""
FW_ROUTE="no"
FW_MASQUERADE="no"
FW_MASQ_DEV=""
FW_MASQ_NETS=""
FW_NOMASQ_NETS=""
FW_PROTECT_FROM_INT="no"
FW_SERVICES_EXT_TCP=""
FW_SERVICES_EXT_UDP=""
FW_SERVICES_EXT_IP=""
FW_SERVICES_EXT_RPC=""
FW_CONFIGURATIONS_EXT="bind sshd"
FW_SERVICES_DMZ_TCP=""
FW_SERVICES_DMZ_UDP=""
FW_SERVICES_DMZ_IP=""
FW_SERVICES_DMZ_RPC=""
FW_CONFIGURATIONS_DMZ="sshd"
FW_SERVICES_INT_TCP=""
FW_SERVICES_INT_UDP=""
FW_SERVICES_INT_IP=""
FW_SERVICES_INT_RPC=""
FW_CONFIGURATIONS_INT="sshd"
FW_SERVICES_DROP_EXT=""
FW_SERVICES_DROP_DMZ=""
FW_SERVICES_DROP_INT=""
FW_SERVICES_REJECT_EXT=""
FW_SERVICES_REJECT_DMZ=""
FW_SERVICES_REJECT_INT=""
FW_SERVICES_ACCEPT_EXT=""
FW_SERVICES_ACCEPT_DMZ=""
FW_SERVICES_ACCEPT_INT=""
FW_SERVICES_ACCEPT_RELATED_EXT=""
FW_SERVICES_ACCEPT_RELATED_DMZ=""
FW_SERVICES_ACCEPT_RELATED_INT=""
FW_TRUSTED_NETS=""
FW_FORWARD=""
FW_FORWARD_REJECT=""
FW_FORWARD_DROP=""
FW_FORWARD_MASQ=""
FW_REDIRECT=""
FW_LOG_DROP_CRIT="yes"
FW_LOG_DROP_ALL="no"
FW_LOG_ACCEPT_CRIT="yes"
FW_LOG_ACCEPT_ALL="no"
FW_LOG_LIMIT=""
FW_LOG=""
FW_KERNEL_SECURITY=""
FW_STOP_KEEP_ROUTING_STATE=""
FW_ALLOW_PING_FW=""
FW_ALLOW_PING_DMZ=""
FW_ALLOW_PING_EXT=""
FW_ALLOW_FW_SOURCEQUENCH=""
FW_ALLOW_FW_BROADCAST_EXT="no"
FW_ALLOW_FW_BROADCAST_INT="no"
FW_ALLOW_FW_BROADCAST_DMZ="no"
FW_IGNORE_FW_BROADCAST_EXT="yes"
FW_IGNORE_FW_BROADCAST_INT="no"
FW_IGNORE_FW_BROADCAST_DMZ="no"
FW_ALLOW_CLASS_ROUTING=""
FW_CUSTOMRULES=""
FW_REJECT=""
FW_REJECT_INT=""
FW_HTB_TUNE_DEV=""
FW_IPv6=""
FW_IPv6_REJECT_OUTGOING=""
FW_IPSEC_TRUST="no"
FW_ZONES=""
FW_ZONE_DEFAULT=""
FW_USE_IPTABLES_BATCH=""
FW_LOAD_MODULES="nf_conntrack_netbios_ns"
FW_FORWARD_ALWAYS_INOUT_DEV=""
FW_FORWARD_ALLOW_BRIDGING=""
FW_WRITE_STATUS=""
FW_RUNTIME_OVERRIDE=""
FW_LO_NOTRACK=""
FW_BOOT_FULL_INIT=""

... und hier kommt der Zweite:
Code:
cat /proc/sys/net/ipv4/ip_forward
1
 
Du hast das Routing und Masquerading ausgeschaltet. Dann ist es kein Wunder das es nicht funktioniert. Die Schnittstelle eth0 musst du in
Code:
FW_DEV_INT
eintragen.
 
spoensche schrieb:
Du hast das Routing und Masquerading ausgeschaltet. Dann ist es kein Wunder das es nicht funktioniert. Die Schnittstelle eth0 musst du in
Code:
FW_DEV_INT
eintragen.

Wo setze ich diesen Parameter? :???:
Ahh, ich sehe schon: /etc/sysconfig/SuSeFirewall2
 

framp

Moderator
Teammitglied
Code:
...
FW_DEV_EXT="wlan0"
FW_DEV_INT="eth0"
...
FW_ROUTE="yes"
FW_MASQUERADE="yes"
...
 
O.k.
Habe jetzt den Parameter in der Firewallkonfiguration gesetzt, aber noch immer ohne Erfolg. (SuSEconfig ausgeführt und rcnetwork restart)

Zur Hampelei mit den Netzwerkdevices:
Ich habe alles über den kNetworkmanager konfiguriert. Das WLAN-Device wird darüber angesprochen und eth0 habe ich mir als manuelles Device konfiguriert mit den Daten:
feste IP-Adresse: 192.168.200.1
Subnetzmaske: 255.255.255.0
Gateway: 192.168.200.1

Meine /etc/resolv.conf sieht derzeit so aus:
Code:
cat /etc/resolv.conf
### /etc/resolv.conf file autogenerated by netconfig!
#
# Before you change this file manually, consider to define the
# static DNS configuration using the following variables in the
# /etc/sysconfig/network/config file:
#     NETCONFIG_DNS_STATIC_SEARCHLIST
#     NETCONFIG_DNS_STATIC_SERVERS
#     NETCONFIG_DNS_FORWARDER
# or disable DNS configuration updates via netconfig by setting:
#     NETCONFIG_DNS_POLICY=''
#
# See also the netconfig(8) manual page and other documentation.
#
# Note: Manual change of this file disables netconfig too, but
# may get lost when this file contains comments or empty lines
# only, the netconfig settings are same with settings in this
# file and in case of a "netconfig update -f" call.
#
### Please remove (at least) this line when you modify the file!
search fritz.box site
nameserver 127.0.0.1
nameserver 192.168.178.1

Sobald ich aber ein Netzwerkkabel anschließe und eth0 auswähle, ist Feierabend mit Traffic nach draußen. Irgendwie scheint das Routing immer noch nicht zu funktionieren ...

Übrigens:
wlan0 ist in der Firewall in der Externen Zone und eth0 in der Internen Zone.
Muß ich denn auch im Yast in der Firewall unter Masquerading irgendwas eintragen? Und wenn ja, was?

Ach ja, hier noch ein paar Infos:
Code:
ifconfig
eth0      Link encap:Ethernet  HWaddr 00:24:54:3F:2C:7B  
          inet addr:192.168.200.1  Bcast:192.168.200.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:457 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:51371 (50.1 Kb)
          Interrupt:20 Memory:f8300000-f8320000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4650 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4650 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:637467 (622.5 Kb)  TX bytes:637467 (622.5 Kb)

wlan0     Link encap:Ethernet  HWaddr 00:26:C6:2E:8E:60  
          inet addr:192.168.178.24  Bcast:192.168.178.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19522 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20956 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14256723 (13.5 Mb)  TX bytes:3530746 (3.3 Mb)


# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.200.1   0.0.0.0         UG    0      0        0 eth0
192.168.178.0   *               255.255.255.0   U     2      0        0 wlan0
192.168.200.0   *               255.255.255.0   U     1      0        0 eth0


# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            ctstate ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            ctstate RELATED 
input_int  all  --  anywhere             anywhere            
input_ext  all  --  anywhere             anywhere            
input_ext  all  --  anywhere             anywhere            
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-IN-ILL-TARGET ' 
DROP       all  --  anywhere             anywhere            

Chain FORWARD (policy DROP)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWD-ILL-ROUTING ' 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain forward_ext (0 references)
target     prot opt source               destination         

Chain forward_int (0 references)
target     prot opt source               destination         

Chain input_ext (2 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            PKTTYPE = broadcast 
ACCEPT     icmp --  anywhere             anywhere            icmp source-quench 
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request 
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp dpt:domain flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC-TCP ' 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:domain 
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp dpt:ssh flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC-TCP ' 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 
ACCEPT     udp  --  anywhere             anywhere            udp dpt:domain 
DROP       all  --  anywhere             anywhere            PKTTYPE = multicast 
DROP       all  --  anywhere             anywhere            PKTTYPE = broadcast 
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT ' 
LOG        icmp --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT ' 
LOG        udp  --  anywhere             anywhere            limit: avg 3/min burst 5 ctstate NEW LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT ' 
DROP       all  --  anywhere             anywhere            

Chain input_int (1 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain reject_func (0 references)
target     prot opt source               destination         
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-reset 
REJECT     udp  --  anywhere             anywhere            reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            reject-with icmp-proto-unreachable
 

framp

Moderator
Teammitglied
Code:
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.200.1   0.0.0.0         UG    0      0        0 eth0
192.168.178.0   *               255.255.255.0   U     2      0        0 wlan0
192.168.200.0   *               255.255.255.0   U     1      0        0 eth0
Das default GW ist falsch. Es muss 192.168.178.1 sein.
 
Der Networkmanager eignet sich weniger für die Routerkonfiguration, weil er ein Device deaktiviert, wenn ein anderes up kommt. Und Konfigurationen an zwei verschiedenen Stellen wird irgendwann unübersichtlich.
 

framp

Moderator
Teammitglied
spoensche schrieb:
Der Networkmanager eignet sich weniger für die Routerkonfiguration, weil er ein Device deaktiviert, wenn ein anderes up kommt. Und Konfigurationen an zwei verschiedenen Stellen wird irgendwann unübersichtlich.
Oha - das habe ich überlesen :eek:ps: . Einen Router mit Networkmanager macht keinen Sinn. Das Netz muss statisch konfiguriert sein.
 
framp schrieb:
Einen Router mit Networkmanager macht keinen Sinn. Das Netz muss statisch konfiguriert sein.

Normalerweise nutze ich den Laptop ja nicht als Router, sondern ganz normal als mobiles Gerät. Praktisch ist das nur wenn ich z.B. auf einem LUG-Treffen meine Maschine für's Internet zur Verfügung stellen möchte.
Unter Ubuntu hatte ich auch den Netzwerkmanager zum Verbinden mit dem WLAN, konnte den Laptop aber trotzdem wunderbar als Router nutzen. Daher glaube ich nicht dass das das eigentliche Problem ist, es sei denn der kNetworkmanager von SuSE macht da Streß.

Wie würde ich denn mein WLAN-Device ohne Netzwerkmanager in Betrieb nehmen wenn alle anderen NICs auf 'ifup' eingestellt sind? Per Konsole?
 

framp

Moderator
Teammitglied
Ach so. Das soll also temporär ein Router sein. Das kam bei mir nicht so direkt rüber Für WLAN musst Du Dir eine wpa_supplicant.conf erstellen und dann wpa_supplicant mit der Konfig für das WLAN Interface aufrufen.
 
Sieh dir mal die /etc/sysconfig/network/ifcfg.template an. Dort sind auch die Konfigurationsvariablen für WLAN per ifup enthalten.
 
Oben