Команда BGP: neighbor [IP-адрес] remote-as [номер AS]
Создана 24.07.2026
Отредактирована 24.07.2026
Отредактирована 24.07.2026
Описание: Эта команда устанавливает BGP-соседство (peering) с другим маршрутизатором. Она является фундаментом для любого BGP-обмена маршрутами.
Синтаксис команды
neighbor [IP-адрес] remote-as [номер AS]
Разбор по частям
| Часть команды | Значение | Пример |
|---|---|---|
| neighbor | Ключевое слово, которое говорит BGP, что мы хотим добавить нового соседа. | neighbor |
| IP-адрес | IP-адрес соседнего маршрутизатора. По этому адресу будет устанавливаться TCP-соединение (порт 179). | 10.0.0.1 или 3.3.3.3 |
| remote-as | Указывает, что мы явно задаем номер автономной системы соседа. | remote-as |
| номер AS | Номер автономной системы (AS) соседа. Если номера не совпадают, сессия не установится. | 65001 или 65002 |
Как это работает "под капотом"?
Когда вы вводите эту команду, маршрутизатор выполняет следующие действия:
1. Проверяет IP-связность: Убеждается, что может добраться до указанного IP-адреса (маршрут должен быть в таблице маршрутизации).
2. Открывает TCP-соединение: Пытается установить TCP-соединение на порт 179 (стандартный порт BGP) к указанному IP-адресу.
3. Обменивается OPEN-сообщениями: Стороны обмениваются параметрами, включая номера AS и идентификаторы маршрутизаторов.
4. Проверяет номер AS: Сравнивает полученный номер AS с тем, что указан в remote-as.
5. Если AS совпадают: Сессия переходит в состояние Established — начинается обмен маршрутами (UPDATE-сообщения).
6. Если AS НЕ совпадают: Маршрутизатор отправляет NOTIFICATION с ошибкой "peer in wrong AS" и сессия закрывается.
eBGP vs iBGP (Критическое отличие)
Именно эта команда определяет, какой тип соседства вы настраиваете:
| Тип соседства | Условие | Что происходит | Пример |
|---|---|---|---|
| eBGP (External) | remote-as отличается от вашего собственного AS. | Обмен маршрутами между разными автономными системами. | neighbor 10.0.0.2 remote-as 65002 |
| iBGP (Internal) | remote-as совпадает с вашим собственным AS. | Обмен маршрутами внутри одной AS. | neighbor 3.3.3.3 remote-as 65001 |
Пример 1 (eBGP — внешний провайдер):
R1(config)# router bgp 65001 R1(config-router)# neighbor 10.0.0.2 remote-as 65002
Здесь R1 (AS 65001) устанавливает соседство с R2 (AS 65002). Так как номера AS разные — это eBGP.
Пример 2 (iBGP — внутренний роутер):
R1(config)# router bgp 65001 R1(config-router)# neighbor 3.3.3.3 remote-as 65001
Здесь R1 (AS 65001) устанавливает соседство с R3 (AS 65001). Так как номера AS одинаковые — это iBGP.
Важные нюансы (почему это критично)
1. Безопасность: Указание неверного remote-as — самая частая причина, почему BGP-сессия не поднимается. Маршрутизатор не будет обмениваться маршрутами с "чужим" AS.
2. Защита от петель: BGP автоматически не принимает маршруты, которые уже содержат номер его собственной AS в AS_PATH (это предотвращает петли).
3. Правила распространения: eBGP и iBGP по-разному распространяют маршруты. Например, iBGP-маршруты не передаются другим iBGP-соседям (правило горизонта).
4. TTL (Time-to-Live): При eBGP соседстве обычно используется ttl-security или явное указание ebgp-multihop, если сосед находится не в прямо подключенной сети.
Дополнительные параметры (для этой команды)
Команда
neighbor может быть дополнена другими ключевыми словами для настройки поведения: | Дополнительный параметр | Описание | Пример |
|---|---|---|
| update-source | Указывает, с какого интерфейса устанавливать TCP-соединение (обычно Loopback для iBGP). | neighbor 3.3.3.3 update-source Loopback0 |
| description | Добавляет текстовое описание соседа (для удобства администрирования). | neighbor 10.0.0.2 description ISP_AS65002 |
| next-hop-self | Подменяет адрес следующего хопа при передаче маршрутов этому соседу. | neighbor 3.3.3.3 next-hop-self |
| route-map | Применяет политику (фильтрацию или изменение атрибутов) для маршрутов, которыми мы обмениваемся с соседом. | neighbor 10.0.0.2 route-map SET_PREF_IN in |
Таблица: Что происходит при разных значениях remote-as
| Ваш AS | remote-as | Тип соседства | Результат |
|---|---|---|---|
| 65001 | 65001 | iBGP | Сессия устанавливается. Маршруты передаются с флагом i. |
| 65001 | 65002 | eBGP | Сессия устанавливается. Маршруты передаются с AS_PATH = 65002. |
| 65001 | 65003 | eBGP | Сессия устанавливается (если сосед существует). Маршруты передаются с AS_PATH = 65003. |
| 65001 | 65001 (но сосед настроен на другой AS) | Ошибка | Сессия НЕ устанавливается. В логах ошибка "peer in wrong AS". |
Итог (Запомните!)
neighbor [IP-адрес] remote-as [номер AS] — это команда, которая создает BGP-соседство.
- Если remote-as равен вашему AS → iBGP (внутреннее соседство).
- Если remote-as не равен вашему AS → eBGP (внешнее соседство).