====== Setting up kvm network ====== {{tag>kvm}} ===== kvm packages ===== yum install bridge-utils tunctl libvirt qemu-kvm virt-manager yum install spice-server.x86_64 spice-gtk3.x86_64 spice-client.x86_64 qemu-kvm-tools ===== ip routing etc ===== net.ipv4.tcp_window_scaling=0 ====== VM Network Types ====== * http://wiki.libvirt.org/page/Networking#Host_configuration * http://www.virtualbox.org/manual/ch06.html#network_hostonly * THIS IS IT: http://www.linux-kvm.org/page/Networking * other links: * http://wiki.qemu.org/Documentation/Networking * https://help.ubuntu.com/community/KVM/Networking * ===== NAT forwarding (aka "virtual networks") : ===== * virtual bridge with IP Masq * connects Host virbr and Guests and NATing Guests * Accessing Guests from outside require additional IP rules ==== Create Host bridge, tap, iptables masqerading ==== Make sure everything is up and run: sudo qemu-kvm -hda instances/controller.qcow2 -m 1024 -vnc :3 -cdrom cloud-init/default/default-cidata.iso -device e1000,netdev=br_ql_mgmt -netdev tap,id=br_ql_mgmt,ifname=controller-eth0,script=no,downscript=no Use scripts to setup network when vm start: sudo qemu-kvm -hda $DIR/images/Fedora-x86_64-20-300G-20150130-sda-network.qcow2 \ -m 1500 -vnc :2 \ -device e1000,netdev=snet0,mac=DE:AD:BE:EF:12:07 -netdev tap,id=snet0,script=$DIR/scripts/qemu-ifup-stackbr0.sh & ==== Generate MAC ==== If you are managing your guests via command line, the following script might be helpful to generate a randomized MAC using QEMU's registered OUI (52:54:00): MACADDR="52:54:00:$(dd if=/dev/urandom bs=512 count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\).*$/\1:\2:\3/')"; echo $MACADDR ===== Bridged networking (aka "shared physical device") ===== * Bridge connecting with physical iface (eth0) * Host, VM and outside network Bridge and NAT (red dot): http://blogs.virtualizationadmin.com/lowe/wp-content/blogs/60/files/2011/11/image_thumb2.png PCI Passthrough of host network devices ====== DNSMASQ ====== * https://fedoraproject.org/wiki/Changes/Default_Local_DNS_Resolver * journalctl -b show all log from boot