Wenn Server nach einem Neustart die Netzwerkkarten vertauscht haben

Ich hatte letztlich das Problem, dass sich Netzwerkkarten bei Linux und Windows nach einem Neustart immer wieder vertauschten. Da die Server dadurch über Netzwerk nicht mehr erreichbar sind und ausfallen, ist das natürlich sehr ärgerlich. Da ich jetzt gerade eine neuen Firewall auf Basis von Ubuntu Linux mit 9 Netzwerkkarten und 100 VPN-Tunneln eingerichtet habe, wollte ich das Problem auf jeden Fall verhindern. Deshalb habe ich das Problem noch mal genauer untersuch und viel Doku dazu gelesen. Jetzt ist mir klar warum das Problem auftritt und ich kann es zukünftig verhindern.

Ursache: Da die Betriebssysteme zum schnellen Booten alles parallel starten, kommt es beim Booten regelmäßig dazu, dass die Hardwaretreiber in anderer Reihenfolge geladen werden. Wenn man im Server zwei Netzwerkkarten mit unterschiedlichen Treibern hat, kann dabei die Reihenfolge vertauscht werden, in der die Treiber geladen werden. Da bei älteren Windows- und Linuxservern die Netzwerkkarten einfach nur anhand der Startreihenfolge durchnummeriert werden, kann es somit vorkommen, dass die IP-Konfiguratiuonen der Karten durcheinander gewürfelt werden.

Lösung bei neueren Betriebssystemen: Bei neueren Betriebssystemen wird das Vertauschen der Karten verhindert. Windows merkt sich inzwischen für welche Karte eine Konfiguration war und zählt bei neuen Karten einfach immer weiter hoch. Es bindet (vermutlich anhand der Mac-Adresse oder Seriennummer) die Konfiguration fest an eine Netzwerkkarte und vergibt eine bereits vergebene Nummer kein zweites mal. Deshalb hat man bei Windows auch machmal einen Netzwerkadapter 5 oder 6, obwohl aktuell nur eine Karte im Betriebssystem steckt. Bei Linux wird der Steckplatz der Karte mit in den Namen der Netzwerkkarte aufgenommen. Eine Netzwerkkarte auf PCI-Slot 2 heißt dann z.B. p2p1, wobei das p2 dann für den PCI-Slot 2 und das p1 für den ersten Port der Karte steht. Theoretisch kann man bei Linux also eine neue Karte in den gleichen Slot stecken und die Konfiguration sollte noch funktionieren.

Statische, interne Route auf einem IPCop Version 2 setzen

Das setzen einer statischen und permanenten Route ist bei dem IPCop etwas kryptisch, da es dafür kein Menü gibt. Deshalb hier mal ein kleines Beispiel. Um das interne Netzwerk 192.168.140.0/24 auf das Gateway 172.30.1.9 zu routen, müssen in die datei /etc/rc.d/rc.event.local die folgenden Zeilen geschrieben werden.

if [ ${1} == "network" -a ${2} == "up" ]; then
    /sbin/ip route add 192.168.140.0/24 via 172.30.1.9
fi

Ubuntu als Router verwenden

Bei einer Standard-Installation von Ubuntu ist das Routing bzw. IP-Forwarding deaktiviert. Das IP-Forwarding kann aber mit dem folgenden Befehl temporär aktiviert werden:

sudo sysctl -w net.ipv4.ip_forward=1

Wenn man es dauerhaft einschalten möchte muss in der Datei /etc/sysctl.conf die Variable net.ipv4.ip_forward auf 1 gesetzt werden. Die Zeile sollte dann wie folgt aussehen:

net.ipv4.ip_forward=1

IPSec VPN zwischen FRITZ!Box und Securepoint V2007nx Firewall

Bei einer FRITZ!Box wird das VPN mit einer Konfigurationsdatei eingerichtet, die über das Webinterface eingespielt wird (Achtung das einspielen löst einen Neustart der FRITZ!Box aus). Nähere Informationen zu dem Thema FRITZ!Box und VPN können im AVM VPN Service-Portal gefunden werden.

Das Windows Programm zum erstellen der Konfigurationsdatei ist sehr puritanisch und lässt eine Einrichtung er VPN-Verbindung zu einer Securepoint V2007nx Firewall leider nicht zu. Allerdings kann man die Konfigurationsdatei hinterher mit einem Editor bearbeiten und es gibt im AVM VPN Service-Portal einige Beispielkonfigurationen. Leider hat in meinem Fall aber keine dieser Beispielkonfigurationen funktioniert. Also habe ich die Einstellungen der unterschiedlichen Beispielkonfigurationen mit einander kombiniert und schließlich die folgende Konfigurationsdatei mit einer Securepoint V2007nx Firewall (3DES/SHA in beiden Phasen und PFS) zum laufen bekommen:

/*
 
 * C:\Dokumente und Einstellungen\kristian\Anwendungsdaten\AVM\FRITZ!Fernzugang\hostname_dnsalias_net\fritzbox_hostname_dnsalias_net.cfg
 * Wed Apr 29 13:05:41 2009
 */
 
vpncfg {
        connections {
                enabled = yes;
                conn_type = conntype_lan;
                name = "Name der VPN-Verbindung";
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 123.123.123.123;
                remote_virtualip = 0.0.0.0;
                localid {
                        fqdn = "hostname.dnsalias.net";
                }
                remoteid {
                        ipadr = 123.123.123.123;
                }
                mode = phase1_mode_idp;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "geheim";
                cert_do_server_auth = no;
                use_nat_t = no;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.31.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.1.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-3des-sha/ah-no/comp-no/pfs";
                accesslist = "permit ip any 192.168.1.0 255.255.255.0";
        }
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500", 
                            "udp 0.0.0.0:4500 0.0.0.0:4500";
}
 
 
// EOF

Der Vollständigkeit halber hier die Konfiguration der beiden IPSec Phasen auf der Securepoint V2007nx Firewall:

IPSec Phase 1
IPSec Phase 1

IPSec Phase 2
IPSec Phase 2

Cisco IOS: PPPoE für einen symmetrischen T-DSL Business 2000 Anschluss einrichten

Ich habe gerade einen Cisco 871 Router mit einem IOS in der Version 12.4 für einen symmetrischen T-DSL Business 2000 Anschluss verwendet. Die Telekom liefert bei diesem Anschluss im Augenblick einen Sphairon G5100 SHDSL Router mit, der aber nur als DSL-Modem konfiguriert wird. Dies liegt sicherlich daran, dass SHDSL Router im Augenblick in Deutschland noch nicht weit verbreitet sind und deshalb nicht so leicht und kostengünstig im normalen Einzelhandel zu bekommen sind.

Um den Cisco Router dazu zu bringen das DSL-Modem zu benutzen muss man auf einem Ethernet-Interface PPPoE konfigurieren. Dies kann IOS ab der Version 12.1. Eine recht gute Anleitung für die Konfiguration von T-DSL ist auf der Webseite von GepaNet zu finden. In meinem Fall brauchte ich jedoch kein vpdn. Außerdem funktionierte die Authentifizierung nur mit CHAP anstelle von PAP.

Ich brauchte also nur das Inside Interface konfigurieren:

interface Ethernet0
ip address 192.168.37.254 255.255.255.0
ip nat inside 

Das Outside Interface konfigurieren:

interface Ethernet4
no ip address
pppoe-client dial-pool-number 1
no cdp enable

Den Dialer konfigurieren (natürlich mit den entsprechenden Zugangskennung und dem Passwort):

interface Dialer1
ip address negotiated
ip mtu 1492
ip nat outside
encapsulation ppp
no ip mroute-cache
dialer pool 1
dialer-group 1
no cdp enable
ppp authentication chap callin
ppp chap hostname feste-ip7/zugangskennung@t-online-com.de
ppp chap password geheimeskennwort

NAT definieren und die Route setzen:

ip nat inside source list 101 interface Dialer1 overload
ip route 0.0.0.0 0.0.0.0 Dialer1
access - list 101 permit ip 192.168.37.0 0.255.255.255 any
dialer-list 1 protocol ip permit

Danach funktionierte die Verbindung.

Man sollte anschließend natürlich noch ein paar Access-Listen einbauen, um für die nötige Sicherheit zu sorgen.

ISDN Einwahl auf einem Cisco Router

Hier eine kurze Zusammenfassung der einzelnen Einrichtungsschritte, einer EURO-ISDN-Einwahl auf einem Router von Cisco, bei der die IP-Adresse per DHCP vergeben wird. Als Authentifizierung wird CHAP verwendet.

ISDN-Einwahl auf einem CISCO-Router

Als erstes muss ein IP-Adress-Pool eingerichtet werden, der die IP-Adressen beinhaltet, die an den Anrufer vergeben werden soll. Dabei muss die Start-IP-Adrresse und die End-IP-Adresse angegeben werden. Wenn man hinterher im Dialer-Interface ip unnumbered verwenden will, sollte der IP-Adress-Pool innerhalb des IP-Netzes des Interfaces liegen, auf das sich dieses bezieht.

ip local pool poolname 192.168.0.101 192.168.0.110

Danach muss ein BRI-Interface konfiguriert werden.


interface BRI0
 description ISDN-Interface
 ip unnumbered FastEthernet0
 encapsulation ppp
 no keepalive
 dialer pool-member 1
 isdn switch-type basic-net3
 isdn send-alerting
 no fair-queue
 no cdp enable
 ppp authentication chap callin
!

Jetzt muss das Dialer-Interface eingerichtet werden.

interface Dialer0
 description "Einwahlkonfig"
 ip unnumbered FastEthernet0
 encapsulation ppp
 no keepalive
 dialer pool 1
 dialer remote-name einwahlbenutzer
 dialer idle-timeout 180
 dialer-group 1
 peer default ip address pool poolname
 no cdp enable
 ppp authentication chap
!

Zum Schluss muss dann noch der Login angelegt werden und das Dialer-Interface für IP-Pakete freigeschaltet werden. Dabei ist zu beachten, dass der „username“ mit dem „dialer remote-name“ des Dialer-Interfaces übereinstimmt.

username einwahlbenutzer password einwahlpasswort
dialer-list 1 protocol ip permit