Encaminament
De SergiTurWiki
| Curs: | DissenyXarxesLinux, LinuxAdministracioAvancada |
| Fitxers: | Enrutament_IP_Configuracio_taula_de_routes_NAT.pdf |
| Repositori SVN: | http://svn.projectes.lafarga.cat/svn/iceupc/LinuxAdministracioAvan%c3%a7ada/moodle/sessio4 |
| Usuari: | anonymous |
| Paraula de pas: | sense paraula de pas |
| Autors: | Sergi Tur Badenas |
Contingut |
Activar ip_forwarding
Es pot fer modificant el valor del fitxer:
$ cat /proc/sys/net/ipv4/ip_forward
De 0 a 1.
NOTA: El fitxer no es pot modificar amb un editor. Per fer la modificació cal utilitzar echo
$ echo 1 > /proc/sys/net/ipv4/ip_forward
També es pot fer al fitxer /etc/sysctl.conf. Consulteu l'article Sysctl._Tunning_del_kernel.
NOTA: Cal que tingueu en compte que per a IPv6 cal canviar un altre paràmetre. Consulteu Sysctl._Tunning_del_kernel#Activar_el_forwarding
Activar source route
Cal? No pot ser una font de problemes de seguretat?
Consulteu Sysctl._Tunning_del_kernel#accept_source_route.
Desactivar rp_filter
Vegeu també rp_filter
Activar ICMP redirects
Al fitxer /etc/sysctl.conf:
$ cat /etc/sysctl.conf ... # Do not send ICMP redirects (we are not a router) #net.ipv4.conf.all.send_redirects = 0
Cal canviar-ho a:
net.ipv4.conf.all.send_redirects = 1
Fer el canvis permanents
NOTA: Potser encara és millor canviar el fitxer /etc/sysctl.conf o etc/sysctl.d/* segons escaigui. Consulteu sysctl.
A la carpeta:
/etc/network/if-up.d
Creeu un fitxer anomenat router:
$ sudo joe router
Amb el text:
#!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward
Feu-lo executable:
$ sudo chmod +x router
Afegir rutes estàtiques
Consulteu rutes estàtiques.
Tipus d'encaminament
Per SNAT o Masquerade
SNAT (Source NAT) o també conegut com masquerade (cal tenir en compte però que no és exactament el mateix en tallafocs com iptables) s'utilitza molt en router/encaminadors per tal de permetre que un conjunt de màquines en una xarxa privada és puguin compartir a una xarxa pública (sovint Internet) compartint una sola connexió.
En una xarxa domèstica o xarxa SoHo (Small Office Home Office) normalment es disposa d'un sola connexió cap a Internet (típicament - --acacha 15:37, 18 feb 2010 (UTC) - una línia ADSL). L'encaminador (p. ex. Router ADSL) que ens permet connectar-nos a Internet té com a mínim dos interfícies de xarxa:
- Interfície connectada a la xarxa pública: Aquesta és la interfície connectada cap a la xarxa pública (típicament Internet però també pot ser un altre tipus de xarxa pública com guifi.net). Aquesta interfície té una adreça IP que l'identifica a la xarxa pública. Aquesta adreça és de tipus pública (consulteu ipcalc com a eina que us permet saber quan una IP és pública o privada)
- Interfície connectada a la xarxa pública: Normalment a la xarxa LAN domèstica o SoHo. Aquesta interfície té una IP privada (normalment el més habitual és una classe C )
Les màquines de la xarxa privada es connecten a Internet "compartint la connexió Internet". En certa manera l'única màquina que està realment connectada a Internet de tota la xarxa és el gateway. Per tal que això sigui possible, cada paquet que passa pel router és obert i es modifica la IP d'origen. Hi ha un procés anomenat Connection Tracking que permet identificar quins paquets dels que retornen al router són respostes a peticions dels clients de la xarxa LAN. Aquest procés permet retornar els paquets a la màquina de la xarxa que els va demanar.
NOTA: Cal tenir en compte que el canvi de la IP és fa després de les decisions de Rutes, en terminologia iptables: POSTROUTING per tal de no interferir en la presa de decisions de rutes.
Consulteu:
Iptables#SNAT.2FMaSquerade_amb_iptables
Rutes Hop By Hop
Es poden connectar màquines de diferents xarxes configurant les taules de rutes del encaminadors que formen part d'un camí o ruta per Internet.
NOTA: Cal tenir en compte que la majoria d'Encaminador Soho només tenen dos rutes configurades: la de la xarxa local a la que estan connectats i el gateway per defecte er tal de sortir cap a Internet.
Suposeu la següent xarxa:
192.168.0.0/24 ---> Encaminador 1 ---> 192.168.1.0/24 ---> Router ADSL --> Internet
Molt possiblement el router ADSL només coneix les rutes per arribar a Internet i a la xarxa local. Si volem que un paquet que surti o passi (forwarding) pel router sàìga arribar a la xarxa 192.168.0.0/24 cal configurar una ruta. Es pot configurar una ruta estàtica de la següent manera:
$ sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.100
On suposem que la IP de l'Encaminador 1 és 192.168.1.100.
NOTA: Els encaminadors tenen múltiples IP. Al indicar un gateway cal indicar sempre la IP que correspon al segment de xarxa que estem configurant
Comanda route
Consulteu Comanda route.
Comanda ip route
Consulteu Xarxes_Linux#ip_route
Script d'inici propi
És una de les opcions. Creeu un fitxer anomenat /etc/init.d/addroute
$ sudo joe /etc/init.d/addroute
I afegiu les rutes que vulgueu següent
#!/bin/bash route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.4
Ara feu aquest fitxer executable:
$ sudo chmod 755 /etc/init.d/addroute
I feu que s'executi a l'inici del sistema amb la comanda:
$ cd /etc/init.d $ sudo update-rc.d addroute defaults
Comproveu que funciona reiniciant l'ordinador i consultant les rutes amb la comanda:
$ route -n
Fitxer /etc/network/interfaces
Podem afegir rutes estàtiques amb up:
$ cat /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 up route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.20 down route del -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.20 dev eth0
Es recomanable utilitza ip route en comptes de route:
$ cat /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 up ip route add dev eth0 to 192.168.10.0/24 via 192.168.1.20 down ip route del dev eth0 to 192.168.10.0/24 via 192.168.1.20
Script a les carpetes de la carpeta /etc/network
$ ls /etc/network if-down.d if-post-down.d if-pre-up.d if-up.d
Podeu posar escripts executables en aquestes carpetes que configurin rutes estàtiques.
Afegir rutes estàtiques a IPCOP
Consulteu: Afegir rutes estàtiques de l'article IPCOP.
DNAT i multigateway
Consulteu DNAT i multigateway
Missatges d'error de la comanda route
Consulteu: Xarxes_Linux#Missatges_d.27error_de_la_comanda_route
rp_filter
Aquesta valor es pot modificar amb sysctl.
The rp_filter variable sets up a reverse patch (rp) filter on the specific interface. What this means, is quite simple. All it does, is to validate that the actual source address used by packets correlates properly with our routing table, and that packets with this specific source IP address are supposed to get their replies back through that interface again.
El que fa per tant es comprovar si els paquets arriben per la interfície de xarxa que pertoca segons la nostra taula de rutes. Per exemple, amb una taula de rutes com la següent:
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth11 0.0.0.0 192.168.11.1 0.0.0.0 UG 100 0 0 eth11
Si ens arriba un paquet d'Internet (per exemple amb una IP 80.44.35.66) des de eth0 aquest paquet serà descartat pel kernel, ja que segons la taula de rutes hauria d'arribar des de la interfície eth11.
Vegeu també:
Resolució d'errors. TroubleShooting
Error "SIOCADDRT: File exists" a l'afegir rutes estàtiques al fitxer /etc/network/interfaces
A vegades no s'executen les comandes que hi ha al fitxer interfaces amb la opció up, com per exemple:
auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 up route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.20
Per què abans de fer l'up succeïx algun error... Podeu executar:
$ sudo ifup --verbose eth0
Per saber els detalls del que funciona malament. A vegades una solució pot ser posar pre-up en comptes d'up.
Recursos
