English · Ελληνικά
Η διεύθυνση που τρομάζει τον κόσμο επειδή είναι μακριά και δεκαεξαδική — αλλά το IPv6 είναι γνήσια απλούστερο από το IPv4 μόλις κλειδώσει το λεξιλόγιο. Τύποι διευθύνσεων, link-local, πώς οι hosts παίρνουν διευθύνσεις χωρίς DHCP, ενεργοποίηση routing, OSPFv3, και η μεγάλη αλλαγή νοοτροπίας: χωρίς NAT, οπότε το firewall κάνει την απόκρυψη.
Το IPv6 φαίνεται εκφοβιστικό — 128 bits, hex, δίποντα — αλλά αφαιρεί περισσότερη πολυπλοκότητα απ' όση προσθέτει. Δεν υπάρχει αριθμητική subnet-mask (κάθε LAN είναι /64, τελεία), καμία σπανιότητα διευθύνσεων, κανένα broadcast storm (το broadcast έφυγε, αντικαταστάθηκε από στοχευμένο multicast), και — το μεγάλο — κανένα NAT. Κάθε συσκευή μπορεί να έχει μια globally routable διεύθυνση, που σημαίνει ότι η end-to-end συνδεσιμότητα επέστρεψε και το δίκτυο είναι απλούστερο, αλλά το μοντέλο ασφάλειας αλλάζει: το NAT δεν ήταν ποτέ firewall, και στο IPv6 δεν μπορείς να προσποιείσαι ότι ήταν.
Αυτό το post είναι η ξενάγηση «νιώσε άνετα» για κάποιον που ξέρει καλά IPv4 σε Cisco. Θα αποκωδικοποιήσουμε τους τύπους διευθύνσεων (global, link-local, ULA), θα δώσουμε σε ένα interface διευθύνσεις, θα αφήσουμε τους hosts να αυτο-ρυθμιστούν με SLAAC ή να πάρουν ανάθεση DHCPv6, θα ανάψουμε το routing, και θα στήσουμε OSPFv3 — κάθε κομμάτι αντιστοιχισμένο στην εντολή IPv4 που ήδη ξέρεις. Και θα είμαστε ειλικρινείς για το πού πραγματικά έχει σημασία το IPv6 για ένα SMB έναντι του πού το dual-stack είναι η ρεαλιστική απάντηση. Πρόσεξε ότι η διευθυνσιοδότηση εδώ χρησιμοποιεί το 2001:db8::/32 — το εύρος τεκμηρίωσης, όπως το 192.0.2.0/24 για v4.
:: συμπτύσσει διαδοχικές ομάδες μηδενικών)01
Ένα interface IPv6 έχει πολλές διευθύνσεις ταυτόχρονα, η καθεμία με μια δουλειά. Μάθε τα τέσσερα prefixes και διαβάζεις κάθε διεύθυνση με μια ματιά.
| Τυπος | Ευρος | Ρολος |
|---|---|---|
| Global Unicast (GUA) | 2000::/3 | Routable στο internet — το δημόσιο IP. Σαν μια δημόσια διεύθυνση v4, αλλά κάθε συσκευή παίρνει μία. |
| Link-Local | fe80::/10 | Δημιουργείται αυτόματα σε κάθε interface v6, έγκυρη μόνο σε αυτό το link. Εδώ ζουν τα πρωτόκολλα δρομολόγησης και το NDP. |
| Unique Local (ULA) | fd00::/8 | Ιδιωτική, όχι routable στο internet — το ισοδύναμο v6 του RFC1918 (10.x/192.168.x). |
| Multicast | ff00::/8 | Αντικαθιστά το broadcast. π.χ. ff02::1 = όλοι οι κόμβοι, ff02::2 = όλοι οι router στο link. |
Τη στιγμή που ενεργοποιείται το IPv6 σε ένα interface, παράγει αυτόματα μια διεύθυνση link-local (fe80::…) — δεν τη ρυθμίζεις, και δεν φεύγει ποτέ από το link. Αυτό δεν είναι περιέργεια: οι γείτονες OSPFv3 σχηματίζονται πάνω από link-local, το NDP (η αντικατάσταση του ARP) το χρησιμοποιεί, και τα static routes προς έναν απευθείας συνδεδεμένο next hop γράφονται συχνά με τη link-local διεύθυνση του γείτονα συν το interface εξόδου. Το να νιώσεις άνετα ότι «κάθε interface v6 έχει και global και link-local διεύθυνση, και κάνουν διαφορετικές δουλειές» είναι το 80% της νοητικής προσαρμογής από το IPv4.
02
Το routing IPv6 είναι κλειστό by default — μία global εντολή το ανάβει. Μετά η διευθυνσιοδότηση ενός interface είναι ακριβώς σαν IPv4, με μερικές ευκολίες μόνο-v6.
# Η εντολή — χωρίς αυτήν, ο router δεν θα δρομολογεί καθόλου v6 R1(config)# ipv6 unicast-routing R1(config)# interface GigabitEthernet0/1 # Χειροκίνητη global διεύθυνση (μέρος host = ::1) R1(config-if)# ipv6 address 2001:db8:acad:10::1/64 # Ή άσε τον router να διαλέξει το μέρος host από το MAC του (EUI-64): R1(config-if)# ipv6 address 2001:db8:acad:10::/64 eui-64 # Το link-local γίνεται αυτόματα, αλλά μπορείς να καρφώσεις μια φιλική: R1(config-if)# ipv6 address fe80::1 link-local R1(config-if)# no shutdown R1(config-if)# end R1# show ipv6 interface brief GigabitEthernet0/1 [up/up] FE80::1 ← link-local 2001:DB8:ACAD:10::1 ← global
ipv6 unicast-routing
Μπορείς να διευθυνσιοδοτήσεις κάθε interface τέλεια, να δεις το link-local να σηκώνεται, να κάνεις ping απευθείας συνδεδεμένους γείτονες — και να ανακαλύψεις ότι ο router δεν προωθεί v6 ανάμεσα σε subnets ή δεν τρέχει πρωτόκολλο δρομολόγησης, επειδή το ipv6 unicast-routing είναι κλειστό. Είναι το ακριβές ανάλογο της ανάγκης για ip routing σε ένα switch (από το post των VLAN), και είναι η αιτία νούμερο-ένα του «το lab IPv6 μου δεν δρομολογεί». Άναψέ το πρώτο, global, πριν από οτιδήποτε άλλο.
03
Οι hosts IPv6 μπορούν να διευθυνσιοδοτηθούν μόνοι τους χωρίς καθόλου DHCP — ο router απλώς διαφημίζει το prefix και εκείνοι χτίζουν τη δική τους διεύθυνση. Ή χρησιμοποιείς DHCPv6 για περισσότερο έλεγχο. Τα περισσότερα δίκτυα χρησιμοποιούν συνδυασμό.
# Με global διεύθυνση στο interface και unicast-routing ανοιχτό, ο router # ήδη στέλνει Router Advertisements (RA) — οι hosts ακούν το prefix /64 και # χτίζουν τη δική τους διεύθυνση αυτόματα. Αυτό είναι SLAAC· τίποτα άλλο δεν χρειάζεται. # Stateless DHCPv6: SLAAC για τη διεύθυνση, DHCPv6 μόνο για DNS/domain R1(config)# ipv6 dhcp pool STATELESS R1(config-dhcpv6)# dns-server 2001:4860:4860::8888 R1(config-dhcpv6)# domain-name lab.lan R1(config-dhcpv6)# exit R1(config)# interface GigabitEthernet0/1 R1(config-if)# ipv6 nd other-config-flag # «πάρε extra από το DHCPv6» R1(config-if)# ipv6 dhcp server STATELESS R1(config-if)# end
| Μεθοδος | Διευθυνση απο | DNS/extra απο |
|---|---|---|
| SLAAC (καθαρό) | Ο host χτίζει μόνος του από το prefix του RA | RDNSS μέσα στο RA (μοντέρνο) ή τίποτα |
| Stateless DHCPv6 | SLAAC (ο host χτίζει μόνος του) | DHCPv6 (other-config-flag) |
| Stateful DHCPv6 | Το DHCPv6 την αναθέτει (managed-config-flag) | DHCPv6 |
04
Δεν υπάρχει ARP στο IPv6. Το Neighbor Discovery Protocol κάνει την ίδια δουλειά — αντιστοιχίζει διευθύνσεις σε MAC — συν router discovery και αυτο-ρύθμιση διεύθυνσης, όλα πάνω από multicast.
R1# show ipv6 neighbors IPv6 Address Age Link-layer Addr State Interface 2001:DB8:ACAD:10::10 0 0012.7f3a.1b2c REACH Gi0/1 FE80::212:7FFF:FE3A:1B2C 3 0012.7f3a.1b2c STALE Gi0/1 # Κάνε ping στο multicast "all-nodes" για να ανακαλύψεις ποιος είναι στο link: R1# ping ff02::1 # απαντάει κάθε κόμβος IPv6 R1# ping ff02::2 # απαντάει κάθε router R1# show ipv6 interface GigabitEthernet0/1 | include joined|link-local # Δείχνει τις ομάδες multicast που έχει μπει το interface — NDP σε δράση.
05
Ίδιες έννοιες με το IPv4, με πρόθεμα ipv6. Ένα default route προς τον ISP, και OSPFv3 για δυναμική δρομολόγηση — ενεργοποιημένο ανά interface αντί με δηλώσεις network.
# Default route προς τον ISP (σημείωση: συχνά μέσω ενός next hop LINK-LOCAL # συν το interface εξόδου, αφού αυτό λύνει το NDP) R1(config)# ipv6 route ::/0 GigabitEthernet0/0 FE80::1 # OSPFv3 — ενεργοποιείται ΣΤΟ INTERFACE, καμία δήλωση "network" R1(config)# ipv6 router ospf 1 R1(config-rtr)# router-id 1.1.1.1 # ακόμα ένα ID 32-bit σε στυλ v4 R1(config-rtr)# exit R1(config)# interface GigabitEthernet0/1 R1(config-if)# ipv6 ospf 1 area 0 R1(config-if)# end R1# show ipv6 route ospf R1# show ipv6 ospf neighbor # γείτονες αναγνωρίζονται από το link-local τους
Το OSPFv3 κρατάει το OSPF που έμαθες στο post δρομολόγησης — areas, router-ids (γραμμένα ακόμα ως 32-bit dotted quads, παράξενα), DR/BDR, την ίδια λίστα troubleshooting — αλλά ενεργοποιείται ανά interface με ipv6 ospf 1 area 0 αντί για δηλώσεις network, και οι γείτονες αναγνωρίζονται με διεύθυνση link-local. Αυτό το μοντέλο ανά-interface είναι στην πραγματικότητα πιο καθαρό: ενεργοποιείς το OSPF ακριβώς εκεί που θέλεις, χωρίς ταίριασμα wildcard-mask να κάνεις λάθος. Τα περισσότερα ένστικτα δρομολόγησης IPv4 σου μεταφέρονται κατευθείαν.
06
Η πιο σημαντική λειτουργική διαφορά. Στο IPv4, το NAT έκρυβε κατά λάθος τους hosts σου πίσω από μία διεύθυνση. Στο IPv6 κάθε host είναι globally addressable — οπότε το firewall, όχι το NAT, πρέπει να κάνει την προστασία. Ρητά.
Το NAT δεν ήταν ποτέ έλεγχος ασφάλειας — απλώς έτυχε να ρίχνει αυθόρμητη inbound κίνηση επειδή δεν υπήρχε μετάφραση να ταιριάξει. Αφαίρεσε το NAT και, χωρίς ρητό firewall, κάθε εσωτερικός host με global διεύθυνση είναι προσβάσιμος από το internet. Αυτό δεν είναι ελάττωμα του IPv6· είναι το IPv6 που αφαιρεί ένα δεκανίκι. Η διόρθωση είναι ένα stateful firewall που κάνει σκόπιμα αυτό που το NAT έκανε κατά λάθος: επίτρεψε established/επιστρεφόμενη κίνηση, απόρριψε αυθόρμητη inbound. Στο IOS αυτό είναι ένα ACL v6 (ipv6 access-list) με χειρισμό reflexive/established, ή καλύτερα, το Zone-Based Firewall που κάνει inspect και v6. Ενεργοποίησε IPv6 και πρέπει να χτίσεις το inbound firewall στην ίδια ανάσα — δεν είναι προαιρετικό.
R1(config)# ipv6 access-list WAN-IN # Επίτρεψε NDP (το v6 σπάει εντελώς χωρίς ICMPv6 — ΜΗΝ το μπλοκάρεις όλο) R1(config-ipv6-acl)# permit icmp any any nd-na R1(config-ipv6-acl)# permit icmp any any nd-ns # Επίτρεψε απαντήσεις σε sessions που ξεκινήσαμε R1(config-ipv6-acl)# permit tcp any any established # Απόρριψε τα υπόλοιπα inbound R1(config-ipv6-acl)# deny ipv6 any any log R1(config-ipv6-acl)# exit R1(config)# interface GigabitEthernet0/0 R1(config-if)# ipv6 traffic-filter WAN-IN in R1(config-if)# end
Στο IPv4 πολλοί admin ρίχνουν αντανακλαστικά το ICMP στην άκρη. Κάν' το στο ICMPv6 και το IPv6 σταματάει να δουλεύει — το NDP (neighbor discovery), το RA (config διεύθυνσης), και το Path MTU Discovery όλα ταξιδεύουν πάνω σε ICMPv6. Ένα γενικό deny icmp σπάει την επίλυση διευθύνσεων και τη συνδεσιμότητα με τρόπους που μοιάζουν με bug δρομολόγησης. Επίτρεψε τους απαραίτητους τύπους ICMPv6 (neighbor solicit/advertise, router advert, packet-too-big) και φιλτράρισε επιλεκτικά. Αυτό το ένα αντανακλαστικό προκαλεί περισσότερα tickets «το IPv6 είναι ασταθές» από οτιδήποτε άλλο.
07
Μια ειλικρινής απάντηση, αφού μας το ρωτάνε. Το IPv6 είναι αναπόφευκτο, αλλά για τα περισσότερα μικρά sites το dual-stack είναι ο ρεαλιστικός δρόμος, όχι ένα άλμα μόνο-v6.
Για ένα κρητικό ξενοδοχείο ή μαγαζί, το εσωτερικό δίκτυο τρέχει μια χαρά σε IPv4 + NAT σήμερα, και σπάνια υπάρχει επείγων λόγος να ξαναριθμηθεί. Αλλά δύο πράγματα κάνουν το IPv6 άξιο να το ξέρεις τώρα: κάποιοι ISP το παραδίδουν by default (και οι διαδρομές mobile/Starlink γίνονται όλο και πιο v6-native), οπότε θα το συναντήσεις είτε το σχεδίασες είτε όχι· και οι συσκευές guest ήδη το μιλάνε — αν το δίκτυό σου προσφέρει IPv6 που δεν έχεις ασφαλίσει, αυτό είναι ένα ανεπιτήρητο μονοπάτι μέσα κι έξω. Η ρεαλιστική κίνηση για τα περισσότερα SMB είναι το dual-stack: κράτα το IPv4 εσωτερικά, ενεργοποίησε το IPv6 όπου το παρέχει ο ISP, και — κρίσιμο — εφάρμοσε την ίδια αυστηρότητα firewall και monitoring και στα δύο. Το μοτίβο αποτυχίας που βλέπουμε δεν είναι «καθόλου IPv6», είναι «IPv6 σιωπηλά ενεργοποιημένο και εντελώς αφίλτραρο». Γνώρισέ το ώστε να μπορείς να το ασφαλίσεις, ακόμα κι αν δεν το προβάλλεις.
Συμπερασματα
ipv6 unicast-routing. Όλα μπορούν να φαίνονται ρυθμισμένα και ακόμα να μη δρομολογούν χωρίς αυτό — το δίδυμο v6 του ip routing.ipv6· το OSPFv3 ενεργοποιείται ανά interface και οι γείτονες με link-local.Το IPv6 που δρομολογείται αλλά δεν έχει firewall είναι μεγαλύτερη επιφάνεια επίθεσης, όχι σύγχρονο δίκτυο. Στήνω σωστά dual-stack — διευθυνσιοδότηση v6 όπου το υποστηρίζει ο ISP σου, με την ίδια αυστηρότητα firewall και monitoring σε αυτό όπως στο IPv4.
Κλεισε μια Discovery Call →