Проблема нежелательного транзита через Enterprise-сеть и её решение с помощью исходящей фильтрации.
Что произойдёт с Enterprise-сетью без исходящей фильтрации BGP при мультихоминге?
Что отлавливает регулярное выражение ^$ в AS-PATH access-list?
В каком направлении настраивается фильтрация для предотвращения транзита?
Почему транзитность нежелательна для Enterprise-сети?
Что необходимо выполнить после применения нового фильтра BGP?
Если рассматривать фильтрацию на основе атрибута IS-PASS со стороны конечного заказчика, то есть в нашем случае со стороны IS-123, то наибольшее применение фильтрации по IS-PASS нашло не для входящих апдейтов, а для исходящих. Каким образом? Дело в том, что если вернуться в начало нашего курса, когда мы говорили про автономные системы, я говорил, что их глобально можно разделить на условные две категории. Это транзитные и нетранзитные. Напоминаю, что транзитная автономная система, которая принимает через себя трафик через какой-то один вход и выпускает трафик через выход. Нетранзитная автономная система, которая через себя, вы насквозь трафик не прогоняете. Что же может случиться, если вы не примените, например, никаких фильтров?
Предположим, что муртизатор R6 отдает некий префикс муртизатору R1, муртизатор R1 передает его на муртизатор R2, и R2 отдает его, например, на муртизатор R5. Это с одной стороны. С другой стороны, муртизатор R6 отдает его в сторону муртизатора R9, тот отдает его в сторону R8, потом на R7 и на R5. И таким образом муртизатор R5 сравнивает два апдейта, первый и второй, и есть вероятность такая, что лучшим будет выбран первый. И таким образом у вас трафик между двумя сервис-провайдерами может политься транзитом через вашу АЭС. Поэтому в большинстве сценариев, наверное, где-то в 95% случаев, где-то в 99% случаев, при подключении к нескольким сервис-провайдерам на стороне заказчика
используется фильтрация маршрутов. Каким образом она делается? Итак, мы принимаем чаще всего все, что хотим принимать. То есть мы принимаем префикс от R6. Соответственно, здесь будет АЭС-пасс состоять из автоматических систем, некий XYZ. Далее мы передаем этот маршрут в сторону муртизатора R2. А на муртизаторе R2 в сторону муртизатора R5 у нас настроено раутмап в направлении out. В направлении out. В этом раутмапе мы очень часто захотим передавать только наши локальные префиксы. То есть в частности АЭС-пасс, у которых на момент передачи пустой. Передача пустая. То есть мы отлавливаем префиксы, которые порождены внутри нашей автономной системы
по АЭС-пассу. И только их передаем на выход. Соответственно, вот такой транзитный апдейт, который прилетел от муртизатора R6, он будет дрохнуть. Потому что не пройдет правило АЭС-фильтрация. Соответственно, такие вот раутмапы на выход, они вешаются на всех точках присутствия, то есть на всех стыках с операторами. То есть вы вешаете такой апдейт со стороны муртизатора R2 в сторону R5, на муртизаторе R1 в сторону R4 и на муртизаторе R1 в сторону R6. Давайте я вам сейчас просто сначала продемонстрирую, каким образом автоматическая система 123 может стать транзитным для трафика, например, от муртизатора R5 в сторону R6. Итак, давайте посмотрим на муртизаторе R6, посмотрим show ipvgpin.
Как вы видите, есть префикс 666. Нам муртизатор R5 будет достаточно будет достаточно в сторону соседа муртизатора R2, например, изменить вес. Изменить вес. Для открытия IPvgp 10252. Отвесим pollin. Окей, теперь show ipvgpin. Как мы видим, наилучшим теперь стал маршрут через AmorSataR2. Запускаем TraceRoute на 6666. И, как вы видите, пакетик начинает бежать на AmorSataR2. А дальше, я думаю, что дело просто в том, что мы не адвертайзим сетку в BGP.
Сделаем раутер BGP 4578, Network 5555, Mask. И запускаем TraceRoute 6666, SourceLoopback 0, Numeric. И, как вы видите, пакеты идут по направлению AmorSataR2, AmorSataR1 и AmorSataR2. Мы выжимаем с R5 на R2, с R2 на R1 и с R1 на R6. Как этого избежать? На граничных амортизаторах настраиваем фильтры в направлении Out. Итак, на AmorSataR1 создаем IP ISPath, например, с номером IP ISPath AccessList 1. А единственное, но мне казалось, что ISPath можно создавать на самом деле номерованное.
Нет, я, видимо, ошибаюсь. IP ISPath AccessList 1, в котором мы говорим, что мы будем передавать наверх только... Инстин, но я сейчас на память вам, к сожалению, даже не вспомню. Нужно ли нам отлавливать пустой ISPath? Либо же, вероятнее всего, нам нужно отлавливать ISPath, который состоит только из одной нашей автономной системы. Почему? Потому что мы сначала... Есть вероятность, что мы сначала сгенерим апдейт. Давайте мы просто это проверим. Сделаем раутмап. RM. Out. Permit 10. Скажем, match IP. Match.
AS. ASPath 1. И применим теперь эту раутмап. Раутер BGP 123. Neighbor 10.1.4.4. Раутмап в направлении Out. И Neighbor 10.1.6. Раутмап. Сейчас мы скопировали уже буфер. Мап в направлении Out. То есть, взял Clear IP. BGP Out. BGP Out. И теперь, если я посмотрю на маршизатор R6, то я не должен видеть префиксов, которые прилетают от маршизатора R1. Ну, не имею в виду транзитных префиксов. Но, похоже, я здесь не вижу совершенно ничего.
Поэтому, как я первоначально предполагал, ASPath должен быть пустым. А нет. Нет. А может... Тут хороший вопрос. Но, видимо, да. Он должен быть пустым. То есть, как видите, когда я применил... ASPath, так сказать, отловил пустой префикс. Пустой префикс. А префиксы прилетели... Они, на самом деле, прилетели от маршизатора R4. Маршизатор R4. Так, сделаем еще раз Clear IP. BGP Out. Show Run Include ASPath. Правильно ли у меня сейчас конструкция висит, кстати?
Show Run Include ASPath. Да, конструкция висит правильно. Да. Да-да-да. Видите, теперь мы получаем маршруты от маршизатора R1. А то же самое нужно на маршизаторе R1... сделать в сторону маршизатора R4. А, все сделано, все сделано, извиняюсь. Теперь говорим Show Run Section Route Map. Show Run Include ASPath. Соответственно, создаем этот вот такой вот ASPath на маршизаторе R2. Создаем раутмапу. И применяем эту раутмапу. Сейчас на маршизаторе R5 посмотрим Show IPBGP.
В частности, мы видим, что от маршизатора R2 прилетает, например, префикс для сети 66666. Транзитный префикс. И говорим Neighbor 10.255. Раутмап. Раутмап. Раутмап. Говорим Clear IPBGP. И можно даже сделать Clear IPBGP. 10.255. Раутмап. Теперь нам, что от R5 проверяем, Show IPBGP 6666. Префикс под маршизатора R2 пропал. Теперь делаем Trace Route 6666.
Source Lubac 0. Numeric. И обратите внимание, что пакет бежит теперь по пути 7 маршизатор. От R5 к R7. От R7 к R4. И от R4 к R6. Хоть такой способ фильтрации на основе IS-пасса не является единственно правильным, но он самый удобный для того, чтобы обеспечить нетранзитность вашей оптимизации.