Conceptos básicos de Enrotamento (Routing) e Proxy
Introdución
Cando queremos que un dos equipos da rede xestione as conexións do resto dos equipos co exterior (con calquera rede de área extensa á que esteamos conectados, que habitualmente será Internet), podemos facelo de dúas formas:
- Mediante o encamiñamento (routing).
- Mediante un servidor proxy.
A diferenza fundamental entre estas dúas opcións é o nivel no que se realiza o encamiñamento dos paquetes; mentres que co routing se encamiñan os paquetes a nivel de rede, o servidor proxy encamíñaos no nivel de aplicación. Isto provoca que o servidor proxy será algo máis lento e requirirá unha maior cantidade de recursos, pero ofrecerá máis funcionalidades que o router. Imos ver as diferenzas un pouco máis polo miúdo.
O servizo de enrotamento ou routing
- Grazas a este servizo, o equipo actuará como un router encamiñando a nivel de rede cara o exterior aqueles paquetes que teñen como destino equipos fóra da rede local.
- O servizo de routing permite encamiñar o tráfico cara o un destino establecido en cada un dos paquetes ou datagramas que alcanzan o router.
- Na imaxe pódese observar a anoloxía dun router cunha rotonda:
- Une vías (rotonda) - Une redes (router). Estas poden ser:
- Vías do mesmo tipo:
- Rotonda: simplemente encamiña
- Router: une redes do mesmo tipo (p.e. ethernet): simplemente encamiña paquetes entre distintas redes-IP.
- Vías de distinto tipo:
- Rotonda (p.e. autovía, estrada): aparte de encamiñar, tamén adaptan o tráfico a vía escollida de saída. Adaptan velocidades, organizan o tráfico dun carril a 2 carrís ou viceversa, etc.
- Router (p.e. ADSL, ethernet): aparte de encamiñar os paquetes, tamén os adaptan a liña de saída escollida. Adaptan velocidades, tamaños de paquetes, etc.
- Neste apartado non se vai afondar no servizo de routing. Ao final estableceranse enlaces para quen desexe facer escenarios de routing completos (como o da imaxe, por exemplo).
- Observar nesta imaxe o Router R, une redes do mesmo tipo (dúas LANs ethernet) pero que están en distintas redes-IP.
- O router R ten 2 IPs, unha por cada rede que une. O router S ten 3 IPs.
- Calquera deles encamiñará paquetes dunha rede a outra ou a outro router, sempre en función do destino.
- Cada equipo ten configurada unha porta de enlace, para enviar paquetes cuxo destino está fóra da súa rede-IP LAN.
- Finalmente, a seguinte imaxe amosa un esbozo do que van ter que facer os routers para encamiñar un paquete dende o host A ao host G:
Para revisar e afondar no coñecemento sobre configuracións IP e enrutamento pódese consultar:
O servizo de proxy
O servidor proxy encamiñará os paquetes no nivel de aplicación, así que a diferenza co caso anterior, un proxy desempaquetará totalmente os datos que reciba e volverá a construír os paquetes para envialos cara o exterior. Igual que no caso anterior, o proxy actúa como intermediario entre os equipos da rede local e as redes externas, pero presenta algunhas diferenzas:
- Dado que opera no nivel de aplicación, o servidor proxy ten que desempaquetar totalmente os paquetes mentres que o router só desempaqueta ata o nivel de rede, e polo tanto o proceso de encamiñamento será máis lento no proxy e consumirá máis recursos.
- O servidor proxy está implementado para unha ou varias aplicacións específicas, e así poderemos falar dun proxy HTTP, proxy HTTPS, proxy FTP, proxy de correo, etc.
- Dado que o servidor proxy desempaqueta totalmente os paquetes que encamiña, permite realizar filtros máis avanzados que o router. Nun servidor proxy podemos permitir ou denegar as conexións por usuarios, segundo o dominio ao que se estableza a conexión (.google.es, .wikipedia.org, etc.), almacenar nunha caché (un espazo no disco) o contido descargado para non ter que descargalo de novo en pouco tempo (é o que se coñece co nome de proxy caché), analizar virus, etc.; mentres que o router só permitirá realizar filtros por dirección IP de orixe e/ou dirección IP de destino (como moito, tamén por porto de orixe e/ou de destino se se trata dun router con firewall).
Proxy transparente
Cando instalamos nun equipo da nosa rede local o servizo de proxy, este servizo se executará nun porto determinado da máquina. Por exemplo, o equipo sobre o que instalamos o servizo de proxy pode ter a dirección IP 172.16.0.2 e executar o servizo de proxy no porto 3128. Pois ben, en principio para que o resto dos equipos da rede local utilicen este servidor como proxy para conectarse a Internet, haberá que configurar os seus navegadores para que utilicen como servidor proxy o equipo con esa dirección IP e nese porto.
Pero tamén hai a posibilidade de configurar o servizo de proxy de forma transparente, para que non sexa necesario configurar os clientes da rede para que utilicen servidor proxy. Para conseguilo, teremos que configurar o servidor para que capture todos os paquetes que reciba polo porto asociado aos servidores web (o porto 80) e os reenvíe ao porto no que escoita o servidor proxy. Desta forma, a configuración dos clientes será máis sinxela, xa que utilizarán o servidor proxy sen enterarse de que é realmente un proxy, como se fose un router que simplemente lles permite saír a Internet. Porén, a utilización dun proxy en modo transparente ten algunhas limitacións:
- Non é posible configurar de forma transparente un proxy HTTPS, para conexións a páxinas web seguras. Isto é debido ao propio funcionamento do protocolo HTTPS, que ten como obxectivo principal que ninguén poida interceptar e espiar a comunicación entre o equipo e o servidor web ao que se está conectando. O proxy en modo transparente intenta facer precisamente iso, interceptar os paquetes que lle chegan para reenvialos por outro porto, e non é posible facelo cos paquetes HTTPS.
- Non é posible usar a autenticación por usuarios con un proxy transparente. O cliente que establece a conexión ten que saber que hai un proxy para solicitar as credenciais ao usuario se é necesario, así que non é posible se o cliente descoñece a existencia do proxy.