EBGP против IBGP
И EBGP, и IBGP - термины, используемые с протоколом маршрутизации BGP. С теоретической точки зрения, основное различие между ними заключается в том, что EBGP работает между двумя маршрутизаторами BGP в разных автономных системах (AS), однако IBGP работает между двумя маршрутизаторами BGP в одной и той же AS. Прежде чем мы обсудим различия между EBGP и IBGP, давайте разберемся в основах EBGP и IBGP.
Что такое EBGP?
BGP работает между маршрутизаторами в разных автономных системах. По умолчанию в EBGP (пиринг в двух разных AS) для IP TTL установлено значение 1, что означает, что одноранговые узлы подключены напрямую.
В этом случае, когда пакет проходит через один маршрутизатор, TTL становится равным 0, после чего пакет будет отброшен. В тех случаях, когда два соседа не связаны напрямую, например, пиринг с интерфейсами обратной связи или пиринг, когда устройства находятся на расстоянии нескольких переходов, нам нужно добавить команду «neighbor x.x.x.x ebgp-multihop»
В противном случае соседство BGP не будет установлено. Кроме того, одноранговый узел EBGP будет объявлять все лучшие маршруты, которые ему известны или которые он узнал от своих одноранговых узлов (будь то одноранговый узел EBGP или одноранговый узел IBGP), чего нет в случае с IBGP.
Что такое IBGP?
В IBGP нет ограничений на прямое подключение соседей; однако узел IBGP не будет объявлять префикс, полученный от узла IBGP, другому узлу IBGP. Это ограничение введено для того, чтобы избежать петель внутри одной и той же AS. Чтобы прояснить это, когда маршрут передается узлу EBGP, номер локальной AS добавляется к префиксу в as-path, поэтому, если мы получаем тот же пакет обратно с указанием нашей AS в as-path, мы знаем, что это петля, и этот пакет отбрасывается. Однако, когда маршрут объявляется узлу IBGP, номер локальной AS не добавляется к as-path, так как узлы находятся в одной и той же AS.
Чтобы избежать петель в одной и той же AS, используются два метода.
1. Полноячеистая топология: в этом случае все маршрутизаторы в одной и той же AS должны быть подключены друг к другу. Например, если у нас есть N маршрутизаторов, то у нас должно быть N (N-1)/2 сеансов IBGP. Мы можем избежать этого, введя отражатели маршрутов.
2. Использование Route-Reflectors: это альтернативный метод преодоления сценария с полной сеткой. В этом случае сеансы IBGP устанавливаются с центральной точкой. Эта центральная точка называется Route Reflector, а другие маршрутизаторы IBGP называются клиентами Route Reflector.
В чем разница между eBGP и iBGP?
1. EBGP является пирингом между двумя разными AS, тогда как IBGP - между одной и той же AS (автономной системой).
2. Маршруты, полученные от однорангового узла eBGP, будут объявлены другим одноранговым узлам (BGP или IBGP); однако маршруты, полученные от однорангового узла IBGP, не будут объявляться другим одноранговым узлам IBGP.
3. По умолчанию для одноранговых узлов EBGP установлено значение TTL=1, что означает, что соседи считаются подключенными напрямую, чего нельзя сказать о IBGP. Мы можем изменить это поведение для EBGP с помощью команды «neighbor x.x.x.x ebgp-multihop». Multihop - это термин, используемый только в EBGP.
4. Маршруты EBGP имеют административное расстояние 20, а IBGP - 200.
5. Следующий переход остается неизменным, когда маршрут объявляется узлу IBGP; однако по умолчанию он изменяется, когда объявляется одноранговому узлу EBGP.
Это поведение IBGP по умолчанию можно изменить с помощью команды «neighbor x.x.x.x next-hop-self»; это изменяет следующий переход, объявляя его как локальный маршрут.