Come sappiamo, nelle impostazioni TCP/IP della rete è possibile configurareun solo default gateway. Però noi dobbiamo permettere ai client di capire da che parte andare, se verso internet oppure verso la rete remota. Ovviamente non è possibile utilizzare in entrambi i casi la stessa route.
Per fare questo esiste un metodo fornito a livello di protocollo ICMP (livello 3 ISO/OSI) detto appunto ICMP Redirect. Questo protocollo, che come detto lavora a livello IP (routing), si occupa di fornire al client TCP/IP le informazioni necessarie per raggiungere la rete desiderata attraverso l'apposito router.
Esempio:
diciamo che i nostri due router sono:
- RouterWEB/firewall per uscire su internet
- RouterIntra per andare sulla rete della sede remota
Il client invia un pacchetto destinato alla rete remota che quindi viene indirizzato al defalut gateway, ovvero il routerWEB/firewall. Quest'ultimo, che è a conoscenza delle reti interne, si accorge che per raggiungere quella rete deve passare dall'altro router (routerIntra) e quindi rigira nuovamente il pacchetto.
Il pacchetto ritransita per la seconda volta sulla stessa rete--> non è bello ne funzionale ecc...
La soluzione migliore è che il routerWEB/firewall invii un pacchetto al client dicendogli che, la rete da lui cercata, sta dall'altra parte sull'altro router. Questo è l'ICMP redirect.
Il problema, sulle configurazioni default, sta nel fatto che il firewall di windows blocca questo tipo di messaggio ICMP (come i ping) e quindi per ottenere questa funzionalità occorre abilitarlo.
Per farlo basta andare sulle proprietà avanzate del firewall, entrare nei settaggi dell'ICMP ed abilitare il redirect.