Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[mini-howto] Como integrar KVM en tu lan
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Thu Aug 30, 2007 8:59 am    Post subject: [mini-howto] Como integrar KVM en tu lan Reply with quote

(revisado el 01/12/08 )

El propósito de este mini-howto es exponer simplemente que hacer en gentoo para montar un red virtual que además en este caso vamos a integrar en una lan ya existente con lo que las máquinas virtuales serán como unas máquinas mas en la red. Esto no depende estrictamente de kvm como comprobaréis, qemu/ kqemu lo harán igual de bien, aunque la diferencia de rendimiento es considerable.

Para los que no lo sepan, KVM ( Kernel-based Virtual Machine) es un solución de virtualización completa para linux corriendo en hardware con las extensiones de virtualización activadas (Intel VT o AMD-V), tal y como dice la página web. Está disponible en el kernel linux desde la versión 2.6.20 y en constante desarollo.

Para saber si tu procesador soporte esta instrucción simplemente ejecutad :
Code:
egrep '^flags.*(vmx|svm)' /proc/cpuinfo

Si esto devuelve algo, es que tenéis soporte. Sino podéis probar con qemu/kqemu, otras posibles soluciones disponibles son Vmware, Virtualbox o Xen.

Para su funcionamiento, kvm usa una versión ligeramente modificada de qemu, con lo cual aquellos que estéis acostumbrados a qemu os encontraréis como en casa. Para la compilación de kvm no tenéis porque instalar gcc3, pero al parecer es mas que recomendable usar esta versión del gcc.

No me voy a parar a explicar como instalar kvm, es bastante trivial, sólo voy a exponer la puesta a punto de una red ( sin un servidor dhcp ni vde ni demás ) y como integrar los clientes en una lan ya existente.

Soporte necesario en el kernel :
- dispositivo tun/tap.
- bridge support
- netfilter

(*) IMPORTANTE : Apartir del kernel 2.6.22 se recomienda el uso del módulo suministrado por el paquete y NO activar kvm en el kernel. Funcionará igual pero el driver no tendrá acceso a todas las mejoras que suministran versiones mas modernas.

Software necesario:
- kvm
- bridge-utils
- iptables
- usermode-utils o openvpn

CONFIGURACIÓN

Un esquemilla antes de nada que creo que así se entiende mejor el rollo que estoy soltando ( sacao de una web por ahí y modificao un poco ) :

Code:

                HOST               Cliente1
           +--------------+   +--------------+
           |              |   |              |
 LAN    ---+-+            |   |              |
           | | +------+   |   |              |       Cliente2
           | +---eth0 | +-+---+---- nic0     |   +--------------+
           |   | tap0---+ |   | 192.168.1.61 |   |              |
           |   | tap1---+ |   +--------------+   |              |
           |   +------+ | |                      |              |
           |     br0    +-+----------------------+---- nic0     |
           |192.168.1.15  |                      | 192.168.1.62 |
           +--------------+                      +--------------+


En gentoo tenemos todo lo que necesitamos en el archivo /etc/conf.d/net. Realmente lo único que hay que hacer es conectar cada host virtual a un interfaz tap único y añadir estos y un dispositivo físico que se conecta a la red en cuestión a la pasarela. En mi caso, esto se resume en dejar el /etc/conf.d/net del host mas o menos como sigue.

Code:

tuntap_tap0="tap"
tuntap_tap1="tap"
bridge_br0="eth0 tap0 tap1"
config_eth0=( "null" )
config_tap0=( "null" )
config_tap1=( "null" )
config_br0=( "192.168.1.15 netmask 255.255.255.0 broadcast 192.168.0.255" )
RC_NEED_br0="net.eth0 net.tap0 net.tap1"
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
routes_br0=( "default gw 192.168.1.200" )

( si ya tenéis una configuración para eth0, comentadla o borradla)

Para poder manejar las maquinas virtuales como usuario:
Añadir lo siguiente sustituyendo USUARIO por el usuario con el que quieras manejar las vm en /etc/conf.d/net

Code:

tunctl_tap0="-u USUARIO"
tunctl_tap1="-u USUARIO"


y crea el fichero /etc/udev/rules.d/10-local.rules con el siguiente contenido sustituyendo GRUPO esta vez (me gusta mas seguir dejando a root como propietario y utilizar de grupo el del usuario anterior)

Code:
KERNEL=="tun", NAME="net/%k", GROUP="GRUPO"


Creamos nuestros enlaces como siempre:
Code:
cd /etc/init.d/ && ln -s net.lo net.br0

y hacéis tb. lo mismo para todos los dispositivos tap que necesitéis.

Paramos eth0 y levantamos br0:
Code:
/etc/init.d/net.eth0 stop && /etc/init.d/net.br0 start.


Luego habilitamos en el servidor el forwarding y configuramos debidamente iptables :
Code:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/etc/init.d/iptables save && /etc/init.d/iptables start


Para cargar las máquinas virtuales podéis usar lo siguiente p.ej. :
Code:
kvm -hda vdisk.img -boot c -m 384 -k es -net nic,macaddr=52:54:00:12:34:57 -net tap,ifname=tap0,script=no


Es MUY importante que si trabajáis con mas de un cliente cambiéis la dirección mac del cliente y como usamos los scripts de gentoo le decimos que NO queremos usar ningún tipo de script. Asi, para levantar un segundo cliente p.ej. :

Code:
kvm -hda vdisk2.img -boot c -m 384 -k es -net nic,macaddr=52:54:00:12:34:59 -net tap,ifname=tap1,script=no


En cuanto estéis dentro del sistema cliente tan sólo queda configurar la conexión igual que haríais en un otra de las máquinas de la red.

Otras variantes propuestas por inconexo :

Code:
kvm -vnc :5,password -monitor stdio -m 256 -k es -net nic,model=rtl8139,macaddr=DE:AD:BE:EF:24:20 -net tap,ifname=tap5,script=no win.dominio.com.img


(podremos conectarnos por vnc a ip_de_host:5, para ver lo que ocurre, y teclear "change vnc password" desde la consola del qemu para especificar una password para el vnc)

Boot de un gentoo (ojo, debemos prescindir del frame buffer)

Code:
kvm -curses -m 256 -k es -net nic,model=e1000,macaddr=DE:AD:BE:EF:62:24 -net tap,ifname=tap2,script=no lin.dominio.com.img


Como veis, no es necesario contar con un servidor X, como en vmware.

Para imágenes de sistemas operativos listos para usar en kvm o qemu podéis acudir a oszoo.

Los que busquéis un frontend para todo este tinglao, el que mejor pinta tiene es virt-manager de Redhat ( disponible en portage), que permite gestionar redes híbridas con xen, qemu, openvz y kvm, además de permitir gestionar los medios de almacenamiento de una forma mas agradable en sus versiones mas recientes.

Gracias a todos por vuestras aportaciones !

Algunos links mas ( que es de donde ha salido todo esto) :
http://kvm.qumranet.com/kvmwiki
http://www.libvirt.org/
http://fabrice.bellard.free.fr/qemu/
http://kvm.qumranet.com/kvmwiki/Kernel-optimizations
http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/USBusage?action=fullsearch&context=180&value=qemu&titlesearch=T%C3%ADtulos#head-0bb605c18c560605f50394d55d4bc69187c8033
http://wiki.virtualsquare.org/index.php/Main_Page
http://opensysadmin.com/trac/wiki/VirtualMachines
_________________
Error: Failing not supported by current locale


Last edited by gringo on Mon Dec 01, 2008 8:57 am; edited 10 times in total
Back to top
View user's profile Send private message
Inodoro_Pereyra
Advocate
Advocate


Joined: 03 Nov 2006
Posts: 2631
Location: En la otra punta del cable

PostPosted: Thu Aug 30, 2007 7:16 pm    Post subject: Reply with quote

Muy interesante, se agradece el aporte. Sobre todo el link a OsZoo que no lo conocía.

Salud!
_________________
Mi Blog.

Si no fuera por C, estaríamos escribiendo programas en BASI, PASAL y OBOL.
Back to top
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Tue Sep 25, 2007 9:43 am    Post subject: Reply with quote

Pregunta tonta.

Para compilar el qemu me valdria con libstdc++-v3 o tengo que meter el gcc-3.x entero. En el servidor no tengo problema, pero en el portatil uso "-march=pentium-m" y ya me ha dado problemas por ejemplo al intentar meter el java de sun, ya que me intenta meter un gcc-3.x (no recuerdo ahoramismo la version exacta) que por lo visto no soporta "-march=pentium-m".

Gracias y salu2.

PD: no he consegido encontrar ningun roadmap que indique cuando, aproximadamente, se llevaran bien gcc-4 y qemu ¿existe? (a unque me da que no va ha ser a corto plazo)
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Sep 25, 2007 11:07 am    Post subject: Reply with quote

Quote:
Pregunta tonta.

Para compilar el qemu me valdria con libstdc++-v3 o tengo que meter el gcc-3.x entero. En el servidor no tengo problema, pero en el portatil uso "-march=pentium-m" y ya me ha dado problemas por ejemplo al intentar meter el java de sun, ya que me intenta meter un gcc-3.x (no recuerdo ahoramismo la version exacta) que por lo visto no soporta "-march=pentium-m".


seguramente me equivoque pero creo que te hace falta un >gcc-3.4.6 para tener -march-pentium-m, puede ser ?

Quote:
PD: no he consegido encontrar ningun roadmap que indique cuando, aproximadamente, se llevaran bien gcc-4 y qemu ¿existe? (a unque me da que no va ha ser a corto plazo)


por lo poco que he leído los devs de qemu creen que gcc4 hace algo estúpido y por tanto no lo van a arreglar, es problema de los devs de gcc (según ellos claro). Hay varios parches pululando por ahí pero ninguno parece que soluciona el problema definitivamente. Si quieres probar, prueba con esto y sigue las instrucciones al principio del parche.

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
kalcetoh
Guru
Guru


Joined: 05 Jun 2005
Posts: 304

PostPosted: Tue Sep 25, 2007 11:12 am    Post subject: Reply with quote

opotonil wrote:
Pregunta tonta.

Para compilar el qemu me valdria con libstdc++-v3 o tengo que meter el gcc-3.x entero. En el servidor no tengo problema, pero en el portatil uso "-march=pentium-m" y ya me ha dado problemas por ejemplo al intentar meter el java de sun, ya que me intenta meter un gcc-3.x (no recuerdo ahoramismo la version exacta) que por lo visto no soporta "-march=pentium-m".

Gracias y salu2.

PD: no he consegido encontrar ningun roadmap que indique cuando, aproximadamente, se llevaran bien gcc-4 y qemu ¿existe? (a unque me da que no va ha ser a corto plazo)


Una cosita, te lo digo porque lo he hecho, si tienes la intención de únicamente usar qemu junto con kvm se puede compilar con gcc4, pero no podrás usarlo si no es con kvm, para ello tienes que compilarlo a mano, hay una opción dentro del config que te lo permite hacer.

También tienes otras opciones como virtualbox, con la que puedes hacer lo mismo pero todo más sencillito y tal, este es más orientado a la virtualización "casera".

PD: Ya tengo 300 comentarios y soy guru, ¡viva! ¡viva! :lol:
_________________
Hazmereir, un menéame de humor: Hazmereir
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Sep 25, 2007 11:26 am    Post subject: Reply with quote

Quote:
si tienes la intención de únicamente usar qemu junto con kvm se puede compilar con gcc4


cierto, esto lo pondré tb. mas arriba en el manual para no crear confusiones. Gracias :)

Quote:
También tienes otras opciones como virtualbox, con la que puedes hacer lo mismo pero todo más sencillito y tal, este es más orientado a la virtualización "casera".


pero virtualbox no hace uso de las extensiones de virtualización por hardware, no ?

Quote:
PD: Ya tengo 300 comentarios y soy guru, ¡viva! ¡viva!


enhorabuena :)

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
kalcetoh
Guru
Guru


Joined: 05 Jun 2005
Posts: 304

PostPosted: Tue Sep 25, 2007 12:02 pm    Post subject: Reply with quote

Hola gringo, te comento mi punto de vista sobre usar qemu usando kvm y virtualbox, tras haber usado los dos.

Como primer punto Virtualvox sí hace uso de las extensiones de los nuevos procesadores, pero no es obligatorio disponer de ellas, y aun así, funciona bastante bien.

En principio más o menos se pueden hacer las mismas cosas con los dos, la manera de configurar la red es muy parecida, por no decir que es la misma.

Las claras ventajas que le he visto a Virtualbox son las siguientes:
  • Es más sencillo de manejar, de configurar, y de encontrar las opciones que tiene (usabilidad), en qemu hay que usar mucho comando, y si quieres tener configuradas las máquinas virtuales acabas por crearte tus propios scritps
  • Tiene los virtualbox-additions, que mejoran la interacción con el ratón, por ejemplo, y lo de Seamless (o algo así) que está muy bien.
  • Me parece que es un pelín más rápido tal vez
  • Te permite guardar el estado de la máquina en lugar de andar apagandóla, vale, esto en qemu también se puede, pero es más lioso.


Y como desventajas, pues tendría las siguientes:

  • No permite tener sistemas virtualizados con más de 1 procesador, o por lo menos yo no sé cómo, con kvm esto es posible desde las últimas versiones.
  • No es completamente software libre, hay partes cerradas como las additions, o la parte usb.


Puede que muchos de los problemas expuestos se soluciones gracias a virt-manager,un frontend para qemu+kvm y también para xen.

Espero que ésto te de más o menos una idea entre las diferencias. Ya te digo que yo empecé usando qemu + kvm, pero me pareció muy lioso, y cuando salió la version 1.4 de virtualbox, que ya funcionaba en x86_64, empecé a usarla y me pareció bastante más fácil de usar.
_________________
Hazmereir, un menéame de humor: Hazmereir
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Sep 25, 2007 12:17 pm    Post subject: Reply with quote

Quote:
Como primer punto Virtualvox sí hace uso de las extensiones de los nuevos procesadores, pero no es obligatorio disponer de ellas, y aun así, funciona bastante bien.


oops, eso no lo sabía.

Quote:
En principio más o menos se pueden hacer las mismas cosas con los dos, la manera de configurar la red es muy parecida, por no decir que es la misma.


seguramente, yo tengo mas experiencia en vmware y qemu, sobre todo este último lo uso bastante, así que esto será como todo, prueba, compara y quédate con el que mejor te encuentres :)

Solo añadir que qemu no es sólo una solución de virtualización, si no que puede emular por completo una arquitectura. Así, p.ej., con qemu puedes ejecutar un so arm en una máquina ppc ( por decir algo) y es por eso por lo que mas lo uso realmente.

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Thu Sep 27, 2007 10:44 am    Post subject: Reply with quote

Pues nada que por ahora lo metere en el servidor con gcc-3.x que en este en principio no tiene porque darme problemas y lo de parchear no me convence demasiado.

Por otro lado ninguno de mis procesadores (pentium-m en el portatil y pentium4 en el servidor) tiene instrucciones de virtualizacion... as que kvm no puedo utilizar.

Gracias y salu2.

PD: y por curiosidad los devs de gcc ¿que dicen? ¿que el problema es de qemu? asi que unos por otros la casa sin barrer ¿? por supuesto hay que tener en cuenta el merito de ambos desarrollos que ninguno parece sencillo.
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Thu Sep 27, 2007 11:01 am    Post subject: Reply with quote

Quote:
y por curiosidad los devs de gcc ¿que dicen? ¿que el problema es de qemu? asi que unos por otros la casa sin barrer ¿? por supuesto hay que tener en cuenta el merito de ambos desarrollos que ninguno parece sencillo.


si, dicen que es problema de su aplicación y que por tanto ellos no lo van a solucionar. Por lo que leo han actualizao el FAQ en la web sobre este tema :

http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions#head-1dd86241b11d36963df140c9f6ab46ef402d4244

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Wed Oct 03, 2007 7:39 pm    Post subject: Reply with quote

Bueno pues al final he metido qemu (en el pentium-4).

Por si a alguien le puede interesar, siguiendo el how-to del wiki (http://gentoo-wiki.com/HOWTO:_Qemu) con:
Code:

# emerge =gcc-3.4.6*

no ha habido manera (daba error de compilacion el qemu-softmmu), he tenido que utilizar una version anterior (https://forums.gentoo.org/viewtopic-t-588083-highlight-qemu.html?sid=4fecd264996e09cbb42d90c51e6177cf)
Code:

# emerge =gcc-3.3*


Salu2.
Back to top
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Fri Oct 12, 2007 4:42 pm    Post subject: Reply with quote

Para poder manejar las maquinas virtuales como usuario:

Añadir lo siguiente sustituyendo USUARIO por el usuario con el que quieras manejar las vm en /etc/conf.d/net
Code:

tunctl_tap0="-u USUARIO"
tunctl_tap1="-u USUARIO"


y crea el fichero /etc/udev/rules.d/10-local.rules con el siguiente contenido sustituyendo GRUPO esta vez (me gusta mas seguir dejando a root como propietario y utilizar de grupo el del usuario anterior)
Code:

KERNEL=="tun",          NAME="net/%k", GROUP="GRUPO"


y ya de paso una preguntita ¿para que usa qemu-softmmu la USE sdl? porque estoy usando la salida grafica en utro PC mediante vnc de forma que no se si seria necesaria.

Gracias y salu2.
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Sat Oct 13, 2007 5:20 pm    Post subject: Reply with quote

Quote:
Para poder manejar las maquinas virtuales como usuario:

Añadir lo siguiente sustituyendo USUARIO por el usuario con el que quieras manejar las vm en /etc/conf.d/net
Código:

tunctl_tap0="-u USUARIO"
tunctl_tap1="-u USUARIO"


y crea el fichero /etc/udev/rules.d/10-local.rules con el siguiente contenido sustituyendo GRUPO esta vez (me gusta mas seguir dejando a root como propietario y utilizar de grupo el del usuario anterior)
Código:

KERNEL=="tun", NAME="net/%k", GROUP="GRUPO"


gracias :) , ahora lo añado arriba.

Quote:
¿para que usa qemu-softmmu la USE sdl? porque estoy usando la salida grafica en utro PC mediante vnc de forma que no se si seria necesaria


si dehabilitas sdl es como si te quedaras sin gráfica virtual pero no sé si vnc necesita esa salida o no ... prueba y nos cuentas :P

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Dec 11, 2007 9:48 am    Post subject: Reply with quote

bump, todos aquellos que habéis seguido este howto en su momento para la puesta a punto de KVM, os recomiendo que lo volváis a leer y hagáis las oportunas modificaciones/ actualizaciones.

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Sat Jan 19, 2008 5:45 pm    Post subject: Activando la virtualizacion en un Sony Vaio FZ Reply with quote

Pues nada que por lo visto a Sony le ha parecido que lo de la virtualización es una chorrada que no vale para nada, de manera que en sus portátiles Vaio que tienen la posibilidad de utilizar las instrucciones de virtualización del procesador, como es el caso del VGN-FZ21M, la opción viene deshabilitada en la BIOS, hasta aqui todo normal, el problema es que cuando accedemos a la BIOS para habilitar dicha opción esta no aparece por ningun lado y tampoco es que haya muchos sitios donde buscar, es la BIOS mas minimalista que he visto en mi vida.

Asi que tan solo nos quedan 2 posibilidades:
- Modificar manualmente la configuracion de la BIOS (no se si es la forma mas correcta de decirlo) http://forum.notebookreview.com/showthread.php?t=189228
- Tocar directamente la NVRAM (demasiado arriesgado para mi gusto) http://www.wimsbios.com/phpBB2/topic9326.html

A continuacion las instrucciones que he seguido, partiendo de http://www.wimsbios.com/phpBB2/topic9326.html (son practicamente iguales). Que quede claro no me hago responsable de lo que le pueda pasar a tu Sony Vaio (cualquier cambio sera reversible retirando la pila de la placa base).

1) Conseguir un USB arrancable con FreeDos
2) Descarga symcmos desde ftp://ftp.supermicro.com/utility/symcmos.exe y guardalo en el USB.
3) Resetea tu BIOS a los valores o parametros por defecto y realiza las modificaciones necesarias para arrancar desde el USB.
4) Arranca desde el USB y deja que cargue FreeDos
5) Una vez en FreeDos, si no guardaste symcmos en el raiz del USB posicionate en el directorio en el que lo guardaras y ejecuta:
Code:

symcmos -V2 -LBios.txt

Esto guardara la configuracion de tu BIOS en el fichero Bios.txt
6) Crea una copia de seguridad (por ejemplo Bios-ori.txt) del fichero recien creado Bios.txt y edita este con el editor de dos (edit) sustituyendo lo siguiente:
Quote:

(02CD) [0000] --> (02CD) [0001]

Esto modificara el valor booleano de 02CD (VT-x en los Sony Vaio serie FZ) de false (0000) a true (0001) activando la virtualizacion.
7) Lo siguiente es cargar el fichero que acabamos de modificar (si cuando termines con todo el proceso sigues sin virtualizacion o se ha producido algun error tendras que arrancar nuevamente con FreeDos y ejecutar este mismo comando sustituyendo el fichero por el de backup, en este ejemplo Bios-ori.txt), para lo que ejecutaremos:
Code:

symcmos -V2 -UBios.txt

8) Ya esta todo hecho, tan solo queda reiniciar y comprobar si ha funcionado (en mi caso para reiniciar hice un ctr+alt+supr y se me quedo medio colgado asi que aprete el boton de apagado hasta que se apago, lo encendi y todo perfecto)

Notas:
- Puedes encontar el codigo correcto para otros modelos de Vaio en el post original (http://forum.notebookreview.com/showthread.php?t=189228) si no lo encuentras aqui prueba suerte en google y sino la unica solucion... ir probando con todos los valores booleanos negativos [0000] hasta que encuentres el que se corresponde a la virtualizacion.

Salu2.

PD: Creo que no se me olvida nada, lo unico comentar que por supuesto se puede hacer todo el proceso desde otros dispositivos como un disquete arrancable (si dispones de disquetera usb) o desde un CD... lo unico que no se donde guardaras la BIOS original para restaurarla en caso de que algo vaya mal (imagino que necesites una particion FAT en tu HD o un FreeDos con soporte para USB a mi no me funciono ninguno).

PD2: No se si es el sitio mas adecuado para publicar esto... ya que me parece interesante pero realmente no tiene relacion directa con gentoo por lo que tampoco me parecio cosa de abrir un tema nuevo.
Back to top
View user's profile Send private message
AnimAlf
Apprentice
Apprentice


Joined: 20 Jun 2008
Posts: 229
Location: tgn

PostPosted: Tue Aug 19, 2008 8:59 am    Post subject: Reply with quote

Hola, felicidades por el manual, está tope.

Tengo una duda sobre hacer un puente utilizando la tarjeta wireless. ¿Podeis ayudarme?, he probado varias cosas, pero no se arrancar sin que arranque antes la tarjera wlan. Creo que tendría que arrancar en modo promiscuo, pero, no se cómo se cambiaria ello (no tengo ni idea).

El archivo que tengo ahora es este:
/etc/conf.d/net:
modules_br0=( "wpa_supplicant" )
wpa_supplicant_br0="-Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf"
wpa_timeout_br0=60
bridge_br0="wlan1 tap0"

config_wlan1=( "null" )
config_tap0=( "null" )

config_br0=( "192.168.1.107 netmask 255.255.255.0 broadcast 192.168.1.255" )
brctl_br0=( "setfd 0" "sethello 0" "stop off" )
routes_br0=( "default via 192.168.1.254" )
dns_servers_br0="208.67.222.222 208.67.220.220 80.58.61.250"

depend_br0() {
  need net.wlan1
}

#modules_wlan1=( "wpa_supplicant" )
#wpa_supplicant_wlan1="-Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf"
#wpa_timeout_wlan1=60
#config_wlan1=( "192.168.1.107 netmask 255.255.255.0 broadcast 192.168.1.255" )
#routes_wlan1=( "default via 192.168.1.254" )
#dns_domain_wlan1="keeper"
#dns_servers_wlan1="208.67.222.222 208.67.220.220 80.58.61.254"


pero no consigo hacerla enlazar. He probado decomentando modules wpa_supplicant y wpa_timeout pero activa la interface y br dice que no puede establecerse, también he probado a dejarlos sólo activados en wlan y no en br0 y tampoco nada.

¿Podeis helpearme?
thns
_________________
En busca del TuXeR perdido
Back to top
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Tue Aug 19, 2008 9:32 am    Post subject: Reply with quote

A mi en el portatil con la wireless tambien me dio problemas, por lo que al final opte por una red ruteada. Con lo que tambien tengo la ventaja de que funciona tanto si me conecto por medio de la interface wireless como si me conecto por medio de la interface ethernet.

En mi caso tengo 3 interfaces virtuales tap0, tap1 y tap2 de forma que creo un bridge en el que solo estan ellas, br0, las interfaces fisicas las configuro normalmente y hago forward y masquerade.

Si quieres esta tarde, cuando llegue a casa, te pongo la configuracion que de memoria...

Salu2.
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Aug 19, 2008 10:00 am    Post subject: Reply with quote

no tengo mucha idea de wifi la verdad pero que errores te dá exactamente ? si intentas levantarlo todo manualmente funciona ?

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
AnimAlf
Apprentice
Apprentice


Joined: 20 Jun 2008
Posts: 229
Location: tgn

PostPosted: Tue Aug 19, 2008 10:44 am    Post subject: Reply with quote

Si en el archivo de arriba el /etc/conf.d/net cambio los comentarios, entonces tengo la configuración de la wlan1 desde donde todo funciona: Desde la máquina virtual puedo acceder a la máquina que lanzó qemu y viceversa con acceso al exterior. Pero no al resto de la red. (tampoco entiendo mucho de wireless, :) tardé un montón en quitar el cable de en medio del paso :D )

Si lo intento así ...
config 1:
bridge_br0="wlan1 tap0"
config_wlan1=( "null" )
config_tap0=( "null" )

modules_wlan1=( "wpa_supplicant" )
wpa_supplicant_wlan1="-Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf"
wpa_timeout_wlan1=60config_br0=( "192.168.1.107 netmask 255.255.255.0 broadcast 192.168.1.255" )

brctl_br0=( "setfd 0" "sethello 0" "stop off" )
routes_br0=( "default via 192.168.1.254" )
dns_servers_br0="208.67.222.222 208.67.220.220 80.58.61.250"

depend_br0() {
  need net.wlan1
}


me dice tras un /etc/init.d/net.br0 start

Code:
 * Starting wlan1
 *   Starting wpa_supplicant on wlan1 ...                                 [ ok ]
 *   Starting wpa_cli on wlan1 ...                                        [ ok ]
 *     Backgrounding ...
 * WARNING:  net.br0 is scheduled to start when net.wlan1 has started.

y con un if config veo sólo la wlan1 levantada, pero sin configurar.

si lo pruebo así:
config 2:
modules_br0=( "wpa_supplicant" )
wpa_supplicant_br0="-Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf"
wpa_timeout_br0=60
bridge_br0="wlan1 tap0"

config_wlan1=( "null" )
config_tap0=( "null" )

config_br0=( "192.168.1.107 netmask 255.255.255.0 broadcast 192.168.1.255" )
brctl_br0=( "setfd 0" "sethello 0" "stop off" )
routes_br0=( "default via 192.168.1.254" )
dns_servers_br0="208.67.222.222 208.67.220.220 80.58.61.250"

depend_br0() {
  need net.wlan1
}

Asín seguro que NO es, ya que lo primero que hace es saltarme a la consola de texto /dev/tty1 para mostrarme una ristra de mensajes que me dicen
Code:
unregister_netdevice: waiting for br0 to become free. Usage count = 3

y desde la consola desde donde lo lancé me muestra:
Code:
animalf@keeper /etc/init.d $ sudo /etc/init.d/net.br0 start
 * Starting wlan1
 *   Configuring wireless network for wlan1
 *   WEP key is not set for "killMAnute" - not connecting
 *   Couldn't associate with any access points on wlan1
 *   Failed to configure wireless for wlan1                             [ !! ]
 * ERROR:  cannot start net.br0 as net.wlan1 could not start
e ifconfig no me muestra ningun dispositivo levantado.

Asi estoy. No se me ocurre nada más. Googleando me ha parecido ver que es posible, aunque no lo vi en una configuración para Gentoo.
_________________
En busca del TuXeR perdido
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Aug 19, 2008 3:39 pm    Post subject: Reply with quote

lo he leído un par de veces y tan sólo veo errores de forma, pero nada mas, no veo nada raro la verdad. La siguiente configuración funciona ? :

Code:
modules_wlan1=( "wpa_supplicant" )
wpa_supplicant_wlan1="-Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf"
wpa_timeout_wlan1=60

tuntap_tap0="tap"
bridge_br0="wlan1 tap0"
config_wlan1=( "null" )
config_tap0=( "null" )

config_br0=( "192.168.1.107 netmask 255.255.255.0 broadcast 192.168.1.255" )
brctl_br0=( "setfd 0" "sethello 0" "stop off" )
routes_br0=( "default via 192.168.1.254" )
dns_servers_br0="208.67.222.222 208.67.220.220 80.58.61.250"
RC_NEED_br0="net.wlan1 net.tap0"


revísalo por si las moscas.

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Tue Aug 19, 2008 6:29 pm    Post subject: Reply with quote

No he probado la conectividad con otros equipos de la red, mas que nada porque no los tengo, pero si no me equivoco deberia funcionar.

/etc/conf.d/net
Code:

dns_domain_lo="lan"

config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"

wpa_supplicant_wlan0="-Dwext"
wpa_timeout_wlan0=60

RC_NEED_br0="net.tap0 net.tap1 net.tap2"
bridge_br0="tap0 tap1 tap2"
config_br0=( "10.0.3.1/24" )

tuntap_tap0="tap"
tunctl_tap0="-u opotonil"
config_tap0=( "null" )

tuntap_tap1="tap"
tunctl_tap1="-u opotonil"
config_tap1=( "null" )

tuntap_tap2="tap"
tunctl_tap2="-u opotonil"
config_tap2=( "null" )


En cuanto a "iptables" si tienes el "forward" a "ACCEPT" no creo que necesites nada mas en la tabla "filter", en la tabla "nat"
Code:

$IPTABLES -t nat -N allow-masquerade-postroute
$IPTABLES -t nat -F allow-masquerade-postroute
$IPTABLES -t nat -A allow-masquerade-postroute -o eth0 -s 10.0.3.0/24 -j MASQUERADE
$IPTABLES -t nat -A allow-masquerade-postroute -o wlan0 -s 10.0.3.0/24 -j MASQUERADE

$IPTABLES -t nat -A POSTROUTING -j allow-masquerade-postroute


Y las maquinas virtuales estarian configuradas en el rango "10.0.3.0/24" con "default via 10.0.3.1"

Salu2.

PD: el problema no es la configuración en si sino el meter una interface wireless en un bridge (por lo que vi cuando estube configurando esto)
Back to top
View user's profile Send private message
AnimAlf
Apprentice
Apprentice


Joined: 20 Jun 2008
Posts: 229
Location: tgn

PostPosted: Wed Aug 20, 2008 11:03 am    Post subject: Reply with quote

Buena aportación. Se me han despejado las dudas un poco sobre puentes entre redes.

Según he estado viendo por ahí, sólo se puede hacer un puente con una tarjeta inhalámbrica si esta está en modo master, a la espera de conexiones. Ne he encontrado ningún caso más por ahí, sí comentarios en algunos threads, como:

Warning: Network bridging will not work when the physcial network device (eg eth1, ath0) used for bridging is a wireless device (eg ipw3945), as most wireless device drivers do not support bridging!

Y para que soporte bridging hace falta modo master (por eso lo de los pocos drivers)

#client OS works with br0[eth0,tap0],not for br0[wlan0,tap0]

Bueno, pues nada, yo no quería quedarme sin ver el puente. Ya tengo el cable de red otra vez por medio tocando las narices :D :D que con eth0 esto va de lujo.

Saludos
_________________
En busca del TuXeR perdido
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Sat Nov 08, 2008 8:32 pm    Post subject: Reply with quote

Gracias gringo, me ha venido de perlas este manual.

Sólo anotar un detalle: Para poder trabajar con las interfaces TUN/TAP es necesario alguno de estos dos paquetes net-misc/openvpn o sys-apps/usermode-utilities. Es bastante tonto pero me las vi hasta que no repasé el /etc/conf.net.example
_________________
Salu2.
Alguien, muy acertadamente, dijo una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Wed Nov 12, 2008 12:09 pm    Post subject: Reply with quote

cierto, gracias, cuando tenga un segundo lo añadiré al manual y lo retocaré un poco de paso, que está un poco bastante obsoleto ya.

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
inconexo
Tux's lil' helper
Tux's lil' helper


Joined: 25 Aug 2005
Posts: 144

PostPosted: Sat Nov 29, 2008 5:02 pm    Post subject: Re: [mini-howto] Como integrar KVM en tu lan Reply with quote

Gringo, gracias por el excelente manual; permiteme correguir un pequeño bug:

gringo wrote:


Code:
kvm -hda vdisk.img -boot c -m 384 -k es -net nic,macaddr:52:54:00:12:34:57 -net tap,ifname=tap0,script=no


Es MUY importante que si trabajáis con mas de un cliente cambiéis la dirección mac del cliente y como usamos los scripts de gentoo le decimos que NO queremos usar ningún tipo de script. Asi, para levantar un segundo cliente p.ej. :

Code:
kvm -hda vdisk2.img -boot c -m 384 -k es -net nic,macaddr:52:54:00:12:34:59 -net tap,ifname=tap1,script=no



Bien, como bien dice gringo, es muy importante que MAC sea distinta en cada maquina. La sintaxis correcta para especificar la MAC de cada tarjeta de red de cada maquina virtual es:

Code:
-net nic,macaddr=52:54:00:12:34:59


Es decir, un signo =

Tambien propongo estos scripts para el boot:

Boot de un windows:

Code:
kvm -vnc :5,password -monitor stdio -m 256 -k es -net nic,model=rtl8139,macaddr=DE:AD:BE:EF:24:20 -net tap,ifname=tap5,script=no win.dominio.com.img

(podremos conectarnos por vnc a ip_de_host:5, para ver lo que ocurre, y teclear "change vnc password" desde la consola del qemu para especificar una password para el vnc)

Boot de un gentoo (ojo, debemos prescindir del frame buffer)

Code:
kvm -curses -m 256 -k es -net nic,model=e1000,macaddr=DE:AD:BE:EF:62:24 -net tap,ifname=tap2,script=no lin.dominio.com.img

Como veis, no es necesario contar con un servidor X, como en vmware

Un saludo!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum