2010-12-14

Question of the day: PACL vs VACL

дана топология:

R1 fa0/0 ----- fa0/1 SW1

конфиг R1:

hostname R1
!
int fa0/0
  ip add 10.0.0.1 255.255.255.0
  no shutdown
!
ip domain-name example.com
crypto key generate rsa 


конфиг SW1

hostname SW1
!
int vlan 1
 ip add 10.0.0.2 255.255.255.0
!
interface FastEthernet0/1
 switchport access vlan 1
 switchport mode access
 ip access-group pacl in
 spanning-tree portfast
!
vlan access-map vacl 10
 action drop
 match ip address vacl
vlan access-map vacl 20
 action forward
!
vlan filter vacl vlan-list 1
!
ip access-list extended pacl
 deny   icmp any any log
 permit ip any any log
ip access-list extended vacl
 permit tcp any any eq telnet log
 deny ip any any log
!
ip domain-name example.com
crypto key generate rsa 


вопрос 1: что мы увидим, выполнив на R1 команду ping 10.0.0.2?
вопрос 2: что мы увидим, выполнив на R1 команду telnet 10.0.0.2?
вопрос 3: что мы увидим, выполнив на R1 команду ssh 10.0.0.2?

ответы:
1) пинги заблокированы access-group на порту:
R1#ping 10.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)


2) телнет работает, несмотря на vacl :)
R1#telnet 10.0.0.2
Trying 10.0.0.2 ... Open
User Access Verification
Password:


3) 
R1#ssh 10.0.0.2
% No user specified nor available for SSH client


шутка :)


R1#ssh -l admin 10.0.0.2
Password:

трафик проходит.


усложняем задачу.
что будет, если на sw1 выполнить следующие команды:
int fa0/1
no ip access-group pacl in
и повторить действия 1-3?

ответ:
1) icmp проходят - их vacl не блокирует
2) а вот telnet - нет. он заблокирован vacl
3) ssh проходит
R1#ping 10.0.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R4#telnet 10.0.0.2
Trying 191.1.48.8 ... 
% Connection timed out; remote host not responding

R4#ssh -l admin 10.0.0.2

Password: 

что ж это такое? :)

сделаем еще один маленький эксперимент, который уж поставит все на свои места :)
int fa0/1
ip access-group pacl in
ip access-list extended vacl
permit tcp any eq telnet any 
что теперь будет если повторить действия 1-3?

ответ:
1) icmp заблокирован pacl
2) telnet заблокирован vacl
3) ssh работает, поскольку ни pacl, ни vacl его не блокирует

R1#ping 10.0.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
R4#telnet 10.0.0.2
Trying 10.0.0.2 ...
% Connection timed out; remote host not responding

R4#ssh -l admin 10.0.0.2

Password:

объяснения:
в ситуации 1, проверки VACL на порту fa0/1 не происходит. потому что на порту присвоен PACL.
в ситуации 2, проверка VACL имеет место на порту fa0/1, так как список доступа снят
в ситуации 3, проверка VACL имеет место точно так же как и в ситуации 1, но, теперь ОБРАТНЫЙ трафик от свича к пользователю попадает под список доступа! :)

выводы:
1) на порту в направлении in не может использоваться PACL и VACL одновременно. при заданом PACL проверка VACL не происходит (справедливо для каждого протокола в отдельности).
2) нужно учитывать что трафик порожденный свичем точно также проходит проверку по VACL in :)

Немає коментарів: