English · Ελληνικά
Ένα φυσικό switch, πολλά απομονωμένα δίκτυα. Φτιάξε VLAN, ανάθεσε access ports, κουβάλησε πολλά VLAN πάνω από ένα μοναδικό 802.1Q trunk, και δρομολόγησε ανάμεσά τους — πρώτα με router-on-a-stick, μετά με έναν L3 switch. Μαζί με τις παγίδες του native VLAN που την πατάνε όλοι.
Ένα VLAN μετατρέπει ένα φυσικό switch σε πολλά λογικά switch. Οι θύρες στο VLAN 10 δεν μπορούν να μιλήσουν με τις θύρες στο VLAN 20 — διαφορετικά broadcast domains, τόσο απομονωμένα σαν να ήταν ξεχωριστές συσκευές. Έτσι βάζεις προσωπικό, guests, VoIP και κάμερες στο ίδιο hardware χωρίς να ακουμπάει το ένα το άλλο.
Δύο ρόλοι θυρών κάνουν τη δουλειά. Ένα access port ανήκει σε ακριβώς ένα VLAN και βλέπει μια τελική συσκευή — έναν υπολογιστή, έναν εκτυπωτή, ένα AP — που δεν ξέρει τίποτα για VLAN. Ένα trunk port κουβαλάει πολλά VLAN ανάμεσα σε switch (ή προς έναν router), βάζοντας σε κάθε frame το VLAN ID του με 802.1Q. Αυτό το tutorial στήνει και τα δύο, και μετά δρομολογεί ανάμεσα στα VLAN με δύο διαφορετικούς τρόπους. Αν έχεις κάνει VLAN σε MikroTik, οι έννοιες είναι ίδιες — αλλάζει μόνο το syntax, και η ενότητα 07 τις αντιστοιχίζει μία προς μία.
01
Ένα VLAN πρέπει να υπάρχει στο VLAN database του switch πριν μπορέσεις να βάλεις θύρα μέσα του. Φτιάξ' το, ονόμασέ το, τέλος. Η ονομασία είναι προαιρετική, αλλά θα μετανιώσεις αν την παραλείψεις.
SW1# configure terminal SW1(config)# vlan 10 SW1(config-vlan)# name STAFF SW1(config-vlan)# exit SW1(config)# vlan 20 SW1(config-vlan)# name GUEST SW1(config-vlan)# exit SW1(config)# vlan 99 SW1(config-vlan)# name NATIVE-MGMT SW1(config-vlan)# end # Επιβεβαίωσε ότι υπάρχουν (όλα ασφαλή, read-only) SW1# show vlan brief VLAN Name Status Ports 1 default active Gi0/3, Gi0/4, Gi0/5 ... 10 STAFF active 20 GUEST active 99 NATIVE-MGMT active # Τα νέα VLAN δεν έχουν ακόμα θύρες — κάθε θύρα ζει ακόμα στο VLAN 1 (default).
Κάθε θύρα ξεκινάει στο VLAN 1, και by default το VLAN 1 είναι επίσης το native και το management VLAN. Βολικό και ανασφαλές — σημαίνει ότι ένας επιτιθέμενος σε μια default θύρα μοιράζεται broadcast domain με την κίνηση διαχείρισής σου. Καλή πρακτική: μη χρησιμοποιείς το VLAN 1 για τίποτα ουσιαστικό. Βάλε ένα αποκλειστικό management VLAN (εμείς το 99) και μετακίνησε το native VLAN εκτός του 1 (ενότητα 03).
02
Ένα access port κουβαλάει ακριβώς ένα VLAN, untagged, προς μια τελική συσκευή. Εδώ βάζεις υπολογιστές, εκτυπωτές και access points. Η λέξη-κλειδί interface range ρυθμίζει πολλές θύρες με τη μία.
# Μία μεμονωμένη θύρα στο VLAN 10 SW1(config)# interface GigabitEthernet0/1 SW1(config-if)# switchport mode access SW1(config-if)# switchport access vlan 10 SW1(config-if)# exit # Δώδεκα θύρες στο VLAN 20 με μία κίνηση, με το "interface range" SW1(config)# interface range GigabitEthernet0/13 - 24 SW1(config-if-range)# switchport mode access SW1(config-if-range)# switchport access vlan 20 SW1(config-if-range)# end # Επαλήθευση: κάθε θύρα δείχνει τώρα το VLAN της SW1# show interfaces status Port Name Status Vlan Duplex Speed Type Gi0/1 connected 10 a-full a-1000 ... Gi0/13 notconnect 20 auto auto ...
Οι θύρες Cisco είναι by default σε dynamic auto (DTP), δηλαδή μια θύρα μπορεί να διαπραγματευτεί μόνη της και να γίνει trunk αν το ζητήσει ο γείτονας — γνωστό attack vector (VLAN hopping). Κλείδωνε πάντα τις θύρες των τελικών χρηστών με switchport mode access, και για επιπλέον ασφάλεια πρόσθεσε switchport nonegotiate ώστε η θύρα να μη στέλνει καθόλου DTP frames. Ένα access port δεν πρέπει ποτέ να γίνεται trunk κατά λάθος.
03
Ένα trunk κουβαλάει πολλά VLAN πάνω από ένα link, βάζοντας σε κάθε frame το VLAN ID του. Αυτό είναι το link ανάμεσα σε δύο switch, ή ανάμεσα σε ένα switch και έναν router. Ένα untagged VLAN — το native VLAN — ταξιδεύει χωρίς tag.
SW1(config)# interface GigabitEthernet0/24 # Σε switch που υποστηρίζουν ISL, όρισε πρώτα το encapsulation. # Σε 2960/2960-X (μόνο dot1q) η εντολή αυτή δεν υπάρχει — απλώς παράλειψέ την. SW1(config-if)# switchport trunk encapsulation dot1q SW1(config-if)# switchport mode trunk SW1(config-if)# switchport trunk native vlan 99 SW1(config-if)# switchport trunk allowed vlan 10,20,99 SW1(config-if)# switchport nonegotiate SW1(config-if)# end # Επαλήθευσε το trunk: allowed VLAN και native VLAN SW1# show interfaces trunk Port Mode Encapsulation Status Native vlan Gi0/24 on 802.1q trunking 99 Port Vlans allowed on trunk Gi0/24 10,20,99
Και τα δύο ακρα ενός trunk πρέπει να συμφωνούν στο native VLAN. Αν το SW1 έχει native 99 και το SW2 native 1, τα untagged frames καταλήγουν σε λάθος VLAN και το CDP πετάει %CDP-4-NATIVE_VLAN_MISMATCH κάθε 60 δευτερόλεπτα. Είναι πραγματικό πρόβλημα ασφάλειας και συνδεσιμότητας, όχι απλός θόρυβος. Βάλε switchport trunk native vlan 99 ολόιδιο και στις δύο πλευρές. Το ίδιο: αν ένα VLAN δεν είναι στη λίστα allowed, η κίνησή του πέφτει σιωπηλά πάνω στο trunk — η κλασική αιτία του «το VLAN 20 δεν φτάνει στο άλλο switch».
04
Τα VLAN είναι απομονωμένα εκ σχεδιασμού — το VLAN 10 δεν φτάνει το VLAN 20 χωρίς router. Ο φθηνότερος τρόπος να δρομολογήσεις ανάμεσά τους είναι ένα interface router, σε trunk, που κουβαλάει ένα subinterface ανά VLAN. Κάθε subinterface είναι το default gateway αυτού του VLAN.
# Η θύρα του switch που βλέπει τον router πρέπει να είναι trunk (δες ενότητα 03). # Στον ROUTER, κόψε το φυσικό interface σε tagged subinterfaces: R1(config)# interface GigabitEthernet0/0 R1(config-if)# no shutdown # ο φυσικός γονέας δεν θέλει IP, μόνο "up" R1(config-if)# exit R1(config)# interface GigabitEthernet0/0.10 R1(config-subif)# encapsulation dot1q 10 R1(config-subif)# ip address 192.168.10.1 255.255.255.0 R1(config-subif)# exit R1(config)# interface GigabitEthernet0/0.20 R1(config-subif)# encapsulation dot1q 20 R1(config-subif)# ip address 192.168.20.1 255.255.255.0 R1(config-subif)# exit # Το native VLAN χρησιμοποιεί τη λέξη "native" ώστε τα frames του να μένουν untagged R1(config)# interface GigabitEthernet0/0.99 R1(config-subif)# encapsulation dot1q 99 native R1(config-subif)# ip address 192.168.99.1 255.255.255.0 R1(config-subif)# end
Τώρα βάλε σε κάθε host default gateway το IP του subinterface του (π.χ. οι hosts του VLAN 10 → 192.168.10.1) και το VLAN 10 φτάνει το VLAN 20 μέσω του router. Τέλειο για μικρά sites· σε κλίμακα, το μοναδικό link γίνεται το bottleneck.
05
Ένα layer-3 switch δρομολογεί ανάμεσα στα VLAN σε hardware, σε wire speed, χωρίς bottleneck από trunk. Αντί για subinterfaces σε router, φτιάχνεις ένα Switched Virtual Interface (SVI) ανά VLAN. Έτσι το κάνουν τα πραγματικά sites.
# 1. Άναψε το IP routing — by default κλειστό σε ένα switch L3-SW(config)# ip routing # 2. Ένα virtual interface ανά VLAN — αυτό το IP είναι το gateway του VLAN L3-SW(config)# interface vlan 10 L3-SW(config-if)# ip address 192.168.10.1 255.255.255.0 L3-SW(config-if)# no shutdown L3-SW(config-if)# exit L3-SW(config)# interface vlan 20 L3-SW(config-if)# ip address 192.168.20.1 255.255.255.0 L3-SW(config-if)# no shutdown L3-SW(config-if)# end # Επαλήθευσε ότι το routing ανάμεσα στα VLAN είναι πλέον local και ενεργό L3-SW# show ip route C 192.168.10.0/24 is directly connected, Vlan10 C 192.168.20.0/24 is directly connected, Vlan20
Το SVI ενός VLAN μένει down/down μέχρι τουλάχιστον ένα access port σε αυτό το VLAN να είναι connected και up (ή το VLAN να επιτρέπεται πάνω σε ένα ενεργό trunk). Ρύθμισε τα πάντα τέλεια και το SVI μπορεί ακόμα να δείχνει down, απλώς επειδή δεν έχει μπει τίποτα στο VLAN 10 ακόμα. Το show ip interface brief | include Vlan σου λέει την αλήθεια. Και μην ξεχάσεις το ip routing — χωρίς αυτό, το L3 switch έχει SVIs αλλά δεν δρομολογεί ανάμεσά τους.
06
Τέσσερις read-only εντολές απαντούν σχεδόν σε κάθε πρόβλημα VLAN: σε ποιο VLAN είναι μια θύρα, τι κουβαλάει το trunk, είναι συνεπές το native VLAN, και έχει IP το SVI.
| Εντολη | Απανταει |
|---|---|
| show vlan brief | Ποια VLAN υπάρχουν και ποια access ports είναι στο καθένα. |
| show interfaces trunk | Ποιες θύρες είναι trunk, το native VLAN τους, και η λίστα allowed-VLAN. |
| show interfaces status | Ανά θύρα: connected/notconnect, access VLAN, speed/duplex. |
| show interfaces gi0/1 switchport | Πλήρες switchport detail για μία θύρα — mode, access VLAN, ρυθμίσεις trunk. |
| show ip interface brief | IPs των SVI και κατάσταση up/down (L3 switch / router). |
| show ip route | Επιβεβαιώνει ότι τα inter-VLAN routes είναι directly connected και ενεργά. |
# 1. Είναι όντως και οι δύο hosts στο VLAN που νομίζεις; SW1# show interfaces status | include connected # 2. Κουβαλάει το trunk ανάμεσα στα switch ΚΑΙ ΤΑ ΔΥΟ VLAN; SW1# show interfaces trunk # Αν λείπει το VLAN 20 από το "allowed", πρόσθεσέ το: SW1(config-if)# switchport trunk allowed vlan add 20 # 3. Υπάρχει router/SVI με gateway IP σε κάθε subnet; L3-SW# show ip interface brief | include Vlan # 4. Χρησιμοποιεί κάθε host αυτό το gateway; (ping στο gateway, μετά απέναντι) SW1# ping 192.168.20.1
07
Αν έρχεσαι από RouterOS, το μοντέλο είναι ίδιο — ένα bridge με VLAN filtering είναι switch, το tagged/untagged είναι trunk/access. Αλλάζει μόνο το λεξιλόγιο.
| MikroTik / RouterOS | Cisco IOS |
|---|---|
| Bridge με vlan-filtering=yes | Το ίδιο το switch (VLAN-aware by default) |
| Bridge port pvid=10, untagged | switchport mode access ; switchport access vlan 10 |
| Bridge VLAN tagged=ether1,ether2 | switchport mode trunk ; switchport trunk allowed vlan … |
| Frame tagging = 802.1Q | 802.1Q — ίδιο wire format |
| /interface vlan (VLAN interface + IP) | interface vlan 10 (SVI) ή subinterface router |
| PVID στη θύρα εισόδου | Access VLAN / native VLAN στο trunk |
Το MikroTik σε βάζει να χτίσεις το bridge και να ενεργοποιήσεις ρητά το VLAN filtering — η συμπεριφορά switch είναι opt-in. Στη Cisco, ένα Catalyst είναι VLAN-aware switch από το κουτί· ρυθμίζεις ρόλους σε θύρες που ήδη κάνουν switching. Κανένα δεν είναι δυσκολότερο — αλλά η Cisco κρύβει λιγότερα, γι' αυτό το native VLAN και το DTP την πατάνε οι πρωτάρηδες. Όταν μεταφέρουμε ένα site από MikroTik σε Cisco (ή τρέχουμε και τα δύο), αυτόν τον πίνακα δίνουμε cheat sheet στην ομάδα του πελάτη.
Συμπερασματα
vlan 10 ; name STAFF), μετά ανάθεσε θύρες. Ονόμαζε τα πάντα — το show vlan brief γίνεται αυτο-τεκμηριωμένο.switchport mode access και nonegotiate ώστε να μη γίνονται ποτέ trunk με διαπραγμάτευση.encapsulation dot1q) για μικρά sites, ή ένα L3 switch με SVIs και ip routing για ο,τιδήποτε σοβαρό.interface vlan 10 δείχνει down/down μέχρι να συνδεθεί κάτι στο VLAN 10.Σχεδιάζω διατάξεις VLAN που κρατούν προσωπικό, guests, VoIP και κάμερες πραγματικά απομονωμένα μεταξύ τους — σε Cisco, MikroTik, ή συνδυασμό των δύο — και τεκμηριώνω κάθε θύρα και trunk ώστε η ομάδα σου να τα βγάζει πέρα χωρίς να με παίρνει πρώτα τηλέφωνο.
Κλεισε μια Discovery Call →