Sziasztok,
szeretnék pár virtuális gépet, hogy néhány "hálózati" dolgot könnyen ki tudjak próbálni.
A következő scripttel indítom a virtuális gépeket: (lent).
Röviden: létrehozok egy br0-át a brctl-el, két "tap" device-ot a tunctl-el, ezeket beszórom a br0-ba, és megmondom a kvm-nek, hogy használja szépen őket. Sok leírásba láttam így, amíg nem mondom ifconfiggal a br0-nak hogy up addig egyáltalán nincs hálózati kapcsolat a két virtuális gép között, ha felhúzom a br0-át akkor már van "ethernet" kapcsolat, viszont az IP csomagok még mindig nem jutnak át egyik TAP-ról a másikra. A kiinduló tap-on még megvannak a br0-án monitorozva is, de a másik tap-on már nem jelennek meg... Abból következtettek erre, hogy az ARP request-re jön válasz a másik végpontról, de a ping nem megy át... (ezt wiresharkkal is jól megnéztem :) ) Mi hiányzik ? A két gépen ifconfiggal statikusan konfigurálok egy-egy ip-t...
ifconfig eth0 10.10.10.10/24
ifconfig eth0 10.10.10.11/24
tévedek vagy így látnia kéne ? Esetleg a host gépen, kéne valamit még jól beállítani ?
Nem vagyok teljesen hülye a hálózatokhoz, de a tap, és br dolgokba teljesen új vagyok. Ha jól értem a br egy bridge, ethernet kapcsolat két hálózat között ? Tehát úgy viselkedik mint egy switch, vagy hub... ?
Előre is köszönöm a türelmet és a segítséget. A scriptet én írtam, így semmi se biztos :)
#!/bin/bash
function addbr
#$1 - name
{
#Set up bridge
sudo brctl show | grep $1 &> /dev/null
if [ $? -ne 0 ] ; then
sudo brctl addbr $1
sleep 1
sudo ifconfig $2 up
fi
}
function delbr
#$1 - name
{
sudo ifconfig br0 down
sudo brctl delbr $1
}
function addtap
#$1 - bridge device
#$2 - tap device
{
#setup network
sudo tunctl -b -u `whoami` -t $2
sleep 1
sudo ip link set $2 up
sleep 1
sudo brctl addif $1 $2
}
function deltap
#$1 - bridge device
#$2 - tap device
{
sudo brctl delif $1 $2
sleep 1
sudo ip link set $2 down
sleep 1
sudo tunctl -d $2
}
function initpid
{
PIDFILE=`mktemp`
}
function addpid
{
echo $! > $PIDFILE
}
function waitforpids
{
for i in `cat $PIDFILE` ; do
wait $i
done
}
initpid
addbr br0
addtap br0 ktap0
sudo kvm -hda images/base.img --snapshot -net nic,vlan=0,model=virtio,macaddr=d8:d3:85:12:65:10 -net tap,vlan=0,ifname=ktap0,script=no,downscript=no &
addpid
addtap br0 ktap1
sudo kvm -hda images/base.img --snapshot -net nic,vlan=0,model=virtio,macaddr=d8:d3:85:12:65:11 -net tap,vlan=0,ifname=ktap1,script=no,downscript=no &
addpid
waitforpids
deltap br0 ktap0
deltap br0 ktap1
delbr br0
Megoldás:
Paranoid iptables a notebook-on...
sudo iptables -A FORWARD -i br0 -j ACCEPT
ez az új "rule" megoldja. Köszönöm szépen a segítséget mindenkinek.
- 1638 megtekintés
Hozzászólások
Ennyire hülye kérdés, vagy senki nem tudja, vagy nincs rá ideje ?
röviden: up.
Köszi. előre is.
- A hozzászóláshoz be kell jelentkezni
Valaki ? Bárki ? Néhány ötlet, hogyan kezdjem el "debuggolni?" Nem adtam ám, fel, kitartóan googlizom... ehe, ehe.
- A hozzászóláshoz be kell jelentkezni
A virt. gépeken mi a
route -n
kimenete?
A host-on a
brctl show
kimete?
- A hozzászóláshoz be kell jelentkezni
Hello, előre is köszönöm.
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.2e3dccd0075c no ktap0
ktap1
route -n (egyik, 20.20.20.21/24)
Dest, gw, genmask, flags, metric, ref, use, iface
20.20.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
(masik, 20.20.20.20/24)
20.20.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Üdv, P.
- A hozzászóláshoz be kell jelentkezni
Sajnos semmi ötletem nincs, ha lesz időm este kipróbálom, hátha találok valamit.
- A hozzászóláshoz be kell jelentkezni
Megvan a ludas... a host iptables beállítások lesznek...
mikor FORWARD, INPUT, defaultot DROP-ról ACCEPTre raktam elkezdett szaladni :) Hülye hülye hülye.... Egy kérdés még... FORWARD-ba kéne engedélyezni az összes br0-ról jövő kapcsolatot ? (meg ami már része egy folyamnak ?)
próbálgatom, ide böfögöm ha találok ultimate megoldást :)
- A hozzászóláshoz be kell jelentkezni
"Ha jól értem a br egy bridge, ethernet kapcsolat két hálózat között ? Tehát úgy viselkedik mint egy switch, vagy hub... ?"
Nem. A bridge az osi modell L2 szintjén irányítja a csomagokat a két vagy több általa látott hálózat között, azaz a mac címeket jegyzi meg a szegmenseken és azok szerint végzi a rútolást. Ez a szoftveresen emulált nem tudom, hogy így működik-e. A switch és a hub ilyet nem tud.
- A hozzászóláshoz be kell jelentkezni
hm... a switch nem csak arra küldi az adatot amelyik porton a jó mac figyel ?
- A hozzászóláshoz be kell jelentkezni
De, csak a switch ARP-zik, a bridge meg nem. Nem érdekli a mac címen kívül semmi, ha egyszerűen akarunk fogalmazni.
- A hozzászóláshoz be kell jelentkezni
á, értem. köszi.
- A hozzászóláshoz be kell jelentkezni
TÖRÖLVE.
- A hozzászóláshoz be kell jelentkezni