tobsen
22.07.07, 12:31
Salve, ich verzweifel hier gerade an der Qemu Netzwerkkonfiguration, wie einfach ist dagegen doch der VMWare-Server. ;)
Ich möchte auf dem Host verschiedene Gäste laufen lassen, die sowohl eine IP vom Router bekommen und dann auch in dem Netz zu erreichen sind, als auch ein Host-Only Netz haben, in dem der Verkehr nicht den Host verlässt (z.B. mit IPs wie 10.0.0.2). Ersteres hab ich mittlerweile mit Hilfe der Links im Tutorial hingefrickelt:
Erst bastel ich mir ne Bridge auf dem Host:
#!/bin/sh
################################################## #############################
#
# Setup a network bridge instead of the main network interface.
# This bridge can then be used to connect further (virtual) interfaces to the LAN, eg. Qemu's tap devices.
# Starting the bridge leads to ca. 5 seconds of "network unreachable".
# Network interface that shall be replaced by a bridge.
HOSTIF=eth1
#
################################################## #############################
# Names used during bridge construction.
BRIF=br0
NEWHOSTIF=$BRIF$HOSTIF
# Check for root permissions
if [ `id -u` -gt 0 ]; then
echo "Need root permissions to run."
exit 1
fi
# Check for necessary tools
IFCONFIG=`which ifconfig`
IFRENAME=`which ifrename`
BRCTL=`which brctl`
IFUP=`which ifup`
IFDOWN=`which ifdown`
if [ -z $IFCONFIG ]; then
echo "ifconfig not found (make sure this machine has networking, and ifconfig is in the path)"
exit 127
fi
if [ -z $IFRENAME ]; then
echo "ifrename not found (is package ifrename installed?)"
exit 127
fi
if [ -z $BRCTL ]; then
echo "brctl not found (is package bridge-utils installed?)"
exit 127
fi
if [ -z $IFUP -o -z $IFDOWN ]; then
echo "ifup/ifdown not found (is this not a Debian distro?)"
exit 127
fi
# Main functionality
case "$1" in
start)
echo "Creating bridge $BRIF with $HOSTIF"
# Deactivate current network setup
$IFDOWN $HOSTIF
$IFCONFIG $HOSTIF 0.0.0.0 down
# Rename host interface
$IFRENAME -i $HOSTIF -n $NEWHOSTIF
# Create bridge
$BRCTL addbr $HOSTIF
$BRCTL stp $HOSTIF off
$BRCTL setfd $HOSTIF 1
$BRCTL addif $HOSTIF $NEWHOSTIF
$BRCTL show
# Activate bridge interfaces
$IFCONFIG $HOSTIF up
$IFCONFIG $NEWHOSTIF up
# Configure new bridge to match old config
echo "Configuring bridge $BRIF"
$IFUP $HOSTIF
;;
stop)
echo "Removing bridge $BRIF which contains $NEWHOSTIF"
# Deactivate interfaces
$IFDOWN $HOSTIF
$IFCONFIG $NEWHOSTIF down
$IFCONFIG $HOSTIF down
# Remove bridge
$BRCTL delif $HOSTIF $NEWHOSTIF
$BRCTL delbr $HOSTIF
# Rename bridged interface to old name
$IFRENAME -i $NEWHOSTIF -n $HOSTIF
# Activate old network setup
$IFCONFIG $HOSTIF up
# Reconfigure network to match original network setup
$IFUP $HOSTIF
;;
status)
$BRCTL show
;;
*)
echo "Usage: $0 [start|stop|status]"
;;
esac
exit 0
Danach starte ich die virtuelle Maschine (hier ein Linuxgast) mit folgendem Befehl:
kvm -nographic -hda vdisk.img -m 512 -net nic -net tap,script=./addtobridge -net nic
wobei das addtobridge so aussieht:
#!/bin/bash
# Connects the interface given in $1 to the bridge specified below.
BRIF=eth1
#echo "Connecting interface $1 to bridge $BRIF"
/sbin/ifconfig $1 up
/usr/sbin/brctl addif $BRIF $1
Danach hat der Gast eine IP aus dem vom Router verwalteten DHCP-Netz, und eine unkonfigurierte zweite Netzwerkkarte, die ich ja nach meinem Verständnis mittels des zweiten "-net nic" erzeugt habe.
Jetzt steh ich bezüglich der Konfiguration der zweiten Karte auf dem Schlauch: Wie krieg ich die in ein Host-Only Netz, so dass darüber Verbindungen zwischen den Gästen laufen können _ohne_ über den Router zu müssen? Wenn ich jetzt ein pump auf dem zweiten Interface laufen lasse bekomme ich eine zweite IP aus dem Routernetz, das bring mir nichts. :(
Danke im Voraus & schönen Sonntag,
tobsen
Ich möchte auf dem Host verschiedene Gäste laufen lassen, die sowohl eine IP vom Router bekommen und dann auch in dem Netz zu erreichen sind, als auch ein Host-Only Netz haben, in dem der Verkehr nicht den Host verlässt (z.B. mit IPs wie 10.0.0.2). Ersteres hab ich mittlerweile mit Hilfe der Links im Tutorial hingefrickelt:
Erst bastel ich mir ne Bridge auf dem Host:
#!/bin/sh
################################################## #############################
#
# Setup a network bridge instead of the main network interface.
# This bridge can then be used to connect further (virtual) interfaces to the LAN, eg. Qemu's tap devices.
# Starting the bridge leads to ca. 5 seconds of "network unreachable".
# Network interface that shall be replaced by a bridge.
HOSTIF=eth1
#
################################################## #############################
# Names used during bridge construction.
BRIF=br0
NEWHOSTIF=$BRIF$HOSTIF
# Check for root permissions
if [ `id -u` -gt 0 ]; then
echo "Need root permissions to run."
exit 1
fi
# Check for necessary tools
IFCONFIG=`which ifconfig`
IFRENAME=`which ifrename`
BRCTL=`which brctl`
IFUP=`which ifup`
IFDOWN=`which ifdown`
if [ -z $IFCONFIG ]; then
echo "ifconfig not found (make sure this machine has networking, and ifconfig is in the path)"
exit 127
fi
if [ -z $IFRENAME ]; then
echo "ifrename not found (is package ifrename installed?)"
exit 127
fi
if [ -z $BRCTL ]; then
echo "brctl not found (is package bridge-utils installed?)"
exit 127
fi
if [ -z $IFUP -o -z $IFDOWN ]; then
echo "ifup/ifdown not found (is this not a Debian distro?)"
exit 127
fi
# Main functionality
case "$1" in
start)
echo "Creating bridge $BRIF with $HOSTIF"
# Deactivate current network setup
$IFDOWN $HOSTIF
$IFCONFIG $HOSTIF 0.0.0.0 down
# Rename host interface
$IFRENAME -i $HOSTIF -n $NEWHOSTIF
# Create bridge
$BRCTL addbr $HOSTIF
$BRCTL stp $HOSTIF off
$BRCTL setfd $HOSTIF 1
$BRCTL addif $HOSTIF $NEWHOSTIF
$BRCTL show
# Activate bridge interfaces
$IFCONFIG $HOSTIF up
$IFCONFIG $NEWHOSTIF up
# Configure new bridge to match old config
echo "Configuring bridge $BRIF"
$IFUP $HOSTIF
;;
stop)
echo "Removing bridge $BRIF which contains $NEWHOSTIF"
# Deactivate interfaces
$IFDOWN $HOSTIF
$IFCONFIG $NEWHOSTIF down
$IFCONFIG $HOSTIF down
# Remove bridge
$BRCTL delif $HOSTIF $NEWHOSTIF
$BRCTL delbr $HOSTIF
# Rename bridged interface to old name
$IFRENAME -i $NEWHOSTIF -n $HOSTIF
# Activate old network setup
$IFCONFIG $HOSTIF up
# Reconfigure network to match original network setup
$IFUP $HOSTIF
;;
status)
$BRCTL show
;;
*)
echo "Usage: $0 [start|stop|status]"
;;
esac
exit 0
Danach starte ich die virtuelle Maschine (hier ein Linuxgast) mit folgendem Befehl:
kvm -nographic -hda vdisk.img -m 512 -net nic -net tap,script=./addtobridge -net nic
wobei das addtobridge so aussieht:
#!/bin/bash
# Connects the interface given in $1 to the bridge specified below.
BRIF=eth1
#echo "Connecting interface $1 to bridge $BRIF"
/sbin/ifconfig $1 up
/usr/sbin/brctl addif $BRIF $1
Danach hat der Gast eine IP aus dem vom Router verwalteten DHCP-Netz, und eine unkonfigurierte zweite Netzwerkkarte, die ich ja nach meinem Verständnis mittels des zweiten "-net nic" erzeugt habe.
Jetzt steh ich bezüglich der Konfiguration der zweiten Karte auf dem Schlauch: Wie krieg ich die in ein Host-Only Netz, so dass darüber Verbindungen zwischen den Gästen laufen können _ohne_ über den Router zu müssen? Wenn ich jetzt ein pump auf dem zweiten Interface laufen lasse bekomme ich eine zweite IP aus dem Routernetz, das bring mir nichts. :(
Danke im Voraus & schönen Sonntag,
tobsen