Encaminament

De SergiTurWiki

Share/Save/Bookmark
Dreceres ràpides: navegació, cerca
Aquesta wiki forma part dels materials d'un curs
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

Recursos

IES Nicolau Copèrnic