KVM /libvirt/ bridged network (fedora/centos)

Fórumok

Üdv!

KVM alatt (fedora20 ill. majd centos7) szeretném megoldani, hogy a VM-eket el lehessen érni kívülről (bridged nic).
Be is állítottam, de kintről (LAN-ból) nem érhető el a gép. Milyen beállítás kell neki?
Ez tesztgép és van rajta VBox, VMware Player, KVM. Mennek ezek egymás mellett?


# ifconfig
em1: flags=4163 mtu 1500
inet 192.168.1.54 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ba70:f4ff:fee0:d493 prefixlen 64 scopeid 0x20

ether b8:70:f4:e0:d4:93 txqueuelen 1000 (Ethernet)
RX packets 249214 bytes 119919697 (114.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 280834 bytes 163709049 (156.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 817027 bytes 784159620 (747.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 817027 bytes 784159620 (747.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4163 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether fe:54:00:96:81:b7 txqueuelen 0 (Ethernet)
RX packets 47079 bytes 2832884 (2.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 82782 bytes 119714645 (114.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vmnet1: flags=4163 mtu 1500
inet 172.16.57.1 netmask 255.255.255.0 broadcast 172.16.57.255
inet6 fe80::250:56ff:fec0:1 prefixlen 64 scopeid 0x20

ether 00:50:56:c0:00:01 txqueuelen 1000 (Ethernet)
RX packets 71 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2696 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vmnet8: flags=4163 mtu 1500
inet 172.16.48.1 netmask 255.255.255.0 broadcast 172.16.48.255
inet6 fe80::250:56ff:fec0:8 prefixlen 64 scopeid 0x20

ether 00:50:56:c0:00:08 txqueuelen 1000 (Ethernet)
RX packets 67 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2702 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vnet0: flags=4163 mtu 1500
inet6 fe80::fc54:ff:fe96:81b7 prefixlen 64 scopeid 0x20

ether fe:54:00:96:81:b7 txqueuelen 500 (Ethernet)
RX packets 32758 bytes 2294382 (2.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 60447 bytes 89631620 (85.4 MiB)

Első körben ezt néztem: public bridge, Solution 1

--
G.

Hozzászólások

Az első link szerint megcsináltam a bridge1-et:
* br0 -> DHCP
* br0 1. alárendeltje: Ethernet -> em1

systemctl network restart

Job for network.service failed. See 'systemctl status network.service' and 'journalctl -xn' for details

journalctl -xn

-- Logs begin at h 2014-04-28 23:55:39 CEST, end at sze 2014-09-24 19:20:56 CEST. --
szept 24 19:20:56 fedoranb network[11850]: RTNETLINK answers: File exists
szept 24 19:20:56 fedoranb network[11850]: RTNETLINK answers: File exists
szept 24 19:20:56 fedoranb network[11850]: RTNETLINK answers: File exists
szept 24 19:20:56 fedoranb network[11850]: RTNETLINK answers: File exists
szept 24 19:20:56 fedoranb network[11850]: RTNETLINK answers: File exists
szept 24 19:20:56 fedoranb network[11850]: RTNETLINK answers: File exists
szept 24 19:20:56 fedoranb network[11850]: RTNETLINK answers: File exists
szept 24 19:20:56 fedoranb systemd[1]: network.service: control process exited, code=exited status=1
szept 24 19:20:56 fedoranb systemd[1]: Failed to start LSB: Bring up/down networking.
-- Subject: Unit network.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit network.service has failed.
--
-- The result is failed.
szept 24 19:20:56 fedoranb systemd[1]: Unit network.service entered failed state.

ifconfig

br0: flags=4163 mtu 1500
inet6 fe80::b8b8:4dff:fe03:6a99 prefixlen 64 scopeid 0x20

ether ba:b8:4d:03:6a:99 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27 bytes 5058 (4.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

em1: flags=4163 mtu 1500
inet 192.168.1.64 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ba70:f4ff:fee0:d493 prefixlen 64 scopeid 0x20

ether b8:70:f4:e0:d4:93 txqueuelen 1000 (Ethernet)
RX packets 17460 bytes 2978309 (2.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22223 bytes 10906620 (10.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 1177985 bytes 1102832959 (1.0 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1177985 bytes 1102832959 (1.0 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 00:00:00:00:00:00 txqueuelen 0 (Ethernet)
RX packets 74559 bytes 4385073 (4.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 125466 bytes 183613786 (175.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vmnet1: flags=4163 mtu 1500
inet 172.16.57.1 netmask 255.255.255.0 broadcast 172.16.57.255
inet6 fe80::250:56ff:fec0:1 prefixlen 64 scopeid 0x20

ether 00:50:56:c0:00:01 txqueuelen 1000 (Ethernet)
RX packets 93 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3553 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vmnet8: flags=4163 mtu 1500
inet 172.16.48.1 netmask 255.255.255.0 broadcast 172.16.48.255
inet6 fe80::250:56ff:fec0:8 prefixlen 64 scopeid 0x20

ether 00:50:56:c0:00:08 txqueuelen 1000 (Ethernet)
RX packets 91 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3564 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Mi lehet a hiba?

--
G.

Ebből nekem úgy tűnik, hogy az em1 nic továbbra is teljes értékű nic, azaz ezért van layer3 konfigja.
A br0 meg nem indult el.

Szerintem a bridge konfigurációban fordítva kötötted össze őket.

em1-nél (/etc/sysconfig/network-scripts/ifcfg-em1) kéne legyen "DEVICE=em1 BRIDGE=br0" opció és IPADDR meg NETMASK ne legyen, azt majd a br0 konfigjába kell tenni.
br0 (/etc/sysconfig/network-scripts/ifcfg-br0) DEVICE=br0 IPADDR=x.y.z.w NETMASK=255.255.255.0 (pl.)

A hoston ip-forwarding-ot engedélyezni kell, ellenkező esetben nem lesz routolás a hálózataid között.

A VirtualBox meg a KVM nem megy el egymás mellett, pontosabban vagy egyik vagy másik féle VM-ek bírnak futni egy időben.
---------------------------------------------------
Talisker Single Malt Scotch Whisky aged 10 years :)

Hát ha az em1-re kaptál IP-t, ahogy az az ifconfig outputban van, akkor mégiscsak benne maradt valami az em1 configjában, esetleg DHCP-re van állítva, ilyenek.
Normál esetben, ha jól van összerakva a nic/bridge config, akkor a bridge alatt lévő nicre nem kaphatsz IP-t.

---------------------------------------------------
Talisker Single Malt Scotch Whisky aged 10 years :)

Nekem ubuntun van KVM host gép, és elérem a virtuális gépeket az internet felöl ha úgy állítom be a tűzfalat. Adott portot beirányítasz a megfelelő virtuális gép megfelelő portjára...
DeuchE

Többé kevésbé elmennek egymás mellett, bár nekem is vesztek már össze. Na min? A bridge és tűzfal konfigon :)

Bocsi, de korlátozott a netem perpill, ezért nem olvastam végig :D
KVM hálózat nálam így megy (hoston kiadandó):

modprobe kvm_intel
modprobe kvm_amd
modprobe tun
brctl addbr br0
ifconfig br0 192.168.100.254 netmask 255.255.255.0 up
tunctl -b -u root -t qtap2
brctl addif br0 qtap2
ifconfig qtap2 up 0.0.0.0 promisc
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

Ezután a guestet így indítom:
kvm -hda kvm_image -net nic,macaddr=54:54:00:12:34:56 -net tap,ifname=qtap2,script=no,downscript=no -m 1024 -boot c -nographic

Ha nincs megadva a kvm a hálózat, az elején a -nographic helyett -vnc kapcsolóval indítod és beállítod a hálót.

üdv: pomm
A 852-es kídlap telepötúsa sikeresen befejezádétt

A scriptedet használtam:

# cat ifcfg-eno1
DEVICE=eno1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0

# kvm bridge bash script
#!/bin/bash
modprobe kvm_intel
modprobe kvm_amd
modprobe tun
brctl addbr br0
ifconfig br0 192.168.45.200 netmask 255.255.255.0 up
tunctl -b -u root -t qtap2
brctl addif br0 qtap2
ifconfig qtap2 up 0.0.0.0 promisc
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
route add default gw 192.168.45.1

# ifconfig
br0: flags=4163 mtu 1500
inet 192.168.45.200 netmask 255.255.255.0 broadcast 192.168.45.255
inet6 fe80::54e9:ff:fe48:48f5 prefixlen 64 scopeid 0x20

ether 56:e9:00:48:48:f5 txqueuelen 0 (Ethernet)
RX packets 43837 bytes 3418551 (3.2 MiB)
RX errors 0 dropped 104 overruns 0 frame 0
TX packets 48378 bytes 206941457 (197.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eno1: flags=4163 mtu 1500
inet6 fe80::6ec2:17ff:fe84:ffd0 prefixlen 64 scopeid 0x20

ether 6c:c2:17:84:ff:d0 txqueuelen 1000 (Ethernet)
RX packets 122481 bytes 122497448 (116.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 186305 bytes 215538262 (205.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 17

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 226398 bytes 2293678836 (2.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 226398 bytes 2293678836 (2.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

qtap2: flags=4355 mtu 1500
ether 56:e9:00:48:48:f5 txqueuelen 500 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:80:8c:b0 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vnet0: flags=4163 mtu 1500
inet6 fe80::fc54:ff:fe24:135 prefixlen 64 scopeid 0x20

ether fe:54:00:24:01:35 txqueuelen 500 (Ethernet)
RX packets 33064 bytes 2106465 (2.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 88285 bytes 118780561 (113.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

# chmod +x /etc/rc.d/rc.local
# /etc/rc.d/rc.local-ban a fenti kvmbrdige script

A VM-nek a NIC konfiguralaskor:

Specyfied shared device name
Bridge name: br0
Device model: virtio

A brdige-utils, tunctl csomagot kell csak telepiteni (tunctl jelenleg csak centos6-bol, de siman telepul). NetworkManager kikapcsolva.

Megy is!

--
G.