Adott az alábbi topológia:
A reflexive ACL-eket fogom tesztelni. R4 és R1 között BGP van. R4 default network-kel hirdeti magát R1 felé. R1 default-information originate-tel hirdet defaultot Area0-ba, és a transit linkeket BGP-be. Így R3-ról elérjük R4 loopbackjét.
R3#ping 4.4.4.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/50/96 ms
R3#
A reflexive ACL lényege, hogy csak akkor engedi be a forgalmat, ha belülről kezdeményeztük. Esetünkben ha R2 vagy R3 kezdeményez pl. telnet forgalmat R4 felé, akkor megy, R4 viszont nem tud befelé telnetelni, mert R1 látja, hogy nem belülről indult a TCP session.
Konfiguráció egyszerű. Kell egy inbound és egy outbound ACL. Befelé explicit meg kell adnunk, amit engedünk, kifelé szintén.
Inbound:
ip access-list extended INBOUND
evaluate REFLEXIVE
Tehát csak azt adtam meg, hogy minden forgalom, amely belülről indult, mehet. Kívülről semmit nem engedek.
Kifelé megengedem a telnetet és a pinget.
ip access-list extended OUTBOUND
permit icmp any any reflect REFLEXIVE
permit tcp any any eq telnet reflect REFLEXIVE
Ráteszem a WAN interface-re.
R1#sh run int f1/0
Building configuration...
Current configuration : 152 bytes
!
interface FastEthernet1/0
ip address 10.0.14.1 255.255.255.0
ip access-group INBOUND in
ip access-group OUTBOUND out
duplex auto
speed auto
end
R1#
Egy gond viszont van:
*Mar 1 01:57:30.039: %BGP-5-ADJCHANGE: neighbor 10.0.14.4 Down
Ennek oka, hogy R4-től a TCP R1 felé az INBOUND ACL implicit deny miatt nem jut be. Erre nem megoldás, ha R1-en kifelé engedem a TCP179-t, mert az ACL csak az átfolyó forgalomra érvényes, a local eszközön generáltra NEM.
Megoldás (mivel nem tudom, melyikük lesz a BGP “server”, engedem ki és be a TCP/179-t):
R1(config)#ip access-l ex INBOUND
R1(config-ext-nacl)#1 permit tcp any any eq 179
R1(config-ext-nacl)#2 permit tcp any eq 179 any
Ééééésss…
*Mar 1 02:00:17.335: %BGP-5-ADJCHANGE: neighbor 10.0.14.4 Up
Nézzük, tényleg úgy működik -e a dolog, ahogy elképzeltük.
Ping és telnet megy R4 felé, a wwww viszont nem!
R3#ping 4.4.4.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/47/76 ms
R3#telnet 4.4.4.4
Trying 4.4.4.4 ... Open
Password required, but none set
[Connection to 4.4.4.4 closed by foreign host]
R3#
R3#telnet 4.4.4.4 80
Trying 4.4.4.4, 80 ...
% Destination unreachable; gateway or host down
R3#
R1-en létrejönnek a “reflexive” ACL-ek:
R1#sh access-lists
....
Reflexive IP access list REFLEXIVE
permit tcp host 4.4.4.4 eq telnet host 10.0.13.3 eq 64427 (11 matches) (time left 298)
permit icmp host 4.4.4.4 host 10.0.13.3 (20 matches) (time left 249)
...
