Servizio Calcolo e Reti Pavia, 15 Agosto 2006 Implementazione di VLAN multiple per l utilizzo della rete wireless Andrea Rappoldi 1 Introduzione 2 Configurazione degli switch Catalyst Occorre definire innanzitutto le VLAN necessarie, e la modalità di gesione (nel caso particolare si utilizza VTP, configurando ogni switch come server) utilizzando la suite di comandi vlan database: ge-switch vlan database (vlan) vlan 100 name INFN-dot1x (vlan) vlan 200 name INFN-Web (vlan) vtp server (vlan) vtp domain infn-pv (vlan) vtp pruning (vlan) exit e quindi si passa alla configurazione dei trunk, che deve essere effettuata: per le porte a cui sono collegati gli Access Point wireless (che sono configurati per accedere a più VLAN in trunk); per le porte di uplink, in modo che l informazione relativa ai trunk si propaghi su tutta la LAN relativa Nel procedere alla configurazione delle porte degli switch, conviene iniziare dalla porta pi periferica (porta di collegamento dell Access Point), e procedere verso il centro stella, perchè ogni volta che viene definito un trunk su una porta, si perde temporaneamente la connessione su di essa Così ad esempio, facendo riferimento allo schema mostrato in Fig 1, conviene procedere nel seguente ordine: Definizione delle VLAN sullo switch ge-switch-22; 1
Definizione del trunk sulla sua interfaccia f0/13; Definizione delle VLAN sullo switch ge-switch-12; Definizione del trunk sulla sua interfaccia g0/2; Definizione delle VLAN sullo switch ge-switch-16; Definizione delle VLAN sullo switch ge-switch-02; Definizione del trunk sulla sua interfaccia g0/2; Definizione delle VLAN sullo switch cs-switch; Definizione del trunk sulla sua interfaccia g2/2; Definizione del trunk sulla sua interfaccia g4/38; 21 Configurazione dello switch dal lato server (ge-switch-03) Configurazione dell interfaccia f0/1, a cui è collegato il server radius, e dell interfaccia sf g0/2, che rappresenta l uplink verso lo switch di centro stella (ge-switch-20): interface FastEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk interface GigabitEthernet0/2 switchport trunk encapsulation dot1q switchport mode trunk Risultato del comando sho vtp status: ge-switch-03sho vtp status VTP Version : 2 Configuration Revision : 0 Maximum VLANs supported locally : 254 Number of existing VLANs : 7 VTP Operating Mode : Server VTP Domain Name : VTP Pruning Mode : Disabled VTP V2 Mode : Disabled VTP Traps Generation : Disabled MD5 digest : 0x69 0x2A 0x63 0xE9 0xFB 0xDD 0x72 0xF5 Risultato del comando sho int f0/1 switchport: 2
wap105 f0/13 Teorici 22 12 16 02 Capannone eth0 eth1 g0/38 g1/x g2/x g3/x g4/x WLAN server Sala Macchine cs switch Figura 1: Schema parziale della LAN, in cui viene mostrato solo il ramo relativo all area teorici 3
ge-switch-03sho int f0/1 switchport Name: Fa0/1 Switchport: Enabled Administrative mode: trunk Operational Mode: trunk Administrative Trunking Encapsulation: dot1q Operational Trunking Encapsulation: dot1q Negotiation of Trunking: Disabled Access Mode VLAN: 0 ((Inactive)) Trunking Native Mode VLAN: 1 (default) Trunking VLANs Enabled: 1,100,200,1002-1005 Trunking VLANs Active: 1,100,200 Pruning VLANs Enabled: 2-1001 Priority for untagged frames: 0 Override vlan tag priority: FALSE Voice VLAN: none Appliance trust: none Self Loopback: No Risultato del comando sho int g0/2 switchport: ge-switch-03sho int g0/2 switchport Name: Gi0/2 Switchport: Enabled Administrative mode: trunk Operational Mode: trunk Administrative Trunking Encapsulation: dot1q Operational Trunking Encapsulation: dot1q Negotiation of Trunking: Disabled Access Mode VLAN: 0 ((Inactive)) Trunking Native Mode VLAN: 1 (default) Trunking VLANs Enabled: ALL Trunking VLANs Active: 1,100,200 Pruning VLANs Enabled: 2-1001 Priority for untagged frames: 0 Override vlan tag priority: FALSE Voice VLAN: none Appliance trust: none Self Loopback: No 22 Configurazione dello switch di centro stella (cs-switch) In questo caso è sufficiente 23 Configurazione dello switch dal lato Wireless Access Point (geswitch-23) 3 Configurazione del server Linux La definizione delle interfacce virtuali, associate alle VLAN, può essere effettuata sfruttando in parte i comandi contenuti nella procedura di startup della rete (script file /etc/initd/network) In essa è presente, infatti la parte relativa al caricamento del modulo 8021q che consente la gestione delle VLAN secondo lo standard 8021q, e consente quindi di utilizzare un server destinato a servire più VLAN, fisicamente riunite su un unica porta di uno switch Catalyst, mediante definizione di un trunk Per fare in modo che la procedura provveda al caricamento del modulo, occorre definire i seguenti parametri nel file di configurazione: /etc/sysconfig/network: 4
Attiva le interfacce specifiche sulle VLAN necessarie per la rete wireless: VLAN 100 = INFN-dot1x VLAN 200 = INFN-Web VLAN=yes VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD Il secondo parametro (VLAN_NAME_TYPE serve a definire il nome che verrà assegnato alle nuove interfacce associate alle VLAN In particolare, con il valore mostrato, ogni nuova interfaccia creata verrà nominata vlanxxxx dove xxxx rappresenta il numero che identifica la VLAN (VLAN ID) Ad esempio, per la VLAN con ID = 100, verrà creata l interfaccia di nome vlan100 Fatto questo, occorre modificare leggermente lo script (farne una copia di backup, per evitare la sostituzione con la versione standard, in caso di upgrade!) 1 aggiungendo le linee seguenti, che hanno lo scopo di eseguire lo script di creazione o cancellazione delle interfacce associate alle VLAN: /etc/rcd/initd/network: Attiva le VLAN /etc/sysconfig/network-scripts/vlan start touch /var/lock/subsys/network ;; stop) Stop delle VLAN /etc/sysconfig/network-scripts/vlan stop rm -f /var/lock/subsys/network ;; status) dove lo script /etc/sysconfig/network-scripts/vlan è del tipo:!/bin/sh if [! -f /etc/sysconfig/network ]; then exit 0 fi /etc/sysconfig/network if [ $VLAN!= "yes" ]; then exit 0 fi case "$1" in start) echo "Starting VLANs" sleep 1 /sbin/vconfig add eth1 100 ifconfig vlan100 19216810011 up /sbin/vconfig add eth1 200 1 Lo script file modificato viene rinominato networkvlan, mentre quello originale viene rinominato networkrpmold, quindi si crea il link network -> networkvlan 5
;; stop) ;; ifconfig vlan200 19216820011 up /sbin/vconfig rem vlan100 /sbin/vconfig rem vlan200 esac In questo modo, dopo l avvio della rete, sul server si trovano definite le seguenti interfacce di rete (omettendo quelle meno signifiatve, come ad esempio eth0 (lato LAN) e lo (interfaccia di lookup): % ifconfig eth1 Link encap:ethernet HWaddr 00:0D:61:32:9E:DD inet addr:192168011 Bcast:1921680255 Mask:2552552550 inet6 addr: fe80::20d:61ff:fe32:9edd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:518441 errors:0 dropped:0 overruns:0 frame:0 TX packets:23176 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:39632771 (377 MiB) TX bytes:25173651 (240 MiB) Base address:0xb800 Memory:fe400000-fe420000 vlan100 Link encap:ethernet HWaddr 00:0D:61:32:9E:DD inet addr:19216810011 Bcast:192168100255 Mask:2552552550 inet6 addr: fe80::20d:61ff:fe32:9edd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:575 errors:0 dropped:0 overruns:0 frame:0 TX packets:418 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:50375 (491 KiB) TX bytes:111416 (1088 KiB) vlan200 Link encap:ethernet HWaddr 00:0D:61:32:9E:DD inet addr:19216820011 Bcast:192168200255 Mask:2552552550 inet6 addr: fe80::20d:61ff:fe32:9edd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16814 errors:0 dropped:0 overruns:0 frame:0 TX packets:21863 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1849041 (17 MiB) TX bytes:24800617 (236 MiB) Aggiunge l interfaccia eth1100 associata alla VLAN 100 (INFN-dot1x): [root@radius ~] vconfig add eth1 100 Aggiunge l interfaccia eth1200 associata alla VLAN 200 (INFN-Web): [root@radius ~] vconfig add eth1 200 4 Configurazione di iptables Il programma gateway (attivato da NoCat provvede per conto suo ad aggiungere su richiesta le definizioni di iptables relative ad ogni client che completa l associazione con l Access Point Tali comandi, sono contenuti nei vari script file presenti in /usr/local/nocat/gw/bin Tuttavia, vi sono alcune regole che devono essere definite inizialmente, ad ogni riavvio di iptables, e devono pertanto venire incluse nel file di configurazione /etc/sysconfig/iptables 6
41 Regole relative alla VLAN 100 Per quanto riguarda la VLAN 100 (relativa alla rete con SSID INFN-dot1x, è necessario che il client, una volta associato all Access Point, possa comunicare con l esterno A tal fine, occorre aggiungere le seguenti definizioni al file di configurazione /etc/sysconfig/iptables: Abilita tutto il traffico proveniente dalla vlan100 -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p tcp -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p udp -m udp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p tcp -m tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p udp -m udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p tcp -m tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p udp -m udp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p tcp -m tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p udp -m udp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p tcp -m tcp --dport 993 -j ACCEPT -A RH-Firewall-1-INPUT -i vlan100 -s 1921681000/24 -p udp -m udp --dport 993 -j ACCEPT È importante che venga abilitata la porta 53, releativa al protocollo DNS, in quanto il client deve essere in grado di interrogare il nameserver (definito tramite DHCP) Occorre inoltre che venga definita la table nat necessaria per la definizione delle regole di masquerade ralative ad ogni client Tale definizione deve essere necessariamente inserita nella prima parte del file di configurazione di iptables: Definizione del NAT per la rete 1921681000 (vlan100 - INFN-dot1x) *nat :PREROUTING ACCEPT [864:122349] :POSTROUTING ACCEPT [10:733] :OUTPUT ACCEPT [10:733] :NoCat_Capture - [0:0] :NoCat_NAT - [0:0] -A POSTROUTING -s 1921681000/2552552550 -o eth0 -j MASQUERADE COMMIT 42 Regole relative alla VLAN 200 7