KVM (Kernel-based Virtual Machine), es una solución que nos provee full virtualización, haciendo uso de qemu como hypervisor, la cual se encuentra integrada dentro del propio kernel de Linux de manera modular, mediante el módulo del kernel kvm.ko. Esto nos provee cierta compatibilidad y performance que la ponen prácticamente a la par de otras soluciones de virtualización.
Una de las tareas comunes al crear una nueva maquina virtual, es integrar a esta con la red existente, ya que la virtualización nos provee la posibilidad de hostear múltiples servidores en un solo equipo físico.
La configuración en RHEL o CentOS es muy sencilla, para ello debemos crear un bridge, quien será el responsable de interactuar con la red física. Para hacer esto, al momento de booteo y cuando los scripts SYSV de RC configuran la red (mediante el servicio network), el bridge es configurado utilizando brctl, y la configuración leída de aquellos archivos de interfaces los cuales son definidos como bridge.
En nuestro ejemplo tendremos dos Una NIC física (eth0), en la cual crearemos el bridge y lo configuraremos acorde a los paramétros de networking que necesitemos asignarle al servidor.
El primer paso, será crear el archivo /etc/sysconfig/network-scripts/ifcfg-br0, el cual será nuestro bridge y tendrá el siguiente contenido:
DEVICE="br0"
BOOTPROTO="static"
IPADDR="192.168.0.215"
NETMASK="255.255.254.0"
BROADCAST="192.168.1.255"
ONBOOT="yes"
TYPE="Bridge"
DEVICE="br0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Bridge"
DEVICE="eth0"
HWADDR="00:1E:67:1D:0C:88"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE="br0"
[root@kvm ~]# service network restart
Shutting down interface br0: [ OK ]
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
Bringing up interface eth1: [ OK ]
Bringing up interface br0: [ OK ]
[root@kvm ~]#
[root@kvm ~]# ifconfig br0
br0 Link encap:Ethernet HWaddr 00:1E:67:1D:0C:88
inet addr:172.16.8.50 Bcast:172.16.8.50 Mask:255.255.255.0
inet6 addr: fe80::21e:67ff:fe1d:c88/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:112 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10872 (10.6 KiB) TX bytes:3411 (3.3 KiB)
[root@kvm ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.001e671d0c88 no eth0
vnet0
Existen dos sysctl que pueden resultar interesantes si además realizamos filtrado mediante iptables, ip6tables o arptables, ellas son: net.bridge.bridge-nf-call-ip6tables net.bridge.bridge-nf-call-iptables y net.bridge.bridge-nf-call-arptables. Las cuales desactivan Netfilter en el brige anteriormente creado. Para activar Netfilter y poder filtrar en nuestras interfaces debemos configurar en el archivo /etc/sysctl.conf, lo siguiente:
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 0
[root@kvm ~]# sysctl -p
No hay comentarios:
Publicar un comentario