PDA

Επιστροφή στο Forum : Διαφορετική default gateway για μια τοπική ip



dimangelid
07-06-17, 08:37
Έχω στημένο ένα Mikrotik Router (192.168.10.1) και ένα pfSense (192.168.10.2) . Το pfSense θα παίξει τον ρόλο της gateway για δύο OpenVPN servers που συνδέομαι και θα είναι και ο OpenVPN server του δικτύου μου.
Το δίκτυο πίσω από τον ένα VPN server που συνδέομαι είναι το 10.0.0.0/24 και η ip του είναι 10.0.0.1 . Έχω βάλει ένα static route ώστε η κίνηση προς το δίκτυο του OpenVPN server να περνάει από το pfSense:
ip route add distance=1 dst-address=10.0.0.0/24 gateway=192.168.10.2 και παίζει μια χαρά από όποιον υπολογιστή έχει σαν gateway το mikrotik

Θέλω η κίνηση προς το internet από μία τοπική ip (π.χ. 192.168.10.3) να περνάει από τον OpenVPN server και έχω κάνει τα εξής:

ip firewall mangle add action=mark-routing chain=prerouting dst-address=!192.168.10.0/24 new-routing-mark=vpn passthrough=yes src-address=192.168.10.3
ip route add distance=1 gateway=10.0.0.1 routing-mark=vpn

Παρ' όλα αυτά η κίνηση προς το internet από την 192.168.10.3 εξακολουθεί να περνάει από τον ISP μου αντί από το VPN.

Από το winbox βλέπω ότι η gateway είναι unreachable, παρ' όλο που απαντάει κανονικά σε ping και μέσα από το mikrotik και από τους υπόλοιπους υπολογιστές του δικτύου: 183901

Πως μπορώ να το λύσω;

deniSun
07-06-17, 22:51
Έχω στημένο ένα Mikrotik Router (192.168.10.1) και ένα pfSense (192.168.10.2) . Το pfSense θα παίξει τον ρόλο της gateway για δύο OpenVPN servers που συνδέομαι και θα είναι και ο OpenVPN server του δικτύου μου.
Το δίκτυο πίσω από τον ένα VPN server που συνδέομαι είναι το 10.0.0.0/24 και η ip του είναι 10.0.0.1 . Έχω βάλει ένα static route ώστε η κίνηση προς το δίκτυο του OpenVPN server να περνάει από το pfSense:
ip route add distance=1 dst-address=10.0.0.0/24 gateway=192.168.10.2 και παίζει μια χαρά από όποιον υπολογιστή έχει σαν gateway το mikrotik

Θέλω η κίνηση προς το internet από μία τοπική ip (π.χ. 192.168.10.3) να περνάει από τον OpenVPN server και έχω κάνει τα εξής:

ip firewall mangle add action=mark-routing chain=prerouting dst-address=!192.168.10.0/24 new-routing-mark=vpn passthrough=yes src-address=192.168.10.3
ip route add distance=1 gateway=10.0.0.1 routing-mark=vpn

Παρ' όλα αυτά η κίνηση προς το internet από την 192.168.10.3 εξακολουθεί να περνάει από τον ISP μου αντί από το VPN.

Από το winbox βλέπω ότι η gateway είναι unreachable, παρ' όλο που απαντάει κανονικά σε ping και μέσα από το mikrotik και από τους υπόλοιπους υπολογιστές του δικτύου: 183901

Πως μπορώ να το λύσω;

Αντί για prerouting θα έβαζα forward χωρίς passthrough.
Και θα έγραφα:

ip firewall mangle add action=mark-routing chain=prerouting new-routing-mark=vpn passthrough=yes src-address=192.168.10.3
Και στην δήλωση στο routing:

ip route add distance=1 dst-address=192.168.10.3 gateway=192.168.10.2 routing-mark=vpn

Αν και θα αρκούσε μόνο:

ip route add distance=1 dst-address=192.168.10.3 gateway=192.168.10.2

dimangelid
07-06-17, 23:31
Αντί για prerouting θα έβαζα forward χωρίς passthrough.
Και θα έγραφα:

ip firewall mangle add action=mark-routing chain=prerouting new-routing-mark=vpn passthrough=yes src-address=192.168.10.3
Και στην δήλωση στο routing:

ip route add distance=1 dst-address=192.168.10.3 gateway=192.168.10.2 routing-mark=vpn

Αν και θα αρκούσε μόνο:

ip route add distance=1 dst-address=192.168.10.3 gateway=192.168.10.2

Έσβησα τις δικιές μου ρυθμίσεις, πέρασα τις προτάσεις σου και η κίνηση από την 192.168.10.3 εξακολουθεί να περνάει από τον ISP μου

- - - Updated - - -

Έπαιξε με τις δικές μου ρυθμίσεις. Στον κανόνα
ip route add distance=1 gateway=10.0.0.1 routing-mark=vpn αντικατέστησα την 10.0.0.1 (ip του vpn server) με την 192.168.10.2 (ip του pfSense) .
Όμως με mtr και traceroute πήγαινε σαν gateway πρώτα στο mikrotik, μετά στο pfsense και γινόταν όλο αυτό λούπα. Λογικό γιατί το pfSense παίρνει internet από το mikrotik, άρα το έχει σαν gateway.
Έβαλα κανόνα στο firewall του pfSense ώστε αν του έρθει κίνηση από την συγκεκριμένη ip, να το διώξει από το vpn. Έτσι τώρα η 192.168.10.3 έχει σαν gateway (μόνο για κίνηση προς το internet) το pfSense και το pfSense κάνει τα υπόλοιπα.

Παραμένει όμως το ερώτημά μου:

Από το winbox βλέπω ότι η gateway είναι unreachable, παρ' όλο που απαντάει κανονικά σε ping και μέσα από το mikrotik και από τους υπόλοιπους υπολογιστές του δικτύου: 183901

Πως γίνεται να πινγκάρω και να κάνω traceroute στην 10.0.0.1 από όλο το δίκτυο, αλλά στο screenshot να είναι unreachable; Αν λυθεί και αυτό θα είναι καλύτερα, ώστε να βάζω κανόνες μόνο στο mikrotik και όχι και στο pfSense

deniSun
08-06-17, 09:17
Έσβησα τις δικιές μου ρυθμίσεις, πέρασα τις προτάσεις σου και η κίνηση από την 192.168.10.3 εξακολουθεί να περνάει από τον ISP μου

- - - Updated - - -

Έπαιξε με τις δικές μου ρυθμίσεις. Στον κανόνα
ip route add distance=1 gateway=10.0.0.1 routing-mark=vpn αντικατέστησα την 10.0.0.1 (ip του vpn server) με την 192.168.10.2 (ip του pfSense) .
Όμως με mtr και traceroute πήγαινε σαν gateway πρώτα στο mikrotik, μετά στο pfsense και γινόταν όλο αυτό λούπα. Λογικό γιατί το pfSense παίρνει internet από το mikrotik, άρα το έχει σαν gateway.
Έβαλα κανόνα στο firewall του pfSense ώστε αν του έρθει κίνηση από την συγκεκριμένη ip, να το διώξει από το vpn. Έτσι τώρα η 192.168.10.3 έχει σαν gateway (μόνο για κίνηση προς το internet) το pfSense και το pfSense κάνει τα υπόλοιπα.

Παραμένει όμως το ερώτημά μου:

Από το winbox βλέπω ότι η gateway είναι unreachable, παρ' όλο που απαντάει κανονικά σε ping και μέσα από το mikrotik και από τους υπόλοιπους υπολογιστές του δικτύου: 183901

Πως γίνεται να πινγκάρω και να κάνω traceroute στην 10.0.0.1 από όλο το δίκτυο, αλλά στο screenshot να είναι unreachable; Αν λυθεί και αυτό θα είναι καλύτερα, ώστε να βάζω κανόνες μόνο στο mikrotik και όχι και στο pfSense

Από την στιγμή που όλα τα συνδέεις πάνω στο ΜΤ, είναι φυσικό να περνάνε πρώτα μέσα από αυτό.

dimangelid
08-06-17, 10:30
Από την στιγμή που όλα τα συνδέεις πάνω στο ΜΤ, είναι φυσικό να περνάνε πρώτα μέσα από αυτό.

το καταλαβαίνω απόλυτα αυτό. Μπορείς όμως να μου εξηγήσεις γιατί βγάζει unreachable την gateway 10.0.0.1 από την στιγμή που υπάρχει route για αυτή;

macro
08-06-17, 11:36
Αυτο ειναι ολο το routing table που εχεις? Μονο ενα? Τι αλλα εχεις εκει? Διπλα στο nexthops βλεπεις την ip του pfsense?

Για δωστο ολο screen να το δουμε.

dimangelid
08-06-17, 22:31
Παραθέτω screenshots με τα routes.

183923 183922

Διευκρινήσεις:

1) 192.168.9.0/24 : το Mikrotik είναι στημένο σε VMware και παίρνει internet από το router του σπιτιού μου. Το κάνω έτσι για να δω αν με βολέψει να το στήσω μελλοντικά μόνιμα. 192.168.9.2 είναι η IP που παίρνει το mikrotik VM από το router του σπιτιού

2) 192.168.10.0/24 : το δίκτυο του mikrotik. από αυτό παίρνει ip το Virtual Machine με το pfSense (192.168.10.2) και το linux με το οποίο γίνονται οι δοκιμές για το αν παίζουν τα routes (192.168.10.3)

Να συμπληρώσω ότι αν αντικαταστήσω το route "0.0.0.0/0 με gateway 192.168.10.2" με το "0.0.0.0/0 με gateway 10.0.0.1" , η 10.0.0.1 φαίνεται unreachable και στο Route List/Routes και στο Route List/Nexthops

macro
09-06-17, 10:33
Ετσι οπως το εχεις τωρα φαινεται σωστο. Το "10.0.0.0/24 με gateway 192.168.10.2" ειναι αυτο που θες να δουλευει και απο οσο βλεπω δουλευει και εχει ιντερνετ το pfsense. Τωρα σα μοναδικο gateway εχεις το ΜΤ. Αυτο το "0.0.0.0/0 με gateway 10.0.0.1" δε μπορει να σου παιξει επειδη δεν ειναι gateway.......... ασε που κανεις και λουπα.

Για να δουλεψει το "0.0.0.0/0 με gateway 10.0.0.1" σιγουρα πρεπει να σβησεις το "10.0.0.0/24 με gateway 192.168.10.2" σε πρωτη φαση και ισως να αλλαξεις τα gateways στα αλλα routes (οσα χρειαζονται) με gateway 10.0.0.1. Αυτο θα δοκιμαζα σε πρωτη φαση.

Δλδ ξεκινας με πιο θες να εχεις gateway το σκεπτικο σου (10.0.0.1) και χτιζεις routes. Το gateway 192.168.10.2 δε το θες αρα δε πρεπει να υπαρχει.

Το dhcp του ΜΤ πως τον εχεις ρυθμισει? 'Η παιρνεις απο το pfsense?

Nikiforos
09-06-17, 17:59
καλησπέρα, αυτο μου θυμιζει την δικια μου περιπτωση που ηθελα αλλο gw 2o δλδ για τοπικες ips και τελικα η λυση ηταν να βαλω ενα δευτερο ρουτερ για 2ο gw.
Διαφορετικο μεν στησιμο το δικο μου αλλα το ιδιο αποτελεσμα και ηθελα να κανω το ιδιο πραγμα.
Τωρα να τα αναλυσω μαλλον θα μπερδευτουν ολοι και αυτα με τα routes κτλ δεν τα εχω δυστυχως...:(
Μετα παιζω με κατι τετοιο https://wiki.mikrotik.com/wiki/Advanced_Routing_Failover_without_Scripting
https://wiki.mikrotik.com/wiki/Two_gateways_failover

dimangelid
09-06-17, 19:45
Ετσι οπως το εχεις τωρα φαινεται σωστο. Το "10.0.0.0/24 με gateway 192.168.10.2" ειναι αυτο που θες να δουλευει και απο οσο βλεπω δουλευει και εχει ιντερνετ το pfsense. Τωρα σα μοναδικο gateway εχεις το ΜΤ. Αυτο το "0.0.0.0/0 με gateway 10.0.0.1" δε μπορει να σου παιξει επειδη δεν ειναι gateway.......... ασε που κανεις και λουπα.

Για να δουλεψει το "0.0.0.0/0 με gateway 10.0.0.1" σιγουρα πρεπει να σβησεις το "10.0.0.0/24 με gateway 192.168.10.2" σε πρωτη φαση και ισως να αλλαξεις τα gateways στα αλλα routes (οσα χρειαζονται) με gateway 10.0.0.1. Αυτο θα δοκιμαζα σε πρωτη φαση.

Δλδ ξεκινας με πιο θες να εχεις gateway το σκεπτικο σου (10.0.0.1) και χτιζεις routes. Το gateway 192.168.10.2 δε το θες αρα δε πρεπει να υπαρχει.

Το dhcp του ΜΤ πως τον εχεις ρυθμισει? 'Η παιρνεις απο το pfsense?

Ετσι οπως το εχεις τωρα φαινεται σωστο. Το "10.0.0.0/24 με gateway 192.168.10.2" ειναι αυτο που θες να δουλευει και απο οσο βλεπω δουλευει και εχει ιντερνετ το pfsense. Τωρα σα μοναδικο gateway εχεις το ΜΤ. Αυτο το "0.0.0.0/0 με gateway 10.0.0.1" δε μπορει να σου παιξει επειδη δεν ειναι gateway.......... ασε που κανεις και λουπα.
10.0.0.0/24 είναι το δίκτυο πίσω από τον OpenVPN server, στον οποίο συνδέεται σαν client το pfSense. άρα το route "10.0.0.0/24 με gateway 192.168.10.2" είναι για να βλέπουν όλα τα μηχανήματα που έχουν ip από το 192.168.10.0/24 (το δίκτυο που έχω στήσει στο Mikrotik), τα μηχανήματα που βρίσκονται στο δίκτυο του openvpn server 10.0.0.0/24 . Το pfSense παίρνει internet από το Mikrotik.

Τι εννοείς ότι το "0.0.0.0/0 με gateway 10.0.0.1" δεν μπορεί να παίξει επειδή δεν είναι gateway; Η 10.0.0.1 είναι η εσωτερική ip του OpenVPN server στον οποίο συνδέεται το pfSense σαν client και υπάρχει ήδη route για αυτή. Άρα γιατί το route "0.0.0.0/0 με gateway 10.0.0.1 και routing mark vpn" βγάζει ότι η 10.0.0.1 είναι unreachable; Λύνεται αυτό;

Έχω εξηγήσει από την αρχή τι θέλω να κάνω: ορισμένες ip από το δίκτυο 192.168.10.0/24 να βγαίνουν στο internet μέσω του VPN. Τώρα το πετυχαίνω με το route "0.0.0.0/0 με gateway 192.168.10.2 και routing mark vpn" , έναν κανόνα στο firewall του mikrotik για κάθε ip που θέλω να βγαίνει στο internet από το vpn και τέλος έναν ακόμα κανόνα στο firewall του pfSense για κάθε μία από τις ip που θα βγαίνουν από το VPN. Προσπαθώ να αποφύγω να βάζω κανόνες σε 2 router, αλλιώς δεν θα άνοιγα το topic ;)

Το dhcp του ΜΤ πως τον εχεις ρυθμισει? 'Η παιρνεις απο το pfsense?
Τον έχω ρυθμίσει να μοιράζει από την 192.168.10.128 ως την 192.168.10.254 . Στο pfSense έχω δώσει στατική ip

Ashtaroth
10-06-17, 11:58
Πως γίνεται να πινγκάρω και να κάνω traceroute στην 10.0.0.1 από όλο το δίκτυο, αλλά στο screenshot να είναι unreachable; Αν λυθεί και αυτό θα είναι καλύτερα, ώστε να βάζω κανόνες μόνο στο mikrotik και όχι και στο pfSense

Απο οτι έχω καταλάβει το mikrotik συνδέεται με το pfsense μέσω του δικτύου 192.168.10.χ.
Επίσης το pfsense μέσω VPN συνδέεται με το δίκτυο 10.0.0.χ.
Θεώρησε το VPN σαν μία εχτρά πόρτα στο pfsense (εικονική πόρτα οχι πραγματική). Αρα 1 πορτα του pfsense συνδέεται στο δίκτυο 192.168.10.χ και μια άλλη πόρτα του pfsense (εικονική) συνδέεται στο δίκτυο 10.0.0.χ. (Σαν να έχεις ένα ρουτερ με 2 πόρτες)

Το PC λοιπόν που θέλεις να μιλήσει με το δίκτυο 10.0.0.χ έχει gateway το μικροτικ(192.168.10.χ) άρα στέλνει τα πακέτα του στο μικροτικ. Το μικροτικ τωρα πρέπει μέσω static routing να δει οτι αυτά τα πακέτα πρέπει να πάνε στο pfsense και αντιστοιχα το pfsense να τα δρομολογήσει στο VPN.

Βασικά αυτο έχεις κάνει και παίζει.


Τώρα γιατι το μικροτικ δεν βλεπει το 10.0.0.1 σαν Next hop gateway?

Γενικά όταν δηλώνεις static routes δηλώνεις ή το next-hop ip address ή το exit interface.


Στο μικροτικ δηλαδή η next-hop ip address είναι η IP του pfsense και το exit interface είναι το interface που συνδέεται με το pfsence (πχ eth0)
Δεν μπορείς να δηλώσεις σαν next-hop ip address μια IP η οποία ειναι πολλά hops μακριά, άσχετα αν αυτή την ip την κάνεις ping
Για παράδειγμα την IP 8.8.8.8 την κάνεις ping και γενικά έχεις πρόσβαση σε αυτήν, δεν μπορείς όμως να την δηλώσεις στο routing table σου σαν next hop γιατι πολύ απλά δεν είναι άμμεσα συνδεδεμένη με το μικροτικ, αλλά βρίσκεται πολλά hops μακριά.



Νομίζω πως αυτό που θέλεις να κάνεις γίνεται μόνο αν βάλεις σαν Gateway το pfsense, αλλά αυτό ίσως δεν σε βολέψει (δεν έχω διαβάσει αναλυτικά το thread). αλλά πάλι θα πρέπει να έχεις κανόνες στο pfsence.

dimangelid
10-06-17, 17:59
Το κατάφερα τελικά :) :) Έπρεπε να γίνουν αλλαγές στο Score και στο Target Scope ώστε να ξέρει το Mikrotik από ποιο route θα πάει να βρει την gateway 10.0.0.1

Το route 10.0.0.0/24 με gateway την 192.168.10.2 είχε Scope 40 και Target Scope 10.

Οπότε πήγα στο route 0.0.0.0/0 με gateway 10.0.0.1 και routing mark vpn, και άλλαξα το Target Scope σε 40 (το scope του route 10.0.0.0/24) ώστε να πηγαίνει μέσω αυτού να βρει την gateway 10.0.0.1 .

Το μεγαλύτερο πλεονέκτημα του να έχω gateway την 10.0.0.1 (ip του vpn server) και όχι την 192.168.10.2 (ip του pfsense) είναι ότι το route τσεκάρει με ping αν είναι πάνω η gateway και έτσι αν πέσει το vpn βγάζει το μηχάνημα που θέλω στο internet μέσω του ISP. Αν άφηνα σαν gateway την ip του pfsense και να έπεφτε το VPN το mikrotik θα θεωρούσε ότι η gateway είναι UP και θα συνέχιζε να προσπαθεί να βγάλει το μηχάνημα στο internet από εκεί.

Τέλος καλό, όλα καλά!

- - - Updated - - -

Βρήκα ένα πρόβλημα. Αν πέσει το VPN το Ping που κάνει το mikrotik προς την 10.0.0.1 αποτυχγάνει, το route γίνεται μπλε-unreachable οπότε θεωρείται ανενεργό μέχρι να απαντήσει ξανά σε Ping η 10.0.0.1 .
Αρκετές φορές παρ' όλο που σηκώνεται το VPN το route δεν επανέρχεται σε κανονική λειτουργία και πρέπει να το κάνω εγώ χειροκίνητα disable-enable
Ξέρετε κάτι για αυτό;

@ ADSLgr.com All rights reserved.