Conectando a Redes de Marcado Sobre Wifi
Este documento es un complemento al artículo en Gulix sobre cómo configurar conexiones de red en Linux (TOBEDONE enlace pendiente).
En este documento se presenta en español, un procedimiento para poder configurar una distribución Linux de modo de poder conectarse a conexiones ADSL (PPP) sobre Wifi, también llamada a veces “PPPoWifi” como contraste a PPPoE (PPP sobre Ethernet). Aunque no es una configuración comúnmente encontrada1), ha tenido notoria presencia en algunas zonas en particular, en Temuco como es ofertada por Telefónica del Sur.
Conexión
Como ejemplo, comparemos la conexión como se configura y observa desde una máquina con Windows.
TODO Agregar fotos.
El Problema
¿Cuál es el Problema?
Cuando NetworkManager fue diseñado, no se siguió completamente la especificación del modelo_osi y se dejó el modelo de conexión PPP (point-to-point) como dependiente del concepto de tener una conexión cableada Ethernet. Debido a esto, es posible configurar NM para conectarse a una red cableada y agregar una conexión de “acceso telefónico a redes”; sin embargo, cuando se trata de utilizar esa conexión en una red inalámbrica, NM primero se desconectará de la red inalámbrica antes de tratar de conectarse a la red punto a punto. Obviamente esto fallará.
¿Cómo Sé si Estoy Afectado?
Como tal, este artículo solamente afecta a aquellas personas que tienen contratado un servicio de internet ADSL que se conecta vía inalámbrica; es decir, conexiones en dos pasos: primero conectarse a una red inalámbrica (que puede ser WEP o WPA, que puede o no pedir contraseña, etc) y de ahí conectarse con un nombre de usuario y contraseña con un sistema como el de la “Conexión Telefónica a Redes” de Windows.
Personas que no están afectadas por el criterio anterior no necesitan de este tutorial; pueden configurar sus conexiones ADSL o similares con cualquiera de varios tutoriales existentes en Internet, por ejemplo:
- TOBEDONE – Agregar enlaces a otros tutoriales.
Configurando el Servicio de Red
Para solucionar el problema es posible utilizar la conexión inalámbrica desde otra interface de usuario, o mejor aún levantarla a mano “comolohombre”; ya que este problema es exclusivo a NetworkManager. El Launchpad de Ubuntu (⇒Enlaces Relevantes) tiene algunos apuntes a este respecto.
Para poder conectarse a una red ADSL (de marcado) pasando por una conexión inalámbrica, basta con deshabilitar NetworkManager (no es la gran cosa después de todo, tiene muchas dependencias a Gnome y KDE) e instalar un gestor de conexiones como wicd que permite gestionar las redes cableadas e inalámbricas; a continuación, se configura y activa la interface de red de marcado usando los comandos que trae para esto las distribuciones de Linux.
Puesto que el procedimiento usa distintos archivos de configuración y comandos dependientes de la distro, se mostrará el procedimiento para las populares Fedora y Ubuntu, objetivos de la Flisol 2011 en la Sede Temuco.
Requisitos Generales para Aplicar Esta Solución:
- Tener capacidad para manejar la consola.
- Tener acceso a los privilegios de superusuario.
- (Opcional) Poder instalar un gestor de conexiones alternativo a NetworkManager.
Distros Debian
Distros RedHat
Para ejecutar los siguientes pasos es necesaria una consola (terminal), así como los privilegios de superusuario.
El primer paso es entrar a la carpeta que guarda nuestras configuraciones de conexión y una vez ahí listar los contenidos del directorio, concentrándonos en aquellos archivos que llevan el prefijo “ifcfg” (interface config):
[usuario@host ~] $ cd /etc/sysconfig/network-scripts [usuario@host network-scripts] $ ls ifcfg* ifcfg-enter ifcfg-eth0 ifcfg-lo ifcfg-ppp0 ifcfg-telsur ifcfg-wlan0
(la salida es una salida de ejemplo)
Si el archivo ifcfg-ppp0
no existe, debemos crearlo con las herramientas de configuración de PPPoE de nuestra distribución; en este caso, con la utilidad pppoe-setup. Ver los enlaces de referencia al final por ejemplos.
Nos concentramos en el archivo ifcfg-ppp0
que es el que contiene nuestra configuración de red de marcado. Crearemos una copia de este archivo al cual llamaremos ifcfg-adsl0
, con el propósito de preservar este modelo de conexión sin afectar nuestra capacidad de conectarnos por PPPoE cableada; esto nos pedirá los privilegios de superusuario:
sudo cp ifcfg-ppp0 ifcfg-adsl0
Ahora tenemos un archivo que modificaremos para crear una copia “inalámbrica” de nuestra conexión de marcado “alámbrica”; procederemos a abrir este archivo con su editor de texto favorito, obviamente con los privilegios de superusuario:
[usuario@host network-scripts] $ sudo leafpad ifcfg-adsl0
Esto abrirá el editor con un archivo que debiera tener una estructura igual a la de nuestro archivo ifcfg-ppp0
de conexión de marcado alámbrica; acá se mostrará una configuración de ejemplo:
USERCTL=yes BOOTPROTO=dialup NAME=DSLppp0 DEVICE=ppp0 TYPE=xDSL ONBOOT=no PIDFILE=/var/run/pppoe-adsl.pid FIREWALL=NONE PING=. PPPOE_TIMEOUT=20 LCP_FAILURE=2 LCP_INTERVAL=30 CLAMPMSS=1408 MTU=1408 CONNECT_POLL=4 CONNECT_TIMEOUT=30 DEFROUTE=yes SYNCHRONOUS=yes ETH=eth0 PROVIDER=DSLppp0 USER=nombredeusuario@proveedor PEERDNS=no DEMAND=no
A continuación se dará un detalle de las líneas que nos interesan.
USERCTL=yes | Esta línea indica que un usuario puede conectar o desconectar la cuenta. Sin este valor, no podemos escoger cuándo conectarnos o no a internet. |
---|---|
USER | Ésta es nuestra cuenta (nombre de usuario) con nuestro proveedor. Se ha generalizado el nombre para proteger la seguridad de los inocentes. |
ETH | Éste es el nombre de la interface de red a la que se asocia el marcado y por tanto la línea que debemos modificar (ver a continuación). |
Para hacer que nuestra conexión quede asociada a la red inalámbrica en vez de la cableada, simplemente modificamos la variable ETH
de modo que apunte a la interface de red inalámbrica de nuestra máquina; por ejemplo de la forma siguiente si nuestra conexión inalámbrica corre por cuenta de la tarjeta inalámbrica por defecto en el sistema:
ETH=wlan0
Guardamos el archivo y salimos. La cuenta utilizada seguirá siendo la misma, asociada a las credenciales almacenadas en /etc/ppp/peers/
.
Probando
Para probar que la solución funciona, tenemos dos alternativas:
Sin NetworkManager:
Desactivemos NetworkManager ejecutando el comando sudo /etc/init.d/NetworkManager stop
; tras autenticar nuestros privilegios debemos confirmar que el icono y control de NM desaparecen de nuestra interface.
A continuación, iniciamos nuestro gestor de conexión alternativo; por ejemplo para wicd es sudo /etc/init.d/wicd start
, mientras que en distribuciones RedHat se accede al configurador de red system-config-network
vía el Menú de Administración. Habiendo inicializado nuestro gestor de conexiones alternativo, nos conectamos a la red inalámbrica por medio del procedimiento normal.
Con NetworkManager:
Por completar
TOBEDONE imagen de conexión inalámbrica con wicd
.
Ahora accedemos a una consola e iniciamos la interface de red de marcado que hemos creado en los pasos anteriores por medio del comando pon nombredeconexion
.
sudo pon adsl0
La consola se quedara quieta un momento antes de devolvernos al prompt; desde este momento el sistema esta marcando la conexión.
Podremos saber que se ha establecido la conexión cuando al ejecutar ifconfig
veamos el nombre de nuestra conexión con una IP asignada:
[usuario@host] prompt $ ifconfig ... más salida
Para detener la conexión basta con usar el comando poff
con el nombre de la conexión.
sudo poff adsl0
Aquí se ha utilizado los privilegios de superusuario para ejecutar estos comandos, pero podrían no ser necesarios.
Alternativamente, los usuarios de Fedora o CentOS que hayan instalado system-config-network
pueden encontrar la conexión bajo la ficha “xDSL” de la interface e iniciarla desde ahí. Esto requiere privilegios de superusuario.
Consideraciones
Esta solución debe considerarse como una solución temporal; a fecha de Octubre de 2010 la gente de NetworkManager afirma que se está escribiendo el código que debiera solucionar este problema de manera definitiva; aunque obviamente este código será difícilmente portado a distribuciones anteriores de Linux.
Esta solución requiere un uso periódico de la terminal para conectarse a internet. Es bueno en cuanto a que aprenderá usted así a no tenerle miedo a la consola. Sin embargo eso no quita que puede usar una interface gráfica para PPPoE, como el ya mencionado system-config-network
o gpppon
en algunas distros.
Enlaces Relevantes
- Artículo por Denis Fuenzalida – acerca de la conexión usando Ubuntu; algo viejo (usa 6.06) pero el procedimiento general es relevante para todos los *buntu.
- Reporte del problema en RedHat – los posts cerca de Agosto del 2010 tienen algunos tips para solventar el problema desde la consola.
- Reporte del problema en Ubuntu Launchpad – en función de Ubuntu 8.04 / 8.10, pero es una falla de diseño relevante en versiones posteriores.
- TOBEDONE Agregar enlace a GNome Feature Requests