martes, 26 de septiembre de 2023

Elon Musk quería una IA de código abierto como Linux, pero Google no estaba interesado

Está Escrito:
El que labra su tierra se saciará de pan; Mas el que sigue a los vagabundos es falto de entendimiento. (P
roverbios 12:11)

Tomado de: Genbeta

La gran expansión que ha tenido la inteligencia artificial en los últimos años sin duda ha dado muchas ventajas a nuestra industria, y también a nosotros como usuarios al tener diferentes IA de consumo. Pero también debemos tener en cuenta que puede tener diferentes peligros, contra los que Elon Musk lleva en guerra desde hace ya más de 10 años.

El 'miedo' a la IA de Elon Musk comenzó en el año 2012 tras una charla con el investigador Demis Hassabis el que le comentó que 'las máquinas podrían volverse superinteligentes y superarnos a los simples mortales'. En ese momento Musk decidió invertir dinero en DeepMind, el mayor proyecto de IA que existía en ese momento, para poder monitorizarlo e intentar influir para evitar estos peligros.

Elon Musk está obsesionado con los peligros de la IA y su control

Tras entrar en DeepMind, Musk tuvo una charla con Larry Page de Google para describirle el proyecto y contar los peligros que veía en la IA. Y es que se había convertido en un tema obsesivo para el propio Elon al afirmar constantemente que 'la inteligencia artificial podría reemplazar a los humanos haciendo nuestra especie irrelevante'. Pero la gran sorpresa que se llevó fue cuando Google y el propio Page querían comprar DeepMind en 2014.

A partir de ese momento comenzó a tirar de todos sus contactos, incluido el propio Barack Obama, para promover la seguridad de la IA con una buena regulación y que no estuviera controlada por nadie. Esto hizo que fundara OpenAI junto a Sam Altman con el objetivo de crear una IA de código abierto para contrarrestar el crecimiento de Google.

'Queríamos tener algo así como una versión Linux de la IA que no estuviera controlada por ninguna persona o corporación' es como definió lo que quería buscar con OpenAI. Y es que ya sabemos que Linux es un software que está abierto para todo el mundo, y no dominado por una empresa como puede ser Microsoft o Apple con Windows y macOS respectivamente.

Pero Musk finalmente abandonó OpenAI en 2018 por diferentes discrepancias por Sam Altman sobre el futuro de la empresa. En 2023 llegó el plato fuerte que no quería ver Elon: el lanzamiento de ChatGPT y de Bard, haciendo un monopolio entre Microsoft y Google por la IA. Ante esto, él quiso poner un poco más difícil la tarea de entrenar a estas inteligencias artificiales que podrían utilizar todos los tweets que residían en Twitter. De esta manera limitó la cantidad de tweets que se podían ver durante un espacio temporal muy corto.

A partir de ese momento los esfuerzos de Musk por 'preservar la conciencia humana' se ha centrado en la creación de diferentes empresas para generar un competidor a ChatGPT que fuera neutralmente político. Pero deberemos ver si esta obsesión con el peligro de la IA termina llegando a buen puerto y consigue finalmente tener esa IA que tenga un funcionamiento similar a Linux a día de hoy.

Fuente | Time


martes, 18 de abril de 2023

La VPN de Opera vuelve a iOS

Está Escrito:

Pues por esto pagáis también los tributos, porque son servidores de Dios que atienden continuamente a esto mismo. Pagad a todos lo que debéis: al que tributo, tributo; al que impuesto, impuesto; al que respeto, respeto; al que honra, honra. (Romanos 13:6-7)

Tomado de: muycomputer

Opera suele destacar, desde siempre, por ser un navegador bastante innovador, al punto de que el resto suelen fijar su vista en las novedades presentadas por el mismo para sumarlas a sus propios navegadores. Esto no siempre ocurre así, claro, pero cuando no son los primeros, sí que muestran una rápida capacidad de respuesta, como ya vimos con el anuncio del integración de ChatGPT, que se produjo menos de una semana después del anuncio de Microsoft Edge con Copilot, y que ya está disponible desde hace varias semanas.

Un movimiento muy audaz por parte de Opera se produjo allá por 2016, cuando el navegador empezó a ofrecer conexión mediante VPN de manera totalmente gratuita. Desde entonces, esta ha sido una de las principales razones de muchos usuarios para optar por este navegador frente al resto de oferta en este sentido. Es cierto que podemos encontrar extensiones y complementos gratuitos que añaden la conectividad mediante VPN a otros navegadores, pero la integración del servicio en Opera y su fiabilidad son, sin duda, una garantía.

En sus primeros tiempos el servicio se ofrecía tanto para las versiones de escritorio como para las de Android e iOS, pero como recordábamos hace un año, cuando se produjo el lanzamiento de Opera VPN Prola compañía decidió poco después de su lanzamiento global retirar esta función de las versiones para Android e iOS, para desdicha de sus usuarios que, de este modo, se quedaron sin una de las funciones más valoradas.


Sin embargo esto ha cambiado, pues hace algún tiempo que la VPN gratuita volvió a Android y, según podemos leer en el blog oficial del navegador, el servicio de VPN gratuito de Opera también retorna a iOS. De esta manera, tal y como afirman en dicha publicación, «Opera se ha convertido en el primer navegador web en ofrecer una VPN integrada y gratuita en todas las plataformas principales: Mac, Windows, Linux, Android y ahora iOS«, sin duda un gran hito.

El despliegue de esta nueva función ya se ha iniciado, pero según afirman tardará unas semanas en completarse. La buena noticia es que su alcance es total y que, al igual que en el resto de plataformas, no será necesario contar con cuenta de usuario ni otro tipo de registro, de modo que la navegación al emplearlo será anónima. Y, por supuesto, el volumen de tráfico también será ilimitado. Eso sí, podemos entender este movimiento como una vía más para dar a conocer el servicio Pro que, muy probablemente, también será accesible desde Opera para iOS.


jueves, 6 de abril de 2023

Apache PLC4X Christofer Dutz


Está Escrito:

Cada uno de nosotros agrade a su prójimo en lo que es bueno, para edificación. Porque ni aun Cristo se agradó a sí mismo; antes bien, como está escrito: Los vituperios de los que te vituperaban, cayeron sobre mí. Porque las cosas que se escribieron antes, para nuestra enseñanza se escribieron, a fin de que por la paciencia y la consolación de las Escrituras, tengamos esperanza. (Romanos 15:2-4)

Tomado de: xataka

Christofer Dutz está hasta las narices. El desarrollador es uno de los seis responsables de mantener un componente llamado Apache PLC4X, un conjunto de librerías para la comunicación con controladores de lógica programable. Parece complejo y lo es, pero es que además es uno de esos elementos que permiten que las cosas funcionen como deben en multitud de sistemas de automatización e IoT.

Sin embargo el desarrollador explicaba hace tiempo que ya está harto de trabajar por amor al arte. "A la industria parece gustarle usar PLC4X y el Open Source en general, pero no parece estar dispuesta a apoyar [económicamente] a la gente que trabaja en ello". Las empresas se ahorran millones gracias a su trabajo, pero no aportan nada, y Dutz ha decidido que dejará de dar soporte gratuito a la comunidad PLC4X. O le pagan, o lo deja. El problema no es nuevo, pero es parte de una realidad terrible e injusta que necesita solución. 

Traduccion
Herramientas de compilación Apache PLC4X
Apache PLC4X Build-Tools es un subproyecto del proyecto Apache PLC4X y contiene todas las herramientas necesarias para construir el proyecto principal.

Actualmente, las únicas herramientas que contiene son un complemento maven que se usa para generar controladores y un nuevo tema de sitio maven-site-plugin.

Actualmente no contiene ningún módulo de generación de código real, sino solo el complemento y la API necesarios para cargar y usar módulos de generación de código.

Los piropos y los aplausos no bastan

En aquellos días conocíamos además el caso de Marak Squires, el desarrollador de dos de las librerías NPM más populares. Esos componentes software tienen una base de usuarios que hace que se descarguen casi 25 millones de veces cada semana, pero Squires decidió corromperlas para demostrar algo importante: "ya no apoyaré a las empresas Fortune 500 con mi trabajo gratuito".

Para Christofer Dutz la realidad es exactamente la misma. Harto de la situación, publicó en su blog en GitHub una entrada en la que explicaba cómo estaba cansado de trabajar en el proyecto Apache PLC4X sin obtener prácticamente nada a cambio.

Durante unos años no tuvo problema con ese trabajo: la empresa para la que trabajaba de hecho le pagaba para que se dedicase a jornada completa a ese proyecto crítico para muchos ámbitos de automatización industrial.

En ese post y en otro anterior contaba cómo por ejemplo su trabajo había permitido a una empresa ahorrar cerca de 20 millones de euros en costes de licencias que hubiera tenido que invertir en una solución comercial, y que con tres días de trabajo con otras tres personas lograron que su solución tuviera un rendimiento 1.300 veces superior al que ofrecía esa solución comercial.

Aún así, explicaba, "seguimos fracasando a la hora de conseguir clientes", y que oficiosamente la razón tenía que ver con temas políticos, no con el rendimiento de su solución. De hecho, contaba, tenían que firmar acuerdos de confidencialidad (NDAs) que impedían que hablaran abiertamente de sus éxitos.

"Todo en la industria de la automatización se considera alto secreto, y tan solo decirle al mundo que estás usando un producto dado parece imposible". Dutz dio conferencias y trató de comunicar lo importante que podía ser este proyecto para muchas empresas, pero no lo lograba porque en ese segmento "todo va de ferias industriales con stands extremadamente caros. Los presupuestos que los grandes protagonistas tienen a su disposición son simplemente increíbles. Como proyecto Open Source no tienen ninguna posibilidad de hacerse notar".

Lo que suele ocurrir es algo terrible: las empresas contactan con Dutz y sus colegas de proyecto para decirles básicamente lo mismo siempre: "gracias por trabajar en PLC4X, está haciendo nuestras vidas mucho más fáciles, así que lo estamos usando en nuestra empresa aeroespacial/de fundición/de fabricación de coches/farmacéutica pero tenemos este problema...". Y luego, básicamente, le piden ayuda sin más, esperando ayuda gratuita.

En 2020 ste desarrollador alemán decidió ir por libre y tratar de convertir su pasión en algo que le diera para vivir, pero lo pasó especialmente mal: "en Alemania una empresa necesita tener beneficios. Si tienes una empresa en déficit demasiado tiempo, te cerrarán la empresa". Dutz había seguido trabajando casi gratis en PLC4X, pero tenía que seguir pagando por comprar software y hardware de automatización para sus pruebas, y tuvo que acabar convenciendo a los funcionarios de que le dieran algo más de tiempo.

Photo 1534972195531 D756b9bfa9f2

Tras todo este tiempo Dutz confesaba que estaba "harto de luchar. Estoy harto de invertir mi precioso tiempo libre" y dejaba claro que sentía que "me estoy quemando sin obtener nada a cambio. Es como lo que ocurre con los chicos que trabajan en Sanidad ahora mismo [en referencia a su lucha contra la COVID-19]. Si creéis que las palabras amables y los aplausos son suficientes... creedme, no lo son".

Todo ello le ha hecho tomar una decisión radical. Dejará de trabajar por amor al arte y de dar soporte gratuito. Si no le pagan, lo dejará. "Si la industria no apoya a la gente que está tras el Open Source, yo al menos dejaré de apoyarles a ellos ciegamente de ahora en adelante".

Una realidad antigua, terrible e injusta

Lo ocurrido con Dutz y con Squires es en realidad la última gota de un vaso que lleva demasiado tiempo estando colmado. Podemos esbozar una sonrisa al recordar el eterno meme de que este va a ser el año de Linux en el escritorio, pero la realidad es muy distinta.

Puede que Linux no triunfe en PCs o portátiles, pero tanto Linux como otros muchos proyectos Open Source son absolutamente críticos para la infraestructura de internet que usamos a diario. Los ejemplos son ya famosos: Android está basado en Linux y otros muchos componentes Open Source (pero no, no es Open Source), y la presencia de Linux en servidores es gigantesca. No hablemos ya del mundo de la supercomputación, donde la cuota de mercado de Linux es absoluta: el 100% de los supercomputadores ma´s potentes del mundo están basados en Linux.

Las empresa más poderosas del planeta de hecho se han apuntado a esto del Open Source de forma muy cuca: presumen de usarlo y de compartir cierto número de proyectos como Open Source, pero lo que está claro es que reciben mucho más de lo que dan.

Los ejemplos son claros, y si hay una empresa que haya logrado lavar su imagen con este tipo de mensajes es Microsoft, que parece haber pasado del odio al amor y que ahora aprovecha Linux para reconciliarse con desarrolladores y para potenciar su gigantesca infraestructura en la nube, Azure. ¿Sabíais que Linux se usa más que Windows en Azure? Lo hace.

Otra cosa es que estas empresas le devuelvan al mundo del Open Source y a la comunidad todo eso que ellas reciben. Es cierto que algunas abren proyectos con licencias Open Source y permiten así que desarrolladores de todo el mundo contribuyan, pero las motivaciones suelen ser discutiblescomo ocurre con Chromium —todos lo han acabado adoptando salvo Safari y Firefox, que lucha contra todos— o con proyectos llamativos pero menores como Windows Terminal.

Luego se producen situaciones curiosas como la que afecta al núcleo del sistema operativo GNU/Linux. El kernel Linux, su componente fundamental, no para de ser mejorado y de evolucionar, y ¿sabéis quién contribuye a ese desarrollo? Las grandes empresas tecnológicas. En su informe de agosto de 2020 (PDF) la Linux Foundation revelaba los 20 grandes contribuyentes al código de Linux en los últimos años:


Captura De Pantalla 2022 01 13 A Las 12 35 32

Es algo que comentábamos hace tiempo y que revela cómo esa apuesta por el Open Source es, lógicamente, una apuesta interesada. Que empresas como Intel, Red Hat (ahora propiedad de IBM), Google, Samsung o AMD contribuyan al kernel se debe a su interés de que el kernel se adapte a sus necesidades con controladores y componentes que permitan sacar provecho de ciertos componentes hardware utilizados o desarrollados por esas empresas.

Sin embargo esas y otras muchas empresas y entidades hacen uso del Open Source sin apenas devolver nada a cambio. Un desarrollador se quejaba hace años de cómo Amazon ignoraba el trabajo de programadores voluntarios que contribuían a sus proyectos Open Source (y a su gigantesca plataforma Amazon Web Services).

Mientras, en febrero de 2021 nos enterábamos de que la Unión Europea se ahorra más de 95.000 millones de euros al año gracias a los desarrolladores Open Source.

Los desarrolladores Open Source solo reciben limosnas

El problema en muchos casos es el mismo: los desarrolladores Open Source contribuyen con su esfuerzo y su trabajo a todo tipo de proyectos porque esa es su pasión, pero la rentabilidad económica de ese esfuerzo es terrible.

Lo comentaba el desarrollador Open Source André Stalz en un artículo publicado en junio de 2019 en el que analizaba la situación. El autor eligió los proyectos Open Source más populares gracias a la plataforma OpenCollective, y estudió el retorno económico (por ejemplo a través de los Patreon que algunos de los voluntarios mantenían) o cosas como su reputación en GitHub.

Escogió 58 proyectos —los más populares— y logró estimar el salario anual de quienes trabajaban en ellos. "Entre estos casi sesneta proyectos, la mayoría de ellos están por debajo de los límites de la sostenibilidad".

Salarios Open Source

Como mostraba el gráfico que configuró, más del 50% de los proyectos estaban marcados con una burbuja roja, que indicaba que quienes los mantienen "no pueden sostener a sus responsables por encima de la línea de la pobreza". El 31% son de color naranja, que indica "desarrolladores dispuestos a trabajar por un salario que sería considerado inaceptable en nuestra industria".

Según sus cálculos, la mediana de la donación anual es de 217 dólares, que podrían considerarse casi como una limosna frente a los sueldos que cobran hoy en día desarrolladores expertos como los que trabajan en estos proyectos, y que en Estados Unidos rondan los 100.000 dólares con facilidad.

miércoles, 8 de marzo de 2023

Configurando Red en Linux

Está Escrito:

Bendito sea el Dios y Padre de nuestro Señor Jesucristo, Padre de misericordias y Dios de toda consolación, el cual nos consuela en todas nuestras tribulaciones, para que podamos también nosotros consolar a los que están en cualquier tribulación, por medio de la consolación con que nosotros somos consolados por Dios. (2 Corintios 1:3-4)

Tomado de :ryan

Archivos de Configuración

La configuración de red en Linux se guarda en diferentes archivos dependiendo de la distribución de Linux utilizada, existiendo diversas ubicaciones en Redhat y derivados, Debian y derivados, y Novell. En general, hay ubicaciones y configuraciones más o menos estardarizadas.

Debian, Ubuntu, etc

En Debian y derivados (incluyendo Ubuntu), la configuración de red se guarda en el archivo /etc/network/interfaces, el cual contiene un mini-lenguaje de descripción y configuración para cada interface de red.

Entre otras variables, el archivo guarda, para cada interface:

  • Su estado de inicio (automático, manual o asistido)
  • La estructura de configuración (IP estática, DHCP, promisc, asistida por booteo, etc).
  • La dirección de red y la máscara de red asociadas, a menos que la interface sea DHCP.
  • Los nombres de los scripts responsables del inicio (ifconfig interface up) y parada (ifconfig interface down) de cada interface.

El formato del archivo es como sigue (un ejemplo):

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# Interface loopback, un dispositivo que el kernel utiliza
# para comunicacion de redes interna ("consigo mismo")
# la primera interface disponible recibe la IP 127.0.0.1
auto lo
iface lo inet loopback
 
# Interface ethernet servida por el modelo de gestión de red "static"
# (configuracion de red estatica)
auto eth0
iface eth0 inet static
address 200.22.22.71
netmask 255.255.255.240
gateway 200.22.10.65
dns-nameservers 8.8.8.8
post-up echo "Interface eth0 levantada con exito"
post-down echo "Interface eth0 bajada con exito"
 
# Interface ethernet servida por el modelo "dhcp"
# (configuracion IP se recibe de un servidor DHCP)
auto eth1
iface eth1 inet dhcp
leasehours 86400
client dhcpcd
Utilizando el manual puedes aprender sobre la configuración de este archivo: man 5 interfaces.

Redhat y Derivados

En Redhat y sus derivados (Fedora, CentOS, etc), la configuración de red se guarda en entradas bajo el directorio /etc/sysconfig/network, siendo un archivo para cada interface de red. Cada archivo contiene una serie de variables describiendo distintas características de la interface.

El directorio asociado scripts/ guarda los scripts utilizados para la inicialización (ifconfig interface up) y parada (ifconfig interface down) de estas interfaces.

Un ejemplo de archivo es este: ifcfg-eth0 que guarda la configuración de la tarjeta de red:

# Network Card brand, model
DEVICE=eth0
HWADDR=00:11:22:33:44:55
ONBOOT=yes
IPADDR=192.168.20.2
BOOTPROTO=none
NETMASK=255.255.0.0
TYPE=Ethernet
GATEWAY=192.168.20.1
USERCTL=no
PREFIX=16
NAME="Ethernet-0 Cableado"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
NM_CONTROLLED=yes
DEFROUTE=yes
  • DEVICE se refiere al nombre del dispositivo en el árbol de dispositivos, por ejemplo, para una configuración ADSL este nombre es ppp0.
  • HWADDR indica la Dirección MAC.
  • Las propiedades NM_CONTROLLEDUSERCTL y NAME permiten a la interface ser operada por medio de NetworkManager, el gestor de conexiones de red “relativamente moderno” que traen las distribuciones Linux desde 2008.

Configuración del Kernel

El kernel de Linux recibe un conjunto de parámetros, para la gestión del servicio de red, al momento del booteo del sistema. Estos parámetros se guardan bajo el árbol de directorios /proc en la siguiente ruta:

/proc/sys/net

Entre otras opciones disponibles, tenemos:

  • ipv4/icmp_echo_ignore_broadcasts: cuando está seteada a “1” el kernel rechaza entregar respuesta a peticiones ICMP de broadcast, como las que se pueden encontrar en un modelo de red en que una aplicación está buscando shares de red disponibles.
  • ipv4/ip_forward: cuando está a “1” el kernel redirige paquetes de una interface a otra, dentro de la misma máquina, siguiendo las reglas asociadas al gestor iptables.
  • ipv4/tcp_keepalive_time: el tiempo (en segundos) que un canal TCP puede estar abierto en espera de una transmisión o recepción de datos.
  • ipv4/iface/rp_filter donde iface es el nombre de una interface: cuando está a “1” se habilita la protección a rutas reversas remotas (RP-Spoof Protection).

Hay muchas otras variables más, como todas las variables del kernel pueden setearse los valores dentro del archivo /etc/sysctl.conf (recordar que para cargar las opciones es necesario ejecutar sysctl -p).

¿Más información? En el manual como siempre → sysctl.conf.

Comandos para los parámetros de Red

ip

Uso: para mostrar configuración, subir, bajar o configurar una interface de red.
Privilegiosnetworkroot o similar.

El comando ip sirve para mostrar o configurar varios aspectos de la red: interfaces, ruteo y dispositivos entre otros.

El comando toma una serie de subcomandos, los cuales cada uno procesa un tipo de tarea en específico, por ejemplo:

ComandoUso generalEjemplo
ip addressVisitar configuración IP de las interfaces de red
ip routeVisitar configuración de la tabla de ruteo
ip linkVisitar configuración de los dispositivos de red
ip ruleVisitar configuración de las políticas de ruteo

Por ejemplo:

Mostrar configuración de red de la interface eth0:

ip address show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 3c:97:0e:75:ce:f2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.224/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3e97:eff:fe75:cef2/64 scope link 
       valid_lft forever preferred_lft forever

Limpiar la configuración de red de la interface eth1:

ip address flush dev eth1

Mostrar la tabla de ruteo:

ip route
default via 192.168.23.1 dev eth0  proto static 
169.254.0.0/16 dev eth0  scope link  metric 1000 
192.168.23.0/24 dev eth0  proto kernel  scope link  src 192.168.23.5

Agregar una puerta de enlace (.1) de salida por la interface eth1:

ip route add default via 192.168.1.1 dev eth1

¿Más información? En el manual como siempre → ip.

ifconfig (Configuración Manual)

Uso: para subir, bajar o configurar una interface de red.
Privilegiosnetworkroot o similar.

El comando Linux que permite configurar los parámetros de red es ifconfig. Usuarios que no pertenecen al grupo network deben ejecutar este comando por medio de sudo si quieren hacer modificaciones.

Por ejemplo, si ejecutas Linux en una máquina de un laboratorio o de tu casa, local, y te has conectado vía red cableada, tu nombre de interface de red será seguramente eth0; si te has conectado vía inalámbrica puedes tener un nombre como wifi0 owlan0.

Si ejecutas ifconfig pasando esta interface como parámetro podrás obtener la configuración de red:

[usuario@localhost ] ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55  
          inet addr:192.168.42.10  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::211:2fff:fe91:2437/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:60918 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56872 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:63734800 (60.7 Mb)  TX bytes:5711244 (5.4 Mb)
          Interrupt:177 Base address:0x9000

Una explicación de las líneas más importantes (ver Notación de Redes y Segmentación):

  • Link encap determina qué tipo de interface estás trabajando, en este caso, es una conexión a una red Ethernet.
  • HWaddr es la dirección MAC de la interface de red en cuestión.
  • inet addr: aa.bb.cc.dd Bcast: zz.yy.xx.ww corresponde a las direcciones de IP y broadcast respectivamente.
  • netmask: aa.bb.cc.dd corresponde a la expresión decimal de la máscara de red.
  • RX packets representa el número de paquetes recibidos.
  • TX packets representa el número de paquetes enviados.
  • Interrupt: Z Base address: 0xnnnn representa el número del Interrupt PCI en caso que la tarjeta sea PCI, o el número de interrupt por software (o BIOS) si es una tarjeta PCMCIA, USB o similar.

Para cambiar la configuración de red, provisto que se tenga los permisos, se ejecuta ifconfig de la siguiente forma:

[privilegiado@localhost]  ifconfig eth0 192.168.20.230 netmask 255.255.255.0 [promisc] up/down
  • eth0: el nombre de la interface que quieres configurar.
  • A continuación la dirección IP que deseas asignarle.
  • netmask xxx.xxx.xxx.xxx para asignar la máscara de red.
  • promisc si quieres que la interface opere en modo “promiscuo”, en el cual recibe sin queja todos los paquetes de red que la alcancen, sin importar que estén destinados a su IP asignada o no. Útil para hackersdesarrolladores interesados.
  • up para “levantar” (activar) o down para “bajar” (desactivar) la interface. Este ítem es obligatorio.
Ejecutar el comando ifconfig no altera los valores guardados en los scripts de red (ej.: /etc/network/interfaces) por lo que los cambios se pierden la próxima vez que se recarguen las opciones de red (vía reinicio, hibernación o reinvocación de dhclient).

route (Configuración de Pasarela)

Si hemos usado ifconfig como en el ejemplo para cambiarnos de una red a otra, hemos de actualizar la Tabla de Ruteo del kernel para indicarle cuál es nuestro gateway. Si, siguiendo el ejemplo anterior, el gateway para la red 192.168.20.0/24 a la cual nos hemos conectado, fuera la dirección .254, debemos utilizar el comando route (¡requiere privilegios de superusuario!) para ingresar el nuevo gateway como sigue:

route add default gw 192.168.42.254 eth0

Ejecutar el comando route sin parámetros nos muestra una tabla con información de las condiciones de ruteo actual:

[user@machine ~]$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.0.0     U     0      0        0 eth0
default         192.168.42.10   0.0.0.0         UG    0      0        0 eth0

La línea que lee G en la columna de banderas (“flags”) es la que nos indica cuál es la dirección IP de nuestra pasarela o gateway (bajo la columna correspondiente).

dhclient (Recepción por DHCP)

Si no puedes asignar una dirección IP estática o si dependes de un servidor DHCP para que te entregue una IP, en este caso se ejecuta en vez de ifconfig el comando especial dhclient, el cual requiere privilegios de administrador.

Otra alternativa, es que si la interface de red asociada (ej.. eth0) está configurada como “dhcp” en el archivo interfaces, simplemente puedes usar el panel de red provisto por tu distribución (NetworkManager o wicd en Ubuntu) para detener y reiniciar la interfaz; en el proceso, ésta pedirá una configuración DHCP.

Sin embargo para que esta opción funcione las interfaces de red deben ser levantadas/bajadas con los comandos especiales ifup e ifdown respectivamente, en vez de por medio de ifconfig.

Para pedir una dirección IP desde una interface de red específica, por ejemplo vía cable con eth0:

sudo dhclient eth0

Nota: dependiendo de la configuración del cliente (en tu máquina) y el servidor DHCP, varias variables pueden ser sobreescritas, incluyendo: tabla de ruteo, servidores de nombre (DNS vía /etc/resolv.conf), nombre de host, dominio, nombre NetBios, etc…

¿Más información?

ppp y pppoeconf (Configuración PPP y PPPoE)

POR HACER

iwconfig y wireless-tools (Configuración Inalámbrica)

Si tu tarjeta de red inalámbrica está soportada en tu distribución de Linux, puedes usar los tres comandos iwlistiwconfig y iwevent para determinar el estado de la red inalámbrica, buscar puntos de acceso y configurar la interface de red.

iwlist lista las características de la red y la señal detectadas. El comando más utilizado es iwlist interface scanning que muestra los Puntos de Acceso que ha localizado tu tarjeta.

iwevent es un programa que va listando en tiempo real las peticiones de configuracion y los eventos que recibe tu tarjeta inalámbrica. Inícialo en una terminal aparte y podrás ver en tiempo real los puntos de acceso localizados, la configuración de potencia de la señal y el ruido, y las interfaces de autenticación (WEP o WPA) soportadas por la red.

Finalmente iwconfig es el programa responsable de enviar parámetros de configuración a la tarjeta inalámbrica. Estos parámetros incluyen: a qué red conectarse (por medio de la especificación de nombre de red o ESSID), qué potencia utilizar, si usar el modo de gestión, replicador o maestro de la conexión, y qué sistema de autenticación y clave/claves utilizar.

Si tienes una tarjeta inalámbrica habilitada y su nombre de interface es wlan0, puedes buscar redes inalámbricas disponibles por medio del siguiente comando:

iwlist wlan0 scan

Esto listará las redes disponibles en una lista de células (cells), cada una con su tipo de encriptación, nombre de ESSID, etc. Toma nota de la red a la cual quieres conectarte (chequea los SSID que se van imprimiendo) y apunta el tipo de encriptación, el nombre de red y el punto de acceso.

Para conectarte a una red llamada, por ejemplo, “Red Privada”, la cual tiene una clave alfanumérica WEP “privado123456”1), ejecutas la siguiente instrucción:

iwconfig wlan0 essid "Red Privada" mode Managed key s:privado123456

En algunas ocasiones una red puede no tener un servicio de “auto-publicación” (autodiscovery) para su ruteador, por lo cual deberás establecer explícitamente el Access Point al que quieres conectarte:

iwconfig wlan0 essid "Red Privada" mode Managed key s:privado123456 ap 12:34:56:78:9a:bc
Más información haciendo (obviamente):

/etc/resolv.conf (Servidores de Nombres en Linux)

Este archivo contiene las direcciones de los servidores DNS a los que se conecta la máquina.

Si el archivo no es generado automáticamente por una utilidad como el cliente DHCP (por ejemplo, como puede suceder en una red wireless), es necesario llenarlo a mano.

El formato es de líneas de la forma:

nameserver ip
search domain-name

, donde ip es la dirección IP del servidor DNS, y si la línea “search” existe, domain-name es el nombre del host que se requerirá como proveedor de resoluciones DNS.

Por ejemplo, en la Universidad del Mar tenemos el siguiente registro DNS para entregar DNS a los equipos de los laboratorios2).:

nameserver 192.168.42.250
Se recomienda el uso de al menos uno de los servidores de nombres del proyecto OpenDNS como forma de mantener una salida DNS independiente de la red actual, proveyendo, entre otras cosas, de protección anti-phishing y salida rápida a los servidores DNS-ROOT:

Ejemplo: nameserver 208.67.222.222

Gestores de Red en Linux

En Ubuntu, el gestor de redes por defecto desde Ubuntu 8.04 se llama NetworkManager. Ha sido también aceptado en Fedora desde su versión 10.

Para Gnome 2.6 o posterior y XFCE 4.4 o posterior, si se tiene una instalación de Python se puede instalar el applet wicd que provee de una interface más simple para gestionar distintas configuraciones de red, en particular con sistemas wireless pero también aceptando direcciones IP de ethernet estáticas, PPP, e IPv6.

Intel y Nokia han estado trabajando en otro proyecto, llamado aparentemente Connection Manager o ConnMan 3)Ars Technica evalúa las diferencias posibles entre NetworkManager y ConnMan.

En general, todos estos front-end resumen algunas de las capacidades que se pueden obtener vía la interface de línea de comandos, de una manera que sea más fácil de operar para el usuario común. Mi experiencia personal es que NetworkManager maneja mucho mejor las redes cableadas, pero no es capaz de operar correctamente conecciones ADSL que requieren un módem con ZeroConf (por ejemplo el WiiTV de Telefónica del Sur). Por el otro lado, si tu tarjeta inalámbrica está plenamente soportada en Linux, o si quieres un entorno de escritorio liviano, wicd será la mejor opción. Lamentablemente no trabajará bien con ninguna red que utilice ZeroConf.

Captura de pantalla de wicd
mostrando la red cableada y las interfaces de red inalámbrica disponibles.