externe Links:
6to4 Tunnel mit dynamischer IPv4-Adresse
Die Telekom, natives IPv6 over PPPoE & DD-WRT
IPv6 mit SixXS Tunnel
Linux IPv6 HOWTO oder Linux IPv6 HOWTO
Dateien | Funktion |
---|---|
/etc/resolv.conf | DNS Server einrichten |
/etc/network/interfaces | Netzwerkkarten konfigurieren |
/etc/modutils/aliases | (Debian) Konfigurieren der Schnittstelle |
/etc/sysctl.conf | System Parameter Konfigurationsdatei (siehe sysctl) |
/etc/sysctl.d/ | System Parameter Konfigurations-Verzeichnis |
Befehle | Funktion |
nameif | benennt Netzwerkschnittstellen nutzt die Datei zum definieren /etc/mactab |
ifup eth0 | erste Netzwerkkarte starten |
ifdown eth0 | erste Netzwerkkarte stoppen |
ifup eth0=home | Netzwerkprofil "home" starten |
/etc/init.d/networking restart | Netzwerk neu starten, /etc/network/interface wird neu eingelesen (nur Debian, nicht mehr für ubuntu) |
ifdown eth0 && ifup eth0 | Netzwerkschnittstelle eth0 neustarten, Einstellungen in der /etc/network/interface werden verarbeitet (ubuntu) |
ip link set up dev eth0 | Netzwerkschnittstelle eth0 starten, /etc/network/interface wird nicht berücksichtigt |
ip link set down dev eth0 | Netzwerkschnittstelle eth0 stoppen, /etc/network/interface wird nicht berücksichtigt |
ping6 ff02::1%eth0 | Multicast ping alle Hosts im Netzwerk |
ping6 -c 3 -I eth0 ff02::1 | Multicast ping alle Hosts im Netzwerk, Schnittstelle durch den Parameter -I angegeben |
ping6 ff02::2%eth0 | Multicast ping alle Router im Netzwerk |
ip neighbor show | Neighbor Cache anzeigen, bei IPv4 ARP Cache |
ping6 -c 3 -I eth0 ff02::1 | |
nmcli dev | Network Manager CLI, Netzwerk Device anzeigen |
Status anzeigen | |
netstat -tulpn | Dienste, Ports und PIDs anzeigen, die auf Verbindung warten |
lsof -i | Dienste, Ports und PIDs anzeigen, die auf Verbindung warten |
Fehlersuche | |
radvdump | gesendete und empfangene Advertisements werden ausgegeben |
rdisc6 eth0 | ICMPv6 Router Discovery, Debian Paket apt-get install ndisc6 IPv6 diagnostic tools |
rdisc6 -1 -q eth0 | gibt Prefix aus |
traceroute6 oder tracert6 <Zielserver> | IPv6 zeigt den Weg der Pakete bis zum angegebnene Ziel |
traceroute oder tracert <Zielserver> | IPv4 zeigt den Weg der Pakete bis zum angegebnene Ziel |
tracepath oder tracepath6 <Zielserver> | IPv4 / IPv6 zeigt Knoten und misst Zeit bis zum Ziel |
/etc/modutils/aliases (Debian)
alias eth0 8139too #für eine RTL 8139 NIC alias eth1 dmfe #für Davicom DM9102AF NIC
der Karte wird der Name des Modules zugeordnet, nach Änderung unter Debian "update-modules" aufrufen.
/etc/mactab
eth0 00:95:R7:E2:00:XX eth1 00:95:R7:E3:01:XX firewall 00:95:R7:E3:01:XX dmz 00:95:R7:E3:01:XX
in der mactab kann die Reihenfolge der Netzwerkkarten definiert werden, man kann hier der Schnittstelle auch Namen zuordnen.
/etc/init.d/networking
start) ... nameif #uses default /etc/mactab to change ethernet-interfaces ... fi ;;
den Script /etc/init.d/networking um den nameif Eintrag erweitern, dann weren die Einstellungen gleich beim starten eingerichtet.
/etc/resolv.conf
# /etc/resolv.conf nameserver 2001:4860:4860::8888 nameserver 8.8.8.8 search domain.tld
/etc/network/interfaces
# loopback interface auto lo iface lo inet loopback # Static IP Adresse Beispiel für die Zuordnung von zwei IP Adressen zu einer Karte # es können auch mehr zugeordnet werden z.B. eth0:1, eth0:2 usw. auto eth0 iface eth0 inet6 static address fec0:0:0:1::1 netmask 64 auto eth0:0 iface eth0:0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.1 # Beispiel für einen Client auto eth1 iface eth1 inet
Erläuterung:
lo - ist der loopback Adapter, er ist eine virtuelle Netzwerkkarte
eth0 - erste Netzwerkkarte im System (die nächste heist eth1, eth2 usw.)
eth0:0 - wenn z.B. eth0 konfiguriert ist, kann man der Schnittstelle noch weitere IP-Adressen zuweisen. Das gilt nur für IPv4, mit IPv6 kann man eth0:0 nicht mehr verwenden.
Beispiel IPv6 Schnittstelle mit mehreren IP-Adressen
# /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback # Interface am Link "internet" auto eth0 iface eth0 inet static address 192.168.10.100 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 gateway 192.168.10.1 dns-nameservers 192.168.10.1 iface eth0 inet6 static address 2001:db8:10::100 netmask 64 gateway 2001:db8:20::1 dns-nameservers <dns_ipv6_addr_1> <dns_ipv6_addr_2> up ip addr add 2001:db8:10::200/64 dev eth0 down ip addr del 2001:db8:10::200/64 dev eth0 up ip addr add 2001:db8:20::252/64 dev eth0 down ip addr del 2001:db8:20::252/64 dev eth0
Beispiel IPv6 per Router Advertisement und eine IPv6 statisch zugewiesen
# /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback # Interface am Link "internet" auto eth0 iface eth0 inet iface eth0 inet6 accept_ra 1 autoconf 1 up ip addr add 2001:db8:10::1/64 dev eth0 down ip addr del 2001:db8:10::1/64 dev eth0
Beispiel IPv6 Link-Local Adresse an eth1
# /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback # Interface am Link "internet" allow-hotplug eth0 iface eth0 inet # Interface am Link "internal" auto eth1 iface eth1 inet6 manual up ip link set up dev eth1 down ip link set down dev eth1
Parameter | Beschreibung |
---|---|
net.ipv4.ip_forward | IPv4 Routing 0=deaktiv, 1=aktiv |
net.ipv6.conf.all.forwarding | IPv6 Routing |
net.ipv6.conf.all.accept_ra net.ipv6.conf.default.accept_ra net.ipv6.conf.<IFACE>.accept_ra |
IPv6 Router Advertisements, wenn forwarding aktiv ist, ist accept_ra deaktiviert und umgekehrt. 0 = Router Advertisements werden nicht akzeptiert 1 = Router Advertisements werden akzeptiert, aber Routing wird deaktiviert 2 = Router Advertisements werden akzeptiert, Routing wird aktiviert |
net.ipv6.conf.all.accept_ra_defrtr net.ipv6.conf.default.accept_ra_defrtr net.ipv6.conf.<IFACE>.accept_ra_defrtr |
IPv6 default Router wird durch RA gesetzt (Standard aktiviert) 0 = deaktiv 1 = aktiv |
net.ipv6.conf.all.use_tempaddr net.ipv6.conf.default.use_tempaddr net.ipv6.conf.<IFACE>.use_tempaddr |
IPv6 Privacy Extensions 0 = Privacy Extensions nicht aktiv 1 = temporäre Adresse bereitstellen 2 = temporäre Adresse bereitstellen und aktiv nutzen |
net.ipv6.conf.all.temp_prefered_lft | Dauer in Sekunden, wie lange die Adresse anderen vorgezogen wird |
net.ipv6.conf.all.temp_valid_lft | Dauer in Sekunden, wie lange die Adresse vorhanden ist |
net.ipv6.conf.all.autoconf net.ipv6.conf.default.autoconf net.ipv6.conf.<IFACE>.autoconf |
IPv6 Autokonfiguration |
Einträge in /proc/sys/net/ipv6/
kernel.org Doku Networking
<IFACE> - steht für das Interface z.B. eth0, eth1 wlan0 u.a.
- Routing für IPv4 temporär aktivieren
sysctl -w net.ipv4.ip_forward=1
echo 1 >/proc/sys/net/ipv4/conf/eth0/forwarding
- Routing für IPv6 temporär aktivieren, für alle Schnittstellen des Systems
sysctl -w net.ipv6.conf.all.forwarding=1
- Routing dauerhaft aktivieren, für IPv4 und IPv6
#/etc/sysctl.conf ... net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 ...
- Privacy Extensions aktivieren, für ubuntu beide Einträge setzen, für Fedora und OpenSUSE reicht net.ipv6.conf.default.use_tempaddr=2
aus.
sysctl -w net.ipv6.conf.default.use_tempaddr=2 sysctl -w net.ipv6.conf.eth0.use_tempaddr=2
- Wert eines Parameters ausgeben
sysctl net.ipv6.conf.default.use_tempaddr cat /proc/sys/net/ipv6/conf/default/use_tempaddr
- Werte aller Schnittstellen ausgeben
all
default
eth0
eth1
...
lo
cat /proc/sys/net/ipv6/conf/*/use_tempaddr
- Schnittstelle starten/stoppen
ip link set up dev eth0 ip link set down dev eth0
- IP Adresse 192.168.0.10 zuweisen
ip addr add 192.168.0.10/24 broadcast 192.168.0.255 dev eth0 ip link set up dev eth0
- mehrere IP Adressen einer Schnittstelle zuweisen
ip addr add 192.168.0.10/24 dev eth0 ip addr add 192.168.2.10/24 dev eth0
- IP-Adress-Alias anlegen
ip addr add 10.1.1.52/24 dev eth0 label eth0:1
- IP Adressen anzeigen, mit Schnittstellen-Angabe
ip addr list ip addr show ip link show dev eth0
Kurzform
ip a l
- Ethernet Schnittstellen-Statistik
ip -s link
- Ethernet Schnittstellen Status
ip link
- IP 192.168.0.10 löschen, oder ändern mit change/replace
ip addr del 192.168.0.10 dev eth0
- Route aus Netzwerk setzen für die IP 192.168.0.10
ip route add to 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.10
- Routingtabelle anzeigen
ip route
- Route ins Netzwerk löschen
ip route del 192.168.0.0/24
- Default Route setzen (Gateway 192.168.0.1) für die IP 192.168.0.10
ip route add to default via 192.168.0.1 src 192.168.0.10
- Default Route löschen
ip route del default
- alle Routingtabellen anzeigen
ip route list table local
- IP Adresse 192.168.0.10 setzen und Schnittstelle aktivieren (up)
ifconfig eth0 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255 up
- MAC Adresse der Schnittstelle eth0 ändern
ifconfig eth0 down ifconfig eth0 hw ether 00:04:A2:65:23:FC ifconfig eth0 up
- Default Route setzen (Gateway 192.168.0.1)
route add default gw 192.168.0.1
- Route für ein Device setzen
route add -host 192.168.0.1 eth0
- Route für ein Subnet
route add -net 192.168.1.1/24 192.168.0.1
- Routingtabelle anzeigen
route netstat -r
Beispiel für die /etc/network/interfaces mit Profilen.
auto lo iface lo inet loopback iface eth0 inet iface home inet static address 192.168.20.61 netmask 255.255.255.0 network 192.168.20.0 broadcast 192.168.20.255 gateway 192.168.20.254 dns-nameservers 192.168.20.254 pre-up /etc/init.d/shorewall start || true post-down /etc/init.d/shorewall stop || true iface buero inet static address 192.168.10.61 netmask 255.255.255.0 network 192.168.20.0 broadcast 192.168.10.255 gateway 192.168.10.1 dns-nameservers 192.168.10.1 auto eth0
damit die Option dns-nameservers Wirkung zeigt, muss das Paket resolvconf installiert sein, dadurch erfolgt automatisch der Eintrag des DNS in die /etc/resolv.conf.
- Datei /etc/resolv.conf neu schreiben
resolvconf -u
cat /etc/resolv.conf
- Update der /etc/resolv.conf deaktivieren, wenn der Network-Manager läuft
resolvconf --disable-updates
- Netzwerk mit Profil HOME starten, Standardmäßig wird die Netzwerkkarte mit gestartet.
ifdown eth0 ifup eth0=home
Hilfe WLAN
MadWifi Projekt Page
RT2860PCI / RT2700
Intel PRO/Wireless 2915ABG
Befehl | Beschreibung |
---|---|
iwconfig | zeigt WLAN Schnittstellen an |
WLAN mit Atheros Chipsatz benutzt den madwifi-ng Treiber.
modprobe ath_pci
- WLAN Treiber entfernen
madwifi-unload
- Device ath0 entfernen
wlanconfig ath0 destroy
- Device ath0 im Infrastruktur-Modus laden
wlanconfig ath0 create wlandev wifi0 wlanmode sta
- Device ath0 im AccessPoint-Modus laden
wlanconfig ath0 create wlandev wifi0 wlanmode ap
- Device ath0 im Monitor-Modus laden
wlanconfig ath0 create wlandev wifi0 wlanmode monitor
- Netzwerk scannen (nur in sta und ap Modus möglich)
iwlist ath0 scan wlanconfig ath0 list scan
- prüfen ob die WLAN Karte im Monitor-Mode läuft
iwpriv |grep monitor monitor (8BE8) : set 2 int & get 0
- SSID und Modus (Ad-HOC) des WLANs setzen
ifconfig ath0 down iwconfig ath0 essid WLAN mode ad-hoc
udev Änderung
damit udev nicht bei jedem laden/entladen des Moduls ein neues Device erstellt muß noch folgende Änderung durchgeführt werden.
/etc/udev/rules.d/75-persistent-net-generator.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|ath*|wlan*|ra*|sta*" \
ändern in
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|wlan*|ra*|sta*" \
aus der Datei /etc/udev/rules.d/70-persistent-net.rule alle athX Eintrage löschen.
Linux-Restricted-Modules
Paket linux-restricted-modules muss installiert sein, dann die folgende Datei abändern.
/etc/default/linux-restricted-modules-common
... DISABLED_MODULES="ath_hal" ...
#/etc/udev/rules.d/77-net-work.rules (SUSE) SUBSYSTEM=="drivers", action=="add", DEVPATH=="/bin/pci/drivers/rt2860", RUN+="/sbin/ifconfig ra0 up"
Die Firmware nach /lib/firmware entpacken.
modprobe ipw2200
Paket wpasupplicant
Konfigurationsdatei /etc/wpa_supplicant/wpa_supplicant.conf
Beispiel WPA
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 eapol_version=1 ap_scan=1 fast_reauth=1 network={ ssid="SSID" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK pairwise=TKIP group=TKIP psk="PSK-KEY" }
Beispiel WPA2
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 eapol_version=2 ap_scan=1 fast_reauth=1 network={ ssid="SSID" scan_ssid=1 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=TKIP psk="PSK-KEY" }
WPA2 mit Zertifikat
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 eapol_version=2 ap_scan=1 fast_reauth=1 network={ ssid="SSID" scan_ssid=1 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=TKIP eap=TTLS key_mgmt=WPA-EAP anonymous_identity="anonymous@domain.tld" identity="anonymous@domain.tld" password="geheim**" ca_cert="/etc/wpa_supplicant/zertifikat.pem" phase2="auth=PAP" }
mit WEB Verschlüsselung
... network={ ssid="SSID" scan_ssid=1 key_mgmt=NONE wep_tx_keyidx=0 wep_key0="Netzwerkschlüssel" }
Paket pwgen - ist ein Schlüsselgenerator für WPA-PSK
pwgen -c -n -s 63 1
- Hilfe VLAN Interface
man vlan-interfaces
- VLAN Paket installieren und Modul laden
apt-get install vlan modprobe 8021q lsmod | grep 8021q
VLAN Modul permanent laden
echo "8021q" >> /etc/modules
- dem VLAN Interface erstellen und eine IP Adresse per DHCP oder zuweisen
ip link show ip link add dev eth0.30 link eth0 type vlan id 30 ip link set dev eth0.30 up ip link show eth0.30 dhclient eth0.30 -v ip addr add 192.168.2.10/24 dev eth0.30
- VLAN Interface entfernen
ip link set dev eth0.30 down ip link del dev eth0.30
- VLAN Interface zum Systemstart konfigurieren, manuell eine Adresse zuweisen
# /etc/network/interfaces # IP manuell vergeben auto eth0.2 iface eth0.2 inet static address 192.168.2.10 netmask 255.255.255.0 gateway 192.168.2.1 vlan-raw-device eth0 ...
# /etc/network/interfaces.d/vlan30 # IP per DHCP auto eth0.30 iface eth0.30 inet dhcp vlan-raw-device eth0
# /etc/iproute2/rt_tables ... 500 firsttable 501 secondtable ... ip rule show
- VLAN Einstellungen anzeigen
cat /proc/net/vlan/config cat /proc/net/vlan/<Name des VLAN>
- prüfen, ob das Modul geladen wurde
# lsmod | grep 8021q 8021q 36864 0 garp 16384 1 8021q mrp 20480 1 8021q
- Konfiguration der Schnittstellen anzeigen
ip link show ip addr show
- ping über das vlan Interface versenden
ping -I eth0.30 8.8.8.8 systemctl restart networking
Befehl | Beschreibung |
---|---|
hcitool scan | Bluetooth Geräte suchen |
sdptool browse MAC | zeigt verfügbare Dienste der Gegenstelle |
hciconfig -a | Infos zum Bluetooth-Stack |
Dienst Dial-up networking suchen, unter Channel steht der Bluetooth Kanal mit dem man das Modem des MobilPhone ansprechen kann. Nun die statische Zuordnung in die Datei /etc/bluetooth/rfcomm.conf eintragen, die MAC und den Channel des MobilPhones.
/etc/bluetooth/rfcomm.conf
rfcomm0 { bind yes; device xx:xx:xx:xx:xx:xx; channel 2; comment "MobilePhone"; }
Beim nächsten Start des Bluetooth Daemons wird das Device /dev/rfcomm0 automatisch angelegt. Der Daemon kann mittels /etc/init.d/bluetooth restart
neu gestartet werden.
Die Datei /etc/ppp/peers/ppp0 mit folgenden Inhalt anlegen.
connect "/usr/sbin/chat -v -f /etc/ppp/peers/ppp0.chap" user "tm" /dev/rfcomm0 115200 usepeerdns defaultroute
Dannach das CHAP Script /etc/ppp/peers/ppp0.chap erstellen.
< ABORT BUSY TIMEOUT 60 ABORT ERROR "" "ATZ" "" "ATDT*99***1#" CONNECT
in der /etc/ppp/pap-secrets Benutzername und Passwort hinterlegen, wird zwar von den meisten Providern unterstützt bzw. ignoriert, ist aber empfehlenswert und auch frei wählbar.
"tm" * "tm"
mit folgendem Kommando eine Verbindung zum Internet über das Bluetooth Telefon herstellen.
pppd call ppp0
Dabei ist die Eingabe der Bluetooth PIN erforderlich, fals das Phone noch nicht mit dem PC gekoppelt ist.
Befehl | Beschreibung |
---|---|
lsusb | Info über angeschlossene USB Geräte |
gcom -d /dev/ttyACM0 | für USB Device ttyACM0 den Netzanbieter und Signalstärke anzeigen |
Wenn das Telefon über USB-Datenkabel angebunden ist, ist das Device /dev/ttyACM0 für das erste am PC angeschlossene USB-Modem, wenn das Telefon (wie das Sony-Ericsson K800i) mehrere Modems bindet, muss man feststellen, welches das Richtige ist.
Damit die Anbindung immer über das gleiche Device erfolg, egal ob das MobilPhone über USB oder Bluetooth angebunden ist, muss man ein Symlink einrichten. Dies erledigt eine Udev Regel automatisch. (ein Beispiel unter ubuntu)
/etc/udev/rules.d/60-symlinks.rules
KERNEL=="rfcomm0*", SYMLINK+="mobile-internet" KERNEL=="ttyACM0", SYMLINK+="mobile-internet"
auch wenn der Symlink durch die Bluetooth Verbindung schon existiert, wird er beim Anstecken des Telefons über USB überschrieben und Udev ordnet es dem USB Device zu. Beim trennen vom USB wird der Symlink auch entfernt, aber da die Bluetooth Verbindung existiert wieder neu angelegt.
Da der Symlink nur für das Device /dev/ttyACM0 erzeugt wird, kann es sein das wenn schon ein USBGerät mit Modem am Rechner angeschlossen ist, das das MobilPhone von Udev ein anderes Device zugeordnet wird. Dies kann man verhindern, wenn die Udev Regeln besser ans Gerät angepasst werden.
Beispiel für ein Nokia
SUBSYSTEMS=="usb",\ KERNEL=="ttyACM[0-9]*",\ SYSFS{idVendor}=="0421",\ SYSFS{idProduct}=="04f0",\ SYMLINK+="mobile-internet"
Die Vendor und ProductID bekommt man mittels lsusb angezeigt.
Beispiel für ein Sony-Ericsson K800i
Wenn das ModemDevice den Grätenamen ttyACM1 erhalten hat, muss man in dem Verzeichnis /sys/class/tty/ttyACM1 nach der Pseudodatei bInterfaceNumber suchen
SUBSYSTEMS=="usb",\ KERNEL=="ttyACM[0-9]*",\ SYSFS{idVendor}=="0fce",\ SYSFS{idProduct}=="d039",\ SYSFS{device/bInterfaceNumber}=="01",\ SYMLINK+="mobile-internet"
Beispiel 3G/GPRS Datenkarten
SUBSYSTEMS=="usb",\ KERNEL=="ttyACM[0-9]*",\ SYSFS{idVendor}=="0af0",\ SYSFS{idProduct}=="5000",\ PROGRAM="/usr/bin/test %s{bInterfaceNumber} = 00",\ SYMLINK+="mobile-internet" RUN="/etc/gcom/datacard-init %k"
/etc/gcom/datacard-init
#!/bin/bash if [ -e /dev/$1 ]; then echo 1234 | gcom -d /dev/$1 /etc/gcom/datacard.scr fi
Das Script enthält die PIN der Datenkarte, hier im Beispiel 1234 und sollte mit den Rechten 700 angelegt werden, da nicht jeder die PIN lesen soll. Mit folgendem Aufruf im Init-Script erreicht man das primär UMTS genutzt wird, wenn dies zu schwach ist wird GPRS genutzt.
gcom -d /dev/$1 3G2G
- nur UMTS verwenden
gcom -d /dev/$1 3G
Die Datei /etc/gcom/datacard.scr übergibt die APN-Einstellung an die Datenkarte.
/etc/gcom/datacard.scr
send "AT+CGDCONT=1,\"IP\",\"internet.t-mobile\"^m" waitfor 10 "OK"
Kerneloptionen
Device Drivers / Networking support / Networking options / IP: advanced router
IP: policy routing - Routing anhand der Quell-IP-Adresse
IP: equal cost multipath - abwechselnde Routing über unterschiedliche, gleichwertige Pfade
Lastenverteilung
Device Drivers / Networking support / Networking options / QoS and/or fair queueing
TEQL queue (NEW) - sorgt für eine Verteilung der Daten auf mehrere Leitungen,
aber für jedes Paket einzeln.
Device Drivers / Networking support
Bonding driver support - "zusammenfassen" mehrerer Karten zu "einer",
man bracht aber noch einen passenden Switchder das auch unterstützt.
$ ip rule list 0: from all lookup local 32766:from all lookup main 32767:from all lookup default $ ip route add 192.168.1/24 via 192.168.1.1 table 23 $ ip rule add pref 10000 table 23 $ ip rule list 0: from all lookup local 10000:from all lookup 23 32766:from all lookup main 32767:from all lookup default
Device Drivers/Networking support/Networking options
Kernel-Optionen | Menü |
CONFIG_NETFILTER | Network packet filtering |
CONFIG_IP_ADVANCED_ROUTER | IP: advanced router |
CONFIG_IP_MULTIPLE_TABLES | IP: policy routing |
CONFIG_IP_ROUTE_FWMARK | IP: use netfilter MARK value as routing key |
CONFIG_IP_NF_IPTABLES | IP tables support |
CONFIG_IP_NF_MANGLE | Packet mangling |
CONFIG_IP_NF_TARGET_MARK | MARK target support |
Hilfe für IP
ip help ip addr help ip route help
alle IP-Adressen anzeigen.
ip addr list ip addr show
Standard Routen anzeigen
ip route show ip route show table main ip route list
Standard Routen mit DNS-Namensauflösung
ip -r route show
vom Router selbst erzeugte Routingtabelle ansehen
ip route show table local
IP Adresse einem Device zuweisen
ip addr add 192.168.0.2/24 broadcast 192.168.0.255 dev eth0
kürzeste Form des Befehls
ip a a 192.168.0.2/24 b 192.168.0.255 dev eth0
weitere Adressen an ein Interface binden (wenn man mit IP mehrere Adressen an ein Interface bindet, kann ifconfig diese nicht richtig anzeigen, es wird immer nur die zuletzt gebundene Adresse angezeigt, da ifconfig Alias-Interfaces z.B. eth0:1)
ip addr add 10.0.0.1/8 broadcast 10.255.255.255 dev eth0
Alias-Interface mit anlegen, so das auch ifconfig alles richtig anzeigt (label eth0:3).
ip addr add 10.0.0.1/8 broadcast 10.255.255.255 label eth0:3 dev eth0
default Route setzen
ip route add default via 192.168.0.1
kürzeste Form des Befehls
ip r a default via 192.168.0.1
eine neue Routingtabelle mit dem frei wählbaren Namen (101) erzeugen und in dieser eine Standardroute eintragen
ip route add default dev eth2 table 101
die neue Tabelle (101) aktivieren
ip rule add from 192.168.1.0/24 table 101
Routing Regelsatz anzeigen
ip rule show
Pakete mit Zielport 22 werden mit einer Markierung versehen (Nr. 2)
iptables -A FORWARD -t mangle -p tcp --dport 22 -j MARK --set-mark 2
eine neue Routingtabbele mit einer default Route erzeugen
ip route add default dev ppp0 table 100
Regel um die markierten Pakete über diese Route zu schicken
ip rule add fwmark 2 table 100
Proxy und Firewall müssen auf dem gleichen Rechner laufen.
Zugriffe auf Port 80 werden on der Firewall an einen Proxy geleitet (Port 3128)
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport http -j REDIRECT --to-port 3128
mangle Tabelle der Firewall für Web Zugriff des Proxys (192.168.1.22) auf durchzug schalten
iptables -t mangle -A PREROUTING -p tcp --dport 80 --source 192.168.1.22 -j ACCEPT
Pakete anschliessend markieren
iptables -t mangle -A PREROUTING -p tcp -i eth0 --dport 80 -j MARK --set-mark 3
markierten Pakete an den Proxy schicken
ip route add default via 192.168.1.22 table 102 ip rule add fwmark 3 table 102
Kernel 2.4
Filesystems / Network File Systems
"Coda file system support" als Modul einbinden, mit modconf / kernel/fs / coda aktivieren (Datei coda.o) oder "nfs server support" in den Kernel einbinden, nicht als Modul (nfsd.o)
für den Zugriff mit einem Client braucht man Filesystems / Network File Systems / NFS file system support, das kann man als Modul einbinden (nfs.o) mit modconf einrichten.
Kernel 2.6
File systems / Network File Systems
<M> NFS file system support (Modul nfs.ko) [*] Provide NFSv3 client support [*] Provide NFSv4 client support (EXPERIMENTAL) [ ] Allow direct I/O on NFS files (EXPERIMENTAL) <M> NFS server support (Modul nfsd.ko) [*] Provide NFSv3 server support [*] Provide NFSv4 server support (EXPERIMENTAL) [*] Provide NFS server over TCP support (EXPERIMENTAL)
Pakete Debian
Client - nfs-common
Server - nfs-kernel-server
Zugriffsrechte auf den Server festlegen
/etc/hosts.deny
# Alles verbieten ALL: ALL
/etc/hosts.allow
# Alle für NFS notwendigen Dienste für die lokale Domain freigeben:
portmapper : 192.168.0.0/255.255.255.0 mountd : 192.168.0.0/255.255.255.0 nfs : 192.168.2.0/255.255.255.0 lockd : 192.168.0.0/255.255.255.0 statd : 192.168.0.0/255.255.255.0 rquotad : 192.168.0.0/255.255.255.0
nach Änderungen an der hosts.allow oder hosts.deny, muss Portmap mit /etc/init.d/portmap restart neu gestartet werden
Programmnummern dienenzum identifizieren des RPC-Programms, auf das im Server ein Zugriff erfolgt z.B. "rpcinfo -p localhost"
Programm | Nummer |
Portmapper | 100000 |
rstatd | 100001 |
ruserd | 100002 |
NFS | 100003 |
NIS | 100004 |
mountd | 100005 |
walld | 100008 |
sprayd | 100012 |
rexd | 100017 |
lockd | 100021 |
RPC-Dienste:
rpcinfo -p
portmapper
lockd ist notwendig, wenn Progamme auf dem Client mit Datensperren arbeiten
statd ist notwendig, wenn Progamme auf dem Client mit Datensperren arbeiten
rquotad ist notwendig, wenn auf den exportierten Verzeichnissen mit Quotas gearbeitet
wird
mit "strings /usr/sbin/rpc.mountd | grep hosts" kann man sich die Zugriffsrecht
anzeigen lassen, die ein Programm hat, hier am Beispiel "rpc.mountd"
der Dienst "/etc/init.d/portmap" muss auf dem System laufen, kontrollieren
kann man das mit "ps ax | grep portmap"
- Portmapper Dienst beenden | deaktivieren
systemctl stop rpcbind systemctl disable rpcbind
- Portmapper deinstallieren
apt remove rpcbind
Portmapper Konfiguration unter Debian /etc/default/rpcbind
NFSv4 Client für Windows
Hummingbird Maestro Client/Solo
ManPage: exports
Paket nfs-kernel-server
- Aktivierung von NFSv4 (OpenSUSE)
#/etc/sysconfig/nfs NFS4_SUPPORT=yes
- Dienste von NFSv4
ps ax | egrep ´rpc|nfs´ nfsiod nfsd4 nfsd prciod/0 /sbin/rpc.statd /usr/sbin/rpc.idmapd /usr/sbin/rpc.mountd
- NFSv3 Dienste
/sbin/rpc.statd nfsd
- NFSv4 Dienste
/usr/sbin/rpc.idmapd nfsd4
Der Dienst idmapd löst die Benutzernamen auf, er wird auf dem Client und auf dem Server benötigt. Die Einstellungen werden in /etc/idmapd gespeichert.
- Dauerhafte Einbindung des Verzeichnis
Wurzelverzeichnis auf dem Server freigeben
#/etc/exports /srv/nfsv4 192.168.100.0/24(rw,fsid=0,insecure,no_subtree_check,async) Optionen fsid=0 Wurzelverzeichnis definieren insecure Zugiff von Ports >1024 rw Schreibzugriff async asynchrones schreiben no_subtree_check Sicherheitsfunktion abschalten
- manuell ein Verzeichnis in die Freigebe einbinden
mkdir /srv/nfsv4/daten mount --bind /home /srv/nfsv4/daten
- beim Start Freigabe einbinden
#/etc/fstab /home /srv/nfsv4/daten none bind 0 0
- nach Änderungen der /etc/exports Datei muss folgender Befehl ausgeführt werden, um die Datei neu einzulesen
exportfs -ra
- temporäre NFS-Freigabe definieren, ohne diese in /etc/exports permanent zu speichern.
exportfs -o rw,nohide,insecure 192.168.100.0/24:/srv/nfsv4/daten
- NFS Freigaben auf dem Client einbinden
mount -t nfs4 nfs-server:/ /mountpoint
- NFS über SSH mit dem Client verbinden, der Port 2049 des NFS-Servers ist auf dem Client unter Port 8888 erreichbar.
ssh -L 8888:localhost:2049 nfs-server.domain.tld mount -t nfs4 -o port=8888,proto=tcp localhost:/remote /mnt/remote
in der Datei /etc/exports werden die Freigaben und Berechtigungen eingetragen
- Freigabe "netlogon" wird für das Netzwerk 192.168.2.0 freigegeben.
/netlogon 192.168.2.0/255.255.255.0(sync,rw)
Optionen von /etc/exports:
rechner.domain.de
Angabe eines konkreten Rechners (oder auch IP-Adresse)
@Gateways
Bezug auf eine Netzgruppe, die der Datei /etc/netgroup definiert sein muss
*.domain.de
Angabe von Mustern; hier: alle Rechner aus der Domäne »domain.de«
192.168.100.0/255.255.255.0
192.168.100.0/22
Angabe von IP-Netwerken inklusiver Subnetzmaske, welche für den
Fall, dass allein führende Bits zur Maskenbildung herangezogen werden, auch
als Anzahl der Bits (22 im Beispiel) spezifiziert werden kann.
Jeder Angabe eines Clients kann eine Liste vom Optionen folgen, die den Zugriff
auf die exportierten Daten steuern. Innerhalb der kommaseparierten Liste sind
keine Leerzeichen statthaft! Mögliche Werte sind:
secure, insecure
Client-Anfragen werden nur von vertrauenswürdigen Ports (Portnummern unterhalb
1024) akzeptiert (»secure«, Voreinstellung); mit »insecure«
werden auf Anfragen an höhere Ports akzeptiert
ro, rw
Das Verzeichnis wird schreibgeschützt (»read only«, Voreinstellung)
bzw. mit vollen Lese- und Schreibrechten für den Client (»read/write«)
exportiert
sync, async
Der Server darf den Vollzug eines Schreibvorgang dem Client erst melden, wenn
die Daten tatsächlich auf die Platte geschrieben wurden (Ausschalten des
Plattencaches). Die Voreinstellung ist async.
wdelay, no_wdelay
Die Option wird nur in Zusammenhang mit »sync« beachtet und erlaubt
dem Server die Bestätigung eines Schreibvorgangs zu verzögern, falls
mehrere Schreibvorgänge von einem Client zur gleichen Zeit im Gange sind.
Anstatt jeden zu bestätigen, sendet der Server nur eine einzige Antwort nach
Vollzug aller Schreiboperationen (betrifft »wdelay«, Voreinstellung).
hide, nohide
Exportiert der Server ein Verzeichnis, in dem wiederum ein anderes Dateisystem
gemeountet ist, so wird dieses nicht an einen Client exportiert (»hide«,
Voreinstellung); die »nohide«-Option (also den impliziten Export)
funktioniert jedoch nur, wenn es sich bei der Clientangabe um einen Rechnernamen
(keine Wildcards, IP-Netzwerke und Netzgruppen!) handelt.
subtree_check, no_subtree_check
Werden nur Teile eines Dateisystems vom Server exportiert, so muss der Server
prüfen, dass Zugriffe nur auf Dateien erfolgen, die innerhalb dieses Teilbaums
liegen (»subtree_check«, Voreinstellung). Dies erhöht zwar die
Sicherheit allerdings auf Kosten der Geschwindigkeit, sodass die Prüfung
mit »no_subtree_check« abgeschalten werden kann.
root_squash, no_root_squash
Root erhält die UserID des Pseudobenutzers »nobody«, womit der
Root-Benutzer des Client-Rechners keine Root-Rechte auf dem vom Server importierten
Verzeichnis erhält (Voreinstellung); mit »no_root_squash« bleiben
die Root-Rechte auf Clientseite auf dem Verzeichnis erhalten.
all_squash, no_all_squash
Alle Zugreifenden erhalten die Nobody-UID; Voreinstellung ist »no_all_squash«,
womit die Nutzerkennungen erhalten bleiben
anongid=gid
Squashing der Gruppe; die Gruppen-ID wird auf »gid« gesetzt. Bei dieser
Option kann Root entscheiden, mit welcher Server-GID die Client-Benutzer arbeiten
sollen, sobald sie Zugriff auf den Server haben
anonuid=uid
Squashing des Benutzers. Die zugreifenden Benutzer bekommen die UID »uid«
verpasst
exportfs rechner.de:/home/user | Temporär ein Verzeichnis freigeben (im Beispiel für den Computer "rechner.de" das Verz. "/home/user" |
exportfs -u rechner.de:/home/user | deaktiviert die Freigabe |
exportfs -ra | aktualisiert den Server bei Änderungen an der /etc/exports |
zur Diagnose | |
showmount | |
showmount -e rechner.de | zeigt Freigaben auf dem Rechner an |
nfsstat |
Einbinden von Laufwerken auf dem Client
mount -t nfs rechner.de:/Freigabe /mnt/network/
durch den Eintrag in /etc/fstab, kann man das mounten automatisieren.
# NFS-Einträge
192.168.2.100:/Freigabe /mnt/net nfs user,noauto 0 0
Finger Dienst
der Dienst zeigt Infos zum Rechner auf dem er läuft, oder des Benutzers, wenn
das in einer Datei hinterlegt ist.
Paket fingerd
Eintrag in /etc/inetd.conf
finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd
Client
safe_finger Zeigt Benutzer
oder
finger
finger USER - zeigt Info über den User
Eintrag in /etc/hosts.allow
# Finger ist jedem erlaubt, aber root wird per Mail darüber informiert
fingerd: ALL: (finger @%h | mail -s "finger from %h" root)
-Clients müssen auf dem PC deaktiviert werden, des weiteren muss der Rechner mindestens 2 Netzwerkkarten besitzen, besser noch drei, die dritte kann dann zum Fernzugriff benutzt werden.
Ethernet Schnittstellen konfigurieren
ifconfig eth1 -arp promisc 0.0.0.0 up ifconfig eth2 -arp promisc 0.0.0.0 up brctl addbr br0 brctl addif br0 eth1 brctl addif br0 eth2 ifconfig br0 up
brctl addbr br0 - erstellt das Bridge-Device mit dem Namen br0
brctl addif br0 eth1 - ordnet die Schnittstelle den Bridge-Device zu
das Tool brctl ist bei Debian im Paket bridge-utils enthalten. Die Datenquelle für die angesetzten Netzwerk-Sniffer Wireshark oder tcpdump ist das Bridge-Device br0.
- zum Traffic messen kann vnstat oder darkstat (benötigt libpcap) benutzt werden.
vnstat -u -i br0 -l
-u - Datenbankupdate
-i - Interface festlegen
-l - Liveupdate
-h - Traffic nach Stunde sortiert
-w - Traffic nach Wochen sortiert
-d - Tagesausgabe des Traffic
-m - Monatsdaten
- Netzwerkschnittstelle ermitteln
vnstat --iflist
- neue Datenbank anlegen
vnstat -u -i eth0
- Benutzerrechte setzen
chown -R vnstat:vnstat /var/lib/vnstat/
- Verzeichnis der Datenbank
/var/lib/vnstat
darkstat -i eth0
die Ausgabe von darkstat erfolgt unter http://localhost:667/
Empfohlene Pakete | Beschreibung |
---|---|
ipv6calc | IPv6 errechnen |
iproute | |
iputils-ping | |
iputils-tracepath | |
ndisc6 | IPv6 Diagnostic Tools apt-get install ndisc6 |
rdnssd | IPv6 Recursive DNS Server apt-get install rdnssd |
wide-v6-client | v6 Client apt-get install wide-v6-client |
tayga | NAT64 Gateway, bietet für IPv4 Clients ein Gateway ins IPv6 Netz. IPv6 Adressen werden zu IPv4 Adressen umgesetzt RFC6052 |
totd | DNS64 Proxy |
Kerneleinstellungen
Code maturity level options / [*] Prompt for development and/or incomplete code/drivers
Networking support / Networking options
- Network packet filtering (replaces ipchains)
- IP: tunneling
- The IPv6 protocol (EXPERIMENTAL)
als Modul
- IPv6: enable EUI-64 token format
- IPv6: disable provider based address
Modul laden ip6t_eui64 und ip6_tables
- Module Modus einstellen
alias net-pf-10 ipv6 # automatically load IPv6 module on demand alias net-pf-10 off # disable automatically load of IPv6 module on demand modprobe ipv6
- Schnittstelle starten/stoppen/Status anzeigen
ip link set up dev eth0 ip link set down dev eth0 ip link show dev eth0
Netzwerkkarten Konfiguration IPv6 anzeigen
ip -6 addr show dev eth0 ip -f inet6 addr show ifconfig eth0 |grep "inet6 addr:"
Routen anzeigen
ip -6 route show dev eth0 ip -f inet6 route show route -A inet6 route -A inet6 | grep -w "eth0"
Route eintragen oder löschen
ip -f inet6 route add ::/0 dev eth0 ip -f inet6 route del ::/0 dev eth0 ip -6 route del ::/0 dev eth0
- statt der Route die unter #linux gesetzt wird
::/0 :: U 1 0 0 sit1
- diese Route eintragen
ip -f inet6 route add 2001::/16 dev sit1 ip -f inet6 route add 2002::/16 dev sit1 ip -f inet6 route add 3ffe::/16 dev sit1
- Route zum nächsten Router setzen (unter der IP 192.88.99.1 ist immer der nächste Router zu finden)
route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0
Neighbor Cache anzeigen
ip neighbor show ip neigh show
Verbindungen testen
ping6 -I eth0 fe80::207:e9ff:fe0c:5c34 ping6 -I eth0 host6.de
DNS Abfrage der IPv6 Adressen
host -t A6 host.domain.de host -t AAAA host.domain.de host -n <IPv6> host <IPv6>
Tunnel zu einem Tunnelbroker erstellen
ip tunnel add sit1 mode sit remote <IPv4 Remote Host> local <IPv4 local> ifconfig sit0 tunnel ::xxx.yyy.zzz.zzz up ifconfig sit1 add 2002:3ee0:3972:1::1/64
ip link set sit1 up
ip address add dev sit1 <IPv6-Adresse/Länge des Subnetzes> ip address add dev sit1 3ffe:80a0:0000:0e00::1d6/128
ip route add 2000::/3 dev sit1 route -A inet6 add default gw ::xxx.yyy.zzz.zzz
Verbindung Protokollieren
tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6
Bei tcpdump werden zur Geräuschminimierung bei der Paket-Filterung Ausdrücke
eingesetzt:
icmp6: ICMPv6 Datenverkehr wird gefiltert
ip6: IPv6 Datenverkehr (inkl.ICMPv6) wird gefiltert
proto ipv6: getunnelter IPv6-in-IPv4 Datenverkehr wird gefiltert
Ebenfalls sind einige Kommandozeilen-Optionen sehr hilfreich, um detailliertere
Informationen über die Pakete erlangen und protokollieren zu können.
Für ICMPv6 Pakete sind hauptsächlich interessant:
"-s 512": Bei der Aufzeichnung der Pakete wird die
zu Aufzeichnungslänge auf 512 bytes vergrößert
"-vv": wirklich sehr ausführliche Ausgabe
"-n": Adressen werden nicht in Namen aufgelöst.
Dies ist hilfreich, wenn die Reverse-DNS-Auflösung nicht sauber arbeiten
sollte
Test der Verbindung
- Localhost anpingen ping6 -c 1 ::1
- Ping zu einer lokalen IP ping6 -I eth0 fe80::210:61ff:feb0:38f5
ping6 -c 2 www.6bone.net ping6 ugate.hawo.ipv6.uni-erlangen.de traceroute6 join6win.ipv6.uni-muenster.de
- mit dem Konqueror eine IPv6 IP aufrufen (localhost) "http://[::1]/"
auf einem Debiansystem kann man den SixXS Client als Paket installieren.
apt-get install aiccu
hinter einem IPv4 NAT Router benötigt man noch einen TUN/TAP Treiber, denn kann man unter Linux wie folgt eingerichtet werden.
modprobe tun
Die Konfigurationsdatei findet man nach der Installation des Clients unter /etc/aiccu.conf
# aiccu.conf für erste Tests username SIXXS-Benutzername password Passwort server tic.sixxs.net automatic true verbose true daemonize false behindnat true
Option | Beschreibung |
---|---|
daemonize false | true/false Programm nicht im Hintergrund ausführen zum Testen, wenn alles läuft, oder aicce als Daemon laufen soll, dann auf true setzen. |
automatic true | automatischer Aufbau des Tunnels |
behindnat true | wenn der Rechner hinter einem NAT Router steht |
Befehle | Beschreibung |
aiccu start | TunnelClient starten |
aiccu stop | Tunnelverbindung beenden, wenn aiccu als Daemon oder im Hintergrund ausgeführt wird, im Vordergund mit STRG+C beenden. |
aiccu test | Tunnelverbindung prüfen |
Nach erfolgreicher Registrierung bie SixXS und Beantragung des Tunnel, in der aiccu.conf noch die ID des Tunnels eintragen.
tunnel_id Txxxxx
nach dem ausführen von aiccu start wird ein Tunnelinterface erstellt, mit dem Namen sixxs und der IP die einen zugewiesen wurde.
dann noch die Route korregieren
ip -6 route add 2000::/3 dev sixxs
und die Verbindung kann getestet werden.
ping6 www.sixxs.net ping6 www.6bone.net traceroute6 sixxs.net
Pakte radvd (Router Advertisement Daemon) ist noch zu installieren. Radvd verteilt im Netzwerk den Präfix (Advertisement).
Die Konfigurationsdatei /etc/radvd.conf muss beim ersten Start wenigstens folgenden Eintrag erhalten.
interface eth0 { AdvSendAdvert on; prefix 2001:db8::0/64 { }; };
Eintrag in /etc/network/interface (einfache Konfiguration)
iface sixxs inet6 manual up /etc/init.d/aiccu start post-up ip -6 route add 2000::/3 dev sixxs post-down ip -6 route del 2000::/3 dev sixxs down /etc/init.d/aiccu stop
erweiterte Konfiguration
iface sixxs inet6 manual up /etc/init.d/aiccu start up /etc/network/ipv6-routing.sh || true # up /etc/network/fw-ipv6.sh start-desktop || true up /etc/network/fw-ipv6.sh start-router || true post-up /etc/init.d/radvd start post-down /etc/init.d/radvd stop down /etc/network/ipv6-routing.sh || true down /etc/init.d/aiccu stop down /etc/network/fw-ipv6.sh stop || true
Scripte ipv6-routing.sh (Routingscript) und fw-ipv6.sh (Firewallscript) sind noch zu erstellen. Das Modul für die Firewall muss auch noch geladen werden. Wenn alles läuft, das Modul noch in die /etc/modules eintragen, das es automatisch geladen wird.
modprobe ip6_tables
#!/bin/sh # fw-ipv6.sh # IPv6 Firewall Script # PATH=/sbin:/bin:/usr/sbin:/usr/bin IP6=ip6tables FW=/sbin/${IP6} # INPUT PORTS definieren SSH=22 test -f $FW || exit 0 $FW -P INPUT ACCEPT $FW -P OUTPUT ACCEPT $FW -P FORWARD ACCEPT $FW -A FORWARD -s ff00::/8 -j ACCEPT $FW -A FORWARD -s fe80::/10 -j ACCEPT $FW -A INPUT -p tcp --dport $SSH -j ACCEPT $FW -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $FW -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $FW -A FORWARD -s '!' 2001:db8::/64 -j DROP $FW -A INPUT -s '!' 2001:db8::/64 -j DROP
Download: ipv6-routing.sh, fw-ipv6.sh
Download: ethtool
mit Ethtool kann man die Netzwerkverbindung steuern und auch Missstände diagnostizieren.
rythmisches Blinken der LEDs der Netzwerkkarte, kann zum auffinden des Ports am Switch dienen
ethtool -p eth0
oder mit dem Shell Script, aufgerufen wird der Script durch script.sh eth0
#!/bin/bash while true ; do ifconfig $1 down sleep 2 ifconfig $1 up sleep 2 done
Autonegration neu starten, falls beim aushandeln der Netzwerkgeschwindigkeit ein Fehler aufgetreten ist
ethtool -r eth0
Autonegration deaktivieren und auf einen festen Wert setzen
ethtool -s eth0 speed 1000 duplex full autoneg off
Des weiteren kann man ethtool für Wake on Lan nutzen.
Pakete
pppoe - PPP over Ethernet driver
pppstatus - console-based PPP status monitor
pppoeconf - configures PPPoE/ADSL
/etc/ppp/pap-secrets - Benutzernamen und Passwort für PAP Authentifizierung
/etc/ppp/chap-secrets - Benutzernamen und Passwort für CHAP Authentifizierung
/etc/ppp/peers/dsl-provider - DSL Zugangsparameter
/etc/ppp/options - Optionen für PPP Einwahl
/etc/resolv.conf - DNS-Server Einstellungen
pap-secrets und chap-secrets sind im gleichen Format aufgebaut.
# Beispiel einer /etc/ppp/pap-secrets oder /etc/ppp/chap-secrets "[Anschlusskennung][T-onlineNr]0001@t-online.de" * "geheim" "username@provider.tld" * "geheim" "provider/username" * "geheim"
wenn mehrere Provider für DSL benutzt werden, legt man für jeden Provider im Verzeichnis /etc/ppp/peers/ gesonderte Konfigurationsdateien an. z.B. DSL-IPv4, DSL-IPv6
# IPv4 PPPOE Einwahl mit dynaamischer IP user username@provider.tld pty "pppoe -I eth0 -m 1404 -U" noipdefault usepeerdns defaultroute hide-password lcp-echo-interval 20 lcp-echo-failure 3 connect /bin/true noauth persist noaccomp default-asyncmap
Option | Beschreibung |
---|---|
noip | man erhält keine IP-Adresse vom Provider |
noipdefault | IP Adresse vom Provider beziehn |
usepeerdns | Provider DNS-Server benutzen |
defaultroute | Default Route setzen |
persist | Dauerverbindung (Achtung bei Zeittarifen) |
noauth | keine automatische Authehtifizierung |
hide-password | Passwort wird nicht protokolliert |
# IPv6 PPPOE Einwahl mit IP Zuordnung über Script pty "pppoe -I eth0 -m 1404 -U" linkname default0 noip defaultroute ... +ipv6 ipv6cp-use-ipaddr debug
wenn das Script zum IP-Adressenzuweisung unter /etc/ppp/ipv6-up.d/ liegt startet der ppp Daemon die Einwahl automatisch.
#!/bin/sh PPP_IFACE="$1" PRG="/sbin/ip -6" IPV6ADDR=2001:4f5::1/48 $PRG addr add $IPV6ADDR dev $PPP_IFACE $PRG route add default dev $PPP_IFACE $PRG route add 2000::/3 dev $PPP_IFACE
Einwahl, je nachdem ob nur ein oder mehrere Provider eingerichtet wurden.
pon oder pon DSL-IPv6
Verbindung trennen
poff
- ZeroConf eine IP aus dem APIPA Bereich dem WLAN Adapter zuteilen
avahi-autoipd -D ath0
- Avahi Daemon starten
avahi-daemon -D
- listet lokale Dienste im Netz auf
avahi-discover
- nach nDNS Packeten über WLAN suchen
tcpdump -tni ath0 port mdns
- DNS Server für das Interface mit dem Parameter dns-nameservers setzen
#/etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.2.130 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.254 dns-nameservers 192.168.2.254 mtu 1452
- DNS per resolv.conf fest einstellen, Beispiel für einen Rechner auf dem ein DNS Server installiert ist.
# /etc/resolv.conf nameserver ::1 nameserver 127.0.0.1 search domain.tld
- per Konfigurationsdatei
# /etc/3/dhclient.conf ... prepend domain-name-servers 85.214.73.63; ...
# /etc/3/dhclient.conf ... request subnet-mask, broadcast-address, time-offset, routers, domain-name, # domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers; ...
den Eintrag "domain-name-servers" deaktivieren, so wird der vom Server übermittelter Wert nicht berücksichtigt.
/etc/resolvconf/resolv.conf.d/base - Standard DNS setzen
/etc/resolvconf/resolv.conf.d/head - Datei wird als erste abgearbeitet, hier kann der DNS gesetzt werden, der als erstes abgefragt werden soll.
/etc/resolvconf/resolv.conf.d/tail
# /etc/resolvconf/resolv.conf.d/tail nameserver 8.8.8.8 search local.zz
- mit Resolvconf kann man auch einen temporären DNS Server setzen
echo "nameserver 192.168.2.1" | resolvconf -a tempdns
- DNS Eintrag wieder entfernen
resolvconf -d tempdns
- ersten DNS des Systems setzen
echo "nameserver 192.168.2.254" >> /etc/resolvconf/resolv.conf.d/head
Pakete für ubuntu
network-manager
network-manager-gnome
network-manager-kde - ist ein virtuelles Paket von plasma-widget-networkmanagement
network-manager-openvpn
Dateien des Networkmanager | |
---|---|
/etc/NetworkManager/system-connections | Verzeichnis der angelegten Netzwerkverbindungen, z.B. LAN, VLAN, VPN, u.a. |
/var/lib/NetworkManager/NetworkManager.state | Status des Networkmanager |
Befehle des NetworkManagerCommandLine Tool | |
nmcli dev | Device anzeigen |
nmcli con up id <Name der Verbindung> | Verbindung starten (Schreibweise der Verbindung wird berücksichtigt) |
nmcli con down id <Name der Verbindung> | Verbindung stoppen |
nmcli networking on | Netzwerk ein |
nmcli networking off | Netzwerk aus |
- Network-Manager Service stoppen und deaktiviveren
service network-manager stop update-rc.d network-manager disable
# /var/lib/NetworkManager/NetworkManager.state NetworkingEnabled=false
- Einstellungen in /etc/network/interfaces, alle hier aufgeführten Netzwerkinterfaces werden von dem NetzwerkManager nicht mehr berücksichtigt.
auto lo iface lo inet loopback
- NetworkManager managed=true setzen
# /etc/NetworkManager/nm-system-settings.conf # # /etc/default/NetworkManager # [main] plugins=ifupdown,keyfile [ifupdown] # managed=false managed=true
zur Verwatung der Verbindungen muss das Miniprogramm "Netzwerkverwaltung" hinzugefügt werden, wenn es nicht vorhanden sein.
- Einstellungen in /etc/network/interfaces, alle hier aufgeführten Netzwerkinterfaces werden von dem NetzwerkManager nicht mehr berücksichtigt.
auto lo iface lo inet loopback
- in der Datei /var/lib/NetworkManager/NetworkManager.state
kann man den Network-Manager aktivieren
NetworkingEnabled=true
Miniprogramm Netzwerkverwaltung
- Netzwerkverbindung neu starten
service networking restart
Verzeichnisse | |
---|---|
/etc/netplan | eigene Konfigurationsdateien |
/run/netplan | wird zur Laufzeit des Systems generiert |
Befehle | |
netplan generate | Konfiguration nach /run/netplan übernehmen, aber erst nach Neustart der Netzwerk-Dienste angewendet |
netplan apply | wie oben, Konfiguration wird sofort übernommen und angewendet |
netplan try -timeout 180 | neue Konfiguration wird für den angegebenen Zeitraum angewendet (zur Probe). Ideal für den Remote Einsatz, wenn die neue Konfiguration fehlerhaft ist. wird die alte im Beispiel nach 180 Sek. wieder aktiviert. |
systemctl restart network-manager | Network Manager neu starten |
systemctl restart system-networkd | Systemd Netzwerk Dienst neu starten |
- Schnittstellen werden vom NetworkManager konfiguriert, die Schnittstellen werden dann erst erstellt, wenn sich jemand am Desktop anmeldet. Benutzt man vor der Anmeldung eine Konsole, ist das Netzwerk nicht verfügbar.
# /etc/netplan/01-network-manager-all.yaml network: version: 2 renderer: NetworkManager
- Schnittstellen werden von sysemd-networkd konfiguriert
# /etc/netplan/01-network-manager-all.yaml network: version: 2 renderer: networkd ethernets: eth0: match: macaddress: xx:xx:xx:xx:xx:xx set-name: eth0 link: eth0 dhcp4: yes vlans: vlan30: id: 30 link: eth0 dhcp4: yes vlan40: id: 40 link: eth0 dhcp4: no dhcp6: no addresses: - 192.168.40.15/24 - fd01:edda:edda:40::15/64 gateway4: 192.168.40.254 nameservers: addresses: [192.168.40.254, 8.8.8.8, fd01:edda:edda:40::254]
!!! Schreibweise in der .yaml beachten, Comments mit # beginnen, einrücken mit zwei Leerzeichen wie in Python üblich !!!
Fehlermeldung
/etc/netplan/01-network-manager-all.yaml:5:14: Invalid YAML: inconsistent indentation:
sudo apt install yamllint yamllint /etc/netplan/01-network-manager-all.yaml
- ping Test über das Interface
ping -I vlan30 192.168.30.254
- systemd Network log anzeigen
journalctl -f -u systemd-networkd
- systemd Network Links
networkctl
- Device Link und IP-Adressen anzeigen
ip link show ip addr show
Avahi Daemon (freie Implementation von Zeroconf) deaktivieren
/etc/default/avahi-daemon
AVAHI_DAEMON_START=0
Ubuntu Netzwerkmanager stoppen
/etc/dbus-1/event.d/25NetworkManager stop
WLAN Karteneinstellungen löschen
wlanconfig ath0 destroy
http://www.portknocking.org/
fwknop
Knockd
http://www.zeroflux.org/projects/knock
Konfigurationsdatei /etc/knockd.conf
# /etc/knockd.conf [options] UseSyslog logfile = /var/log/knockd.log [opencloseSSH] sequence = 7000:tcp,8000:tcp,9000:tcp seq_timeout = 10 tcpflags = syn command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 --syn -j ACCEPT [closeSSH] sequence = 9000:tcp,8000:tcp,7000:tcp seq_timeout = 10 tcpflags = syn command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 --syn -j ACCEPT
Port öffnen
knock 192.168.0.1 7000:tcp,8000:tcp,9000:tcp
Port schließen
knock 192.168.0.1 9000:tcp,8000:tcp,7000:tcp
/etc/fwknop/access.conf - Regeldatei des Servers
/etc/fwknop/fwknop.conf -
fwknop -A tcp/22 -a 192.168.1.136 -D 192.168.111.20
-A Service der freigeschaltet werden soll
-a Hostname oder IP des Clients
-D Hostname oder IP des Servers
- Parameter -r gibt die IP der Schnittstelle frei, mit dem zweiten Befehl wird eine IP angefordert.
dhclient -v -r eth0 dhclient -v eth0
in etc/conf.modules eintragen
alias eth0 ne
alias eth1 ne
options ne io=0x300,0x340 irq=11,10
anschliessend sollte IF-CONFIG die zweite
NW Schnittstelle anzeigen (eth1)
bei PCI Karten genügt in der Regel der Aliaseintrag
PPPOE Paket von www.roaringpenguin.com für ADSL