Hybrid configuration scenarion

Από PWMN
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση

Το παρακάτω σενάριο συζητήθηκε και υλοποιήθηκε σαν άσκηση στα πλαίσια του μεταπτυχιακού μαθήματος Αρχές ασύρματης επικοινωνίας Διδάσκων κ. Γ. Αλεξίου και μετά από σύμφωνη γνώμη δημοσιεύεται εδώ

Σενάριο Χρήσης[επεξεργασία]

Public Δίκτυο με AP συνδέονται σε αυτό 2 LAN. Το ένα επιθυμούμε να έχει public ips χωρίς να χρειάζεται να αλλάξουμε τους πίνακες δρομολόγησης του public δικτύου, ενώ το άλλο μας ενδιαφέρει να έχει πρόσβαση στο public δίκτυο χωρίς όμως να έχει κατ'ανάγκη public ips. Στα πλαίσια της άσκησης ρητά αποφασίσαμε να μην χρησιμοποιήσουμε public ips για να γίνει λίγο ποιο ενδιαφέρουσα η άσκηση.

υβριδική τοπολογία[επεξεργασία]

Το δίκτυο του σεναρίου

Σε αυτό 1 public δίκτυο έχει ένα access point, στο οποίο 2 υποδίκτυα θέλουν να συνδεθούν.Το Access Point (AP από εδώ και πέρα) συνδέεται σε ένα public δίκτυο μέσω ενός (ή αν υπάρχει και δεύτερο η δουλειά μας θα γίνεται ακόμα ευκολότερη) network interface τύπου ethernet. Η διασύνδεση γίνεται είτε σε κάποιο switch είτε σε κάποιο repeater είτε και με κάποιο bridge. Η διασύνδεση δηλαδή που θα υλοποιήσουμε δεν εξαρτάται από τον τρόπο σύνδεσής μας με το εξωτερικό δίκτυο και θεωρούμε αυθαίρετα ότι συνδεόμαστε σε κάποιο switched ethernet. Τα δυο υποδίκτυα συνδέονται στο AP με ασύρματες συσκευές που υποστηρίζουν client mode λειτουργίας.

bridge vs station mode[επεξεργασία]

Η ίδια υλοποιήση μπορεί να γίνει αν και εφόσον υποστηρίζουν οι συσκευές των clients bridging mode λειτουργίας, αφαιρώντας το βήμα της δρομολόγησης στο intranet. Πλέον όμως το LAN1 και το LAN2 γίνεται να τα βλέπουμε σαν ένα LAN και ανάλογα με το σχήμα διευθυνσιοδότησης που θα επιλέξουμε μπορούμε ή όχι να τα ενώσουμε. σε επίπεδο δικτύου. Αν πχ σε 2 μηχανήματα που γεωγραφικά ανήκουν στο LAN1 και σε άλλα 2 μηχανήματα που γεωγραφικά ανήκουν στο LAN2 δώσουμε ips από το range 10.140.254.0/24 τότε αυτά τα μηχανήματα θα συμπεριφέρονται σαν να ανήκουν στο ίδιο LAN (λόγω του bridging που κάνουμε). Προβλήματα ασφαλείας (και σπατάλης πόρων) τίθενται βέβαια ως προς το θέμα bridging αφού ουσιαστικά οτιδήποτε μεταδίδουμε μπορεί κάποιος να το καταγράψει, ανεξαρτήτου του σχήματος διευθυνσιοδότησης (παρόμοια προβλήματα δηλαδή με το hub-ed ethernet). Προτιμούμε δηλαδή το mode λειτουργίας station για τους εξής λόγους:

  1. Λιγότερο χαμένο bandwidth (αύξηση του goodput των ασύρματων links)
  2. Περισσότερη ασφάλεια
  3. Ευκολότερα διαχειρίσιμο bandwidth/traffic analysis

Υλοποίηση[επεξεργασία]

Παρακάτω θα αναλύσουμε πως θα υλοποιήσουμε το σύστημα. Η υλοποίηση βασίζεται σε τρία βασικά βήματα (που εφαρμόζουμε σε κάθε περίπτωση κατασκευής τέτοιου δικτύου) και ένα επιπλέον για τις περαιτέρω απαιτήσεις.

  1. Συνδεσιμότητα σε φυσικό επίπεδο
  2. Συνδεσιμότητα σε επίπεδο ethernet(802.11a/b)
  3. Συνδεσιμότητα σε επίπεδο εσωτερικής δρομολόγησης
  4. Υλοποίηση των απαιτήσεων της άσκησης.

Συνδεσιμότητα σε φυσικό επίπεδο[επεξεργασία]

Αν και γενικά δεν υπήρξε ιδιαίτερο πρόβλημα αφού η συνδεσιμότητα έγινε σε κλειστό χώρο με λίγες παρεμβολές (Από τα SSID Lioupis LAB, και FREE INTERNET ACCESS ήταν οι μόνες παρεμβολές που είχαμε αλλά με μικρή ισχύ (-90 και -85 η ισχύς των σημάτων)). Το σήμα κατά την διάρκεια των πειραμάτων ήταν αξιοπρεπέστατο (-53db) για την ισχύ της εκπομπής που την είχαμε κατεβάσει στα 0mW ωστε να μην ενοχλούμε με παρεμβολές τα γύρω ασύρματα δίκτυα αλλά και να μην δεχόμαστε αλόγιστα ηλεκτρομαγνητική ακτινοβολία τις ώρες που δουλεύαμε εκεί.

Συνδεσιμότητα σε επίπεδο ethernet(802.11a/b)[επεξεργασία]

Συνδεσιμότητα σε επίπεδο εσωτερικής δρομολόγησης[επεξεργασία]

private internal addressing (192.168.0.0/16), static routing etc

Υλοποίηση των απαιτήσεων της άσκησης[επεξεργασία]

EoIP tunnelling[επεξεργασία]

Το tunnelling EoIP (Ethernet over IP) είναι ένα πρωτόκολλο το οποίο φτιάχνει ένα ethernet tunnel μεταξύ δυο mikrotik routers πάνω από ένα ήδη υπάρχον IP δίκτυο. Το χρησιμοποιούμε ώστε να γεφυρώσουμε(bridge) το ένα ethernet του public μηχανήματος με το ethernet του απομακρυσμένου δρομολογητή ώστε να δημιουργηθεί ένα εικονικός LAN στο οποίο συμπεριλαμβάνεται το δίκτυο που θέλουμε να φαίνεται ώς μέρος του public δικτύου. Σε συνδυασμό με το bridging επιτελεί το ζητούμενο μέρος της άσκησης.

Γενικές επιλογές στο Mikrotik για το EoIP[επεξεργασία]
Ρυθμίσεις στην γραφική διεπαφή του mikrotik για την δημιουργία ενός EoIP interface

Θέση ρυθμίσεων στο command line

/interface eoip

Άλλες διαθέσιμες παράμετροι

name           : To όνομα του IF (πώς θα φαίνεται στην λίστα με
                 τα interfaces
mtu            : To μέγεθος του mtu (τυπικά max για το ethernet
                 1500 bytes)
arp            : Αν θα κάνουμε arp-proxy arp relay μέσω αυτού 
                 του virtual if
                 Γενικά πρέπει να του επιτρέπουμε να περνάνε 
                 για να λειτουργουν οι arp σχετικές υπηρεσίες δικτύου 
                 (το dhcp, rarp, bootp κτλ)
tunnel-id      : Ένα μοναδικό ID (Μοναδικό για κάθε EoIP tunnel)
remote-address : Το άλλο άκρο το EoIP tunnel. 
                 Δεν έχει δοκιμαστεί αν λειτουργεί με λειτουργικό πέραν του mikrotik

Μετά την δημιουργία του ενός άκρου του EoIP tunnel στον ένα router ακολουθούμε την ίδια διαδικασία και στον άλλο. (απλώς αλλάζουμε το destination IP)

Η χρήση του EoIP είναι απλή και είναι πάνω κάτω η γργηορότερη λύση (quick and dirty). Άλλες ομοίως κατάλληλες λύσεις με παρόμοια εφαρμογή μπορούν να θεωρηθούν η δημιουργία VPN στον mikrotik router και δρομολόγηση της κίνησης εκατέρωθεν μέσω αυτού του VPN (φυσικά απαιτεί διάφορα τεχνάσματα στην πλευρά του public router ώστε να παίζει κανονικά και χωρίς κανένα απολύτως πρόβλημα. Η απλούστερη λύση πάντως πρέπει να τονιστεί οτι είναι το EoIP. Τα μειονεκτήματά της είναι:

  • Αδυναμία υποστήριξης κρυπτογράφησης (ενώ το standard ορίζει οτι υποστηρίζεται κρυπτογράφηση δεν υπάρχει τέτοια επιλογή στην έκδοση του mikrotik που χρησιμοποιούμε)
  • Αδυναμία πρόσβασης στο Κρυφό τοπικό δίκτυο. Βέβαια στην υπάρχουσα υλοποίηση αυτό είναι και το ζητούμενο άρα τεχνικά είμαστε καλά
Ρυθμίσεις στο δίκτυο μας[επεξεργασία]
Λογική παράσταση του tunnel

Δημιουργία EoIP tunnel στα δυο router που θέλουμε να συνδέσουμε. Σε αυτά ορίζουμε τις εσωτερικές διευθύνσεις σύμφωνα με την εσωτερική διευθυνσιοδότηση του συστήματός μας. Στην εργαστηριακή εφαρμογή ορίσαμε το ένα άκρο του tunnel να είναι το 192.168.2.2 και το άλλο το 192.168.1.1. Στην συνέχεια γεφυρώνουμε τα interfaces του ethernet και του EoIP tunnel σε κάθε δρομολογητή. Πλέον τα άκρα που συνδέονται στα ethernet που γεφυρώσαμε είναι σαν να ανήκουν στο ίδιο δίκτυο. Αν έχουμε 2ο ethernet nic φροντίζουμε να το τοποθετήσουμε και να το συνδέσουμε στο τοπικό switch μιας και τώρα με το bridging δεν θα έχουμε προσβαση στο τοπικό "κρυφό" δίκτυο. Για τα ζητούμενα της άσκησης κάτι τέτοιο δεν είναι θεμιτό. Οπότε μένει το σύστημα ως έχει.

bridging[επεξεργασία]

Στο πρώτο βήμα δημιουργούμε ένα bridge interface, είτε μέσω της γραφικής διεπαφής είτε μέσω του command prompt.

Μέσω του command prompt γίνεται έτσι:

/interface bridge add (δημιουργία ενός bridge interface)

Μέσα από το gui γίνεται έτσι:

Bridge-microlab.jpg

Στην συνέχεια πρέπει να αποφασίσουμε ποια interfaces (του ίδιου router θα κάνουμε bridge). Στην περίπτωση που μελετάμε αυτά είναι τα EoIP και ethernet itnerfaces.

Μέσω του command prompt αυτό γίνεται έτσι:

/interface bridge port add <interface name> <bridge name>

Στο δικό μας παράδειγμα η εντολή που θα τρέχαμε είναι :

/interface bridge port add ether1 bridge1
/interface bridge port add public-tunnel1 bridge1

Μέσα από το Gui απλά θα πηγαίναμε στο παρακάτω menu και θα επιλέγαμε τα κατάλληλα interfaces

Bridge-port-microlab.jpg

Ομοίως πράτtουμε και στον άλλο router

Εφόσον έχουμε ολοκληρώσει επιτυχώς αυτά τα δυο παραπάνω βήματα (EoIP && bridge) πλέον το να συνδεθούμε στο public δικτυό μας είναι θέμα ελάχιστον δευτερολέπτων. Αλλάζουμε την IP διεύθυνση στον workstation μας και βάζουμε κατάλληλους DNS και default gateway routers και voila! Είμαστε στο public δίκτυο σαν να συνδεόμασταν σε αυτό με switch.

NAT[επεξεργασία]

Αν και έχει καλυφθεί και σε άλλο άρθρο NAT η υλοποίηση του NAT στο mikrotik (όπως και σε κάθε σοβαρό linux router είναι θέμα ελάχιστων δευτερολέπτων ή και μερικών click ;-) )

Με λίγα λόγια το NAT το φτιάζουμε έτσι πάνω από το GUI:

Specify the ip addresses 1/2

Specify the ip addresses 2/2

Fix the static routes so you can access the network 1/2

Fix the static routes so you can access the network 2/2

Start building the NAT 1/2

Start building the NAT 2/2

DST-NAT 1/2

DST-NAT 2/2

SRC-NAT 1/2

SRC-NAT 2/2

NAT COMPLETED


Από το command prompt το φτιάζουμε έτσι:

/ip firewall dst-nat add dst-address=!192.168.0.0/16 action=nat to-dst-address=192.168.1.1
/ip firewall src-nat add src-address=192.168.1.0/24 action=nat to-src-address=192.168.1.1
/ip firewall src-nat add src-address=192.168.2.0/24 action=nat to-src-address=150.140.141.92

DHCP[επεξεργασία]