[CentOS-virt] Finally switching from Xen to KVM - question about networking

Tue Jun 10 19:09:26 UTC 2014
Zoltan Frombach <zoltan at frombach.com>

Steve,

Try the following config.

On your host:

/etc/sysconfig/network-scripts/ifcfg-eth0    :

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
TYPE=Ethernet
HWADDR=xx:xx:xx:xx:xx:xx    <- put your physical NIC's MAC address here
BRIDGE=br0
USERCTL=no
IPV6INIT=no
IPV6_AUTOCONF=no


/etc/sysconfig/network-scripts/ifcfg-br0    :

DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=no
TYPE=Bridge
IPADDR=10.0.5.16
NETMASK=255.255.255.0   <- you may need to adjust this to your network
GATEWAY=10.0.5.1
DNS1=8.8.8.8
DNS2=8.8.4.4
PEERDNS=yes
DELAY=0
STP=off
USERCTL=no
IPV6INIT=no
IPV6_AUTOCONF=no


Restart networking on the host.

Then inside you VM:

/etc/sysconfig/network-scripts/ifcfg-eth0    :

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=no
TYPE=Ethernet
HWADDR=xx:xx:xx:xx:xx:xx    <- it must be a unique MAC address for your VM
IPADDR=10.0.5.17
NETMASK=255.255.255.0     <- you may need to adjust this to your network
GATEWAY=10.0.5.1
DNS1=8.8.8.8
DNS2=8.8.4.4
PEERDNS=yes
USERCTL=no
IPV6INIT=no
IPV6_AUTOCONF=no


Then in Virtual Machine Manager make sure that your VM's NIC is 
connected to the br0 bridge, like this:

Network Source: Specify shared device name
       Bridge Name: br0



On 6/10/2014 8:16 PM, Steve Campbell wrote:
> On 6/10/2014 12:43 PM, Digimer wrote:
>> On 10/06/14 12:38 PM, Steve Campbell wrote:
>>> On 6/10/2014 12:05 PM, Digimer wrote:
>>>> On 10/06/14 11:46 AM, Steve Campbell wrote:
>>>>> On 6/10/2014 10:46 AM, Digimer wrote:
>>>>>> On 10/06/14 10:03 AM, Steve Campbell wrote:
>>>>>>> I had so much trouble putting Centos 6 guest VMs on a Centos 5 host
>>>>>>> that
>>>>>>> I finally switched to a Centos 6 host.
>>>>>>>
>>>>>>> I've not needed more that test VMs, so I've used Virtual Machine
>>>>>>> Manager
>>>>>>> on the old system, which worked pretty well, so I decided to
>>>>>>> create my
>>>>>>> first KVM guest machine. I noticed when I created it, I only had the
>>>>>>> options of NAT for my network interface, so I used that (obvious).
>>>>>>>
>>>>>>> Well, after starting the VM, I find I don't have connectivity with
>>>>>>> that
>>>>>>> interface. Reading, I find examples where I need to create bridges
>>>>>>> perhaps. Xen did most of this for me, so it's a little new to me.
>>>>>>>
>>>>>>> Can anyone throw me a clue, please?
>>>>>>>
>>>>>>> steve campbell
>>>>>> Setting up a bridge is not that hard, and it will give your VMs
>>>>>> direct
>>>>>> access to the outside world, and host <-> VM access just fine as
>>>>>> well.
>>>>>>
>>>>>> Here is a link showing how to setup a bridge connected to a bond
>>>>>> device. Ignore the bond and pretend it is a straight ethX device:
>>>>>>
>>>>>> https://alteeve.ca/w/AN!Cluster_Tutorial_2#Configuring_our_Bridge.2C_Bonds_and_Interfaces
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> The host has a device named virbr0 that is installed during system
>>>>> installation. It also has a network device vnet0. There are no
>>>>> files in
>>>>> /etc/sysconfig/network-scripts for these.
>>>>>
>>>>> Shouldn't I be able to use the virbr0 virtual bridge for this? I've
>>>>> tried setting up the VM's device with all of the options that is
>>>>> listed,
>>>>> but to no avail.
>>>>>
>>>>> Should I need to set up another bridge for this?
>>>>>
>>>>> And thanks for the link.
>>>>>
>>>>> steve
>>>> virbr0 is created and managed by libvirtd. If you open Virtual Machine
>>>> Manager, connect to localhost and then double-click on 'localhost',
>>>> you will see a tab for creating/managing bridges (NAT'ed, generally).
>>>> I disable 'virbr0' as NAT'ing is generally not what I want.
>>>>
>>>> The 'vnetX' devices are dynamically created to link a VM's interface
>>>> to a bridge. Think of them as virtual network cables. They get created
>>>> and destroyed as needed.
>>>>
>>>>
>>> Sorry, but I'm confused:
>>>
>>> My host server has a real NIC and IP address with a real gateway to the
>>> outside:
>>> virtbr0 IP: 192.168.122.1
>>> Host IP: 10.0.5.16
>>> Gateway IP: 10.0.5.1
>>> on eth0 and this works
>>>
>>> My VM server has all fake stuff currently:
>>> Host IP: 10.0.5.17
>>> Gateway IP: 10.0.5.1
>>> on eth0 and this is like NIC without a cable.
>>>
>>> So I need to create a bridge device on both the host and VM (lets say I
>>> name it br1). I change the eth0 config file on both host and VM to point
>>> to br1 and give the br1 config file on both host and VM the correct IP.
>>> But won't this just let the two talk to each other. How will the VM
>>> server get outside?
>>>
>>> steve
>> The bridge is created only on the host. Think of the bridge as being
>> like a virtual switch. When a VM is created, you tell it to connect to
>> the bridge, similar to how you would plug a physical wire into a real
>> switch. That provides the link to the network, and then you configure
>> the virtual server's network just as if it was a real network.
>>
>> On the host, you don't set the IP on the ethX device, instead you tell
>> ethX to connect to the bridge (look at 'bond2' in the link above for
>> the 'BRIDGE="..."' line). Then you move the host's IP address/config
>> to the bridge itself (look at the 'vbr2' in the link above).
>>
>> If you're still stuck, tell me the IP addresses you want to set in the
>> host and VM and I'll see if I can bang out a couple sample 'ifcfg-X'
>> files.
>>
> I'm running into some problems with my config files where I get a
> message that says the network can't determine my interface names. I'll
> look further, but the IPs above are what I need. 10.0.5.1 is a firewall
> that NATs the 10.0.5.0/24 network to another outside public firewall.
>
> Thanks
> steve
> _______________________________________________
> CentOS-virt mailing list
> CentOS-virt at centos.org
> http://lists.centos.org/mailman/listinfo/centos-virt
>