pregos blog /me… prego!

7Dez/102

KVM, interne Maschine, RDP Zugriff von extern

Wenn man mit KVM eine Maschine virtualisiert hat, und diese dann in ein eigenes internes Netz haengt, z.B. 192.168.X.X, dann ist es zwar normalerweise moeglich via NAT ins Internet zu gehen, aber wie komme ich von extern auf diese Maschine. Konkrete Fragestellung bei mir war: Wie komme ich von extern per Remotedesktop auf die Maschine?

  • per SSH mit X-Forwarding auf der physikalischen einloggen und dann mit rdesktop, Beispiel:
 rdesktop -k de -u MYUSERNAME -g 1280x1024 192.168.2.2
  • mit netten iptables Regeln

Als erstes generell erlauben, dass Traffic auch an die internen Maschinen weitergeleitet werden darf:

iptables -I FORWARD -d 192.168.2.0/24 -j ACCEPT

Danach den entsprechenden Dienst einrichten, in diesem Fall RDP:

iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 --dport 3389 -j DNAT --to-destination 192.168.2.2:3389

Die iptables Regeln habe ich bereits vor einiger Zeit von meinen Cousin Emil Wagner per Mail bekommen. Danke dafuer!

29Sep/102

Howto: virsh console

Bei XEN gibt es den praktischen Befehl xm console domU-name und man hat von der physikalischen Maschine eine Konsole zu der virtuellen.

KVM bringt mit dem Befehl virsh console maschinenname die gleiche Funktion ebenfalls mit. Damit das ganze funktioniert muss - zumindest bei Debian - noch etwas nachgeholfen werden.  In der /etc/inittab muss die folgende Zeile relativ am Ende einkommentiert und entsprechend angepasst werden (change 9600 to 115200) werden:

T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100

Anschliessend noch in der /boot/grub/menu.lst in der Zeile die mit #kopt beginnt die folgenden Optionen anhaengen:

console=tty0 console=ttyS0,115200

und die Aenderungen mit dem Befehl update-grub uebernehmen.

Die erste Anpassung in der inittab bewirkt, dass man in ein fertig gestartetes Linuxsystem kommt. Die Anpassung mit der Kerneloption bewirkt, dass man auch vorher beim Systemstart bereits eine Konsole bekommt.

Hinaus kommt man dort  uebrigens wieder mit der Tastenkombination Strg+Alt Gr+9  ... wie damals, good old telnet times.

11Mai/1014

Hetzner EQ-Server + KVM && bridge

Vorneweg: Es ist ein Krampf bis ich es rausgefunden hatte...

Eine Bridge einrichten, dafuer:

aptitude install bridge-utils

und anschliessend die /etc/network/interfaces entsprechend anpassen:

### Hetzner Online AG - installimage
# Loopback device:
auto lo
iface lo inet loopback
 
# device: eth0
auto  eth0
iface eth0 inet manual
 
# bridge: br0
auto br0
iface br0 inet static
	address		188.XX.XX.142
	broadcast	188.XX.XX.191
	netmask		255.255.255.192
	gateway		188.XX.XX.129
 
	bridge_ports	eth0
	bridge_stp	on
	bridge_maxwait	5
 
	up		route add -host 188.XX.XX.160 gw 188.XX.XX.160
	up		route add -host 188.XX.XX.161 gw 188.XX.XX.161
	up		route add -host 188.XX.XX.162 gw 188.XX.XX.162

Dabei darauf auf die klassischen Fehler achten:

  1. echo 1 >> /proc/sys/net/ipv4/ip_forward
  2. iptables -P FORWARD ACCEPT

Wichtig war bei mir unter Ubuntu Linux auch noch in der /etc/sysctl.conf den folgenden Wert einzukommentieren:

 net.ipv4.ip_forward=1

Bei der Konfiguration der virtuellen Maschinen dann das Netzwerk ueber die bridge (br0) konfigurieren. Nachtraeglich kann man das sonst auch noch in der entsprechenden /etc/libvirt/quemu/MASCHINENNAME.xml anpassen:

    <interface type='bridge'>
      <mac address='54:52:00:3f:35:9d'/>
      <source bridge='br0'/>
    </interface>

In der Maschine selber ist es dann nur noch wichtig, die IP des Hauptsystems als Gateway einzutragen, ein Beispiel fuer die /etc/network/interfaces eines Gastes waere:

auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet static
	address		188.XX.XX.162
	broadcast	188.XX.XX.191
	netmask		255.255.255.192
	gateway		188.XX.XX.142

Die Informationen hier habe ich aus dem Blogeintrag: "Hetzner: EQ-Serie mit zusaetzlichen IP-Adressen (HowTo)" und den bridge-krams aus meinem Kopf...

[Update]

  • 2010-10-18: stp=on und sysctl Absatz hinzugefuegt
12Feb/101

Skript: Netzwerkinterface neustarten

Ich hatte eine Debian etch Maschine, virtualisiert mit KVM, bei der brach unter Last immer die Netzwerkverbindung zusammen. Reproduzierbar. Das Update auf Lenny brachte nix. Ich habe die Maschine gestern mit Lenny neu aufgesetzt und die Probleme existieren nicht mehr. Hier nun das Skript was ueberprueft ob eine Verbindung nach aussen moeglich ist und ggfs. das Interface neustartet, ich brauche es nicht mehr, aber bevor ich es loesche hier noch einmal dokumentiert:

#!/bin/bash
##
#  check if network is available and if not restart
#  the network interface
##
 
if ping -c 1 -w 1 -q www.google.de &>/dev/null; then
#  echo "Network is up, no further action required"
  echo ""&>/dev/null
else
  echo "Network is down, restarting the interface..."
  ifdown eth0 && ifup eth0
 fi