May 062011
 

tuxgwNelle mie prove ho installato una Debian 6 Squeeze su un vecchio portatile con una scheda ethernet integrata e una scheda PCMCIA wireless.
Problema, dopo l’installazione tutto funziona perfettamente, ma non il wireless, e l’installazione di nuovi pacchetti senza rete non è così comodo.
Devi cercare in rete il nome dei pacchetti che ti servono, scaricarli insieme a tutte le loro dipendenza metterli su una chiavetta USB e sperare che questo funzioni e risolva il vostro problema. Naturalmente al primo tentativo (nuovo modulo del kernel per la scheda wireless, una rt61 + il suo firmware) non ha funzionato.

Così ho deciso di utilizzare il mio computer portatile con Xubuntu come gateway, la mia Xubuntu ha una scheda wireless funzionante e uno slot con una ethernet libera.
Quindi quello che ho fatto è mettere un cavo incrociato tra di loro e configurare Xubuntu come gateway, tutto ha funzionato bene e ora l’altra laptop sta aggiornando il sistema.

Ecco come ho fatto in dettaglio.

Nota: Lo script proviene da Debian-Administration.org un how-to del 2004, ma ancora perfettamente funzionante.

Laptop A = Debian 6 squeeze con rt61 non funzionante
Laptop B = La Xubuntu 11.04

Cavo !

Collegare tramite un cavo incrociato i 2 computer.
Non dovrebbe succedere niente.

Setup del gateway (Xubuntu)

Sulla mia Xubuntu io ho sulla eth0 la scheda ethernet e sulla eth1 la wireless.

Come primo passo ho configurato l’ethernet con un IP privato:

sudo -i
ifconfig eth0 10.0.0.1 netmask 255.255.255.0

Ora, se si dà il comando ifconfig si dovrebbe avere un output del tipo:

eth0      Link encap:Ethernet  HWaddr 00:0d:60:12:78:bc  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:60ff:fe12:78bc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38622 errors:0 dropped:0 overruns:0 frame:0
          TX packets:69077 errors:0 dropped:0 overruns:0 carrier:0
          collisions:17 txqueuelen:1000 
          RX bytes:2670203 (2.6 MB)  TX bytes:102971994 (102.9 MB)
 
eth1      Link encap:Ethernet  HWaddr 00:02:8a:9f:21:34  
          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::202:8aff:fe9f:2134/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:160442 errors:44 dropped:0 overruns:0 frame:44
          TX packets:112360 errors:25 dropped:0 overruns:0 carrier:0
          collisions:2106 txqueuelen:1000 
          RX bytes:203342322 (203.3 MB)  TX bytes:10853667 (10.8 MB)
          Interrupt:6 Base address:0x8000 
 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3780 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3780 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:347468 (347.4 KB)  TX bytes:347468 (347.4 KB)

Dopo di che ho creato un nuovo file chiamato gateway.sh con il mio editor di testo (vi) e incollate il seguente codice:

#!/bin/sh
 
PATH=/usr/sbin:/sbin:/bin:/usr/bin
 
#
# delete all existing rules.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
 
# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT
 
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
 
# Masquerade.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
 
# Don't forward from the outside to the inside.
iptables -A FORWARD -i eth1 -o eth1 -j REJECT
 
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

NOTA: Di solito la mia tabella di iptables è pulita, io non la uso sul mio portatile, ho un firewall di front-end, se si dispone di regole si può aver bisogno di ri-aggiungere manualmente dopo lo script.

Quindi ho lanciato da terminale:

bash gateway.sh

Come output ho avuto:

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

Ma non ho poi avuto problemi.

Sulla macchina client (Debian)

Su questo computer, dobbiamo configurare la scheda ethernet e il routing, sappiamo che il nostro gateway è 10.0.0.1, quindi possiamo usare questi comandi:

ifconfig eth0 10.0.0.2 netmask 255.255.255.0
route add -net 0.0.0.0 gw 10.0.0.1

Sulla mio Xubuntu ho un dnsmasq come cache DNS locale, quindi l’ho usato come server DNS per la Debian, per farlo modificare il file /etc/resolv.conf e aggiungere come prima riga:

nameserver 10.0.0.1

Se non si dispone di un DNS locale, mettete in quel file i server DNS normali (potete controllare sul gateway il file /etc/resolv.conf se non si conoscono gli indirizzi)

Test

Ora sul vostro client si dovrebbe essere in grado di raggiungere la rete senza alcun problema.
Provate un ping www.linuxaria.com per esempio se funziona, siete pronti per aggiornare/installare fare tutto quello che dovete fare sul vostro computer client.

Come ho risolto il problema per la rt61 su Debian 6

Ho aggiornato tutto, nessun risultato.
Ho messo il backport di squeeze nelle liste delle apt-sources e ho installato il kernel 2.6.38-8-generic, funziona!

Se anche voi avete una cheda di questo tipo:

debian: ~ # lspci | grep RT
06:00.0 Network controller: RaLink 802.11g PCI RT2561/RT61

Installate il kernel dal backport e risolverete i vostri problemi

Popular Posts:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*