Differenze tra le versioni di "Rete del GOLEM"

Da GolemWiki.
Jump to navigation Jump to search
 
(22 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
 +
|-
 +
| '''wg0'''
 +
|
 +
| 2001:470:c844:100::1
 +
| tramite WireGuard 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).
+
Lo scopo principale di ''scatolotto'' era di realizzare la VPN con OpenVPN, in quanto non supportata dal router Mikrotik.
* VLAN#1 - Antenna WLAN e porte ethernet LAN fanno parte della VLAN interna
+
Adesso, con la sperimentazione di WireGuard, la VPN può essere installata direttamente sulla Mikrotik e la necessità di avere ''scatolotto'' viene meno.
* VLAN#2 - Il ponte radio fa parte della VLAN esterna
 
  
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.
+
<div style="border-left: 5px solid red; opacity: 0.6;">
 +
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.
  
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.
+
NAT dst=xxx.xxx.xxx.xxx to 192.168.7.128 (''tutto il traffico IPv4 passa indisturbato verso porceddu'').
  
=== Configurazione VLAN su switch ===
+
{{Note
[[Image:Switchone-config.jpeg|300px|right]]
+
|type=reminder
* Creazione due VLAN:
+
|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.
** ID #1 - interno
+
}}
** ID #2 - esterno
 
* 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).
 
* 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);
 
** '''tagged''' per la VLAN #1 (ossia per spedire informazioni sulla VLAN #1 l'OlinuXino dovrà saperle taggare);
 
* Lo stesso si è fatto per la 23, ma al momento è inutilizzata.
 
  
== Configurazione OLinuXino ==
+
{| class="wikitable"
=== VLAN ===
+
|+scatolotto
Installare il pacchetto <code>vlan</code>
+
! nic
# apt-get install vlan
+
! 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
 +
|}
  
Abilitare il modulo per il protocollo 8021q e inserirlo per il caricamento all'avvio.
+
</div>
  
'''Nota''': questo non è necessario sul '''nostro''' OLinuXino, perché il modulo è linkato staticamente.
+
== porceddu ==
 +
Mikrotik Routerboard RB3011UiAS
  
# modprobe 8021q
+
[https://git.golem.linux.it/argilla/router-officina Configurazione]
# echo 8021q >> /etc/modules
 
  
Configurare il file ''/etc/network/interfaces''
+
NAPT src=192.168.5.0/24 to 192.168.7.1 (''tutto il traffico IPv4 della LAN viene "nattato" e inoltrato a scatolotto'').
  
# VLAN 2 - Untagged. Prendi il DCHP dalla rete esterna
+
{| class="wikitable"
auto eth0
+
|+porceddu
iface eth0 inet dhcp
+
! 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.
 +
|}
  
# VLAN 1 - Bisogna taggare. Mi dò un IP statico
+
== cassiopea ==
  auto eth0.1
+
Server di recupero.
iface eth0.1 inet static
+
{| class="wikitable"
address 192.168.5.10
+
|+ hardware
netmask 255.255.255.0
+
| CPU
vlan-raw-device eth0
+
| Intel Xeon X3330 @ 2.66GHz
 +
|-
 +
| RAM
 +
| 6 GiB
 +
|-
 +
| SO
 +
| Proxmox
 +
|-
 +
| Disk
 +
| (RAID1 2x 250GiB) = 250GiB, OS + (2x (2x 500 GiB)) = 2TiB, storage VM
 +
|}
  
La dicitura ''eth0.1'' indica la VLAN 1, che è raggiungibile fisicamente attraverso ''eth0''.
+
= History =
 +
Alcune vecchie configurazioni sono disponibili nella [[Discussione:Rete del GOLEM | pagina di discussione]].
  
'''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''.
+
== 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 [[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;
  
=== DHCP Server ===
+
[[Category:Sysop]]
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 10:01, 26 lug 2024

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
wg0 2001:470:c844:100::1 tramite WireGuard fornisce connettività IPv6 alle macchine dell'officina e ai soci del GOLEM;

scatolotto

Lo scopo principale di scatolotto era di realizzare la VPN con OpenVPN, in quanto non supportata dal router Mikrotik. Adesso, con la sperimentazione di WireGuard, la VPN può essere installata direttamente sulla Mikrotik e la necessità di avere scatolotto viene meno.

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

Configurazione

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;