wildcard mask что это
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Wildcard в ACL: бинарные обратные маски
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Обратные маски, такие как значения dotted-decimal number (DDN), фактически представляют собой 32-разрядное двоичное число. Как 32-разрядное число, маска WC фактически направляет логику маршрутизатора бит за битом. Короче говоря, бит маски WC (wildcard), равный 0, означает, что сравнение должно выполняться как обычно, но двоичный 1 означает, что бит является подстановочным знаком и может быть проигнорирован при сравнении чисел.
Вы можете игнорировать двоичную маску WC. Почему? Что ж, обычно мы хотим сопоставить диапазон адресов, которые можно легко идентифицировать по номеру подсети и маске, будь то реальная подсеть или сводный маршрут, который группирует подсети вместе. Если вы можете указать диапазон адресов с помощью номера подсети и маски, вы можете найти числа для использования в вашем ACL с помощью простой десятичной математики, как описано далее.
Если вы действительно хотите знать логику двоичной маски, возьмите два номера DDN, которые ACL будет сравнивать (один из команды access-list, а другой из заголовка пакета), и преобразуйте оба в двоичный код. Затем также преобразуйте маску WC в двоичную. Сравните первые два двоичных числа бит за битом, но также игнорируйте любые биты, для которых маска WC случайно перечисляет двоичный 1, потому что это говорит вам игнорировать бит. Если все биты, которые вы проверили, равны, это совпадение!
Нахождения правильной обратной маски, соответствующей подсети
Во многих случаях ACL должен соответствовать всем хостам в определенной подсети. Чтобы соответствовать подсети с помощью ACL, вы можете использовать следующие сочетания:
Например, для подсети 172.16.8.0 255.255.252.0 используйте номер подсети (172.16.8.0) в качестве параметра адреса, а затем выполните следующие вычисления, чтобы найти обратную маску:
Продолжая этот пример, завершенная команда для той же подсети будет следующей:
Соответствие любому/всем адресам
В некоторых случаях вам может понадобиться одна команда ACL для сопоставления всех без исключения пакетов, которые достигают этой точки в ACL. Во-первых, вы должны знать (простой) способ сопоставить все пакеты с помощью ключевого слова any. Что еще более важно, вам нужно подумать о том, когда сопоставить все без исключения пакеты.
Во-первых, чтобы сопоставить все пакеты с помощью команды ACL, просто используйте ключевое слово any для адреса. Например, чтобы разрешить все пакеты:
Итак, когда и где вы должны использовать такую команду? Помните, что все ACL Cisco IP заканчиваются неявным отрицанием любой концепции в конце каждого ACL. То есть, если маршрутизатор сравнивает пакет с ACL, и пакет не соответствует ни одному из настроенных операторов, маршрутизатор отбрасывает пакет. Хотите переопределить это поведение по умолчанию? Настроить permit any в конце ACL.
Вы также можете явно настроить команду для запрета всего трафика (например, access-list 1 deny any) в конце ACL. Почему, когда та же самая логика уже находится в конце ACL? Что ж, ACL показывает счетчики списка для количества пакетов, соответствующих каждой команде в ACL, но нет счетчика для этого не явного запрета любой концепции в конце ACL. Итак, если вы хотите видеть счетчики количества пакетов, совпадающих с логикой deny any в конце ACL, настройте явное deny any.
Внедрение стандартных IP ACL
В этой лекции уже представлены все этапы настройки по частям. Далее суммируются все эти части в единую конфигурацию. Эта конфигурация основана на команде access-list, общий синтаксис которой повторяется здесь для справки:
Этап 1. Спланируйте локацию (маршрутизатор и интерфейс) и направление (внутрь или наружу) на этом интерфейсе:
Этап 2. Настройте одну или несколько команд глобальной конфигурации списка доступа для создания ACL, учитывая следующее:
Этап 3. Включите ACL на выбранном интерфейсе маршрутизатора в правильном направлении, используя подкоманду ip access-group number
Далее рассмотрим несколько примеров.
Стандартный нумерованный список ACL, пример 1
В первом примере показана конфигурация для тех же требований, что и на рисунках 4 и 5. Итак, требования для этого ACL следующие:
В примере 1 показана завершенная правильная конфигурация, начиная с процесса настройки, за которым следует вывод команды show running-config.
Во-первых, обратите внимание на процесс настройки в верхней части примера. Обратите внимание, что команда access-list не изменяет командную строку из приглашения режима глобальной конфигурации, поскольку команда access-list является командой глобальной конфигурации. Затем сравните это с выводом команды show running-config: детали идентичны по сравнению с командами, которые были добавлены в режиме конфигурации. Наконец, не забудьте указать ip access-group 1 в команде под интерфейсом R2 S0/0/1, который включает логику ACL (как локацию, так и направление).
В примере 2 перечислены некоторые выходные данные маршрутизатора R2, которые показывают информацию об этом ACL. Команда show ip access-lists выводит подробную информацию только о списках ACL IPv4, а команда show access-lists перечисляет сведения о списках ACL IPv4, а также о любых других типах ACL, настроенных в настоящее время, например, списки ACL IPv6.
Вывод этих команд показывает два примечания. В первой строке вывода в этом случае указывается тип (стандарт) и номер. Если существовало более одного ACL, вы бы увидели несколько разделов вывода, по одной на каждый ACL, каждая со строкой заголовка, подобной этой. Затем эти команды перечисляют счетчики пакетов для количества пакетов, которые маршрутизатор сопоставил с каждой командой. Например, на данный момент 107 пакетов соответствуют первой строке в ACL.
Наконец, в конце примера перечислены выходные данные команды show ip interface. Эта команда перечисляет, среди многих других элементов, номер или имя любого IP ACL, включенного на интерфейсе для подкоманды интерфейса ip access-group.
Стандартный нумерованный список ACL, пример 2
Если вы просмотрите все запросы начальника, требования могут быть сокращены до следующего:
Как оказалось, вы не можете сделать все, что просил ваш начальник, с помощью стандартного ACL. Например, рассмотрим очевидную команду для требования номер 2: access-list 2 permit 10.2.2.1. Это разрешает весь трафик с исходным IP-адресом 10.2.2.1 (сервер S1). Следующее требование просит вас фильтровать (отклонять) пакеты, полученные с того же IP-адреса! Даже если вы добавите другую команду, которая проверяет исходный IP-адрес 10.2.2.1, маршрутизатор никогда не доберется до него, потому что маршрутизаторы используют логику первого совпадения при поиске в ACL. Вы не можете проверить и IP-адрес назначения, и исходный IP-адрес, потому что стандартные ACL не могут проверить IP-адрес назначения.
Чтобы решить эту проблему, вам следует переосмыслить проблему и изменить правила. В реальной жизни вы, вероятно, вместо этого использовали бы расширенный ACL, который позволяет вам проверять как исходный, так и целевой IP-адрес.
Представьте себе, что ваш начальник позволяет вам изменять требования, чтобы попрактиковаться в другом стандартном ACL. Во-первых, вы будете использовать два исходящих ACL, оба на маршрутизаторе R1. Каждый ACL разрешает пересылку трафика с одного сервера в эту подключенную локальную сеть со следующими измененными требованиями:
Пример 3 показывает конфигурацию, которая удовлетворяет этим требованиям.
Как показано в примере, решение с номером ACL 2 разрешает весь трафик с сервера S1, при этом эта логика включена для пакетов, выходящих из интерфейса F0/0 маршрутизатора R1. Весь другой трафик будет отброшен из-за подразумеваемого запрета all в конце ACL. Кроме того, ACL 3 разрешает трафик от сервера S2, которому затем разрешается выходить из интерфейса F0/1 маршрутизатора R1. Также обратите внимание, что решение показывает использование параметра примечания списка доступа, который позволяет оставить текстовую документацию, которая остается в ACL.
Когда маршрутизаторы применяют ACL для фильтрации пакетов в исходящем направлении, как показано в Примере 2, маршрутизатор проверяет пакеты, которые он направляет, по списку ACL. Однако маршрутизатор не фильтрует пакеты, которые сам маршрутизатор создает с помощью исходящего ACL. Примеры таких пакетов включают сообщения протокола маршрутизации и пакеты, отправленные командами ping и traceroute на этом маршрутизаторе.
Советы по устранению неполадок и проверке
Устранение неполадок в списках ACL IPv4 требует внимания к деталям. В частности, вы должны быть готовы посмотреть адрес и обратную маску и с уверенностью предсказать адреса, соответствующие этим двум комбинированным параметрам.
Например, в примере 4 показана обновленная версия ACL 2 из примера 3, на этот раз с добавленным ключевым словом log. Внизу примера затем показано типичное сообщение журнала, в котором показано результирующее совпадение на основе пакета с исходным IP-адресом 10.2.2.1 (в соответствии с ACL) с адресом назначения 10.1.1.1.
Когда вы впервые устраняете неисправности на ACL, прежде чем вдаваться в подробности логики сопоставления, подумайте, как об интерфейсе, на котором включен ACL, так и о направлении потока пакетов. Иногда логика сопоставления идеальна, но ACL был включен на неправильном интерфейсе или в неправильном направлении, чтобы соответствовать пакетам, настроенным для ACL.
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Динамическая маршрутизация на протоколах RIP и EIGRP
Протокол OSPF
OSPF ( Open Shortest Path First ) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала link-state ( LSA ). Основан на алгоритме для поиска кратчайшего пути. Отслеживание состояния канала требует отправки объявлений о состоянии канала ( LSA ) на активные интерфейсы всех доступных маршрутизаторов зоны. В этих объявлениях содержится описание всех каналов маршрутизатора и стоимость каждого канала. LSA сообщения отправляются, только если произошли какие-либо изменения в сети, но раз в 30 минут LSA сообщения отправляются в принудительном порядке. Протокол реализует деление автономной системы на зоны (areas). Использование зон позволяет снизить нагрузку на сеть и процессоры маршрутизаторов и уменьшить размер таблиц маршрутизации.
Описание работы протокола:
Прямая и обратная маска
Шаблонная маска (wildcard mask) — маска, указывающая на количество хостов сети. Является дополнением для маски подсети. Вычисляется по формуле для каждого из октетов маски подсети как 255-маска_подсети. Например, для сети 192.168.1.0 и маской подсети 255.255.255.242 шаблонная маска будет выглядеть как 0.0.0.13. Шаблонная маска используется в настройке некоторых протоколов маршрутизации, а также является удобным параметром ограничений в списках доступа.
Расчёт Wildcard mask
Самостоятельно
Дана прямая маска 255.255.255.248. Выполните расчет и докажите, что обратная равна 0.0.0.7.
Практическая работа 8-2-1. Пример конфигурирования протокола OSPF для 4-х устройств
Соберите схему, изображенную на рис. 8.18.
Настройка роутеров
Выполним конфигурирование R1 ( рис. 8.19).
Теперь выполним настройки R2 ( рис. 8.20).
Если вам потребуется в CPT сбросить настройки роутера, то следует выключить его тумблер питания, а затем снова включить.
Проверка результата
Для проверки маршрутизации пропингуем ПК из разных сетей ( рис. 8.21).
Практическая работа 8-2-2. Настройка маршрутизации по протоколу OSPF для 6 устройств
Постройте следующую схему ( рис. 8.22).
Настроим loopback интерфейс на R1
На R1 настроим программный loopback интерфейс — алгоритм, который направляет полученный сигнал (или данные) обратно отправителю ( рис. 8.23).
IPv4-адрес, назначенный loopback-интерфейсу, может быть необходим для процессов маршрутизатора, в которых используется IPv4-адрес интерфейса в целях идентификации. Один из таких процессов — алгоритм кратчайшего пути (OSPF). При включении интерфейса loopback для идентификации маршрутизатор будет использовать всегда доступный адрес интерфейса loopback, а не IP-адрес, назначенный физическому порту, работа которого может быть нарушена. На маршрутизаторе можно активировать несколько интерфейсов loopback. IPv4-адрес для каждого интерфейса loopback должен быть уникальным и не должен быть задействован другим интерфейсом.
Настраиваем протокол OSPF на R1
Включаем OSPF на R1, все маршрутизаторы должны быть в одной зоне area 0 ( рис. 8.24).
Подводим курсор мыши к R1 и наблюдаем результат наших настроек ( рис. 8.25).
Обратите внимание, что физически порта 192.168.100.1 нет, он существует только логически (программно).
Настроим loopback интерфейс на R2
На R2 настроим программный loopback интерфейс по аналогии с R1 ( рис. 8.26).
Настраиваем OSPF на R2
Включаем протокол OSPF на R2, все маршрутизаторы должны быть в одной зоне area 0 ( рис. 8.27).
Подводим курсор мыши к R2 и наблюдаем результат наших настроек ( рис. 8.28).
Настраиваем loopback интерфейс на R3
Делаем все аналогично ( рис. 8.29).
Настраиваем протокол OSPF на R3
Здесь делаем все, как раньше ( рис. 8.30).
Проверяем работу сети
Убеждаемся, что роутер R3 видит R2 и R1 ( рис. 8.32).
Теперь посмотрим таблицу маршрутизации для R3 ( рис. 8.33).
В этой таблице запись с буквой «О» говорит о том, что данный маршрут прописан протоколом OSPF. Мы видим, что сеть 192.168.1.0 доступна для R3 через адрес 10.10.11.1 (это порт gig0/1 маршрутизатора R1). Аналогично, сеть 192.168.2.0 доступна для R3 через адрес 10.10.12.1 (это порт gig0/1 маршрутизатора R2).
Теперь проверяем доступность разных сетей ( рис. 8.34).
Обратная маска
Класс A: 8 бит для номера сети 24 бита для номера хоста
Класс B: 16 бит на сеть и 16 бит на хост
Класс C: 24 бита на сеть 8 бит на хост
Представление маски подобным образом, вполне, соотносится с термином битовой маски, т.е. единицы и нули определяют действия над конкретными битами в исходном числе, но плохо соотносится с форматом IP адреса – номер сети всегда определяется битами вначале, номер хоста битами в конце. Поэтому представление маски в виде 32-х битного поля является избыточным. Для однозначного определения маски можно определить только количество подряд идущих единиц с начала IP адреса от 0 до 32 – префиксное обозначение, обычно записывается через дробь после IP адреса: для примера выше 10.10.0.1/22 – 22 бита номер сети и 32-22=10 бит номер хоста. Если говорит про IPv6 адрес, то там определяется только префиксная запись маски/адреса – 2001:d8:a15e::1/48
Теперь представим маску таким образом, чтобы единицы определяли те биты в IP адресе которые формируют номер хоста, а нули те биты которые формируют номер сети, в результате получаем инверсную маску:
Это то что умеет делать любой, или почти любой, сетевой калькулятор, здесь не двоичная арифметика, точнее не арифметика, а базовые манипуляции по переводу чисел между системами счисления.
Получение инверсной маски из прямой, и обратное действие осуществляется инвертированием битового поля – замена 0 на 1, а 1 на 0. Если использовать десятичное представление то получение инверсной маски вычисляется следующим образом: от 255 отнимается число соответствующее значению октета в прямой маске, для примера выше:
Используя термин инверсная маска, я умышленно исказил общепринятое название русскоязычного термина – обратная маска (invers mask, wildcard mask) – потому что обратная маска это гораздо более мощный механизм чем просто другое обозначение битов для нумерации сети и хоста в IP адресе. Обратная маска не обязана содержать подряд идущие единицы или нули, и единицы это не просто обозначение области хоста в IP адресе. Единицы это обозначение битов в IP адресе, которые могут меняться при проверке условий, а нули фиксируют неизменные биты. То есть русскоязычный термин обратная маска больше соответствует «wildcard mask», нежели «invers mask», хотя в технической документации употребляется оба в одинаковых смыслах.
Область применения обратной маски это условные операции с IP адресами в cisco like интерфейсе и идеологии (не только cisco устройства). К этим областям относятся в частности списки доступа (ACL) – позволяет создавать не просто условия хост из этой сети, а гораздо более гибкие правила и определение сетей, а также в конфигурировании протоколов маршрутизации, OSPF например – позволяет создавать компактные правила для анонса не подряд идущих сетей.
Решим задачу запрета доступа с нечётных хостов из сети 192.168.0.0/24 куда либо. Если в нашем распоряжении есть только прямая маска, то нам надо составить правило на каждое из нечётных чисел в этой сети. От 192.168.0.1 до 192.168.0.253. IP 192.168.0.255 является широковещательным адресом и нам его обрабатывать не надо. Получаем (в нотации cisco):
access-list 101 deny ip 192.168.0.1 255.255.255.255 any
В конце мы разрешили доступ всему что мы не запретили. Теперь надо ассоциировать этот ACL с нужным интерфейсом, Fa0/1 например:
Используем обратную маску, напомню, что 1 – биты которые могут меняться, 0 которые не могут. Маска /24 = 255.255.255.0 в инверсной маске имеет 0.0.0.255 или 00000000.00000000.00000000.11111111. То есть последний октет может меняться во всех битах, но мы знаем что 0 бит надо оставить неизменным, поэтому изменим обратную маску следующим образом: 00000000.00000000.00000000.11111110 или 0.0.0.254. Заметим что если мы преобразуем эту запись в прямую маску, по правилам для инверсной маски то получится 255.255.255.1, что является неверной записью для маски, и с этим сетевой калькулятор уже не справится (или я их не видел).
Значит наша сеть 192.168.0.0/24 должна в последнем октете нулевом бите всегда иметь 1, то есть 192.168.0.1 с обратной маской 0.0.0.254.
Единицы в обратной маске это изменяемые биты в адресе — это биты в последнем октете со 1 по 7, с их использованием и нулевым битом всегда равным единице, мы можем составить любое нечётное число от 1 до 255.
Теперь напишем ACL, т.к. значение IP 192.168.0.255, имеет специальный смысл, разрешим его в первой строчке, иначе оно тоже будет запрещено:
Итого: 3 строчки вместо 128, можно сказать «Ого!».
Усложним задачу, нечётным должен быть предпоследний октет в подсетях 192.168.0.0/16. То есть для сетей 192.168.1.0/24, 192.168.3.0/24 и т.д. доступ надо закрыть. Изменим нашу обратную маску – инверсная маска для /16 = 0.0.255.255, предпоследний октет, мы по аналогии с первым примером сделаем 254, итого получим 0.0.254.255. И наши сети должны иметь нечётный предпослений октет 192.168.1.0 с обратной маской 0.0.254.255.
В качестве закрепления материала, можно попробовать составить последний ACL с использованием только инверсной маски (т.е. где 0 и 1 идут строго подряд, в начале и соответственно в конце записи), и посчитать выгоду в количестве строчек.
Возможный вопрос, что делать если надо запретить чётные сети: в чётных числах нулевой бит всегда равен 0, соответственно вместо единички ставим 0. Для первого примера, всё тоже, но чётные хосты:
Очень много споров слышал по поводу: насколько часто данный механизм применяется на практике. За 4 года работы в отрасли применял только один раз, но этот раз позволил сократить ACL с несколько тысяч записей, если бы использовались стандартные маски (или просто инверсия к стандартной маске) до одной, собственно пример этого есть выше.
Access Control List
Access Control List или ACL (или просто Access List) – список правил, которые позволяют контролировать и фильтровать трафик. Правила внутри ACL называются access control entries (ACE).
Основное применение ACL (Access List – Список Доступа) – фильтрация трафика, но так же он находит применение и в других функциях сетевого оборудования.
В cisco-устройствах Access Control List разделяют на два вида:
Прежде чем переходить к практике надо узнать, что такое wildcard mask.
Wildcard Mask
Мы уже в курсе что такое маска и как она образуется. Wildcard mask тоже является маской, только “странной” или “обратной” (названия с просторов в Интернете). Нам предстоит узнать о ней побольше, т.к. она используется в ACL.
Ее называют “обратной”, потому что единицы и нули в маске меняют свое значение. Теперь 0 – это номер сети, а 1 это хостовая часть.
“Все познается в сравнении”, поэтому предлагаю сравнить обычную маску с wildcard маской. Начнем с классовых масок.
Таблица 4.1 Сравнение “обычной” маски с wildcard маской
Класс | “Обычная” маска | “Обычная” маска, двоичный вид | Wildcard маска | Wildcard маска, двоичный вид |
---|---|---|---|---|
A | 255.0.0.0 | 11111111.00000000.00000000.00000000 | 0.255.255.255 | 00000000.11111111.11111111.11111111 |
B | 255.255.0.0 | 11111111.11111111.00000000.00000000 | 0.0.255.255 | 00000000.00000000.11111111.11111111 |
C | 255.255.255.0 | 11111111.11111111.11111111.00000000 | 0.0.0.255 | 00000000.00000000.00000000.11111111 |
Как вычислить wildcard маску имея обычную маску?
Разберем случай с не классовой маской (которая дробит октет на сетевую часть и хостовую, подробнее тут), т.е. один из октетов отличен от чисел 0 и 255 (“кривой” октет). В начале, все октеты “обычной” маски, со значением 255, будут соответствовать 0 в wildcard маске, а значения 0 в “обычной” маске, в wildcard – 255. Далее надо взять октет, который отличен от 0 и 255 (“кривой” октет) и вычесть его из числа 255, таким образом мы получим значение этого октета (“кривого” октета) в wildcard маске. Например маске 255.255.240.0, будет соответствовать wildcard маска – 0.0.15.255, 255 – 240=15.
На практике будет очень много букв и картинок, наберитесь терпения.
Общая информация
Packet Tracer version: 6.2.0
Рабочий файл: скачать
Тип: Теория и практика
Версия файла: 2.1
Уже получили: 39 пользователей
Получить достижение
Код активации можно получить выполнив практическое задание
Уже получили 62 пользователей
Начальные данные
Все “манипуляции” можно осуществлять при помощи PC0 (либо с других PC в сети).
В данной практической работе сеть уже спланирована, адресация распределена по всем устройствам в сети. Например, на PC0 вы можете видеть “.22.0”, это означает, что он имеет ip адрес 172.16.22.0.На всем сетевом оборудовании настроен telnet-сервер, пароль – cisco123.
Рисунок 4.1 Схема сети из практической работы
Выполнение
Standard ACL
Прежде чем переходить к процессу создания ACL, надо определиться какой трафик мы хотим отфильтровать. В случае с Standard ACL выбор у нас не большой, т.к. фильтрация будет осуществляться только по ip адресу источника пакета.
Ради примера, мы запретим PC3 выходить за пределы своей сети, аналогично запретим диапазону ip адресов 172.16.20.192-172.16.20.255 (в этот диапазон попадает PC1) выход за пределы 172.16.20.0/22.
Номер ACL – это число, которое определяет какой ACL создается, Standard или Extended:
Начинаем собирать команду. Уже понятно какие номера можно использовать, чтобы создать Standard ACL.
access-list 11
Действия очень просты – разрешить или запретить, permit или deny (так же на этом этапе можно вставить комментарий remark ).
Продолжим собирать команду, добавим действие – запретить.
access-list 11 deny
С критерием немного сложнее, но разобраться можно. Всего три варианта критериев:
access-list 11 deny host 172.16.27.110
Отлично, но остался еще один ОЧЕНЬ ВАЖНЫЙ момент.
Следуя выше сказанному, создадим еще одно правило “разрешить ВСЕ”.
access-list 11 permit any
Предлагаю ввести эти правила на роутер и изучить команду show access-list.
Разберем вывод команды show access-list (следует отметить, что эта команда показывает все созданные ACL). Первой строчкой указано, что имеется Стандартный ACL с номером 11, дальше идет перечисление ACE. Каждый ACE имеет свой порядковый номер. По умолчанию первый ACE имеет номер 10, второй ACE 20 и т.д. каждый раз прибавляется шаг 10 (в дальнейшем мы узнаем, как использовать этот номер). Теперь снова ОЧЕНЬ ВАЖНЫЙ момент.
Рисунок 4.2 Проверка доступности сети 172.16.20.0/22 с PC3, до применения фильтрации
Рисунок 4.3 Проверка доступности сети 172.16.20.0/22 с PC3, после применения фильтрации
На рисунок 4.3 опять проверяем доступность с PC3 до PC0, но как видим, роутер возвращает ошибку “указанный хост не доступен”. Под рисунком 4.3 представлен вывод команды show access-list в котором появилась строчка (4 match(es)), она указывает на то, что под это правило попало 4 пакета.
Рисунок 4.4 Проверка доступности с CiscoLearning до PC0
Как видим, правило под номером 20 тоже работает (такое большое количество матчей (matches) вызвано тем, что в фоновом режиме запущена проверка доступности некоторых хостов и они проходят через роутер). Если бы этого правила не было, то весь трафик блокировался “неявным” (невидимым) правилом deny any (далее мы опробуем его на практике).
Теперь немного “лирики”, прежде чем переходить к созданию нового ACL. Есть еще один вариант, куда мы могли установить ACL 11, на интерфейс Fa0/0 в направлении out. Тогда бы фильтровался исходящий трафик и наша цель тоже была бы достигнута. НО! Если трафик фильтруется как исходящий это значит, что он проходит процесс маршрутизации и тратит ресурсы роутера на обработку пакетов и уже после этого фильтруется, что не правильно. Поэтому рекомендуется устанавливать правила фильтрации, максимально близко к источнику, чтобы не растрачивать аппаратные средства сетевого оборудования на “лишние” действия.
ACL создан, осталось “повесить” его на интерфейс. Перед этим советую убедиться, что связь между PC1 и CiscoLearning присутствует. Фильтрацию будем осуществлять на интерфейсе Fa0/0, для входящего трафика.
Проверим доступность, между PC1 и CiscoLearning, рисунок 4.5. Мы снова можем видеть ошибку “указанный хост не доступен”.
Рисунок 4.5 Проверка доступности между PC1 и CiscoLearnin
“Снимите” ACL 12 с интерфейса, но не удаляйте, если хотите получить достижение!
Extended ACL
Extended ACL немного сложнее, чем Standard ACL, т.к. в критерии фильтрации добавляются ip адрес получателя и фильтрация транспортного уровня (фильтрация по портам).
Теперь зададимся целью, что нам надо отфильтровать.
Критерии будем разбирать подробнее. Прежде всего надо указать какой тип фильтрации будет использован в правиле. Типов много, разберем основные:
Начнем с простого, с типа ip. Тогда команда преобразится так – access-list 120 deny ip
Отлично! Теперь создадим ACL 120, “повесим” его на интерфейс Fa0/0, фильтровать весь входящий трафик. Не забываем, что если мы не разрешим остальной трафик, то по умолчанию, то что не попадает под правила в ACL будет запрещено! Поэтому так же добавим правило, “разрешить ВСЕ”.
Рисунок 4.6 Проверка доступности между PC2 и sw-outside-1
Переходим к созданию следующего правила, точнее сразу двух правил – Разрешить диапазону ip адресов 172.16.20.252-172.16.20.255 доступ к CiscoLearning по 80-му порту (tcp), всем остальным запретить.
Если нам надо разрешить, то это означает permit. Теперь мы переходим к типу фильтрации tcp – фильтрация по tcp портам. Прежде чем переходить к написанию команды, надо объяснить как устанавливается фильтрация по портам. После указания ip адреса (не важно получателя или отправителя), можно (можно, но не обязательно!) указать порт или диапазон портов при помощи атрибутов:
Научимся добавлять правила в уже существующий ACL, а заодно и удалять конкретные правила из ACL. (Будьте очень аккуратны, удалите правило permit ip any any – потеряете доступ к r1!)
Крепитесь! Осталось немного.
Рисунок 4.7 Проверка доступности сервера Server1 по 80-му порту
Осталось последнее – создать ACL разрешающий доступ только CiscoLearning, tacacsGUI и sw-outside-1.
Мы создали ACL с именем super-puper-acl, перешли в режим настройки этого ACL. Добавили правило permit ip 172.16.27.88 0.0.0.7 any (под это правило попадают CiscoLearning и tacacsGUI), т.к. мы не указали номер и это первое правило, то ему автоматически присваивается номер 10. Во втором правиле мы явно указали номер – 40. ОЧЕНЬ ВАЖНО! Мы не добавили правила “разрешить ВСЕ”, поэтому если трафик не попадает под указанные правила, он будет блокироваться скрытым правилом (под это правило попадает PC3).
Теперь самостоятельно “повесьте” ACL super-puper-acl, на интерфейс Fa0/1 (команда ip access-group super-puper-acl in )и проверьте доступность CiscoLearning с сетью 172.16.20.0/22. А так же проверьте доступность этой сети с PC3.