Com compartir un accès a Internet entre dos usuaris a travès de Guifi.Net

L'esquema que es vol montar es semblant en aquest

Disposem de un punt A que disposa d'accès a Internet.

Disposem de un punt B que vol sortir a Internet a travès de l'accès que hi ha al punt A

El punt A i B estan connectats a la xarxa Gufi.Net i accesibles entre si. No ha de ser un enllaç directe però si que s'ha de poder arribar desde la antena del punt A a la antena del punt B.

Nem a partir de la hipotèsi que les antenes del punt A i del punt B estan configurades i connectades a la xarxa Guifi.Net

La seves adreces dins de Guifi.Net seràn

Configuració de les antenes

Antena del punt A 

IP: 10.0.A.1 Mascara: 255.255.255.224 (un rang /27)

Antena del punt B

IP: 10.0.B.33 Mascara: 255.255.255.224 (un rang /27)

Per establir el tunnel IPIP entre els dos punts farem servir dos routers de baix cost basats en el firmware Openwrt.

En el nostre exemple farem servir el WT3020H. Es tracta d'un router que té per cost uns 15€. Cal asegurar-se que es aquesta versió i no una altra, que aquest porta 8M de memoria respecte els 4M que porten altres versions.Té la limitació però que la seva xarxa inalàmbrica no es del tot bona, cosa que en el cas del punt B solventarem amb un TP-Link tambè de baix cost, que a l'exemple es un TP-Link TL-WR841ND.

Partim de la hipòtesi que malgrat que el dispositiu NEXX no vé de fàbrica amb Openwrt instalat se li ha instalat abans de continuar amb el procès que s'explica, en el cas que ens ocupa tots dos routers funcionen amb la versió estable de Openwrt 15.05.1

En el cas del punt A es important coneixer aquesta limitació, ja que l'usuari si es connecta a la xarxa inalambrica que li dona el router del seu proveidor ADSL no podrà accedir a la xarxa Guifi desde els seus ordinadors, en canvi si ho fa a travès de la xarxa inalambrica que oferirà el WT3020H si que podrà accedir tant a Guifi.Net com a Internet. Per tant cal avaluar-ho, i, en tot cas, optar per un router al punt A que ofereixi una xarxa inalàmbrica millor en comptes del WT3020H

Configuració dels routers que establiran el tunel IPIP

Router NEXX WT3020H del punt A

Aquest router serà l'encarregat d'establir el tunel amb el similar del punt B i enrutar el tràfic cap a Internet que li vingui pel tunel.

Per fer-ho cal punxar el port WAN del router a un port lliure del router ADSL del nostre proveidor i deixar-ho en mode DHCP per adquirir la IP. Es important que sigui DHCP i no estàtic ja que serà la ruta per defecte que tindrà el router un cop monta totes les interficies. Si posem la ruta estàtica intentarà montar el tunel a travès de la ruta per defecte, cosa que provocarà que no funcioni.

El port LAN del router caldrà enxufar-ho a la xarxa local de Guifi.Net i en aquest cas assignar-li una IP fixa del subrang. En aquest cas es molt important que aquesta IP sigui fixa per tal que el tunel es pugui establir sense problemes desde el punt B. Si es posa en mode DHCP cada cop que arrenqui li canviaria la IP i el punt B no sabria contra quina IP haurà d'establir el tunel.

En el nostre cas la IP assignada es la 10.0.A.34 amb màscara 255.255.255.224 (un rang novament /27)

Sobre el port LAN establirem tambè el tunnel cap a l'altre extrem, i a més afegirem aquesta nova interficie dins de la zona LAN del firewall i que farem més endavant quan ja tinguem el tunel aixecat.

Al fer-ho així el tallafocs entendrà que es un port LAN i de manera automàtica el tràfic que ens vingui pel tunel i que no sigui local el reenviarà pel port WAN(on tenim la sortida a Internet) per defecte i li farà el masquerade oportú sense haver de configurar res.

Resum de les dades de configuració del router NEXX del punt A

Port WAN: DHCP connectat al router ADSL.

Al dibuix que ens ocupa el DHCP del router ADSL li ha assignat la IP 192.168.1.100, però podria ser un altre.

Port LAN: 10.0.A.3 mascara 255.255.255.224 Gateway 10.0.A.1

Router NEXX WT3020H del punt B

Aquest router serà l'encarregat d'establir el tunel amb el router NEXX del punt A i que hem configurat al pas anterior.

En aquest cas cal connectar els ports al revès, ja que el que ens interesa es que tot el tràfic que vé per la LAN de l'usuari (la que vé del router TP-Link TL-WR841ND ) vagi cap a l'altre extrem del tunel, es a dir que directament tot el tràfic que no sigui local surti de manera predeterminada pel tunel.

Novament en aquest cas el port connectat a la xarxa Guifi.Net (el port WAN) ha de tindre una IP de Guifi.Net fixa, de manera que es pugui establir sempre amb la mateixa IP el tunnel. En aquest cas la IP assignada es la 10.0.B.34 amb mascara 255.255.255.224 (es a dir un /27).

La IP de la LAN la establim amb un rang local del tipus 192.168.2.x.

I el port LAN del NEXX el connectem al router TP-Link TL-WR841ND. Tot i que no seria necessari disposar del router TP-Link TL-WR841ND ja que els usuaris es podrien connectar a la xarxa inalàmbrica del NEXX WT3020H que acabem de configurar, però en aquest cas com que la xarxa inalàmbrica no es gaire bona s'opta per deixar el NEXX unicament per funcions de tunel IPIP i el TP-Link TL-WR841ND per donar servei de xarxa inalàmbrica i de ports LAN, tot i que es podria optar per un router amb el firmware Openwrt amb una millor xarxa inalàmbrica i ens podriem estalviar el TP-Link TL-WR841ND.

Sobre el port LAN establirem el tunel cap al NEXX del punt A.

Resum de les dades de configuració del router NEXX del punt B

Port WAN: 10.0.B.34 mascara 255.255.255.224. Gateway 10.0.B.33

Port LAN: 192.168.2.1 mascara 255.255.255.0 sense Gateway

Afegir rutes cap a Guifi.Net als routers NEXX

Un cop fet això caldrà configurar la ruta cap a Guifi dins del router NEXX del punt A i del punt B.

Al punt A ara mateix nomès tenim una ruta per defecte que es la que s'ha obtingut a travès del DHCP de la WAN.

Per fer-ho caldrà entrar-hi a travès de ssh per la linea de comandes

Un cop a dins editem l'arxiu /etc/config/network i afegim al final de tot la següent configuració

config route
        option interface 'lan'
        option target '10.0.0.0/8'
        option gateway '10.0.A.1'

Es a dir que la ruta per defecte per sortir a Guifi sigui la antena de la nostra xarxa.

Un cop guardat els canvis executem la comanda

/etc/init.d/network reload 

per tal d'aplicar els canvis

si a la linea de comandes posem la comanda

route

podem veure que ens haurà afegit una nova ruta amb destí 10.0.0.0 i com a pasarela la 10.0.A.1

Al lloc B caldrà fer el mateix amb la següent configuració.

config route
        option interface 'wan'
        option target '10.0.0.0/8'
        option gateway '10.0.B.33'

Aquesta ruta cal afegit-la ja que la sortida per defecte la tindrem més endavant a travès del nostre tunel

Un cop guardat els canvis executem la comanda

/etc/init.d/network reload 

per tal d'aplicar els canvis

si a la linea de comandes posem la comanda

route

podem veure que ens haurà afegit una nova ruta amb destí 10.0.0.0 i com a pasarela la 10.0.B.33

Comprovació que els dos routers es veuen

Cal comprovar que desde el NEXX del punt A es pot fer ping al NEXX del punt B i al contrari abans d'establir els tunels. Si no es veuen no es podrà establir.

Al router NEXX del punt A

ping 10.0.B.34

Al router NEXX del punt B

ping 10.0.A.3

Configuració del tallafocs als dos routers NEXX

Cal obrir els ports necessaris per poder establir el tunnel IPIP entre els dos routers.

Caldrà entrar als routers NEXX a travès de ssh per la linea de comandes i editar l'arxiu /etc/config/firewall a tots dos routers NEXX 

En el cas del router NEXX al punt A afegir aquestes regles

config rule
           option target 'ACCEPT'
           option src 'lan'
           option name 'Allow-IPIP-Input'
           option family 'ipv4'
           option proto 'ipip'

Que es fa sobre la interficie lan que es per on establirem el tunel

I les següents linees en el cas del router NEXX al punt B

config rule
           option target 'ACCEPT'
           option src 'wan'
           option name 'Allow-IPIP-Input'
           option family 'ipv4'
           option proto 'ipip'

Que es fa sobre la interficie wan que es per on establirem el tunel

A continuació executar la comanda a tots dos routers per aplicar els canvis

/etc/init.d/firewall restart

Establiment del tunel entre els dos routers NEXX

Un cop tenim la certesa que els dos routers es veuen i que s'han obert els ports als dos routers hem d'establir el tunel entre els dos.

Per fer-ho el que fem es assignar una IP d'un rang on nomès hi ha dues IP's (la de cada extrem) a cadascun dels routers i aixecar el tunel.

Per poder-ho dur a terme el primer que hem de fer es instalar els paquets necessaris per tal de poder establir el tunel.

Caldrà entrar als routers NEXX a travès de ssh per la linea de comandes i tindre la certesa que tots dos tenen algún tipus de conexió a Internet (si no el tenen caldrà temporalment posar-los amb conexió per poder-ho fer)

Un cop a dins executar les següents comandes

opkg update
opkg install kmod-ipip ipip

Això ens instalarà els paquets necessaris per poder establir el tunel IPIP entre els dos routers

Ara cal establir el tunel entre els dos llocs.

Al punt A li assignem la IP 192.168.200.214 amb mascara 255.255.255.252 (es a dir un rang 30)

Al punt A li assignem la IP 192.168.200.213 amb mascara 255.255.255.252 (es a dir un rang 30)

Per fer-ho editarem l'arxiu /etc/config/network on previament haviem afegit la ruta cap a Guifi.Net

Al punt A caldrà afegir el següent

config interface 'tun'
	option peeraddr '10.0.B.34'
	option ipaddr '10.0.A.3'
	option mtu '1432'
	option proto 'ipip'
	option network 'lan'

config interface 'tunel'
	option proto 'static'
	option ifname '@tun'
	list ipaddr '192.168.200.214/30'

Al punt B caldrà afegir el següent

config interface 'tun'
	option peeraddr '10.0.A.3'
	option ipaddr '10.0.B.34'
	option mtu '1432'
	option proto 'ipip'
	option network 'wan'

config interface 'tunel'
	option proto 'static'
	option ifname '@tun'
	list ipaddr '192.168.200.213/30'

Un cop guardat els canvis executem la comanda

/etc/init.d/network reload 

per tal d'aplicar els canvis

Comprovació que els dos routers han aixecat el tunel

Cal fer ping a la IP de l'altre extrem del tunel per veure si respon

Al router NEXX del punt A

ping 192.168.200.213

Al router NEXX del punt B

ping 192.168.200.214

Establiment de rutes per defecte 

Al punt A la ruta per defecte la estableix el port WAN a travès del router ADSL

Al punt B en canvi cal afegir que la ruta per defecte del tràfic sigui la del propi tunel (recordem que la ruta de Guifi ja l'hem afegit abans).

Per fer-ho cal afegir aquesta entrada al arxiu /etc/config/network

config route
	option interface 'tunel'
	option target '0.0.0.0/0'
	option gateway '192.168.200.214'

Es a dir la IP que té el tunel al cantó A serà la ruta per defecte.

Un cop guardat els canvis executem la comanda

/etc/init.d/network reload 

per tal d'aplicar els canvis

Finalment cal afegir el nou tunel creat dins la zona lan del tallafocs. De manera que el tracti com si fos una interficie lan i enruti el tràfic i li faci l'enmascarament.

Per fer-ho cal editar l'arxiu /etc/config/firewall i cercar aquesta regla

config zone
	option name 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	option network 'lan'

i afegir el tunel dins la option network

config zone
	option name 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	option network 'lan tunel'

Un cop guardat els canvis executem la comanda

/etc/init.d/firewall reload 

per tal d'aplicar els canvis

Per comprobar que funciona tot es pot provar a fer

ping 8.8.8.8

desde el router NEXX al punt B i veure que respon.

Conexió del router TP-Link TL-WR841ND

Primer cal canviar el direccionament local del TP-Link TL-WR841ND

En el nostre cas hem agafat un rang de l'estil 192.168.3.x/24 per tal que no coincideixi amb cap dels rangs fets servits fins ara i estalviar-nos posibles problemes de direccionament. S'enten en aquest manual que l'usuari sap fer aquest pas i no s'explicarà per no ser objecte d'aquest tutorial.

Un cop fet i reiniciat nomès cal punxar el port WAN del router TP-Link TL-WR841ND al port LAN del router NEXX del punt B. 

A partir d'aquest punt qualsevol usuari connectat per cable o wifi al router TP-Link TL-WR841ND podrà navegar a travès del ADSL del punt A

Als arxius adjunts trobareu les configuracions bàsiques amb la nomenclatura que s'ha fet servir en aquest tutorial. Es a dir als arxius network trobareu la principal informació que cal comprovar amb la vostra i als arxius firewall contenen les regles que s'han afegit.

Taxonomia: