# Inalámbrica asocia pero no hay tráfico [SOLUCIONADO]

## Latinvs

Buenas!

Hace un par de días, tras comprobar que mi ensayo de instalación de Gentoo dentro de Virtualbox había ido a la perfección me decidí a instalarlo en mi ordenador real. La instalación sin mayores problemas más allá de los tiempos de compilación y lo mucho que me queda por aprender sobre los parámetros USE y las variables del núcleo; vamos, nada fuera de lo normal.

El problema ha venido al reiniciar y echar a andar mi flamante Gentoo recién instalado; por algún motivo mi tarjeta inalámbrica, Intel 3945 hace una cosa que ya me había pasado con Arch, distro que abandoné sin saber nunca cuál fue el problema. En Virtualbox como el sistema huésped usa la conexión del anfitrión evidentemente no había tenido ningún problema.

El caso es que todo parece ir bien, mi tarjeta se asocia normalmente e iwconfig devuelve el típico mensaje con todos los datos de una conexión exitosa, el nombre del ESSID, la MAC del otro equipo (mi conexión es una red ad hoc); ifconfig también, mi ordenador tiene IP, la puerta de enlace está bien; si hago un iwlist wlan0 scan la búsqueda funciona perfectamente y me aparecen varias docenas de redes. En fin, todo aparentemente correcto, el único problema es que no hay conexión, no hay tráfico hacia internet y la respuesta a los pings a la puerta de enlace es "destination host unreachable".

Dmesg parece decir que todos los controladores están bien cargados, que la interfaz ha creado la conexión IBSS (ad-hoc) correctamente, pero nada.

Desde la memoria USB que he usado par ala instalación funcionaba perfectamente, así que he hecho otra instalación con Genkernel, por si yo había tocado algo que no debía en la instalación previa con el núcleo configurado a mano, pero da igual. Ahora tengo un sistema más pesado e igual de inútil para conectar, jeje.

Estoy escribiendo esto desde otra máquina, así que no tengo a mano más datos, pero mañana intentaré ampliar información.

Un saludo, y gracias anticipadas de nuevo.

----------

## Inodoro_Pereyra

Mi experiencia con redes inalámbricas es mas bien limitada, sigo prefiriendo un buen cable siempre que puedo así que no puedo aportar la gran cosa pero por lo general destination host unreachable implica que no hay una puerta de enlace disponible o que ambos equipos no pertenecen a la misma subred.

Todo esto se puede diagnosticar facilmente. Primero lo primero, el número de IP de tu interface wireless:

```
~# ifconfig

Link encap:Ethernet  direcciónHW 00:1d:e0:0b:b2:87  

          Direc. inet:192.168.0.112  Difus.:192.168.1.255  Másc:255.255.254.0

          Dirección inet6: fe80::21d:e0ff:fe0b:b287/64 Alcance:Enlace

          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1

          Paquetes RX:109 errores:0 perdidos:0 overruns:0 frame:0

          Paquetes TX:30 errores:0 perdidos:0 overruns:0 carrier:0

          colisiones:0 long.colaTX:1000 

          Bytes RX:33122 (33.1 KB)  TX bytes:5749 (5.7 KB)
```

Si es correcto, entonces tu puerta de enlace:

```
~# route

Tabla de rutas IP del núcleo

Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz

192.168.0.0     *               255.255.254.0   U     1      0        0 eth0

192.168.0.0     *               255.255.254.0   U     2      0        0 wlan0

link-local      *               255.255.0.0     U     1000   0        0 eth0

default         router          0.0.0.0         UG    0      0        0 eth0
```

Si todo eso está en orden, deberías poder hacer ping a números de IP pero no necesariamente a nombres de dominio. Para poder hacer ping a nombres de host o dominio, la configuración de los DNS:

```
~# cat /etc/resolv.conf 

nameserver 192.168.0.1
```

Por curiosidad, no te habrás olvidado de instalar un cliente dhcp para tu red en Gentoo? Para el caso, lo mas común es usar net-misc/dhcpcd.

Si alguno de estos parámetros te estuviera faltando, especificarlos a mano:

```
ifconfig wlan0 <tu numero de ip>

route add default gw <numero de ip de tu puerta de enlace>

echo "nameserver <el numero de ip de tu servidor de DNS>" >> /etc/resolv.conf
```

Los cambios no son persistentes y se perderán al próximo reinicio.

Salud!

----------

## Latinvs

Gracias, Inodoro (curioso alias, jeje)

Los pasos que me indicas los conozco, que sea novato en Gentoo no significa que lo sea en Linux; de serlo me habría metido en Ubuntu, XD.

Mi problema no creo que venga por donde me indicas, pero bueno, uno en esto de la informática tiene que estar dispuesto a admitir que lso problemas pueden venir por el lado más tonto y más básico que uno podría imaginar.

Explico brevemente la situación y adjunto alguna información que he sacado del equipo problemático:

Tengo dos ordenadores, uno conecta por cable a un módem de cable de fibra óptica a Internet, lleva Debian y hace de puerta de enlace para ofrecer conexión a mi equipo con Gentoo y de vez en cuando a una PDA y a un teléfono Nokia, dispositivos estos que conectan a Internet sin problemas, como lo hacía con Suse, Debian, Sabayon y el ISO de instalación de Gentoo el ordenador que ahora no quiere conectar.

La conexión es una sencilla red ad-hoc con IPs estáticas, para ir eliminando dificultades he creado una sin cifrado.

Conecto los equipos a la manera "tradicional" con un sencillo guión de consola con las siguientes órdenes:

Equipo puerta de enlace:

```
iwconfig wlan0 mode ad-hoc channel 5 tx 4

ifconfig wlan0 163.24.0.1

iwconfig wlan0 essid "prueba"
```

Equipo "cliente"

```
iwconfig wlan0 mode ad-hoc channel 5 tx 4

ifconfig wlan0 163.24.0.2

iwconfig wlan0 essid "prueba"

route add default gw 163.24.0.1
```

Ya está, más sencillo no puede ser. Como decía al abrir este hilo, tras ejecutar el guión todo parece correcto:

Salida de ifconfig:

```
wlan0     Link encap:Ethernet  HWaddr 00:1c:bf:xx:xx:xx  

          inet addr:163.24.0.2  Bcast:163.24.255.255  Mask:255.255.0.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:45 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:0 (0.0 B)  TX bytes:2460 (2.4 KiB)
```

Salida de iwconfig (para wlan0):

```
wlan0     IEEE 802.11abg  ESSID:"prueba"  

          Mode:Ad-Hoc  Frequency:2.432 GHz  Cell: AA:61:AE:10:49:62   

          Tx-Power=4 dBm   

          Retry  long limit:7   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:off
```

Salida de route:

```
Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

163.24.0.0      *               255.255.0.0     U     0      0        0 wlan0

loopback        *               255.0.0.0       U     0      0        0 lo

default         163.24.0.1      0.0.0.0         UG    0      0        0 wlan0
```

Todo parece correcto, ¿o se me escapa algo? Pero un simple ping 163.24.0.1 responde:

```
PING 163.24.0.1 (163.24.0.1) 56(84) bytes of data.

From 163.24.0.2 icmp_seq=2 Destination Host Unreachable

From 163.24.0.2 icmp_seq=3 Destination Host Unreachable

From 163.24.0.2 icmp_seq=4 Destination Host Unreachable

From 163.24.0.2 icmp_seq=6 Destination Host Unreachable

From 163.24.0.2 icmp_seq=7 Destination Host Unreachable

From 163.24.0.2 icmp_seq=8 Destination Host Unreachable

--- 163.24.0.1 ping statistics ---

11 packets transmitted, 0 received, +6 errors, 100% packet loss, time 10023ms

, pipe 3
```

Como decía, dmesg tampoco parece infromar de nada raro

Salida de dmesg |grep iwl:

```
iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26k

iwl3945: Copyright(c) 2003-2009 Intel Corporation

iwl3945 0000:0c:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17

iwl3945 0000:0c:00.0: setting latency timer to 64

iwl3945 0000:0c:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels

iwl3945 0000:0c:00.0: Detected Intel Wireless WiFi Link 3945ABG

phy0: Selected rate control algorithm 'iwl-3945-rs'

iwl3945 0000:0c:00.0: firmware: requesting iwlwifi-3945-2.ucode

iwl3945 0000:0c:00.0: loaded firmware version 15.32.2.9

Registered led device: iwl-phy0::radio

Registered led device: iwl-phy0::assoc

Registered led device: iwl-phy0::RX

Registered led device: iwl-phy0::TX
```

Y de dmesg |grep wlan0

```
wlan0: Trigger new scan to find an IBSS to join

wlan0: Trigger new scan to find an IBSS to join

wlan0: Trigger new scan to find an IBSS to join

wlan0: Creating new IBSS network, BSSID 92:d7:d8:cf:ec:24
```

Mi núcleo es el 2.6.32-r7, y tras una primera prueba configurándolo a mano, en la que tenia el mismo problema, lo configuré con genkernel, que se supone que debería funcionar, no? Las wireless-tools-29, el frimware de mi tarjeta el iwl3945 15.32.2.9. 

En fin, no tengo ni idea de qué puede fallar, así que cualquier pista es bien recibida.

Saludos.

::EDITO::

Se me olvidaba añadir que de momento, hasta que no se solucione esto, no he querido instalar Iptables en la máquina Gentoo, así que el problema tampoco puede venir por ahí (por la máquina Debian tampoco viene puesto que como decía no hay ningún problema para conectar otros aparatos  o mi ordenador con otras distros.)

----------

## Inodoro_Pereyra

Bueno, escribí toda la información de mas arriba sin animo de ofender, mas bien de ayudar, no lo tomes a mal pero no tenía forma de saber hasta donde llegan tus conocimentos con la información que escribiste en un principio.

A nivel IP todo parecería estar en orden, definitivamente tu problema debe estar en la capa física, el enlace inalámbrico propiamente dicho en tu caso. Para descartar, prueba la capa inmediata anterior, usando net-analyzer/arping deberías ver algo como esto:

```
arping 192.168.0.10

ARPING 192.168.0.10 from 192.168.1.200 eth0

Unicast reply from 192.168.0.10 [00:50:DA:18:3D:B7]  0.863ms
```

Tambien deberias consultar la salida de arp -a en busca de la MAC Address de tu puerta de enlace.

Si todo eso falla, entonces tal y como dijiste en un principio, el enlace esta fallando  :Very Happy: 

Has probado usando un cable cruzado?

Salud!

----------

## Latinvs

 *Inodoro_Pereyra wrote:*   

> Bueno, escribí toda la información de mas arriba sin animo de ofender, mas bien de ayudar, no lo tomes a mal pero no tenía forma de saber hasta donde llegan tus conocimentos con la información que escribiste en un principio.

 

No, hombre. ¡Claro que no me lo he tomado a mal!  :Smile: 

Disculpa si te he dado esa impresión.

 *Inodoro_Pereyra wrote:*   

> prueba la capa inmediata anterior, usando net-analyzer/arping deberías ver algo como esto:
> 
> ```
> arping 192.168.0.10
> 
> ...

 

Pues ha fallado >_<

Supongo que las IPs que me pones como ejemplo representan la de la puerta de enlace y la del equipo que se conecta a ella, así que he ejecutado

```
arping 163.24.0.1 -I wlan0
```

Sin obtener respuesta y después de un par de minutos lo he parado para ver este resultado tan descorazonador...

```
ARPING 163.24.0.1 from 163.24.0.2 wlan0

Sent 398 probes (398 broadcast(s))

Received 0 response(s)
```

arp -a dice, así, por duplicado, que:

 *Quote:*   

> ? (163.24.0.1) at <incomplete> on wlan0
> 
> ? (163.24.0.1) at <incomplete> on wlan0

 

Lo del cable cruzado lo miraré, pero antes permíteme una pregunta ¿Hay alguna manera de copiar la configuración de red que tiene la imagen de instalación de Gentoo para pasarla a mi equipo? No sé qué ficheros contienen esa información, pero como decía antes si arranco el ordenador desde la memoria USB en la que puse la imagen de instalación, todo funciona perfectamente.

Gracias por tu tiempo,  :Smile: 

Saludos.

----------

## Inodoro_Pereyra

Como no creo que sea la configuración de la red puntualmente la que falle si no el kernel, una muy buena prueba sería mover el kernel desde el que arranca el livecd a tu disco rígido y editar grub al vuelo para que lo use en lugar del que estás usando actualmente. Sería una prueba rápida y con probar no se pierde nada...

Sobre que archivos mover para una conexión inalámbrica la verdad no tengo la menor idea, toco de oído. A ver si hay suerte.

Salud!

----------

## gringo

no veo nada raro tampoco asi que igual simplemente es un problema de software, prueba con usar las mismas versiones del software/firmware suministrado por el livecd, igual es que simplemente estás usando una combinación de driver / firmware/ kernel que no se llevan bien. Versiones modernas del kernel normalmente requieren tb. una versión moderna del driver y del firmware.

Pregunta tonta supongo pero desde la pasarela tampoco hay respuesta a un ping al cliente, no ?

suerte y saluetes

----------

## Latinvs

 *Inodoro_Pereyra wrote:*   

> Como no creo que sea la configuración de la red puntualmente la que falle si no el kernel, una muy buena prueba sería mover el kernel desde el que arranca el livecd a tu disco rígido y editar grub al vuelo para que lo use en lugar del que estás usando actualmente. Sería una prueba rápida y con probar no se pierde nada...

 

Buena idea. Sólo, un pequeño, y un poco vergonzoso, jeje, detalle... ¿dónde puñetas está el kernel en la ISO de instalación? Inicio mi máquina desde dicha ISO, y una vez cargado el sistema, intento mirar en /boot per ose me envía a un bucle que siempre muestra .keep y boot/

 *gringo wrote:*   

> Pregunta tonta supongo pero desde la pasarela tampoco hay respuesta a un ping al cliente, no ? 

 

Supones bien. "Destination host unreachable" es toda la respuesta,  :Confused: 

Lo que comentas de las versiones, no sé. Las versiones que tengo instaladas son de anteayer, todas, ya que era una instalación mínima limpia; otra cosa es que quizá el kernel 2.6.32 dé "por saco" con hardware como el mío. La ISO de instalación trae el 2.6.31. La sugerencia de Inodoro de intentar arrancar con el núcleo de la ISO es una buena idea, a ver si me entero de cómo probarla, jeje.

Una última cosa que me llama la atención. Ya sé que cada distro varía un poco con sus ficheros de configuración, pero ¿es normal que no haya inetd.conf, hostname ni hosts.allow/deny en mi /etc?

Gracias y saludos.

----------

## Inodoro_Pereyra

 *Latinvs wrote:*   

> La sugerencia de Inodoro de intentar arrancar con el núcleo de la ISO es una buena idea, a ver si me entero de cómo probarla, jeje.
> 
> Una última cosa que me llama la atención. Ya sé que cada distro varía un poco con sus ficheros de configuración, pero ¿es normal que no haya inetd.conf, hostname ni hosts.allow/deny en mi /etc?
> 
> Gracias y saludos.

 

Monta el .iso de la distribución en donde la inalámbrica funciona:

```
mount -o loop archivo.iso /punto/de/montaje
```

Si el .iso usa grub, dentro del mismo vas a encontrar el típico menu.lst con la ubicación y nombre del kernel y la imagen inicial comprimida con gzip por lo general. Si usa isolinux, el mismo caso pero dentro del archivo isolinux.cfg.

Copia el kernel y la imagen a tu /boot, modifica tu grub (o lo que uses) para que cargue este kernel. Si igualas las versiones de ambos kernel, el del livecd y el de tu instalación real te evitas copiar los módulos ya que las versiones serán coincidentes.

El equivalente a inetd.conf es /etc/conf.d/net, hostname está en /etc/conf.d/hostname, hosts.allow/deny, eso ni idea pero por el nombre suena a una especie de firewall básico y el único firewall existente para linux es iptables, el resto son todos frontends para el mismo así que lo mas probable es que se trate de archivos pertenecientes a alguno de estos tantos frontends que hay, shorewall, firehole, etc... Como uso iptables a pelo, no tengo idea  :Very Happy: , a ver si alguien sabe mas que yo de esto.

Salud!

----------

## Latinvs

 *Inodoro_Pereyra wrote:*   

> Si el .iso usa grub, dentro del mismo vas a encontrar el típico menu.lst con la ubicación y nombre del kernel y la imagen inicial comprimida con gzip por lo general. Si usa isolinux, el mismo caso pero dentro del archivo isolinux.cfg.
> 
> Copia el kernel y la imagen a tu /boot, modifica tu grub (o lo que uses) para que cargue este kernel. Si igualas las versiones de ambos kernel, el del livecd y el de tu instalación real te evitas copiar los módulos ya que las versiones serán coincidentes.

 

Usa Isolinux, pero lo de igualar versiones va a ser más complicado. el livecd usa la 2.6.31 y en mi ordenador está la 2.6.32.

Pero l oque me despista es que isolinux.cfg dice:

```

label gentoo

  kernel gentoo

  append root=/dev/ram0 init=/linuxrc  dokeymap looptype=squashfs loop=/image.squashfs  cdroot initrd=gentoo.igz vga=791
```

Sin embargo, en la imagen del livecd, parece haber un "kernel-config-x86_64-2.6.31-gentoo-r10" en /etc/kernels incluso un archivo "2.6.31-gentoo-r10 en /lib64/modules.

¿Debo hacer caso a isolinux.cfg o a lo que parecería más evidente y copiar /etc/kernels/kernel-config-x86_64-2.6.31-gentoo-r10 y /lib64/modules/2.6.31-gentoo-r10 a mi disco duro?

 *Inodoro_Pereyra wrote:*   

> 
> 
> El equivalente a inetd.conf es /etc/conf.d/net, hostname está en /etc/conf.d/hostname

 

Vale, tengo que ponerme una pegatina que me recuerde usar "find" cuando no encuentre algo, jeje.   :Embarassed: 

 *Inodoro_Pereyra wrote:*   

> 
> 
> hosts.allow/deny, eso ni idea pero por el nombre suena a una especie de firewall básico

 

Mmm, no, no exactamente. Los archivos hosts.allow y hosts.deny permiten o impiden que las máquinas que se conectan a un equipo ejecuten servicios en dicho equipo. Pueden bloquear o permitir también protocolos de red, ssh, ftp, etc, como un cortafuegos (aunque sin hilar tan fino como un cortafuegos), pero no se limitan a eso. En todo caso he visto que tampoco en la ISO que me funciona hay tales archivos, así que supongo que no afectan a esta cuestión.

::EDITO::

Se me olvidaba añadir que probé con un cable cruzado como me recomendaste y la conexión es perfecta, así que parece ser que la configuración de la conexión está bien y que es algo referente a la maldita tarjeta,   :Evil or Very Mad: 

----------

## gringo

 *Quote:*   

> El equivalente a inetd.conf es /etc/conf.d/net

 

si funciona como xinetd es realmente un "demonio que lanza demonios", escucha peticiones y lanza servicios en función de las solicitudes que recibe. Práctico si se tienen muchos servicios en ejecución. Si quieres una funcionalidad similar puedes p.ej. añadir el USE xinetd al make.conf , recompilar los paquetes que tengan esa USE y luego acudir al archivo xinetd.conf o a los archivos de cada servicio en el /etc/xinetd.d/.

Al igual que si buscas los host.allow o los host.deny, creo que simplemente te falta el USE tcpd  :Wink: 

por lo de la wifi ni idea la verdad.

suerte y saluetes

----------

## Latinvs

 *gringo wrote:*   

> Al igual que si buscas los host.allow o los host.deny, creo que simplemente te falta el USE tcpd 

 

Pues en realidad no, ahí está bien hermosa en mi make.conf.

Me llamó la atención no ver a "los hermanos hosts", pero vamos, de momento lo que me trae loco es la p**a wifi, y si el livecd no los usa tampoco, de momento mejor no liarme con más cosas; cuando lo solucione ya será hora de meterme a fondo con Gentoo, que estoy bastante pez.   :Confused: 

Saluetes también, y gracias por las "píldoras" de conocimiento "gentuista"  :Smile: 

----------

## gringo

 *Quote:*   

> Pues en realidad no, ahí está bien hermosa en mi make.conf. 

 

si tienes esa USE entonces deberías tener instalado el paquete tcp-wrappers con lo que, si no tienes esos archivos, simplemente créalos a mano o igual simplemente se crean automágicamente la primera vez que se lanza el servicio.

por la wifi, prueba con distintas cosas, yo tuve hasta hace poco una tarjeta basada en un chip ralink que simplemente no hacía mas que darme la lata en linux : no se podía establecer una conexión si se usaban los canales 7 o 11, al igual que tampoco funcionaba si se creaba una red con máscara de 24 bits.

suerte y saluetes

----------

## Latinvs

 *gringo wrote:*   

> si tienes esa USE entonces deberías tener instalado el paquete tcp-wrappers con lo que, si no tienes esos archivos, simplemente créalos a mano o igual simplemente se crean automágicamente la primera vez que se lanza el servicio.

 

Efectivamente lo tengo instalado. Gracias por el dato, me vendrá bien cuando me ponga a afinar la seguridad de mi equipo.

De momento anuncio al mundo que ¡¡he conseguido echar a andar mi inalámbrica!!  Oleee!  :Very Happy: 

La otra cara de la moneda es que ha sido copiando el kernel y los archivos /boot/System.map-genkernel-x86_64-2.6.33-sabayon y /boot/initramfs-genkernel-x86_64-2.6.33-sabayon de un Live DVD  de Sabayon, incluír dicho núcleo en el grub.conf de mi Gentoo; y luego copiando también la carpeta /etc/modules/2.6.33-sabayon a /lib64/modules/ en mi Gentoo, y ejecutando depmod. Todo va como la seda, y escribo esto cómodamente repantingado en mi sofá desde mi portátil,  :Very Happy: 

Ahora cuando recupere la paciencia que he perdido estos días, jeje, me pondrá a revisar con que opciones esta compilado el núcleo de sabayon, a ver si por ahí viene el problema y poder compilar mi kernel Gentoo en consecuencia.

No cierro el hilo hasta que no dé con la solución "fetén".

Saludos y gracias a Gringo e Inodoro por sus indicaciones.

----------

## Inodoro_Pereyra

Buenisimo!

Entonces el problema es el kernel nomás.  La opciones que se hayan usado al compilar el kernel que funciona puede que estén en /proc/config.gz si tienes suerte. Compararlas es facil:

```
zdiff /proc/config.gz /usr/src/linux-2.6.<tu version del kernel de gentoo>/.config
```

A ver si sirve.

Salud!

----------

## Latinvs

Bueno, las diferencias son bastantes sobre todo en el apartado "Netfilter", así que como creo que ir haciéndome con las opciones de configuración de lnúcleo me va a lelvar meses, si no años, mejor dar por cerrado este tema.

Como consejo par alguien a quien le pudiera pasar algo parecido podrí vale mi experiencia de probar una distro basada en Gentoo de esas "de uso general" con un núcleo compilado con las opciones que satisfagan a un mayor número de usuarios, y copiarse ese núcleo  y los módulos para él y habilitar su arranque en grub.conf. Y poco a poco y con paciencia ir estudiándose las opciones del núcleo y eliminando las que uno vaya considerando que n onecesita hasta "adelgazarlo" todo lo conveniente.

Saludos.

----------

## Inodoro_Pereyra

Una vez que le hayas tomado la mano al kernel, no lleva tanto tiempo en realidad... Pero bueno, si ya funciona, no lo arregles dicen. Total, siempre se puede ir jugando con el kernel de Gentoo como pasatiempo los fines de semana largos  :Very Happy: 

Salud!

----------

