IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Dins la nostra màquina virtual del Proxmox, hem d'afegir 3 targetes de xarxes. Una connectada a la xarxa de l'aula, una a una línia ADSL i una pel router Xeba.

IMPORTANT: Perquè els canvis a l'hora d'afegir targetes de xarxa tinguin efecte, no val amb reiniciar la màquina amb un reboot, s'ha d'apagar i tornar a engegar.

Ena vegada les tenim afegides, iniciem la màquina virtual i modifiquem l'arxiu /etc/network/interfaces perquè quedi de la següent manera:

# The loopback network interface
auto lo
iface lo inet loopback 

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.204.107
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 172.26.1.6
netmask 255.255.255.248

auto eth2
iface eth2 inet static
address 172.26.0.5
netmask 255.255.255.248
gateway 172.26.0.2

La eth0 té l'adreça de l'aula 20.4 (VLAN 17), la eth1 té l'adreça d'una línia ADSL de l'institut (VLAN 21) i la eth2 té l'adreça del router Xeba (VLAN 20).

Les adreces les reservem a la pàgina del Gestió IP: http://noc.iesebre.com/gestioip/index.cgi

Reiniciem la configuració de la xarxa amb la comanda

$ sudo /etc/init.d/networking restart

El següent pas és aconseguir que el nostre servidor faci de router. Per a fer-ho, hem d'introduir la següent comanda:

$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward

Comprovem que ara l'estat de l'ip forwarding és 1:

$ cat /proc/sys/net/ipv4/ip_forward
1

Aquest canvi, però, no és permanent. Per fer-lo permanent, haurem de crear el següent script, anomenat router dins de /etc/network/if-up.d/:

#! /bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward

I el fem executable:

$ sudo chmod +x /etc/network/if-up.d/router

Ara afegim la ruta per defecte del router Xeba:

$ sudo route add default gw 172.26.0.2

Podem comprovar que aquesta ruta s'ha fet efectiva amb la comanda route -n:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.26.0.2      0.0.0.0         UG    0      0        0 eth2
172.26.0.0      0.0.0.0         255.255.255.248 U     0      0        0 eth2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.204.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

Comprovem que l'enrutament funciona amb la comanda traceroute:

$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  85.192.120.9 (85.192.120.9)  4.034 ms  5.407 ms  5.351 ms
 2  10.19.41.1 (10.19.41.1)  53.836 ms  55.602 ms  56.630 ms
 3  213.176.160.154 (213.176.160.154)  60.610 ms  60.931 ms  64.111 ms
 4  213.176.160.4 (213.176.160.4)  64.847 ms  65.298 ms  67.119 ms
 5  83.247.145.9 (83.247.145.9)  70.170 ms  70.518 ms  71.579 ms
 6  83.247.145.1 (83.247.145.1)  73.267 ms  71.731 ms  71.932 ms
 7  213.192.249.158 (213.192.249.158)  73.654 ms  52.633 ms  53.650 ms
 8  213.192.249.157 (213.192.249.157)  55.301 ms  55.667 ms  56.783 ms
 9  212.80.161.81 (212.80.161.81)  57.405 ms  89.477 ms  90.137 ms
10  212.80.160.97 (212.80.160.97)  85.130 ms  82.445 ms  83.011 ms
11  212.80.160.241 (212.80.160.241)  72.027 ms  70.427 ms  71.210 ms
12  * * *
13  193.149.1.94 (193.149.1.94)  61.593 ms  61.223 ms  61.991 ms
14  216.239.49.196 (216.239.49.196)  63.034 ms 216.239.49.230 (216.239.49.230)  61.804 ms 216.239.49.196 (216.239.49.196)  61.992 ms
15  209.85.240.191 (209.85.240.191)  84.013 ms 209.85.240.189 (209.85.240.189)  88.092 ms  91.585 ms
16  216.239.43.233 (216.239.43.233)  88.518 ms 209.85.253.20 (209.85.253.20)  93.393 ms 216.239.43.233 (216.239.43.233)  90.869 ms
17  209.85.252.83 (209.85.252.83)  89.663 ms 72.14.236.191 (72.14.236.191)  89.284 ms 209.85.252.83 (209.85.252.83)  85.265 ms
18  * * *
19  8.8.8.8 (8.8.8.8)  84.900 ms  85.044 ms  85.098 ms

Multigateway Afegim una nova ruta al fitxer /etc/iproute2/rt_tables:

$ sudo nano /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
200 joelproxmox

A continuació executem la comanda flush perquè el nostre sistema apliqui la ruta afegida:

$ sudo ip route flush table joelproxmox

Consultem la taula per defecte:

$ sudo ip route show
default via 172.26.0.2 dev eth2  metric 100 
172.26.0.0/29 dev eth2  proto kernel  scope link  src 172.26.0.5 
172.26.1.0/29 dev eth1  proto kernel  scope link  src 172.26.1.6 
192.168.204.0/24 dev eth0  proto kernel  scope link  src 192.168.204.107 

Consultem la taula que hem creat:

$ sudo ip route show table joelproxmox

Apareix en blanc perquè no l'hem omplida encara.

Per afegir una ruta nova a la taula, utilitzem la comanda add.

Afegim el gateway amb aquesta comanda:

$ sudo ip route add default via 172.26.0.2 dev eth2 proto static table joelproxmox

Afegim la xarxa amb la mateixa comanda:

$ sudo ip route add 172.26.0.0/29 dev eth2 proto kernel scope link src 172.26.0.5 table joelproxmox

Quan hem afegit el gateway i la xarxa, podem establir la nova norma:

$ sudo ip rule add from 192.168.204.112 lookup joelproxmox

Fem un cop d'ull a les normes:

$ sudo ip rule show
0:	from all lookup local 
32764:	from 192.168.204.112 lookup joelproxmox 
32766:	from all lookup main 
32767:	from all lookup default

A continuació, per fer les proves, canvio la porta d'enllaç del meu client per la IP del meu servidor proxmox:

Primer esborro la porta d'enllaç de l'aula:

$ sudo route del default gw 192.168.204.1

Seguidament afegeixo la nova porta d'enllaç:

$ sudo route add default gw 192.168.204.107

Consulto la taula de rutes:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.204.0   0.0.0.0         255.255.255.0   U     1      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
0.0.0.0         192.168.204.107 0.0.0.0         UG    0      0        0 eth1

Ara s'ha de crear a la màquina del servidor una norma de NAT:

$ sudo iptables -t nat -A POSTROUTING -s 192.168.204.0/24 -j MASQUERADE

Comprovo la taula NAT:

$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  192.168.204.0/24     anywhere   

Faig un traceroute per comprovar el camí del ping:

$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  a204PC07.aula204.iesebre.com (192.168.204.107)  0.401 ms  0.424 ms  0.443 ms
 2  iesebre.xtec.cat (85.192.120.9)  4.490 ms  4.507 ms  4.526 ms
 3  10.19.41.1 (10.19.41.1)  53.723 ms  54.437 ms  54.832 ms
 4  213.176.160.154 (213.176.160.154)  57.033 ms  57.413 ms  58.592 ms
 5  llenep.xtec.cat (213.176.160.4)  59.970 ms  60.693 ms  61.089 ms
 6  83.247.145.9 (83.247.145.9)  62.937 ms  62.021 ms  62.346 ms
 7  83.247.145.1 (83.247.145.1)  64.704 ms  49.785 ms  53.536 ms
 8  213.192.249.158 (213.192.249.158)  56.679 ms  57.903 ms  58.291 ms
 9  gencat-0-0-0-11-core3-bap.bt-igs.net (213.192.249.157)  59.051 ms  59.417 ms  60.130 ms
10  xe-0-0-0-core3-bap.bt-igs.net (212.80.161.81)  60.878 ms  61.221 ms  62.501 ms
11  xe-0-0-2-core2-espanix.bt-igs.net (212.80.160.97)  75.974 ms  76.886 ms  77.831 ms
12  xe-0-0-0-23.core1-espanix.bt-igs.net (212.80.160.241)  79.176 ms  79.540 ms  80.710 ms
13  * * *
14  193.149.1.94 (193.149.1.94)  65.403 ms  68.161 ms  68.538 ms
15  216.239.49.230 (216.239.49.230)  76.324 ms  79.178 ms  79.867 ms
16  209.85.240.191 (209.85.240.191)  94.515 ms 209.85.240.189 (209.85.240.189)  98.392 ms  99.764 ms
17  72.14.235.14 (72.14.235.14)  136.353 ms  138.995 ms 72.14.235.16 (72.14.235.16)  98.725 ms
18  209.85.254.118 (209.85.254.118)  165.055 ms 209.85.254.114 (209.85.254.114)  103.692 ms 209.85.254.118 (209.85.254.118)  148.275 ms
19  * * *
20  google-public-dns-a.google.com (8.8.8.8)  83.525 ms  87.750 ms  86.068 ms

Ara canvio la gateway per defecte del servidor perquè surti per un altra IP:

$ sudo route del default gw 172.26.0.2
$ sudo route add default gw 172.16.1.1

Al client, canvio la IP per una que no sigui la de la norma:

$ sudo ifconfig eth1 192.168.204.223/24

Afegeixo la porta d'enllaç del servidor:

$ sudo route add default gw 192.168.204.107

Faig un traceroute:

$ traceroute 8.8.8.8 -n
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  192.168.204.107  0.281 ms  0.254 ms  0.317 ms
 2  172.26.1.1  1.194 ms  1.214 ms  1.234 ms
 3  185.13.76.129  4.090 ms  4.032 ms  3.976 ms
 4  149.6.130.217  77.329 ms  77.745 ms  77.759 ms
 5  154.54.59.129  4.422 ms  4.753 ms  4.771 ms
 6  154.54.56.21  12.711 ms  13.076 ms  13.094 ms
 7  154.54.74.102  30.782 ms 154.54.74.82  29.348 ms 154.54.74.98  29.813 ms
 8  154.54.39.17  35.297 ms  35.606 ms 130.117.50.241  35.074 ms
 9  149.6.140.138  36.619 ms 149.6.140.58  34.636 ms 149.6.140.138  35.920 ms
10  209.85.241.110  72.886 ms 209.85.240.64  34.442 ms  34.384 ms
11  72.14.239.60  35.214 ms 72.14.236.20  64.636 ms 72.14.239.60  35.320 ms
12  209.85.254.118  35.299 ms 209.85.254.114  35.388 ms 209.85.254.112  34.923 ms
13  * * *
14  8.8.8.8  34.989 ms  34.808 ms  34.860 ms

Es pot comprovar com ara el meu client va per la xarxa 172.26.1.1, que és la gateway que he afegit al servidor.