Differenze tra le versioni di "Rete del GOLEM"

Da GolemWiki.
Jump to navigation Jump to search
(→‎scatolotto: regole iptables aggiornate su scatolotto)
 
(19 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
In questa pagina sono raccolte tutte le informazioni relative alla struttura della rete LAN/Internet dell'[[Officina Informatica]].
+
[[File:Network-2023-01.png|600px|right]]
Al momento la rete è in implementazione.
 
  
== Esigenze ==
+
In questa pagina sono raccolte tutte le informazioni relative alla struttura della rete dell'[[Officina Informatica]]. La rete è stata in fase di testing tra dicembre 2016 e marzo 2017. Da aprile 2017 la rete è completamente operativa. Dall'estate 2018 la rete è [[IPv6 @ GOLEM | dual-stack IPv4/IPv6]].
[[File:Rete_GOLEM.png|right|thumb|300px|Struttura ''beta'' della rete]]
 
  
* '''Ponte radio''' - Poiché non arriva cavo telefonico all'Officina, è necessario realizzare una connessione a distanza con un modem/router interno all'area della vela. Si userà un ponte radio ''bridge'' presumibilmente a 5GHz;
+
= Rete di accesso =
* '''Separazione delle reti''' - Rete ''interna'' GOLEM e rete ''esterna'' (ponte radio/gateway esterno) devono essere separate;
+
* '''Connessione satellitare''': col nostro potenziale sponsor [https://www.sokom.it/ Sokom], è in fase di sperimentazione una connessione Starlink (connessione tramite satelliti in orbita bassa, a bassa latenza e alta velocità).
* '''LAN''' - Abbiamo a disposizione 12 porte ethernet nelle sale dell'Officina;
+
* '''Ponte radio:''' temporaneamente dismesso <strike>a causa di vincoli architettonici, il modem si trova nell'edificio nord. Viene usato un ponte radio in banda libera a 2.4 GHz di circa 100m. La presenza del ponte radio non limita la velocità della rete di accesso, perché la VDSL è più lenta, e non influisce in maniera significativa sulla latenza. Il ponte è realizzato con due antenne TP-Link CPE210.</strike>
* '''WiFi interna''' - Oltre alla Ethernet LAN servirà un ulteriore dispositivo per la connessione tramite dispositivi wireless (WLAN);
+
* '''LAN:''' realizzata con tecnologia Ethernet, abbiamo a disposizione 12 porte, 6 nella sala officina (3 + 3) e 6 in sala corsi (2 + 2 + 2). La LAN è realizzata con uno switch non-managed 10/100/1000.
* '''Server/Caching''' - Si vorrebbe usare il minicomputer [[A10-OLinuXino-LIME | OLinuXino]] sia come semplice server locale (storage di dati condivisi) che come sistema di cache per aggiornare sistemi debian-based ([[apt-cacher]] o simili) e non. Il traffico di rete dovrà attraversare l'Olinuxino.
+
* '''WLAN:''' realizzata con tecnologia WiFi. Abbiamo un access point in sala corsi che copre tutta l'officina (Ubiquiti UniFi), in aggiunta ad un ulteriore access point esterno attualmente non configurato.
  
== Materiali a disposizione ==
+
= Apparati =
* Antenne per ponte radio e relativi router (presumibilmente Mikrotik)
+
Dove possibile, cerchiamo di utilizzare materiale di recupero. Se potesse, anche il VPS sarebbe di seconda mano.
* Switch Allied Telesyn (24 porte)
+
La Routerboard e le due Ubiquiti ci sono state gentilmente offerte da Sokom.
* Mikrotik RouterBoard 433 (per WLAN) ?
 
* [[A10-OLinuXino-LIME | OLinuXino A10 LIME]]
 
  
== Cenni VLAN ==
+
== atena.golem.linux.it ==
<!-- <div style="padding: 1em;border: 1px dashed #2f6fab;color: black;background-color: #f9f9f9;"> -->
+
VPS presso OVH.
VLAN = Virtual LAN, insieme di tecnologie che permettono di suddividere una rete basata su switch, in più reti logicamente non comunicanti tra loro, ma che condividono la stessa infrastuttura fisica.
 
(riadattato da Wikipedia)
 
  
Noi creeremo due VLAN (interna = #1 = LAN locale ed esterna = #2 = verso il ponte radio). I membri di una VLAN non possono comunicare con quelli dell'altra VLAN (le informazioni trasmesse vengono automaticamente ''taggate'' dallo switch con l'ID della VLAN di partenza). I membri di entrambe le VLAN (per noi l'OlinuXino) devono ''taggare'' manualmente i pacchetti per notificare allo switch su quale VLAN indirizzarli.
+
{| class="wikitable"
<!-- </div> -->
+
|+golem.linux.it
 +
! nic
 +
! addr4
 +
! addr6
 +
! descrizione
 +
|-
 +
| '''he6in4'''
 +
|
 +
| 2001:470:1f12:69::2/64
 +
| tramite un tunnel 6in4 con Hurrican Electric, fornisce l'accesso alla rete IPv6
 +
|-
 +
| '''tun0'''
 +
|
 +
| 2001:470:c844::11
 +
| tramite OpenVPN fornisce connettività IPv6 alle macchine dell'officina e ai soci del GOLEM;
 +
|}
  
== Piano d'azione ==
+
== scatolotto ==
Poiché OLinuXino ha una sola scheda di rete fisica, si configura lo switch per supportare due VLAN (Virtual LAN) (isolate fra loro: come fossero LAN gestite da due switch diversi, ndr).
+
SBC AMD GX-412TC SOC.
* VLAN#1 - Antenna WLAN e porte ethernet LAN fanno parte della VLAN interna
+
Monta una Debian minimale su SD read-only. La configurazione si resetta ad ogni avvio.
* VLAN#2 - Il ponte radio fa parte della VLAN esterna
+
Per cambiarla in maniera permanente, fermare GRUB da seriale e rimuovere ''fsprotect'' dalla command line del kernel.
  
OLinuXino appartiene ad entrambe e funge da router di collegamento. OLinuXino sarà sicuramente anche il gateway predefinito per le macchine della VLAN#1, ed anche il loro server DNS. Inoltre, farà anche da server DHCP.
+
NAT dst=xxx.xxx.xxx.xxx to 192.168.7.128 (''tutto il traffico IPv4 passa indisturbato verso porceddu'').
  
OLinuXino dovrà gestire le due VLAN. Anche se ha una sola scheda di rete fisica, esso è cosciente dell'esistenza delle due VLAN, perciò si "sdoppia" la scheda di rete fisica in due schede virtuali, una per ogni VLAN.
+
{{Note
 +
|type=reminder
 +
|text=È in testing la modifica delle regole di routing. La coppia di regole di NAT è stata sostituita con <code>iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE</code>. In questo modo il forwarding ipv4 viene fatto dal default gateway attualmente assegnato tramite DHCP sull'interfaccia WAN enp3s0. Le vecchie regole sono comunque state mantenute, commentate, nel file di configurazione caricato all'avvio.
 +
}}
  
=== Configurazione VLAN su switch ===
+
{| class="wikitable"
[[Image:Switchone-config.jpeg|300px|right]]
+
|+scatolotto
* Creazione due VLAN:
+
! nic
** ID #1 - interno
+
! addr4
** ID #2 - esterno
+
! addr6
* Si imposta per ogni porta il PVID (Port VLAN IDentifier), ossia si informa lo switch a quale delle due VLAN appartiene la porta ''per default''. Le porte dalla 1 alla 21 hanno PVID #1 (danno verso l'interno), dalla 22 alla 24 hanno PVID #2 (danno verso l'esterno).
+
! descrizione
* Poi si imposta la porta 22 sia come membro della VLAN #2 (lo è già per default) che per la VLAN #1. Per default si ha che la porta 22 è:
+
|-
** '''untagged''' per la VLAN #2 (informazioni non taggate vengono riportate sulla VLAN #2);
+
| '''enp3s0'''
** '''tagged''' per la VLAN #1 (ossia per spedire informazioni sulla VLAN #1 l'OlinuXino dovrà saperle taggare);
+
| xxx.xxx.xxx.xxx/xx
* Lo stesso si è fatto per la 23, ma al momento è inutilizzata.
+
|
 +
| collegata al modem (attualmente, parabola Starlink). IP dinamico sotto NAT.
 +
|-
 +
| '''tun0'''
 +
|
 +
| 2001:470:c844::200
 +
| tunnel OpenVPN verso golem.linux.it per connettività IPv6
 +
|-
 +
| '''enp2s0'''
 +
| 192.168.7.1/24
 +
| fe80:.../64
 +
| collegata al router point-to-point
 +
|}
  
== Configurazione OLinuXino ==
+
== porceddu ==
=== VLAN ===
+
Mikrotik Routerboard RB3011UiAS
Installare il pacchetto <code>vlan</code>
 
# apt-get install vlan
 
  
Abilitare il modulo per il protocollo 8021q e inserirlo per il caricamento all'avvio.
+
NAPT src=192.168.5.0/24 to 192.168.7.1 (''tutto il traffico IPv4 della LAN viene "nattato" e inoltrato a scatolotto'').
  
'''Nota''': questo non è necessario sul '''nostro''' OLinuXino, perché il modulo è linkato staticamente.
+
{| class="wikitable"
 +
|+porceddu
 +
! nic
 +
! addr4
 +
! addr6
 +
! descrizione
 +
|-
 +
| '''ether1'''
 +
| 192.168.7.128/24
 +
| fe80:.../64
 +
| collegata a scatolotto point-to-point
 +
|-
 +
| '''bridge-officina'''
 +
| 192.168.5.20/24
 +
| 2001:470:c844:200::1/64
 +
| DHCPv4 e radvd per le macchine dell'officina. Bridge di più porte, a cui sono collegati lo switch e andromeda.
 +
|}
  
  # modprobe 8021q
+
== cassiopea ==
# echo 8021q >> /etc/modules
+
Server di recupero.
 +
{| class="wikitable"
 +
|+ hardware
 +
| CPU
 +
| Intel Xeon X3330 @ 2.66GHz
 +
|-
 +
| RAM
 +
| 6 GiB
 +
|-
 +
| SO
 +
| Proxmox
 +
|-
 +
| Disk
 +
| (RAID1 2x 250GiB) = 250GiB, OS + (2x (2x 500 GiB)) = 2TiB, storage VM
 +
|}
  
Configurare il file ''/etc/network/interfaces''
+
= History =
 +
Alcune vecchie configurazioni sono disponibili nella [[Discussione:Rete del GOLEM | pagina di discussione]].
  
# VLAN 2 - Untagged. Prendi il DCHP dalla rete esterna
+
== Legacy ==
auto eth0
+
* Tanto tempo fa, in un'Officina lontana, la gestione della rete era affidata al serverone, che adesso è stato donato e ne abbiamo perse le tracce;
iface eth0 inet dhcp
+
* Durante la permanenza temporanea in ex-Ospedale Vecchio si è fatto uso di un [[A10-OLinuXino-LIME | OLinuXino A10 LIME]];
 +
* Di ritorno alla Vela, attuale Officina, si è sperimentata una soluzione [[A10-OLinuXino-LIME | OLinuXino ]] + [[VLAN]], ma per praticità di gestione è stata scartata;
  
# VLAN 1 - Bisogna taggare. Mi dò un IP statico
+
[[Category:Sysop]]
auto eth0.1
 
iface eth0.1 inet static
 
address 192.168.5.10
 
netmask 255.255.255.0
 
vlan-raw-device eth0
 
 
 
La dicitura ''eth0.1'' indica la VLAN 1, che è raggiungibile fisicamente attraverso ''eth0''.
 
 
 
'''In breve''': l'OlinuXino, come detto prima, deve saper taggare i pacchetti per poter dialogare contemporaneamente con l'interno e con l'esterno. Ora, poiché la porta dove è connesso (22) è ''untagged'' per VLAN #2 ciò che lui butta in rete va di per sé verso tale VLAN (l'esterno). Per la VLAN #1 invece l'informazione deve essere taggata, da qui la seconda parte del file ''interfaces''.
 
 
 
=== DHCP Server ===
 
L'OLinuXino si deve occupare di assegnare gli indirizzi IP sulla rete ''interna'' VLAN 1. Poiché si dovrà occupare anche di rispondere alle richieste DNS provenienti dalla rete ''interna'' VLAN 1, installiamo ''dnsmasq'', che fa tutto lui.
 
 
 
# apt-get install dnsmasq
 
 
 
Modifichiamo ''/etc/dnsmasq.conf'':
 
 
 
# Accettare le richieste solo su questa interfaccia di rete
 
interface=eth0.1
 
 
 
# Assegnare gli indirizzi IP di questo intervallo
 
dhcp-range=192.168.5.101,192.168.5.254,12h
 
 
 
Automaticamente, ai computer che richiedono un indirizzo IP, viene anche comunicato anche:
 
* Indirizzo del gateway (OLinuXino)
 
* Indirizzo del server DNS (OLinuXino)
 
Se questi servizi non risiedono sull'OLinuXino, spulciare ''dnsmasq.conf'' per modificare questo comportamento (a noi non interessa).
 
 
 
=== DNS Server ===
 
Lo fa già da sé, ma nel file ''dnsmasq.conf'' decommentiamo anche queste due linee per non far uscire inutilmente query DNS che non potranno essere risolte da nessuno:
 
 
 
domain-needed
 
bogus-priv
 
 
 
=== Squid ===
 
Installare ''Squid'' per tenere una copia di tutto il traffico HTTP, che a questo punto passa attraverso l'OLinuXino.
 
# apt-get install squid3
 
Vedere [[Apt-cacher#Squid-Only | Squid]].
 
 
 
=== Firewall ===
 
Script per il firewall, per mandare i pacchetti sulla 80 (HTTP) a Squid, e gli altri direttamente fuori.
 
 
 
#!/bin/sh
 
# Squid server IP
 
SQUID_SERVER="192.168.5.10"
 
 
# Interface connected to Internet
 
INTERNET="eth0"
 
 
# Interface connected to LAN
 
LAN_IN="eth0.1"
 
 
# Squid port
 
SQUID_PORT="3128"
 
 
# Clean old firewall
 
iptables -F
 
iptables -X
 
iptables -t nat -F
 
iptables -t nat -X
 
iptables -t mangle -F
 
iptables -t mangle -X
 
 
# Load IPTABLES modules for NAT and IP conntrack support
 
modprobe ip_tables
 
modprobe ip_conntrack
 
modprobe iptable_nat
 
modprobe ipt_MASQUERADE
 
echo 1 > /proc/sys/net/ipv4/ip_forward
 
 
# Set this system as a router for rest of LAN
 
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE
 
 
# DNAT port 80 request coming from LAN systems to squid 3128 ($SQUID_PORT), aka transparent proxy
 
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
 
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
 
 
 
==Bibliografia==
 
* [https://it.wikipedia.org/wiki/VLAN VLAN | Wikipedia]
 
* [http://www.netsetup.it/networking-livello2/porte-tagged-untagged PVID, tagged, untagged | NetSetup]
 
* [https://wiki.debian.org/it/NetworkConfiguration Configurazione VLAN | Debian Wiki]
 

Versione attuale delle 20:17, 21 mar 2023

Network-2023-01.png

In questa pagina sono raccolte tutte le informazioni relative alla struttura della rete dell'Officina Informatica. La rete è stata in fase di testing tra dicembre 2016 e marzo 2017. Da aprile 2017 la rete è completamente operativa. Dall'estate 2018 la rete è dual-stack IPv4/IPv6.

Rete di accesso

  • Connessione satellitare: col nostro potenziale sponsor Sokom, è in fase di sperimentazione una connessione Starlink (connessione tramite satelliti in orbita bassa, a bassa latenza e alta velocità).
  • Ponte radio: temporaneamente dismesso a causa di vincoli architettonici, il modem si trova nell'edificio nord. Viene usato un ponte radio in banda libera a 2.4 GHz di circa 100m. La presenza del ponte radio non limita la velocità della rete di accesso, perché la VDSL è più lenta, e non influisce in maniera significativa sulla latenza. Il ponte è realizzato con due antenne TP-Link CPE210.
  • LAN: realizzata con tecnologia Ethernet, abbiamo a disposizione 12 porte, 6 nella sala officina (3 + 3) e 6 in sala corsi (2 + 2 + 2). La LAN è realizzata con uno switch non-managed 10/100/1000.
  • WLAN: realizzata con tecnologia WiFi. Abbiamo un access point in sala corsi che copre tutta l'officina (Ubiquiti UniFi), in aggiunta ad un ulteriore access point esterno attualmente non configurato.

Apparati

Dove possibile, cerchiamo di utilizzare materiale di recupero. Se potesse, anche il VPS sarebbe di seconda mano. La Routerboard e le due Ubiquiti ci sono state gentilmente offerte da Sokom.

atena.golem.linux.it

VPS presso OVH.

golem.linux.it
nic addr4 addr6 descrizione
he6in4 2001:470:1f12:69::2/64 tramite un tunnel 6in4 con Hurrican Electric, fornisce l'accesso alla rete IPv6
tun0 2001:470:c844::11 tramite OpenVPN fornisce connettività IPv6 alle macchine dell'officina e ai soci del GOLEM;

scatolotto

SBC AMD GX-412TC SOC. Monta una Debian minimale su SD read-only. La configurazione si resetta ad ogni avvio. Per cambiarla in maniera permanente, fermare GRUB da seriale e rimuovere fsprotect dalla command line del kernel.

NAT dst=xxx.xxx.xxx.xxx to 192.168.7.128 (tutto il traffico IPv4 passa indisturbato verso porceddu).

Golem-template-note-reminder.png È in testing la modifica delle regole di routing. La coppia di regole di NAT è stata sostituita con iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE. In questo modo il forwarding ipv4 viene fatto dal default gateway attualmente assegnato tramite DHCP sull'interfaccia WAN enp3s0. Le vecchie regole sono comunque state mantenute, commentate, nel file di configurazione caricato all'avvio.


scatolotto
nic addr4 addr6 descrizione
enp3s0 xxx.xxx.xxx.xxx/xx collegata al modem (attualmente, parabola Starlink). IP dinamico sotto NAT.
tun0 2001:470:c844::200 tunnel OpenVPN verso golem.linux.it per connettività IPv6
enp2s0 192.168.7.1/24 fe80:.../64 collegata al router point-to-point

porceddu

Mikrotik Routerboard RB3011UiAS

NAPT src=192.168.5.0/24 to 192.168.7.1 (tutto il traffico IPv4 della LAN viene "nattato" e inoltrato a scatolotto).

porceddu
nic addr4 addr6 descrizione
ether1 192.168.7.128/24 fe80:.../64 collegata a scatolotto point-to-point
bridge-officina 192.168.5.20/24 2001:470:c844:200::1/64 DHCPv4 e radvd per le macchine dell'officina. Bridge di più porte, a cui sono collegati lo switch e andromeda.

cassiopea

Server di recupero.

hardware
CPU Intel Xeon X3330 @ 2.66GHz
RAM 6 GiB
SO Proxmox
Disk (RAID1 2x 250GiB) = 250GiB, OS + (2x (2x 500 GiB)) = 2TiB, storage VM

History

Alcune vecchie configurazioni sono disponibili nella pagina di discussione.

Legacy

  • Tanto tempo fa, in un'Officina lontana, la gestione della rete era affidata al serverone, che adesso è stato donato e ne abbiamo perse le tracce;
  • Durante la permanenza temporanea in ex-Ospedale Vecchio si è fatto uso di un OLinuXino A10 LIME;
  • Di ritorno alla Vela, attuale Officina, si è sperimentata una soluzione OLinuXino + VLAN, ma per praticità di gestione è stata scartata;