pump no funciona con los Zyxel Prestige 660HW-61
¿Tienes un router ADSL Zyxel Prestige 660HW-61? ¿Cuando arrancas con Knoppix (o con distribuciones derivadas de Knoppix) no eres capaz de obtener una dirección IP por DHCP?
No te vuelvas loco… El cliente de DHCP pump
, que es el que lleva por defecto Knoppix, no es capaz de obtener una IP por DHCP de un 660HW-61 (al menos no el mío con firmware V3.40(PT.0)b46
de Telefónica). Hay incluso un bug de Debian abierto que expone el problema: Bug#362207: pump does not get IP address from Zyxel Prestige 660HW-61.
Como hay varios clientes de DHCP para Linux:
# apt-cache search "dhcp client" dhcdbd - D-Bus interface to the ISC DHCP client dhcp-client - DHCP Client dhcp3-client - DHCP Client dhcpcd - DHCP client for automatically configuring IPv4 networking pump - BOOTP and DHCP client for automatic IP configuration resolvconf - nameserver information handler udhcpc - very small DHCP client
la solución es usar uno de los otros, siendo el dhcp3-client
el que instala Debian por defecto y funciona bien con este router.
Si estamos con Knoppix o con algún otro LiveCD, como no podemos instalar un cliente diferente, tendremos que asignar la IP manualmente tras eliminar todos los pump
que puedan estar corriendo con un “killall -9 pump
” seguido de un “ps -ef | grep pump
“. El pump
puede tardar un poco en morir, así que esperamos a que lo haga y a que no salga en la lista del ps
. A continuación, si nuestro interfaz ethernet es el eth0
, nuestro router tiene la IP 192.168.1.1/24
y la dirección que queremos asignarle al sistema es la 192.168.1.40
, para especificar la IP, añadir la IP del servidor de nombres (en este caso el propio router) y añadir la ruta por defecto haremos:
# ifconfig eth0 192.168.1.40 netmask 255.255.255.0 up # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:D4:C3:D2:F2 inet addr:192.168.1.40 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:28 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4248 (4.1 KiB) TX bytes:2128 (2.0 KiB) Interrupt:16 # echo 'nameserver 192.168.1.1' >> /etc/resolv.conf # cat /etc/resolv.conf # Insert nameservers here # nameserver 127.0.0.1 nameserver 192.168.1.1 # route add default gw 192.168.1.1 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Si haces un ifconfig ethN +promisc up , funcionara.
Sabueso Muchas gracias por la sugerencia. Sin embargo, lo he probado y no me funciona
Espero que no te importe que haga una corrección sin importancia al comando que pones, y es que hay que poner el
promisc
sin el + o da un error. Aunque como vemos en la página de manual delifconfig
, sí se puede poner-promisc
para deshabilitar dicha opción:
Tras hacer el
ifconfig
que propones y ejecutar un "pump -i eth
", en la salida de un "
tcpdump -vvv
" vemos que en realidad el Zyxel sí le da una IP al PC, la 192.168.1.43:Pero si configuramos el
syslogd
para que muestre el DEBUG delpump
, vemos que por alguna razón, éste rechaza la IP debido al "xid
" devuelto en la respuesta DHCP.El RFC2131 (Dynamic Host Configuration Protocol) nos habla del "
xid
":Así que, o bien el Zyxel está poniendo un "
xid
" inválido en su paquete de respuesta DHCP o bien elpump
se está equivocando al rechazar el paquete...Un error derivado de mi manias con otros *nixes
Igualmente , es raro , porque yo pongo la interface en modo promiscuo , y tira
Sabueso Muchas gracias por tus comentarios y por tu ayuda, pero dime una cosa, ¿a ti también te fallaba con un Zyxel 661HW y con el
pump
tal y como describo en la entrada?