route-map i łączenie kilku ACLi

Problemy związane ze switchingiem
Wiadomość
Autor
alchemyx
member
member
Posty: 19
Rejestracja: 18 sty 2008, 12:00

route-map i łączenie kilku ACLi

#1

#1 Post autor: alchemyx »

Witam,

Muszę zrobić pewną route-map (w końcu mam 6500, więc nie muszę sobie
żałować :D). Otóż w tej chwili jeśli dany delikwent ma zablokowany dostęp do internetu
to go wrzucam do odpowiedniej ACL i za pomocą route-map to zmieniam mu next-hop.

Kod: Zaznacz cały

route-map ZABLOKOWANI permit 10
 match ip address ZABLOKOWANI
 set ip next-hop A.B.C.D
!
ip access-list standard ZABLOKOWANI
 permit A.B.C.D
 permit A.B.C.D
 permit A.B.C.D
 permit A.B.C.D
...
Działa to jak powinno. Chciałbym teraz uzyskać taki efekt, że ruch na porty 80,
8080 i 53 trafiają do odpowiedniego next-hop, a reszta z tych adresów IP trafia
do Null0.

Oczywiście najprościej da się to zrobić robiąc ACLkę w rodzaju

Kod: Zaznacz cały

ip access-list extended ZABLOKOWANI-porty
 permit tcp A.B.C.D any eq 8080
 permit tcp A.B.C.D any eq 8080
 permit tcp A.B.C.D any eq 53
...
A następnie poprzednią ACLką pchać ruch do Null0:

Kod: Zaznacz cały

route-map ZABLOKOWANI permit 10
 match ip address ZABLOKOWANI-port
 set ip next-hop A.B.C.D
!
route-map ZABLOKOWANI permit 20
 match ip address ZABLOKOWANI
 set interface Null0
!
Pytanie brzmi - czy można to załatwić prościej? Na przykład w taki sposób, że
mam jedną stałą ACLkę z listą portów, a drugą z listą adresów IP? Pytam dlatego,
że aktualizuje to z poziomu odpowiednich skryptów, których nie chciałbym przerabiać
aż tak mocno, poza tym zamiast jednej ACLki z 300 wpisami, miałbym dwie, które
miałyby takich wpisów aż 1200.

Mam dziwne przeczucie, że się da :). Pod Linuksem robię to za pomocą łańcuchów
i markowania pakietów, ale tutaj nie mam takich rozbudowanych możliwości (za to
mam potęgę wydajności). Mam nadzieję, że coś z tych moich wypocin zrozumieliście.

Z góry dziękuje i pozdrawiam

Awatar użytkownika
kktm
CCIE
CCIE
Posty: 2025
Rejestracja: 20 paź 2004, 14:43
Lokalizacja: Wrocław

#2

#2 Post autor: kktm »

poczytaj o magicznym slowie continue, ktore mozna klepnac do routemapy.

Mam nadzieje ze o to chodzilo
"Trust no one"

alchemyx
member
member
Posty: 19
Rejestracja: 18 sty 2008, 12:00

#3

#3 Post autor: alchemyx »

Chyba tak, tylko nie bardzo to rozumiem, przykładowo:

Kod: Zaznacz cały

route-map TEST permit 10
 match ip address ACL1
 continue 20
!
route-map TEST permit 20
 match ip address ACL2
 set ip next-hop 1.2.3.4
!

Czyli pakiet, który spełnia ACL1 i ACL2 trafi do 1.2.3.4? Jak to się ma do sprzętowej
obsługi w 6500? No i czy dobrze rozumiem, że aby uzyskać to co chciałem to musiałbym zrobić coś na zasadzie tegp:

Kod: Zaznacz cały

route-map TEST permit 10
 match ip address ZABLOKOWANI-port
 continue 30
!
route-map TEST permit 20
 match ip address ZABLOKOWANI
 set interface Null0
!
route-map TEST permit 30
 match ip address ZABLOKOWANI
 set ip next-hop 1.2.3.4
!
Czy dobrze rozumuję?

aktualizacja:

A czym się różni zapis

Kod: Zaznacz cały

...
match ip address ACL1 ACL2
...
od

Kod: Zaznacz cały

...
match ip address ACL1
match ip address ACL2
...
? Bo chyba da się to zrobić bez continue.

PS. Niestety 6500 ignoruje continue:

Kod: Zaznacz cały

route-map ZABLOKOWANI-test, permit, sequence 10
  Match clauses:
    ip address (access-lists): ZABLOKOWANI-port
  Continue: sequence 30
  Set clauses:
  Policy routing matches: 887056 packets, 177590767 bytes
route-map ZABLOKOWANI-test, permit, sequence 20
  Match clauses:
    ip address (access-lists): ZABLOKOWANI
  Set clauses:
    interface Null0
  Policy routing matches: 0 packets, 0 bytes
route-map ZABLOKOWANI-test, permit, sequence 30
  Match clauses:
    ip address (access-lists): ZABLOKOWANI
  Set clauses:
    ip next-hop 80.245.176.3
  Policy routing matches: 0 packets, 0 bytes

Awatar użytkownika
gangrena
CCIE/CCDE
CCIE/CCDE
Posty: 2349
Rejestracja: 08 mar 2004, 12:17
Lokalizacja: Wawa

#4

#4 Post autor: gangrena »

alchemyx pisze:Bo chyba da się to zrobić bez continue.
Obrales dobry trop. Pomiedzy dwoma liniami match wystepuje AND. Czyli byloby:

Kod: Zaznacz cały

!
route-map TEST permit 10 
 match ip address ZABLOKOWANI-port 
 match ip address ZABLOKOWANI 
 set ip next-hop 1.2.3.4 
! 
route-map TEST permit 20 
 match ip address ZABLOKOWANI 
 set interface Null0 
!

alchemyx
member
member
Posty: 19
Rejestracja: 18 sty 2008, 12:00

#5

#5 Post autor: alchemyx »

Niestety mi to automatycznie łączy w jedno:

Kod: Zaznacz cały

route-map TEST permit 10
 match ip address ZABLOKOWANI-port ZABLOKOWANI
 set ip next-hop 1.2.3.4
!
route-map TEST permit 20
 match ip address ZABLOKOWANI
 set interface Null0
!
Co powoduje, że do 1.2.3.4 trafia ruch z portów na liście ZABLOKOWANI-port LUB z ipków w ZABLOKOWANI

PS. U mnie continue na 6500 jest po prostu ignorowane, więc chyba póki co nie ma innej metody jak PBR + ACL.
PS2. Stanęło na tym, że został zestawiony osobny vlan do serwera, który jest tym next-hopem, ipek next-hopa został ustawiony jako ten w vlanie i aclka jest jako out na ten vlan 999. Prosto i elegancko :)

ODPOWIEDZ