eucariot (eucariot) wrote,
eucariot
eucariot

Category:

Заметка о BGP Fake-as

Сегодня я про 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: linkmeup, работа, сети
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments