Маршрутизация
Ну куда же без неё! Как у любого маршрутизатора (ASA тоже им является, т.к. использует таблицу маршрутизации для передачи пакетов) сети, настроенные на интерфейсах, автоматически попадают в таблицу маршрутизации с пометкой «Присоединенные» (connected), правда при условии, что сам интерфейс находится в состоянии up. Маршрутизация пакетов между этими сетями производится автоматически.
Те сети, которые ASA сама не знает, надо описать. Это можно сделать вручную, используя команду
route {interface} {network} {mask} {next-hop} [{administrative distance}]
Указывается тот интерфейс, за которым надо искать next-hop, т.к. ASA сама не делает такого поиска (в отличие от обычного маршрутизатора cisco). Напоминаю, что в таблицу маршрутизации попадает только один маршрут в сеть назначения, в отличие от классическим маршрутизаторов, где может использоваться до 16 параллельных путей через разные интерфейсы.
Если же есть несколько маршрутов в одну ту же сеть через один и тот же интерфейс (максимум — три маршрута), то выбор адреса следующей пересылки происходит путем вычисления хэша адресов источника и назначения пакета.
Примечание: про избыточные маршруты написано на сайте у cisco. Маршруты действительно записываются, но логику выбора next-hop пока определить не удалось. Также не удалось заставить стабильно использовать все избыточные маршруты. Ведется исследование.
Маршрут по умолчанию задается таким же образом
route {interface} 0.0.0.0 0.0.0.0 {next-hop}
Если ASA не имеет записи в таблице маршрутизации о сети назначения пакета, она пакет отбрасывает.
Если возникает задача сделать запасной статический маршрут, который будет работать только при пропадании основного, то это решается указанием так называемой Административной дистанции маршрута. Это такое число от 0 до 255, которое указывает, насколько хорош метод выбора маршрута. Например, статическим маршрутам по умолчанию сопоставлена AD 1, EIGRP – 90, OSPF – 110, RIP – 120. Можно явно указать AD для запасного маршрута больше, чем AD основного. Например:
route outside 0.0.0.0 0.0.0.0 {next-hop} 1
route backup 0.0.0.0 0.0.0.0 {next-hop_backup} 210
Но в этой ситуации есть один важный вопрос: как заставить «пропасть» основной маршрут? Если физически упал интерфейс все очевидно – само получится, а если интерфейс поднят, а провайдер погиб? Это очень распространенная ситуация, учитывая , что на ASA сплошной ethernet, который физически падает крайне редко.
Для решения этой задачки используется технология SLA. Она весьма развита на классических маршрутизаторах, а на ASA с версии 7.2 внедрили только самый простой механизм: доступность некоторого хоста по протоколу icmp. Для этого создается такая «пинговалка» (sla monitor)
sla monitor {#}
type echo protocol ipIcmpEcho {ip адрес} interface {интерфейс}
Далее, её необходимо запустить, указав время начала (есть возможность запустить «сейчас») и окончания работы (можно задать работу до бесконечности)
sla monitor schedule {#} start now life forever
Но и это ещё не все. Надо создать «переключатель» (track) который будет отслеживать состояние «пинговалки».
track {track #} rtr {sla #} reachability
Не спрашивайте, почему привязка пинговалки производится ключевым словом rtr – это ошметки несогласованности настроек на маршрутизаторах cisco. К слову, на самих маршрутизаторах такое несоответствие уже починили, а вот на ASA ещё нет.
И вот теперь все готово, чтобы применить эту конструкцию к статической маршрутизации
route outside 0 0 {next-hop_outside} track {#}
route backup 0 0 {next-hop_backup} 210
Теперь, пока пингуемый хост доступен, track будет в поднятом (чуть не написал в «приподнятом» :)) состоянии и основной маршрут будет в таблице маршрутизации, но как только связь пропадет, через заданное количество потерянных пакетов (по умолчанию пакеты посылаются раз в 10 секунд и ждем пропадания трех пакетов) track будет переведен в состояние down и основной маршрут пропадет из таблицы маршрутизации, а пакеты будут отправляться по запасному пути.
Приведу пример конфига двух дефолтных маршрутов через разных провайдеров с проверкой доступности основного провайдера:
sla monitor 1
type echo protocol ipIcmpEcho 1.1.1.1 interface outside
!
sla monitor schedule 1 start now life forever
!
track 11 rtr 1 reachability
!
route outside 0 0 1.1.1.1 track 11
route backup 0 0 2.2.2.1 210
Динамическая маршрутизация на ASA возможна по протоколам RIPv1,2, OSPF, EIGRP. Настройка этих протоколов на ASA очень похожа на настройку маршрутизаторов cisco. Пока динамической маршрутизации касаться в этих публикациях не буду.
Предыдущая статья SNAF <<< >>> Следующая статья SNAF
Метки: ASA, SNAF, курс, маршрутизация
Опубликовано: Безопасность cisco
Небольшое дополнение в случае использования PPPoE на asa. В команде route нужно обязательно ставить параметр {next-hop}, и у возникает вопрос какой next поставить в этом случае (connected сети то нет).
Экспериментально выяснил что адрес можно ставить любой, на работу он не влияет. Я обычно выбираю из zeroconf диапазона.
route outside 0 0 169.254.8.8