Создание стандартного ACL

Стандартный ACL позволяют фильтровать трафик по одному признаку – адресу отправителя (в CCNA конкретно рассматривается только ip адрес отправителя). В этой статье поговорим о настройке стандартного ACL. Рекомендую сначала почитать общую статью об ACL, если вы этого ещё не сделали.

Итак, стандартный ACL может быть именованный и нумерованный.

Нумерованный стандартный ACL

Нумерованный стандартный ACL должен иметь номер с 1-го по 99 или с 1300 по 1999. Причём номер относится ко всему ACL (ко всем его строчкам).

Например, чтобы запретить трафик с адреса 192.168.0.1 надо написать следующий стандартный ACL:

R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#access-list 10 deny host 192.168.0.1
R1(config)#access-list 10 permit any

Первая строчка запрещает трафик с указанного адреса, вторая – разрешает остальной трафик. access-list 10 – обозначает принадлежность строчки к ACL с номером 10, далее идёт действие (permit – разрешить, deny – запретить, либо remark – строчка ничего не разрешает и не запрещает, а содержит текст комментария, чтобы мы не забыли, зачем мы делали то или иное действие). Потом идёт адрес, с которым будет сверяться адрес отправителя пакета. Если адреса совпадают – выполняется действие. Адрес можно задать несколькими способами:

  • 192.168.0.5 – будет подразумеваться, что это один хост, то есть wildcard маска 0.0.0.0
  • 192.168.0.0 0.0.255.255 – сеть с wildcard маской, эта конкретно маска соответствует префиксу /16
  • any – любая сеть
  • host 192.168.0.1 – один конкретный хост (а не вся сеть).

Применяется такой ACL на интерфейс следующим образом:

R1(config)#interface fa0/0
R1(config-if)#ip access-group 10 in

В этом примере мы применили ACL 10 на интерфейс Fa0/0 для фильтрации входящего трафика.

Нумерованный ACL нельзя отредактировать можно только добавить строчку в конец. В нашем примере добавлять строчку в конец не имеет смысла, так как permit any разрешает весь трафик и дальше проверка не производится. Единственный способ отредактировать нумерованный ACL – вывести кусок конфига с ним, скопировать в блокнот существующий ACL, отредактировать его, удалить старый, вставить новый. Допустим, нам надо добавить в ALC 10 запрет трафика ещё и из второй половины сети 192.168.0.0. Эта строчка должна встать по логике вещй между первой и второй. Выводим конфиг (весь, или только часть, с acl):

R1#show running-config 
…
!
access-list 10 deny host 192.168.0.1
access-list 10 permit any
!
…

Копируем то что касается ACL 10 блокнот, добавляем туда нужную строчку, затем удаляем старый ACL:

R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#no access-list 10

И вставляем новый:

R1(config)#access-list 10 deny host 192.168.0.1
R1(config)#access-list 10 deny 192.168.0.128 0.0.0.127
R1(config)#access-list 10 permit any

На всякий случай, повторно применяем на интерфейсе новый ACL

R1(config)#interface fa0/0
R1(config-if)#ip access-group 10 in

Именованный стандартный ACL

Именованные ACL создаются иначе.

R1(config)#
R1(config)#ip access-list standard MY_ACL
R1(config-std-nacl)#deny host 192.168.0.1
R1(config-std-nacl)#permit any
R1(config-std-nacl)#end
%SYS-5-CONFIG_I: Configured from console by console
R1#show access-lists 
Standard IP access list MY_ACL
    deny host 192.168.0.1
    permit any

Мы создали ACL с именем MY_ACL, который делает то же самое, что и ACL 10 из предыдущего примера. В качестве аргумента команды ip access-list необходимо указать не только имя, но и тип ACL (standard – стандартный и extended – расширенный), так как маршрутизатор не может сам определить тип. В случае использования нумерованного, тип определялся по номеру (с 1-го по 99 или с 1300 по 1999 – значит стандартный). Внутри именованного ACL уже не надо упоминать имени или номера, так как мы попадаем в режим редактирования конкретного ACL (config-std-nacl) и все строчки ACL вводим сразу начиная со слова deny, permit или remark.

Применяется именованный ACL так же как и нумерованный:

R1(config)#interface fa0/0
R1(config-if)#ip access-group MY_ACL in
Тэги: 

Комментарии

Добрый день!
На Cisco Packet Tracer пытаюсь закрыть трафик из сети 192.168.7.0 (mask 255.255.255.0) в другую сеть.
Пишу:
R8(config)#ip access-list standard ST8
R8(config-std-nacl)#deny 192.168.7.0 0.0.0.255
R8(config-std-nacl)#permit any

R8(config)#interface fa0/1
R8(config-if)#ip access-group ST8 in

Но пинги идут без проблем. Стоит все это ввести без 'permit any' закроется все (пишет Destination host unreachable). Что не так?

Аватар пользователя bacek
А что пингуете? Если сам роутер - то это мимо ACL идёт. А вот через роутер не должно пинговаться при таком конфиге.

Добавить комментарий