Pull to refresh

BGP Fake-AS

Reading time2 min
Views11K
Сегодня я про BGP. Заметки с работы — чтобы не пропадали. Есть такой функционал, как фиктивная AS.
Здесь и далее говорю в нотации Huawei.

Традиционный сценарий использования — это переезд с одного номера АС на другой, например, при покупке сети одного оператора другим. При этом есть стопицот соседей, которые почему-то не могут взять и все разом переехать вместе с нами.

Тогда для них, мы можем настроить пиринг так, будто бы мы остались в старой АС. Если для пира указать команду fake-as, то и в Open и в AS-Path появится именно она, а не новая (настоящая). У циски тот же функционал называется Local-as.

Удобный инструмент, когда используется по назначению.

Теперь, условно, сеть заказчика:



Клиент хочет, спать не может, пиринг с АС3. Но не хочет платить за VPN. Просто попросил АС2 представиться АС3. Вот этот промежуточный АС2 и настраивает фиктивную АС на своём ASBR, указывая в её качестве АС3.

Проблема в том, что ASBR при анонсе маршрута всё равно, негодяй такой, вставляет в AS-Path фиктивную АС, несмотря на то, что она там уже есть. То есть AS-Path для маршрутов, которые получает клиент, выглядит как <АС3, АС3, итд.>

В документации написано, что, если соседство было установлено через фиктивную АС, то и в AS-Path именно она появится. Если через настоящую — то настоящая. Но так, чтобы совсем не появлялась — нельзя. Ну не аккуратненько это, супротив идеологии BGP.

В таком случае на оборудовании Хуавей нет другого способа, кроме как вручную через рут-полиси сделать overwrite AS-Path, что совсем не по-инженерски, понятное дело.

В новых версиях появилась возможность указывать, какую именно АС хочешь добавлять — фиктивную или настоящую. Однако не добавлять вообще — нет такой опции.

Ещё я тут хочу сказать про циску — в случае заказчика технически на циске можно реализовать его хотелку.

Сначала расскажу, чем отличается работа этой команды там — главное отличие — по умолчанию циска вставляет две АС — и настоящую и фиктивную. Сделано это для того, чтобы исключить образование петли маршрутизации (вот это по-бгпшному).

В команде local-as есть атрибуты no-prepend и replace-as. No-prepend позволят не добавлять в AS-Path номер фиктивной АС — только настоящей. Опция replace-as позволит заменить её на фиктивную.

То есть опять вроде как нельзя реализовать полное удаление. И вообще такого рода манипуляции с AS-Path ни к чему хорошему не приводят.

Чисто для примера можно вспомнить недавнюю историю о том, как недавно Иран лишил порнухи себя и ближайшие страны, когда поигрался с анонсами БГП.

Но особенность в том, что у заказчика номер АС2 — приватный. И если использовать комбинацию опций local-as no-prepend replace-as, а потом добавить remove-private-as (цисковский аналог хуавэйско команды public-as-only) то всё-таки срабатывает и дублирующая АС удаляется.

Но повторюсь, это читерство и костыль.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+17
Comments0

Articles