# Θεματολογία δικτύου > Δρομολόγηση >  routing filter

## sv1bds

Καλημέρα 

Έχω φτιάξει routing filter για το awmn.

#
/routing filter
add action=accept bgp-as-path-length=0-50 chain=awmn disabled=no invert-match=\
no prefix=10.0.0.0/8 prefix-length=32 set-bgp-prepend-path=""
add action=accept bgp-as-path-length=0-50 chain=awmn disabled=no invert-match=\
no prefix=10.0.0.0/8 prefix-length=9-24 set-bgp-prepend-path=""
add action=discard chain=awmn disabled=no invert-match=no prefix=0.0.0.0/0 \
prefix-length=0-32 set-bgp-prepend-path=""

Ισχύει και για input και για output.

Εγινε edit στην πρώτη γραμμή το /23 σε /8.

Γιώργος SV1BDS

----------


## gas

Γιωργο πες μας και δυο λογια οπως τι κοβει τι επιτρεπει ή οτι αλλο θεωρεις οτι πρεπει να γνωριζουμε και τις διαφορες ή ομοιοτητες που εχουν με τα προηγουμενα που ηδη χρησιμοποιουμε..
Μπραβο παντως για τον κοπο σου και το ενδιαφερον σου!!!!

----------


## sv1bds

Καλησπέρα

Η πρώτη γραμμή επιτρέπει μόνο τα /32 στο 10.0.0.0/23 που είναι για anycast.
Η δεύτερη γραμμή επιτρέπει δίκτυα στο 10.0.0.0/8 με μάσκα από 9-24 και AS lenngth από 0-50 να περνάνε.
Και η τρίτη γραμμή κόβει οτιδήποτε άλλο.
Η βασική διαφορά είναι ότι περνάει ότι θέλεις και κόβει όλα τα άλλα σε αντίθεση με άλλα φίλτρα που κόβουν ορισμένα και
περνάνε όλα τα υπόλοιπα όπως π.χ. BRAS από providers.

Γιώργος SV1BDS

----------


## john70

Μπραβο !

Αντε κάνε και αυτο που σου είπα ...(οταν χαλάει το SNR, να κόβει το BGP, και οταν δεν έχει τον peer ενεργο για 1 ώρα να στέλνει e-mail)

 ::

----------


## sv1bds

Καλησπέρα

Αλλάχτηκε στη πρώτη γραμμή το /23 σε /8.

Γιώργος SV1BDS

----------


## senius

Καλησπέρα στους ασύρματους φίλους. !!
Ευχαριστούμε για τις προσπάθειες που κάνετε για την βελτιστοποίηση του δικτύου μας.

Έχω μια απορία με κάποια ρύθμιση:
Έσβησα τα παλιά φίλτρα και μέσω του New Terminal, πέρασα τα νέα.
Εμφανίστηκαν τα 3 νέα φίλτρα :

New routing filter .jpg

Στις ρυθμίσεις peer, μου εμφανίστηκε και μια νέα επιλογή : awmn
Στο BGP---->peer, στα πεδία ---->in filter και out filter, επιλέγουμε το awmn ? η τα awmn-bgp-in και awmn-bgp-out ?
δείτε και φώτο:

routing filter by sv1bds.jpg
Ευχαριστώ.

----------


## ysam

To awmn σκέτο.

----------


## Cha0s

Από περιέργεια, το τελευταίο rule κάνει match μόνο prefixes 0.0.0.0/0 (default gateway) ή γενικά οτιδήποτε περισσεύει (μιας και το prefix length είναι 0-32) ;

Γιατί αν κάνει match μόνο το 0.0.0.0/0 τότε νομίζω επιτρέπει ξεκάρφωτα prefixes τύπου 192.168 ή κάνω λάθος;

Προσωπικά δεν έχω το 0.0.0.0/0, κάνω πρώτα accept ότι έχεις και εσύ, και έπειτα κάνω discard οτιδήποτε περισσεύει χωρίς να δηλώσω prefix length ή prefix. Δεν έχω δει να ανακοινώνεται ή να μου έρχεται έτσι τίποτα άσχετο.

----------


## ysam

Το τελευταίο κάνει match τα πάντα.

----------


## Cha0s

Cool  ::  Thanks

----------


## senius

Καλησπέρα στο ασύρματο δίκτυο AWMN και όχι μόνο.!!

Έλαβα το θάρρος μετά από καιρό να ρωτήσω τα κάτωθι :

Ισχύουν σήμερα τα κάτωθι routing φίλτρα για τους κόμβους μας στο *AWMN* δίκτυο και όχι μόνο (συμπεριλαμβανόμενα και ολα τα ασύρματα μητροπολιτικά δίκτυα όλης της Ελλάδας}, ώστε να δουλεύουν σωστά σε όλα τα σημερινά πρότυπα?

*Κι αν όχι, γιατί? 
*
*Μπορείτε να το αναλύσετε όσοι απαντήσετε, ώστε να ακολουθήσουμε όλοι μαζί ----> έναν κοινό παράγοντα?* 




> /routing filter
> add action=accept chain=awmn-bgp-in disabled=no invert-match=no prefix=10.0.0.0/15 prefix-length=32
> add action=accept chain=awmn-bgp-out disabled=no invert-match=no prefix=10.0.0.0/15 prefix-length=32
> add action=discard bgp-as-path-length=30-600 chain=awmn-bgp-in disabled=no invert-match=no prefix=10.0.0.0/8 prefix-length=9-24
> add action=discard bgp-as-path-length=30-600 chain=awmn-bgp-out disabled=no invert-match=no prefix=10.0.0.0/8 prefix-length=9-24
> add action=discard chain=awmn-bgp-in disabled=no invert-match=no prefix=192.168.0.0/16 prefix-length=0-32
> add action=discard chain=awmn-bgp-out disabled=no invert-match=no prefix=192.168.0.0/16 prefix-length=0-32
> add action=discard chain=awmn-bgp-in disabled=no invert-match=no prefix=172.16.0.0/12 prefix-length=0-32
> add action=discard chain=awmn-bgp-out disabled=no invert-match=no prefix=172.16.0.0/12 prefix-length=0-32
> ...


*******************************
*
Επίσης* 

*Ποια είναι η διαφορά των άνω φιλτρων, με τα κάτωθι routing φίλτρα, για τους κόμβους μας στο AWMN και οχι μόνο?*




> /routing filter
> add action=discard chain=awmn bgp-as-path-length=!0-24
> add action=accept chain=awmn prefix=10.0.0.0/8 prefix-length=24
> add action=accept chain=awmn prefix=10.0.0.0/15 prefix-length=32
> add action=discard chain=awmn


*Η με τα κάτωθι routing φίλτρα για τους κόμβους μας, στο AWMN και οχι μόνο?*




> / routing filter
> add action=discard chain=awmn bgp-as-path-length=!0-24
> add action=accept chain=awmn prefix=10.0.0.0/8 prefix-length=24
> add action=accept chain=awmn prefix=10.0.0.0/15 prefix-length=32


*******************************

Ευχαριστώ εκ των προτέρων.
Κώστας senius.

----------


## nikolas_350

Από το πρώτο και το τρίτο λείπει η τελευταία γραμμή.

Το πρώτο είναι ότι πιο κακογραμμένο υπάρχει γιατί 
Α) δημιουργεί 2 αλυσίδες για in και out που είναι πανομοιότυπες (πλεονασμός)
Β) έχει την λογική να αφαιρέσει στοχευμένα τα μη επιθυμητά privet prefix (172 & 192 ) αφήνοντας μεγάλες τρύπες για τα public

_Στο δεύτερο φίλτρο ο πρώτος κανόνας αναιρεί τον τρίτο
Δεν μπορείς να επιτρέπεις τα /32 εάν έχεις κάνει πρώτα discard τα !9-24_
*edit: άκυρο ! δεν πρόσεξα ότι το ένα αναφέρεται σε bgp-as-path-length και prefix-length αντίστοιχα*

Ο σωστός  βολικός τρόπος είναι η μορφή που έχει γράψει ο bds σε αυτό το θέμα ωστόσο και αυτό έχει μερικά θέματα.

Πρώτον έχει γίνει copy από το terminal export περιττή πληροφορία που μπερδεύει και δεν μπορεί κάποιος να το διαβάσει.
Εάν αφαιρεθούν τα disabled=no, invert-match=no, set-bgp-prepend-path=""
που δεν λένε τίποτα



```
/routing filter
add action=accept bgp-as-path-length=0-50 chain=awmn disabled=no invert-match=\
no prefix=10.0.0.0/8 prefix-length=32 set-bgp-prepend-path=""
add action=accept bgp-as-path-length=0-50 chain=awmn disabled=no invert-match=\
no prefix=10.0.0.0/8 prefix-length=9-24 set-bgp-prepend-path=""
add action=discard chain=awmn disabled=no invert-match=no prefix=0.0.0.0/0 \
prefix-length=0-32 set-bgp-prepend-path=""
```

Το φίλτρο γίνεται


```
/routing filter
add action=accept bgp-as-path-length=0-50 chain=awmn prefix=10.0.0.0/8 prefix-length=32
add action=accept bgp-as-path-length=0-50 chain=awmn prefix=10.0.0.0/8 prefix-length=9-24
add action=discard chain=awmn prefix=0.0.0.0/0 prefix-length=0-32
```

Επιτρέπει μόνο 2 κριτήρια και όλα τα υπόλοιπα πάνε στον κάδο.

Κανόνας πρώτος επιτρέπει τα anycast
Ένστασης Α τα anycast θα πρέπει να επιτρέπονται μόνο στα prefix 10.0.0.0/15 και όχι στο 10.0.0.0/8 που είναι σοβαρότατο θέμα ασφάλειας.
Ένστασης Β το bgp-as-path-length=0-50 για αυτή την στιγμή είναι υπερβολικό όταν και στην πιο απομακρυσμένη κοινότητα φτάνω το πολύ με 20. Αυτό όμως είναι μια απόφαση της τότε ομάδας routing που έπρεπε να υπολογίσει και τι θα γινόταν στο μέλλον.

Κανόνας δεύτερος επιτρέπει μια καταχώριση εάν ικανοποιεί και τα 3 κριτήρια 
Να ανήκει στο 10.0.0.0/8 
Η διαδρομή να έχει από 0-50 Autonomous System (ισχύει ότι και πιο πάνω)
Να είναι δίκτυο /9 έως /24 (c-class). Βάση αυτού http://www.awmn.net/content.php?r=175 δεν έχουν σχεδιαστεί δίκτυα /9 & /10 . Μόνο η Θεσσαλονίκη που έχει το μεγαλύτερο δίκτυο σε αποδομένες ip έχει /11 και το awmn φυσικά που έχει και /10 και /11 αλλά κανείς δεν θα το κάνει aggregate μονοκόμματο στο awmn.

Κανόνας τρίτος, όλα τα υπόλοιπα δεν μπαίνουν στον πίνακα δρομολόγησης.

Προσωπικά δεν κάνω τίποτα discard αλλά reject που σημαίνει ότι το βλέπω στο routing table αλλά δεν είναι ενεργό και δεν το διαφημίζω. Έτσι ξέρω τι κόβει το φίλτρο μου.

----------


## grigoris

Καλημερα παιδια! Μιας και το παρατηρησα, γιατι επιτρεπονται μονο τοσο μικρα AS path με δεδομενο οτι εδω και 10 χρονια σχεδον υπαρχουν αρκετα μεγαλυτερα στο ασυρματο? Οκ, δεν υπαρχει πολυ traffic πια, αλλα ειναι σωστο να μην καλυπτει το bgp τους ασυρματους? (απο τη στιγμη που τα μηχανακια που χρησιμοποιουμε τωρα αντεχουν)

Πχ απο τον κομβο 10.224.34.1 σε εναν τυχαιο που βρηκα στο wind:

tool traceroute 10.73.106.1
# ADDRESS LOSS SENT LAST AVG BEST WORST
1 10.224.6.249 0% 4 4.1ms 1.8 0.9 4.1
2 10.224.6.246 0% 4 1.2ms 1.4 1.2 1.5
3 10.224.7.5 0% 4 1.4ms 1.5 1.4 1.6
4 10.224.7.254 0% 4 2.1ms 3.5 1.9 7.3
5 10.224.10.4 0% 4 2.1ms 2.6 2.1 3.2
6 10.249.16.250 0% 4 4.1ms 3.9 3.5 4.2
7 10.249.17.254 0% 4 5.3ms 5.1 4.8 5.3
8 10.249.18.254 0% 4 6.5ms 6.8 6 8.4
9 10.249.19.254 0% 4 5.4ms 5.6 5.4 5.9
10 10.249.2.250 0% 4 21.2ms 12.8 5.1 21.2
11 10.249.4.233 0% 4 6.6ms 8.8 6.6 11.4
12 10.249.4.251 0% 4 23.8ms 16.2 9.8 23.8
13 10.140.7.4 0% 4 11.6ms 16.2 10.3 27.7
14 10.140.8.125 0% 4 37.4ms 30 12.7 40.8
15 10.140.9.121 0% 4 14.8ms 26.3 14.8 42.9
16 10.140.9.117 0% 4 16.7ms 18.3 16.6 20.2
17 10.140.42.241 0% 4 19.1ms 30.5 19.1 36.3
18 10.140.42.254 0% 4 21.4ms 26.8 21.4 37.3
19 10.140.32.3 0% 4 26.9ms 28.3 24.7 32.7
20 10.140.32.253 0% 4 31.2ms 35.6 30.2 45.1
21 10.78.238.241 0% 4 48.6ms 33.6 21.9 48.6
22 10.2.124.249 0% 4 39.4ms 52.6 39.4 62.2
23 10.86.84.225 0% 4 32ms 42.5 27.7 79.8
24 10.86.84.12 0% 4 25.9ms 34.4 25.9 48.1
25 10.2.173.201 0% 4 30.5ms 46.6 30.5 59.3
26 10.2.173.194 0% 4 41.7ms 52 37.5 69.8
27 10.44.185.23 0% 4 31.4ms 37.8 31.4 41
28 10.22.11.217 0% 4 30.5ms 38.5 30.2 59.4
29 10.22.11.186 0% 4 69.1ms 50.1 38.7 69.1
30 10.22.11.187 0% 4 48.5ms 46.9 30.7 69.1
31 10.2.21.5 0% 4 39.9ms 38.2 33.1 46.2
32 10.31.171.254 0% 4 69.3ms 48.7 36 69.3
33 10.31.171.6 0% 4 49.8ms 53.4 38.7 80.2
34 10.73.110.254 0% 4 72.7ms 57.9 43.9 72.7
35 10.73.110.2 0% 4 57.4ms 53.2 41.6 58.2
36 10.73.110.246 0% 4 55.6ms 56.4 49.9 60.7
37 10.73.106.1 0% 4 65.3ms 57.1 41.5 65.3

----------


## nikolas_350

Στο traceroute βλέπουμε τον αριθμό των διεπαφών που περνάμε και όχι των αριθμό των as. Π.χ σε έχω με 24 as path αλλά το trace μετρά 31
Για να κάνεις trace σημάνει ότι δεν έχεις κοπεί από κανένα φίλτρο και η πληροφορία το πώς να φτάσει ο ένας τον άλλον υπάρχει στους router (αφετηρία, ενδιάμεσους και τελικός προορισμός) 

Το πιο παλιό και μεγάλο φίλτρο που πρέπει να υπάρχει στους περισσότερους routers (όσοι έχουν), ορίζει τον μέγιστο αριθμό σε 29 AS (κόβει από 30 έως 600)
Αλλού το έχω βρει και με 20-600 http://www.awmn.net/showthread.php?t=36999


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

Από την δική σου πλευρά του δικτύου, πια είναι η μεγαλύτερη διαδρομή προς τον πιο μακρινό στο awmn; και θα υπολογίσουμε +1 γιατί μετά από σένα είναι και ο 22437.
Αυτό βέβαια θα το δούμε και σε βάθος χρόνου γιατί ανάλογα τις διαδρομές μπορεί να ανέβει ή να κατέβει λίγο.

----------


## grigoris

Σωστα, υπεθεσα μονορουτερικους κομβους  :: 

Αν καποιοι κομβοι εχουν στα φιλτρα μικρα as path τοτε θα ειναι unreachable. Αυτο το φιλτρο εχω δει κατα καιρους με το as-path να κοβεται στο 20. 

Εχει πεσει ο κομβος που βγαζει το wana σε κυπαρισσια και καλαματα οποτε εκει ευκολα θα υπηρχε +15 καθως το δικτυο απλωνεται σε μεγαλη εκταση. Οποτε το 50 θα ηταν το πιο ασφαλες για να μην κοβονται οι ασυρματοι.

----------


## senius

@nikolas_350, Ευχαριστούμε για τα φωτά σου και τις απαντήσεις σου.

@nikolas_350 όμως για να μην μπερδευόμαστε, θα μπορούσες εδώ, να ποσταρεις ένα σωστό routing filter (να αφαιρέσουμε τα παλαιά φίλτρα, και μέσω Terminal να προσθέσουμε το νέο κοινό για όλους μας φίλτρο), ώστε να το ακολουθήσουμε όλοι μας πλέων, και να ισχύει για όλες τις κοινότητες?

Γιατί απ' ότι κατάλαβα, οι περισσότεροι κόμβοι .... κάνουν του κεφαλιού τους .....

Ευχαριστώ εκ των προτέρων.

----------


## nikolas_350

Ευχαριστώ και εγώ για τα καλά σου λόγια!


Φίλτρο σημαίνει ότι κάτι κόβει. Τι πρέπει να κόβεται χωρίς δεύτερη σκέψη.
privet network τύπου 192.χ.χ.χ κλπ
public network
default gateway 0.0.0.0/0 
gateway για όλο το 10.0.0.0/8
δίκτυα μικρότερα από c class /24

Τι πρέπει να επιτρέπονται 
Ολόκληρο c class /24 εάν είναι στο 10.0.0.0/8
Μια σκέτη ip χωρίς υποδίκτυο μόνο εάν είναι από 10.0.0.1 – 10.1.255.255 (/15) για χρήση συνήθως anycast.
Για την σύνδεση με άλλες κοινότητες που είτε δεν τρέχουν bgp είτε βγαίνουν από ένα μόνο κόμβο στατικά είτε βγαίνουν μέσα από vpn θα πρέπει να μπορούν να ανακοινώνονται υποδίκτυα από /11 και μικρότερα έως /16 - /17. 
Δεν ξέρω εάν οι ανακοινώσεις που υπάρχουν τώρα από την lancom είναι λειτουργικές (μπορεί απλά να υπάρχουν και από πίσω να είναι κούφιες) αλλά το μέλλον κανείς δεν το ξέρει και εάν κάποια στιγμή επαναλειτουργήσουν, δεν θα πρέπει να είναι κομμένες. 
Για τα τρία πιο πάνω μπαίνει ένας περιορισμός για το μήκος της διαδρομής βγάζοντας άκυρες της αφύσικα μεγάλες διαδρομές.
Το πιο θα είναι αυτό το μήκος δεν το ξέρω, εξαρτάτε από το ίδιο το δίκτυο πόσο επεκτείνεται. 
Μια επιλογή για έως 30 as path length δείχνει προς το παρών ασφαλείς και ρεαλιστική. Εάν αλλάξουν τα δεδομένα θα πρέπει να αλλάξουν και οι ρυθμίσεις. 

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

Ένα κακό φίλτρο μπορεί να δημιουργήσει μεγάλο πρόβλημα. Ένα καλό φίλτρο είναι μόνο μια πρώτη σειρά αντιμετώπισης κακών ρυθμίσεων από αμέλεια ή εσκεμμένα αλλά σίγουρα όχι μια ολοκληρωτική λύση πλήρους προστασίας.

Επίσης εάν δεν βλέπεις τι κόβει το κάθε φίλτρο δεν βλέπεις ούτε εάν υπάρχει ανάγκη για κάποια αλλαγή ούτε εάν κάποιος δηλητηριάζει το δίκτυο με βλακείες. Αυτό φυσικά θα φαίνεται στους πιο κοντινούς του που έχουν φίλτρα , όχι στους επόμενους.
Οποίος βάζει φίλτρα θα πρέπει να ξέρει τι κάνουν αυτά. Σε περίπτωση οποιαδήποτε προβλήματος για να ανταποκριθεί αντίστοιχα.

Αν καταλήξουμε ότι τα πιο πάνω είναι σωστά, δεν μου έχει ξεφύγει κάτι, δεν κάνω κάπου λάθος υπολογισμό, δεν υπάρχει κάποια διαφωνία και αφού ακουστούν και άτομα από άλλα δίκτυα, πολύ ευχαρίστως να γράψω τις διορθώσεις αυτών που προτείνω στα φίλτρα που υπάρχουν ήδη. (στο δεύτερο που έχεις ποστάρει και του bds , στο πρώτο ορίζεις μόνο τι κόβεις και δεν μπαίνει εύκολα χέρι)

----------


## nikolas_350

Πως ένα φίλτρο μπορεί να επηρεάσει την δρομολόγηση;
Παρακάτω στην εικόνα έχω ζητήσει όλες τις διαδρομές από τον 21338 lancom
Για όλα τα c class και anycast φτάνω σε αυτόν περνώντας από 7 ενδιάμεσα AS.
Για να φτάσω στις /11 έως /17 ανακοινώσεις που έχει ο ίδιος ο 21338 θα πρέπει να ακολουθήσω άλλο μονοπάτι στο οποίο δεν υπάρχει φίλτρο που να τα κόβει, ανεβάζοντας την διαδρομή σε + 1 AS.

Από το άλλο link που είναι ακόμα πιο μακρυά έχω ανακοινώσεις μόνο για τα c class και anycast και δεν υπάρχει εναλλακτικό μονοπάτι χωρίς φίλτρα που να επιτρέπουν μόνο τα /24.

Κάπως έτσι μπορεί μακρινές κοινότητες να φαίνονται ακόμα πιο μακρυά και να έχουμε και ασυμμετρίες.

π.χ. τον Γρήγορη τον είχα σε 24 as path length που είναι ακριβώς το όριο για το πιο πάνω φίλτρο (και σίγουρα υπάρχει τουλάχιστον ένας πίσω από αυτόν ακόμα) εάν έπεφτε σε διαδρομή με τέτοιο φίλτρο θα κοβόταν και αν έβρισκε εναλλακτική θα ήταν με ακόμα περισσότερα as. 
Αν δεν αλλάξουν αυτά τα φίλτρα να δούμε της πραγματικές αποστάσεις δεν θα μπορούμε να υπολογίσουμε ρεαλιστικά νούμερα.

----------


## grigoris

Thanks για την αναλυση. Οποτε -αν εχω καταλαβει καλα- κυκολοφορουν 2 φιλτρα στα οποια μία εκ των διαφορων ειναι το διαφορετικο max AS path length? 
Και υπαρχουν κομβοι που δεν εχουν κανενα απο τα δύο ή εχουν καποια και εχουν βαλει οι ιδιοι χερι?

Μιας και υπαρχει μονο μια διαδρομη προς πελοποννησο (η μεσσηνια φαινεται πως εχει αποχωρησει προ πολλου), θα μπορουσαμε να δουμε λυσεις οπως ενα bgp conf για την περιοχη αυτη ή ακομη και ενα static route. To ενιαιο bgp δε νομιζω οτι προσφερει κατι, ιδιαιτερα απο τη στιγμη που επαφιεται στον καθε admin να περασει το φιλτρο που προτιμα.

----------

