VLAN Linux Trunking
Oggi ho deciso di sperimentare linux come vlan router, collegando una scheda di rete ad una trunking port di un Catalyst 2950. L’esperimento ha dato ottimi frutti, permettendomi di pensare a modi interessanti per implementare sicurezza L2 nella mia rete casalinga.
Linux Kernel & Software
Dal punto di vista di linux, importante aver caricato il modulo 8021q mediante il solito comando
modprobe 8021q
In questo modo, la nostra interfaccia sar? in grado di trattare i 4 bytes in eccesso dell’incapsulazione IEEE 802.1Q. Il secondo passo consiste nell’installare la suite iproute2 e vconfig. La prima l’interfaccia “sostitutiva” di ifconfig allo stack ip di linux, mentre il secondo un programma che permette di gestire le vlan configurate.
Per permettere il routing, inoltre necessario permettere il packet forwarding con il comando
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
Linux Configuration
Nel mio caso, la eth0 connessa alla trunk port del Catalyst, su di lei andranno configurate le subinterfaces. La eth0 non dovr? avere alcun ip. Da essa verranno derivate le subinterfaces che gestiranno le vlans. Ipotizziamo di creare le vlan 2,3,4 (la vlan 1 presente di default in ogni switch).
[root@quasher ashura]# vconfig add eth0 2
Added VLAN with VID == 2 to IF -:eth0:-
[root@quasher ashura]# vconfig add eth0 3
Added VLAN with VID == 3 to IF -:eth0:-
[root@quasher ashura]# vconfig add eth0 4
Added VLAN with VID == 4 to IF -:eth0:-
A questo punto avremo la possibilit? di vedere le nuove interfacce:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:1f:c6:00:00:fe brd ff:ff:ff:ff:ff:ff
4: eth0.2@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN link/ether 00:1f:c6:00:00:fe brd ff:ff:ff:ff:ff:ff
5: eth0.3@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN link/ether 00:1f:c6:00:00:fe brd ff:ff:ff:ff:ff:ff
6: eth0.4@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN link/ether 00:1f:c6:00:00:fe brd ff:ff:ff:ff:ff:ff
Tutte quante le interfacce virtuali sono DOWN, attiviamole e diamo loro degli ip:
[root@quasher ashura]# ip addr add 192.168.4.1/29 dev eth0.2
[root@quasher ashura]# ip addr add 192.168.4.9/29 dev eth0.3
[root@quasher ashura]# ip addr add 192.168.4.17/29 dev eth0.4
[root@quasher ashura]# ip link set eth0.2 up
[root@quasher ashura]# ip link set eth0.3 up
[root@quasher ashura]# ip link set eth0.4 up
Adesso abbiamo le nostre interfacce up e con ip delle relative subnets.
Cisco Catalyst configuration
Sullo switch sufficiente mettere la porta connessa a linux in trunking, definire le vlans ed eventuale security, configurare le access ports in portfast ed appartenenti alle relative vlans.
Non ho il supporto a ISL, ma non credo che sia implementato in linux, quindi converrebbe sempre utilizzare
encapsulation dot1q
nella trunking interface dello switch.



Nice blog. Please add the language translator.