Gateway-Router: differenze tra le versioni

 
(20 versioni intermedie di uno stesso utente non sono mostrate)
Riga 4: Riga 4:


Una macchina linux può essere configurata per svolgere tutte le funzioni svolte da un qualsiasi router/gateway dedicato e reperibile in commercio. Infatti sarebbe più corretto dire che sono questi dispositivi a offrire le stesse funzionalità che può offrire una macchina linux, in quanto molto spesso il software installato non è altro che una versione minimale e personalizzata di linux.
Una macchina linux può essere configurata per svolgere tutte le funzioni svolte da un qualsiasi router/gateway dedicato e reperibile in commercio. Infatti sarebbe più corretto dire che sono questi dispositivi a offrire le stesse funzionalità che può offrire una macchina linux, in quanto molto spesso il software installato non è altro che una versione minimale e personalizzata di linux.
{{Warningbox|Ricordarsi che tutto quanto qui scritto presuppone che sia stato abilitato l'IP forwarding sulla macchina che si vuole usare come gateway/router, ovvero impostare a '''1''' il valore della variabile '''net.ipv4.ip_forward''' in ''/etc/sysctl.conf''}}


== Gateway ==
== Gateway ==
Riga 13: Riga 15:
* Router/Gateway utilizzabile solo in modalità standard. In questo caso l'unica possibilità è disattivare tutti i servizi che si intendono gestire tramite macchina linux e configurare il dispositivo affinché passi tutto il traffico senza filtrarlo alla suddetta macchina linux. Di norma tutti i dispositivi commerciali permettono di inoltrare tutto il traffico non filtrato ad un dispositivo della propria LAN. Tale opzione viene generalmente chiamata "DMZ" (''demilitarize zone''), ma ogni costruttore può usare una sua dicitura particolare. Per quanti servizi si possano disattivare, autenticazione, incapsulmanento e NAT dei dati rimarrà sempre a carico del suddetto dispositivo.
* Router/Gateway utilizzabile solo in modalità standard. In questo caso l'unica possibilità è disattivare tutti i servizi che si intendono gestire tramite macchina linux e configurare il dispositivo affinché passi tutto il traffico senza filtrarlo alla suddetta macchina linux. Di norma tutti i dispositivi commerciali permettono di inoltrare tutto il traffico non filtrato ad un dispositivo della propria LAN. Tale opzione viene generalmente chiamata "DMZ" (''demilitarize zone''), ma ogni costruttore può usare una sua dicitura particolare. Per quanti servizi si possano disattivare, autenticazione, incapsulmanento e NAT dei dati rimarrà sempre a carico del suddetto dispositivo.


Indipendentemente dallo scenario è consigliato usare una macchina dotata di due schede di rete, in modo da separare completamente la propria LAN dall mondo esterno. Nel caso di scenario ''Half-bridge'' e/o standard è anche consigliabile configurare due subnet differenti per ciascuna scheda di rete.
Indipendentemente dallo scenario è consigliato usare una macchina dotata di due schede di rete, in modo da separare completamente la propria LAN dal mondo esterno. Nel caso di scenario ''Half-bridge'' e/o standard è anche consigliabile configurare due subnet differenti per ciascuna scheda di rete.


=== Subnet differenti ===
=== Subnet differenti ===


Nel caso si optasse per la configurazione con subnet diverse si avrebbe una situazione per cui il Gateway/Router/Modem esterno (es.: IP <code>192.168.2.1</code>) è collegato ad una porta del PC Gateway/Router Linux (es. IP <code>192.168.2.74</code>), mentre tutti gli altri PC della LAN sono collegati alla seconda porta del PC Gateway/Router Linux (es. IP <code>192.168.1.1</code>).
Nel caso si optasse per la configurazione con subnet diverse si avrebbe una situazione per cui il Gateway/Router/Modem esterno (es.: IP <code>192.168.2.1</code>) è collegato ad una porta del PC Gateway/Router Linux (es. IP <code>192.168.2.74</code>), mentre tutti gli altri PC della LAN sono collegati alla seconda porta del PC Gateway/Router Linux (es. IP <code>192.168.1.172</code>).
<pre>
-----------            ----------------------------            --------------
G/R esterno                    G/R linux                          LAN
192.168.2.1    <-->    192.168.2.74 | 192.168.1.172    <-->    192.168.1.0/24
-----------            ----------------------------            --------------
</pre>
Se così fosse è utile osservare quanto segue:
Se così fosse è utile osservare quanto segue:
* Il gateway predefinito del PC Gateway/Router Linux deve essere l'IP del Gateway/Router/Modem esterno (<code>192.168.2.1</code>).
* Il gateway predefinito del PC Gateway/Router Linux deve essere l'IP del Gateway/Router/Modem esterno (<code>192.168.2.1</code>).
* Il gateway predefinito di tutti i dispositivi della subnet <code>192.168.1.0/24</code> deve essere l'IP della seconda interfaccia del PC Gateway/Router Linux (<code>192.168.1.1</code>).
* Il gateway predefinito di tutti i dispositivi della subnet <code>192.168.1.0/24</code> deve essere l'IP della seconda interfaccia del PC Gateway/Router Linux (<code>192.168.1.172</code>).
* L'unico dispositivo su cui è necessario configurare una rotta statica è il Gateway/Router/Modem esterno, ed in particolare (rimanendo all'esempio soprastante) i valori sono <code>192.168.1.0 | 255.255.255.0 | 192.168.2.74</code>. Questo perché un PC dotato di due interfacce con IP appartenenti a subnet diverse sa instradare automaticamente e correttamente i pacchetti appartenenti alle subnet associate alle singole interfacce, mentre i PC della LAN hanno quest'ultimo PC impostato come gateway.
* L'unico dispositivo su cui è necessario configurare una rotta statica è il Gateway/Router/Modem esterno, ed in particolare (rimanendo all'esempio soprastante) i valori sono <code>192.168.1.0 | 255.255.255.0 | 192.168.2.74</code>. Questo perché un PC dotato di due interfacce con IP appartenenti a subnet diverse sa instradare automaticamente e correttamente i pacchetti appartenenti alle subnet associate alle singole interfacce, mentre i PC della LAN hanno quest'ultimo PC impostato come gateway.
==== /etc/network/interfaces ====
Si ritiene utile riportare una configurazione d'esempio che include anche direttive menzionate in altre guide:
<pre>
auto eth1
iface eth1 inet static
address 192.168.2.74
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
post-up /bin/ip route flush table 1
post-up /bin/ip route add default via 192.168.2.1 table 1
post-up /bin/ip rule add from 192.168.2.74 table 1
auto eth0
iface eth0 inet static
address 192.168.1.172
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
post-up /bin/ip route add 192.168.1.0/24 dev eth0 src 192.168.1.172 table 1
</pre>
== Routing ==
Il routing (''instradamento'') dei pacchetti è un'attività normalmente poco rilevante per le piccole reti come quelle domestiche e dei piccoli uffici. In tali contesti infatti le impostazioni automatiche sono più che sufficienti per gestire il normale traffico dati.<br>
Apprendere i rudimenti di tali materia è di norma richiesto solo quando si ha la necessità di creare più di una subnet all'interno della propria LAN, pertanto chi fosse interessato può far riferimento a questa breve guida dedicata a [[Iproute2]], una suite di strumenti appunto pensata per la configurazione del routing in tutte le sue declinazioni.
== Firewall e NAT ==
Entrambe le funzionalità possono essere gestite attraverso il firewall integrato nel kernel linux, ovvero [[Debian e iptables | iptables]] oppure [[Nftables | nftables]].
== Wireless Access Point ==
Una macchina linux equipaggiata con un'interfaccia di rete wireless può essere configurata come punto d'accesso per tutti i dispositivi senza fili. Si veda [[Wireless Access Point (WAP) personalizzato | questa guida]].
== DNS e DHCP server ==
È anche possibile configurare il proprio PC linux per quanto segue:
# assegnare automaticamente un IP privato ad uno o più dispositivi connessi alla propria LAN;
# risolvere centralmente i nomi host e FQDN (''Fully Qualified Domain Name'') della propria LAN, invece che dover editare il file <code>/etc/hosts</code> di ogni singolo dispositivo (sempre ammesso che sia possibile);
# creare una cache degli indirizzi (o meglio dei FQDN) di internet già richiesti, ovvero evitare di dover continuamente contattare i server DNS esterni per risolvere i suddetti nomi di dominio/indirizzi se già risolti in precedenza.
Per tutti e tre i punti si può far riferimento a [[Un server DNS e DHCP su Debian | questa guida]].
== DNS Dinamici ==
Se il proprio ISP non mette a disposizione un IP pubblico statico è sempre possibile sottoscrivere e configurare un apposito servizio che permetta di tenere traccia dell'IP pubblico attualmente associato al proprio Gateway/Router esterno (ovvero offrono un record DNS dedicato).<br>
Tali servizi offrono di solito anche la possibilità di aggiornare il suddetto record DNS in modo automatico attraverso [[DNS dinamici: come ottenerli e configurarli | DDClient]].
== OpenSSH ==
Implementazione libera del protocollo SSH, usato principalmente per connettersi (e quindi amministrare) da remoto un altro dispositivo tramite shell. [[OpenSSH | Guida OpenSSH]].
== OpenVPN ==
[[Openvpn | Guida]] per creare sia una propria VPN (configurazione server e client) che per collegarsi ad un servizio commerciale (configurazione client). Usando ovviamente [[Openvpn | OpenVPN]].
{{Autori
|Autore = [[Utente:Wtf|Wtf]] 15:42, 16 feb 2019 (CET)
}}
[[Categoria:Configurazione ethernet]]

Versione attuale delle 21:38, 5 mag 2019

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian
Gateway-Router

Sommario


Introduzione

Una macchina linux può essere configurata per svolgere tutte le funzioni svolte da un qualsiasi router/gateway dedicato e reperibile in commercio. Infatti sarebbe più corretto dire che sono questi dispositivi a offrire le stesse funzionalità che può offrire una macchina linux, in quanto molto spesso il software installato non è altro che una versione minimale e personalizzata di linux.

  ATTENZIONE
Ricordarsi che tutto quanto qui scritto presuppone che sia stato abilitato l'IP forwarding sulla macchina che si vuole usare come gateway/router, ovvero impostare a 1 il valore della variabile net.ipv4.ip_forward in /etc/sysctl.conf


Gateway

La principale funzionalità di un router-gateway è quella di avviare, condividere e gestire la connessione ad internet all'interno di una LAN. Prima dell'avvento delle connessioni di tipo DSL erano comuni i modem interni, mentre oggi è esattamente l'opposto, pertanto anche configurando un computer come router/gateway non sarà mai possibile fare a meno di un router/gateway dedicato, in quanto non sono più sostanzialmente reperibili in commercio dispositivi che fungano da modem puri. Si hanno quindi tre possibili scenari:

  • Router/Gateway configurabile in modalità Full-bridge, in tal caso il dispositivo può funzionare come modem puro e quindi la macchina linux può gestire direttamente anche autenticazione all'ISP ed incapsulamento dei dati. Il software richiesto in tale caso è Pppoeconf;
  • Router/Gateway configurabile in modalità Half-bridge, dove il dispositivo si occupa solo di autenticazione ed incapsulamento dei dati. Tutti gli altri servizi potranno/dovranno essere delegati al computer linux. Sebbene il dispositivo non possa funzionare modem puro questa modalità non introduce un livello di NAT/firewall esattamente come quella "full-bridge" (e quindi non dovrebbe introdurre alcuna latenza aggiuntiva, visto che si evita di fare due volte NAT);
  • Router/Gateway utilizzabile solo in modalità standard. In questo caso l'unica possibilità è disattivare tutti i servizi che si intendono gestire tramite macchina linux e configurare il dispositivo affinché passi tutto il traffico senza filtrarlo alla suddetta macchina linux. Di norma tutti i dispositivi commerciali permettono di inoltrare tutto il traffico non filtrato ad un dispositivo della propria LAN. Tale opzione viene generalmente chiamata "DMZ" (demilitarize zone), ma ogni costruttore può usare una sua dicitura particolare. Per quanti servizi si possano disattivare, autenticazione, incapsulmanento e NAT dei dati rimarrà sempre a carico del suddetto dispositivo.

Indipendentemente dallo scenario è consigliato usare una macchina dotata di due schede di rete, in modo da separare completamente la propria LAN dal mondo esterno. Nel caso di scenario Half-bridge e/o standard è anche consigliabile configurare due subnet differenti per ciascuna scheda di rete.

Subnet differenti

Nel caso si optasse per la configurazione con subnet diverse si avrebbe una situazione per cui il Gateway/Router/Modem esterno (es.: IP 192.168.2.1) è collegato ad una porta del PC Gateway/Router Linux (es. IP 192.168.2.74), mentre tutti gli altri PC della LAN sono collegati alla seconda porta del PC Gateway/Router Linux (es. IP 192.168.1.172).

-----------            ----------------------------            --------------
G/R esterno                     G/R linux                          LAN
192.168.2.1    <-->    192.168.2.74 | 192.168.1.172    <-->    192.168.1.0/24
-----------            ----------------------------            --------------

Se così fosse è utile osservare quanto segue:

  • Il gateway predefinito del PC Gateway/Router Linux deve essere l'IP del Gateway/Router/Modem esterno (192.168.2.1).
  • Il gateway predefinito di tutti i dispositivi della subnet 192.168.1.0/24 deve essere l'IP della seconda interfaccia del PC Gateway/Router Linux (192.168.1.172).
  • L'unico dispositivo su cui è necessario configurare una rotta statica è il Gateway/Router/Modem esterno, ed in particolare (rimanendo all'esempio soprastante) i valori sono 192.168.1.0 | 255.255.255.0 | 192.168.2.74. Questo perché un PC dotato di due interfacce con IP appartenenti a subnet diverse sa instradare automaticamente e correttamente i pacchetti appartenenti alle subnet associate alle singole interfacce, mentre i PC della LAN hanno quest'ultimo PC impostato come gateway.

/etc/network/interfaces

Si ritiene utile riportare una configurazione d'esempio che include anche direttive menzionate in altre guide:

auto eth1
iface eth1 inet static
	address 192.168.2.74
	netmask 255.255.255.0
	network 192.168.2.0
	broadcast 192.168.2.255
	gateway 192.168.2.1
	post-up /bin/ip route flush table 1
	post-up /bin/ip route add default via 192.168.2.1 table 1
	post-up /bin/ip rule add from 192.168.2.74 table 1

auto eth0
iface eth0 inet static
	address 192.168.1.172
	netmask 255.255.255.0
	network 192.168.1.0
	broadcast 192.168.1.255
	post-up /bin/ip route add 192.168.1.0/24 dev eth0 src 192.168.1.172 table 1

Routing

Il routing (instradamento) dei pacchetti è un'attività normalmente poco rilevante per le piccole reti come quelle domestiche e dei piccoli uffici. In tali contesti infatti le impostazioni automatiche sono più che sufficienti per gestire il normale traffico dati.
Apprendere i rudimenti di tali materia è di norma richiesto solo quando si ha la necessità di creare più di una subnet all'interno della propria LAN, pertanto chi fosse interessato può far riferimento a questa breve guida dedicata a Iproute2, una suite di strumenti appunto pensata per la configurazione del routing in tutte le sue declinazioni.

Firewall e NAT

Entrambe le funzionalità possono essere gestite attraverso il firewall integrato nel kernel linux, ovvero iptables oppure nftables.

Wireless Access Point

Una macchina linux equipaggiata con un'interfaccia di rete wireless può essere configurata come punto d'accesso per tutti i dispositivi senza fili. Si veda questa guida.

DNS e DHCP server

È anche possibile configurare il proprio PC linux per quanto segue:

  1. assegnare automaticamente un IP privato ad uno o più dispositivi connessi alla propria LAN;
  2. risolvere centralmente i nomi host e FQDN (Fully Qualified Domain Name) della propria LAN, invece che dover editare il file /etc/hosts di ogni singolo dispositivo (sempre ammesso che sia possibile);
  3. creare una cache degli indirizzi (o meglio dei FQDN) di internet già richiesti, ovvero evitare di dover continuamente contattare i server DNS esterni per risolvere i suddetti nomi di dominio/indirizzi se già risolti in precedenza.

Per tutti e tre i punti si può far riferimento a questa guida.

DNS Dinamici

Se il proprio ISP non mette a disposizione un IP pubblico statico è sempre possibile sottoscrivere e configurare un apposito servizio che permetta di tenere traccia dell'IP pubblico attualmente associato al proprio Gateway/Router esterno (ovvero offrono un record DNS dedicato).
Tali servizi offrono di solito anche la possibilità di aggiornare il suddetto record DNS in modo automatico attraverso DDClient.

OpenSSH

Implementazione libera del protocollo SSH, usato principalmente per connettersi (e quindi amministrare) da remoto un altro dispositivo tramite shell. Guida OpenSSH.

OpenVPN

Guida per creare sia una propria VPN (configurazione server e client) che per collegarsi ad un servizio commerciale (configurazione client). Usando ovviamente OpenVPN.




Guida scritta da: Wtf 15:42, 16 feb 2019 (CET)   Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized