Configuración de modem 3G para NetworkManager e Ifup

Si para conectarnos a Internet solo disponemos de un modem 3G, quizás la forma más fácil de configurarlo y utilizarlo en las distros Linux es mediante NetworkManager, cuyo asistente nos simplificará enormemente esta tarea.

Pero para los usuarios más pro, que "necesitan" utilizar el modem mediante el manejador de redes estándar ifup la cosa se complica un poco más. Así que eso estaremos viendo en este artículo, como configurar un modem 3G en openSUSE con NetworkManager y también con Ifup, aunque esto último por alguna razón no me ha funcionado.

Pero quizás algunos dirán, ¿alguien necesita configurar un modem mediante el manejador estándar de redes de Linux, el omnipotente ifup? pues yo en una ocasión estuve a punto de necesitarlo. Se me presentó un caso en el que me habían solicitado preparar entornos basados en Linux para puestos de trabajo remotos que estarían instalados en lugares sin cobertura de WiMax pero sí con 3G/EDGE, motivo por el cual me puse a investigar cuales serían los pasos para hacerlo funcionar, ya sea mediante ifup o bien NetworkManager.

La elección de porqué utilizar ifup y no NetworkManager quedó decidido así en ese entonces (hace un par de años) para evitar que los usuarios normales pudieran modificar la configuración de la conexión y armar un lio tremendo. En aquella oportunidad las pruebas realizadas con Ifup fueron satisfactorias, sin embargo en mis pruebas más recientes no he sido capaz de alcanzar los mismos resultados.

En fin, sin más preámbulos vayamos por el primero método, el que me ha funcionado y el que a la vez es el más sencillo, como configurar un modem 3G con NetworkManager.

Advertencia: En esta guía la configuración relacionada a la operadora de banda ancha móvil corresponde al país Paraguay, queda a cargo de cada lector verificar los parámetros adecuados para su operadora local.

Configuración mediante NetworkManager:

La forma más sencilla de configurar la conexión a Internet con estos dispositivos móviles en las distros Linux es sin duda NetworkManager. Si bien en un pasado no muy lejano esta herramienta era un quebradero de cabeza, hoy en día ha mejorado mucho debido probablemente a la masificación y a la necesidad de que estos dispositivos funcionasen correctamente con nuestros ordenadores.
  1. Comenzamos por instalar los paquetes del NetworkManager.
    testsrv:~ # zypper in NetworkManager
  2. Para que NetworkManager sea el gestor de redes por defecto necesitamos realizar unos ajustes en el archivo /etc/sysconfig/network/config,
    testsrv:~ # vi +196 /etc/sysconfig/network/config
    En el que buscamos la directiva NETWORKMANAGER para cambiarle su valor a YES:
    NETWORKMANAGER="yes"
    Guardamos los cambios, salimos del archivo de configuración y por último reiniciamos el servicio network para que los cambios tomen efecto:
    testsrv:~ # systemctl restart network.service
  3. Al conectarnos a nuestra sesión gráfica de KDE ya nos debería aparecer el ícono del gestor de redes en el área de notificaciones de la barra de tareas. Teniendo conectado el modem al puerto USB, el despliegue de la ventana de configuración preliminar del NetworkManager debería verse como sigue:

    En el margen izquierdo ya se puede visualizar la opción modem aún no configurada junto a los demás medios.

  4. Para comenzar a configurar el modem tenemos que acceder a la opción Manage Connections... de la interfaz del punto anterior, que desplegará una nueva ventana en la que nos tenemos que posicionar en la pestaña Banda ancha móvil para luego presionar el botón Añadir... del lateral derecho de la interfaz.


  5. El paso anterior desplegará un asistente de configuración que francamente me ha sorprendido, ya que ha detectado correctamente mi hardware e inclusive me ha ofrecido ya la configuración adecuada de mi operador de internet de banda ancha móvil local. Esto lo podemos observar en las siguientes capturas de pantalla:






  6. Al culminar el wizard anterior ya tendremos toda la configuración necesaria para que el modem funcione, la configuración final puede ser observada en las siguientes capturas:



    Para guardar los cambios presionamos el botón Aceptar de la ventana mostrada en las recientes capturas.

  7. Al culminar con el paso anterior nos volverá a mostrar la interfaz plasmoid (el frontend) de NetworkManager, donde a la derecha nos aparecerá una nueva opción correspondiente a nuestro modem de banda ancha. Para conectarnos a Internet mediante este dispositivo primero tendremos que marcar el botón de selección inferior Activar banda ancha móvil y luego presionar sobre la opción de la derecha, en mi caso Tigo - Internet (EDGE) como se puede apreciar en la siguiente captura:


    Esto cambiará sensiblemente los iconos de la interfaz modem y agregará un botón rojo que nos permitirá desconectarnos nuevamente. También si presionamos sobre la opción de la izquierda correspondiente a la interfaz módem se nos desplegará información adicional relacionada a la conexión.






    En la última captura anterior también se puede observar cómo quedará el icono de la barra de notificaciones del gestor de redes de KDE, seguro que muchos se estarán preguntando EDGE??? si, las pruebas las hice con un modem que soporta solo transferencia de datos GSM (GPRS y EDGE), pero los pasos son los mismos para modems 3G.

  8. También podemos verificar la configuración de la interfaz modem conectándonos a una consola con el usuario root y ejecutando el comando que aparece a continuación:
    testsrv:~ # ifconfig ppp0
    ppp0 Link encap:Point-to-Point Protocol
    inet addr:181.127.175.239 P-t-P:192.168.111.111 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
    RX packets:39 errors:0 dropped:0 overruns:0 frame:0
    TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:3
    RX bytes:3546 (3.4 Kb) TX bytes:3081 (3.0 Kb)

    testsrv:~ #


Configuración mediante Ifup:

Sinceramente no me ha funcionado la configuración que veremos más adelante, ni siquiera realizando la configuración mediante el asistente Yast, pero igual la agregaré a continuación para dejar documentado los conocimientos adquiridos hasta el momento.

  1. Antes que nada está instalar las dependencias necesarias.
    testsrv:~ # zypper in ppp smpppd wvdial
  2. Para que Ifup vuelva a ser el gestor de redes por defecto necesitamos modificar nuevamente la directiva NETWORKMANAGER en el archivo /etc/sysconfig/network/config, por ello abrimos el archivo:
    testsrv:~ # vi +196 /etc/sysconfig/network/config
    Y cambiamos el valor de la directiva NETWORKMANAGER a NO:
    NETWORKMANAGER="no"
    Finalmente reiniciamos el servicio network para que los cambios tomen efecto:
    testsrv:~ # systemctl restart network.service
  3. Lo primero que debemos realizar a continuación es crear un archivo y agregarle las directivas de configuración correspondientes al proveedor del Internet (operadora móvil). El archivo debe estar ubicado en el directorio /etc/sysconfig/network/providers y lo podemos crear a partir del archivo /usr/share/doc/packages/smpppd/examples/komtel, el nombre del archivo provider en este ejemplo será el de mi operador de banda ancha móvil:
    testsrv:~ # cp /usr/share/doc/packages/smpppd/examples/komtel /etc/sysconfig/network/providers/tigo
    Procedemos a editarlo,
    testsrv:~ # vi /etc/sysconfig/network/providers/tigo
    y lo dejamos con una configuración similar a la que sigue:
    PROVIDER='tigo'

    DSLSUPPORTED='no'
    ISDNSUPPORTED='no'
    MODEMSUPPORTED='yes'

    USERNAME='tigo'
    PASSWORD='tigo'

    PHONE='*99#'

    STUPIDMODE='yes'
    ASKPASSWORD='no'
    AUTODNS='yes'
    AUTO_RECONNECT='yes'

    DEFAULTROUTE='yes'
    DEMAND='no'
    IDLETIME='900'
    IPADDR=''
    MODIFYDNS='yes'
    MODIFYIP='yes'
    REMOTE_IPADDR=''
    Configuración en la que se tiene que prestar especial atención a las directivas resaltadas ASKPASSWORD, PASSWORD, PHONE, PROVIDER y USERNAME que son las que suelen cambiar entre los proveedores del servicio.

  4. El siguiente paso consiste en identificar el nombre del dispositivo y su ruta, ya que más adelante será necesario utilizar esta y otra información para la configuración del dispositivo. Una de las formas para conocer el nombre del puerto USB es mirando la salida del comando dmesg:
    testsrv:~ # dmesg | grep tty
    [ 0.000000] console [tty0] enabled
    [ 19.508018] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
    testsrv:~ #
    Pero el comando que sin duda más información de utilidad provee es sin duda wvdialconf que nos generará un archivo de configuración para la herramienta de conexión wvdial que no utilizaremos en esta guía:
    testsrv:~ # wvdialconf
    Entre la información generada por el comando wvdialconf será de utilidad la ruta al dispositivo (MODEM_DEVICE-xxxxx) y su velocidad de conexión (SPEED-xxxxx).

    Un punto importante a tener en cuenta con relación a los puntos de montaje de los modems es que al conectar otro dispositivo USB es posible que la ruta al dispositivo pueda cambiar, ya que luego de reiniciar el equipo y dependiendo del orden en que estén conectados los dispositivos se puede dar el caso en que nuestro dispositivo deje de estar en /dev/ttyUSB0 y pase a estar en /dev/ttyUSB1, algo que en este ejemplo es menos probable ya que el modem es detectado como de clase ACM (Abstract Control Model, vía Wikipedia).

  5. Ahora nos toca preparar el archivo de configuración del modem para Ifup en el directorio /etc/sysconfig/network, este lo creamos a partir de un archivo de ejemplo como se ve a continuación
    testsrv:~ # cp /usr/share/doc/packages/smpppd/examples/ifcfg-modem0 /etc/sysconfig/network/ifcfg-modem0
    Editamos el nuevo archivo ifcfg-modem0:
    testsrv:~ # vi /etc/sysconfig/network/ifcfg-modem0
    y lo dejamos similar a lo que sigue poniéndole especial atención en la configuración de las directivas INIT3, MODEM_DEVICE, NAME, PROVIDER y SPEED:
    BOOTPROTO='dhcp'
    DIALCOMMAND='ATDP'
    DIALPREFIXREGEX=''
    INIT1='ATZ'
    INIT2='AT Q0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
    INIT3='AT+CGDCONT=1,"IP","internet.tigo.py"'
    INIT8='ATM1'
    INIT9=''
    MODEM_DEVICE='/dev/ttyACM0'
    NAME='WAVECOM MODEM'

    PPPD_OPTIONS=''
    PROVIDER='tigo'
    SPEED='57600'

    STARTMODE='auto'
    UDI=''
    USERCONTROL='no'
  6. Culminado con el paso anterior solo nos restaría reiniciar el servicio de red y la interfaz ya debería funcionar:
    testsrv:~ # systemctl restart network.service
    Pero al verificar la configuración anterior con el comando ifconfig la interfaz modem0 no aparece entre la lista de dispositivos de red habilitados.

    En fin, he probado muchas cosas pero no he podido encontrar la solución al problema, así que si alguien conoce el motivo de este inconveniente les estaría agradecido si pudiesen dejar un comentario para aclarar su causa y si es posible como puede ser solucionado.


Entorno de configuración y pruebas

  • openSUSE 12.1 i586/x86_64
  • KDE 4.7.2
  • NetworkManager 0.9.1.90-4.8.1
  • sysconfig 0.75.4-2.7.1


Enlaces

Comentarios