Рейтинговые книги
Читем онлайн Компьютерные сети. 6-е изд. - Эндрю Таненбаум

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 177 178 179 180 181 182 183 184 185 ... 335
АС. (Именно поэтому список имеет обратный порядок.) Когда маршрутизатор получает маршрут, он проверяет путь АС на наличие номера его собственной АС. Положительный ответ означает, что в маршруте есть петля; в таком случае объявление отвергается. Однако несмотря на такие меры предосторожности, в конце 1990-х было обнаружено, что BGP все же сталкивается с вариантом проблемы счета до бесконечности (Лейбовиц и др.; Labovitz et al., 2001). Из-за медленной конвергенции маршрутов могут возникать временные петли, пусть и ненадолго.

Задавать путь с помощью списка АС — довольно грубый способ. АС может быть как небольшой компанией, так и международной магистральной сетью. Это нельзя определить по маршруту. BGP даже не пытается этого сделать, так как в различных АС могут использоваться разные внутридоменные протоколы, из-за чего стоимость передачи невозможно сравнить. Но если бы это было возможно, с большой вероятностью возникла бы другая проблема: АС зачастую скрывают данные о своих внутренних параметрах. Это одно из основных отличий междоменной маршрутизации от внутридоменной.

Илл. 5.69. Распространение объявлений о BGP-маршруте

Итак, мы обсудили, как объявление маршрута передается по каналу между двумя интернет-провайдерами. Но кроме этого, нужно уметь отправлять BGP-маршруты в другие части сети провайдера, чтобы оттуда они могли быть переданы другим провайдерам. С такой задачей может справиться внутридоменный протокол. Но поскольку BGP отлично масштабируется для крупных сетей, в этих случаях часто используется его вариант. Он называется внутренним BGP (internal BGP, iBGP), в противоположность обычному, или внешнему BGP (external BGP, eBGP).

Правило распространения маршрутов внутри сети провайдера звучит так: маршрутизатор, расположенный на границе сети, узнает обо всех маршрутах, о которых знают другие пограничные маршрутизаторы (в целях согласованности их действий). Если какому-то пограничному маршрутизатору становится известен префикс к IP 128.208.0.0/16, все другие маршрутизаторы тоже о нем узнают. Тогда до этого префикса можно будет добраться из любой точки сети, при этом не важно, как пакет попал в эту сеть.

Во избежание перегруженности этот процесс не показан на илл. 5.69. Но можно привести такой пример: маршрутизатор R2b узнает, что он может достичь C либо через R2c (вверху), либо через R2d (внизу). Данные о следующем маршрутизаторе будут обновляться, пока маршрут будет перемещаться по сети провайдера. Благодаря этому маршрутизаторы на разных концах сети будут знать, через какой маршрутизатор можно выйти за пределы сети с другой стороны. Если посмотреть на крайние левые маршруты, то можно увидеть, что для них следующий маршрутизатор находится в той же сети, а не в соседней.

Теперь можно перейти к обсуждению важного вопроса: как BGP-маршрутизаторы выбирают маршрут до адресата? Каждый BGP-маршрутизатор узнает этот маршрут от соединенного с ним маршрутизатора в соседней сети провайдера, а также от других пограничных маршрутизаторов (которые узнают другие возможные пути от своего соседнего маршрутизатора). Далее каждый маршрутизатор выбирает наилучший маршрут. В конечном итоге получается, что политику выбора маршрута определяет провайдер. Однако это слишком общее и не вполне удовлетворительное объяснение, так что мы опишем несколько возможных стратегий.

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

Другая стратегия по умолчанию использует следующее правило: чем короче путь АС, тем он лучше. Это спорное утверждение, так как путь через три маленькие АС может быть короче, чем путь через одну большую. Но в среднем выбор кратчайших путей дает неплохие результаты, так что решение за вами.

Наконец, существует стратегия, согласно которой выбирается самый дешевый маршрут в сети провайдера. Пример ее реализации показан на илл. 5.69. Пакеты из A в C покидают AS1 через верхний маршрутизатор R1a. Пакет из B выходит через нижний маршрутизатор R1b. Это происходит, поскольку A и B выбирают наименее затратный способ выхода из AS1. А поскольку они расположены в разных частях сети провайдера, наилучшие пути для них различаются. То же самое происходит, когда пакеты проходят через AS2. На последнем участке AS3 должна переправить пакет из B по своей сети.

Эта стратегия называется ранним выходом (early exit), или методом «горячей картошки» (hot-potato routing). Интересно, что при такой маршрутизации пути обычно несимметричны. Рассмотрим маршрут пакета, переданного из C в B. Пакет сразу же выйдет из AS3 через верхний маршрутизатор. При переходе из AS2 в AS1 он останется наверху, а уже потом будет долго путешествовать внутри AS1. Это зеркальное отражение пути от B к C.

Из всего этого следует, что каждый BGP-маршрутизатор выбирает свой оптимальный путь из нескольких возможных. Но вопреки первоначальным ожиданиям, нельзя сказать, что BGP отвечает за маршруты между разными АС, а OSPF — за маршруты внутри одной АС. BGP и протокол внутреннего шлюза связаны более сложным образом. В частности, это значит, что BGP может найти наилучшую точку выхода за пределы сети провайдера. При этом выбор точки будет отличаться для разных уголков сети, как в случае метода «горячей картошки». Также это значит, что BGP-маршрутизаторы из разных частей одной АС могут использовать разные пути АС к одному и тому же получателю. Провайдер должен позаботиться о том, чтобы при такой свободе выбора маршруты были совместимы, — это вполне осуществимо на практике.

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

1. Выбрать маршрут с наибольшим значением локального приоритета.

2. Выбрать маршрут с наименьшей длиной пути АС.

3. Выбрать маршруты, полученные через внешние подключения (с помощью протокола eBGP), а не через внутренние (с помощью протокола iBGP).

4. Среди маршрутов, полученных от одной и той же соседней АС, выбрать маршрут с наименьшим значением атрибута MED (multiple exit discriminator — дискриминатор множественного выхода).

5. Выбрать маршруты с наименьшей стоимостью пути IGP к IP-адресу следующего транзитного участка в BGP-маршруте (в качестве которого обычно выступает IP-адрес пограничного маршрутизатора).

Эти шаги выполняются последовательно до тех пор, пока не останется один маршрут для каждого IP-префикса. Маршрутизатор делает это для каждого IP-префикса, указанного в его таблице маршрутизации. Хотя этот процесс кажется длинным и запутанным, в действительности он достаточно прост. Значение локального предпочтения (local preference) для каждого маршрута устанавливается оператором LAN и остается внутренним для этой АС. Оно имеет наивысший приоритет среди правил маршрутизации, что позволяет оператору реализовать упомянутые выше способы приоритизации (например, выбрать маршрут от клиента вместо пути

1 ... 177 178 179 180 181 182 183 184 185 ... 335
На этой странице вы можете бесплатно читать книгу Компьютерные сети. 6-е изд. - Эндрю Таненбаум бесплатно.
Похожие на Компьютерные сети. 6-е изд. - Эндрю Таненбаум книги

Оставить комментарий