Э. Таненбаум - Компьютерные сети. (4-е издание) (PDF) (1130118), страница 99
Текст из файла (страница 99)
4.45, бизображена та же ситуация, только здесь все порты, соединенные с определенной машиной, отмечены только одним цветом, поскольку каждый компьютерможет принадлежать только одной ВЛВС.Итак, мы предположили, что мосты и коммутаторы каким-то образом узнают«цвет» приходящего кадра. Но как они это делают? Применяется один из следующих методов:1. Каждому порту присваивается цвет.2. Каждому МАС-адресу присваивается цвет.3. Все протоколы 3-го уровня или IP-адреса соответствуют определенному цвету.В первом методе каждый порт маркируется цветом какой-либо ВЛВС. Однако это работает только в том случае, если все машины порта принадлежат однойвиртуальной сети. На рис. 4.45, а этим свойством обладает порт ЛВС 3 моста В1,а порт ЛВС 1 уже не может применять метод маркировки портов.387При использовании второго метода мост или коммутатор имеет таблицу,в которой представлены 48-битные МАС-адреса и названия виртуальных сетейвсех станций, соединенных с устройством.
В этом случае можно смешивать виртуальные сети внутри физической сети, как это происходит, скажем, с ЛВС 1 нарис. 4.45, а. Когда прибывает кадр, мосту или коммутатору необходимо лишь извлечь адрес МАС-уровня и найти его в таблице (это позволит понять, в какойвиртуальной сети находится станция, с которой был отправлен кадр).Третий метод заключается в том, что мост (коммутатор) просматривает поляданных кадров, чтобы, например, классифицировать все IP-машины как принадлежащие к одной виртуальной сети, а машины AppleTalk — к другой. В первомслучае с помощью IP-адреса идентифицируется также конкретная машина.
Такая стратегия особенно полезна, когда существенная часть станций представляют собой ноутбуки, которые могут подключаться в одном из нескольких мест.Поскольку у каждой из стыковочных станций есть свой МАС-адрес, то простоинформация о том, какая стыковочная станция использовалась, ничего не скажет о том, в какой из виртуальных сетей находится сам ноутбук.Единственная проблема, связанная с этим подходом, состоит в том, что он нарушает самый фундаментальный закон сетей — независимость уровней. Уровнюпередачи данных не должно быть никакого дела до содержимого поля данных.Он не должен просматривать его и тем более не имеет права принимать решения, исходя из него. Последствием использования этого метода стало то, что внесение изменений в протокол 3-го уровня (например, модернизация от IPv4 кIPv6) приводит к неработоспособности коммутаторов.
К сожалению, такие коммутаторы все еще присутствуют на рынке.Конечно, сама по себе маршрутизация, базирующаяся на IP-адресах (которойпосвящена почти вся 5-я глава), является вполне легитимной, однако смешивание уровней — это оборотная и весьма нелицеприятная сторона медали. Производители коммутаторов могут пренебречь этим аргументом, заявляя, что их аппаратура понимает как IPv4, так и IPv6, так что все замечательно. Но что будет,если в один прекрасный день появится IPv7? Производители, вероятно, скажут:«Что ж, покупайте новые коммутаторы, что в этом такого?»Стандарт IEEE 802.1QЕсли задуматься о том, как же работают виртуальные сети, то в голову приходитМысль, что все дело не в отправляющей машине, а в самом кадре ВЛВС.
Если быбыл какой-нибудь способ идентифицировать ВЛВС по заголовку кадра, отпалабы необходимость просмотра его содержимого. По крайней мере, в новых сетяхtHna 802.11 или 802.16 вполне можно было бы просто добавить специальное полезаголовка. Вообще-то Идентификатор кадра в стандарте 802.16 — это как раз нечто в этом духе.
Но что делать с Ethernet — доминирующей сетью, у которой нетНикаких «запасных» полей, которые можно было бы отдать под идентификаторвиртуальной сети?Комитет IEEE 802 озаботился этим вопросом в 1995 году. После долгих дискуссий было сделано невозможное — изменен формат заголовка кадра Ethernet!?Новый формат было опубликован под именем 802.1Q, в 1998 году. В заголовок3 8 8 Глава 4. Подуровень управления доступом к средекадра был вставлен флаг ВЛВС, который мы сейчас вкратце рассмотрим. Понятно, что внесение изменений в нечто уже устоявшееся, такое как Ethernet, должнобыть произведено каким-то нетривиальным образом.
Встают, например, следующие вопросы:1. И что, теперь надо будет выбросить на помойку несколько миллионов уже существующих сетевых карт Ethernet?2. Если нет, то кто будет заниматься генерированием новых полей кадров?3. Что произойдет с кадрами, которые уже имеют максимальный размер?Конечно, комитет 802 тоже был озабочен этими вопросами, и решение, несмотря ни на что, было найдено.Идея состоит в том, что на самом деле поля ВЛВС реально используютсятолько мостами да коммутаторами, а не машинами пользователей.
Так, скажем,сеть, изображенную на рис. 4.45, не очень-то волнует их наличие в каналах, идущих от оконечных станций, до тех пор, пока кадры не доходят до мостов иликоммутаторов. Таким образом, чтобы была возможна работа с виртуальными сетями, про их существование должны знать мосты и коммутаторы, но это требование и так понятно. Теперь же мы выставляем еще одно требование: они должнызнать про существование 802.1Q. Уже выпускается соответствующее оборудование.Что касается старых сетевых,карт Ethernet, то выкидывать их не приходится.Комитет 802.3 никак не мог заставить людей изменить поле Тип на поле Длина.Вы можете себе представить, какова была бы реакция на заявление о том, что всесуществующие карты Ethernet можно выбросить? Тем не менее, на рынке появляются новые модели, и есть надежда, что они теперь будут 802.1£)-совместимыми и смогут корректно заполнять поля идентификации виртуальных сетей.Если отправитель не генерирует поле признака виртуальной сети, то кто жеэтим занимается? Ответ таков: первый встретившийся на пути мост или коммутатор, обрабатывающий кадры виртуальных сетей, вставляет это поле, а последний — вырезает его.
Но как он узнает, в какую из виртуальных сетей передать?Для этого первое устройство, которое вставляет поле ВЛВС, может присвоитьномер виртуальной сети порту, проанализировать МАС-адрес или (не дай Бог,конечно) подсмотреть содержимое поля данных. Пока все не перейдут на Ethernet-карты, совместимые со стандартом 802.1Q, все именно так и будет. Остаетсянадеяться на то, что все сетевые платы гигабитного Ethernet будут придерживаться стандарта 802.1Q, с самого начала их производства, и таким образом всемпользователям гигабитного Ethernet этой технологии автоматически станут доступны возможности 802.1Q. Что касается проблемы кадров, длина которых превышает 1518 байт, то в стандарте 802.1Q она решается путем повышения лимитадо 1522 байт.При передаче данных в системе могут встречаться как устройства, которымсокращение ВЛВС не говорит ровным счетом ни о чем (например, классическийили быстрый Ethernet), так и совместимая с виртуальными сетями аппаратура(например, гигабитный Ethernet).
Такая ситуация показана на рис. 4.46. Здесьзатененные символы означают ВЛВС-совместимые устройства, а пустые квадратики — все остальные. Для простоты мы предполагаем, что все коммутаторыКоммутация на уровне передачи данных389ВЛВС-совместимы. Если же это не так, то первый такой ВЛВС-совместимыйкоммутатор добавит в кадр признак виртуальной сети, основываясь на информации, взятой из MAC- или IP-адреса.ВЛВС-совместимый ВЛВС-совместимыйоконечный домен центральный доменВЛВСсовместимый ПКОбычныйоконечный доменОбычныйПКОбычныйкадрВЛВС-совместимыйкоммутаторМаршрутизация на основефлагов ВЛВСРис. 4.48. Передача данных из обычного Ethernet в ВЛВС-совместимый Ethernet.Затененные символы — это ВЛВС-устройства. Все остальные несовместимыс виртуальными сетямиНа этом рисунке мы видим, что ВЛВС-совместимые сетевые платы Ethernetгенерируют кадры с флагами (то есть кадры стандарта 802.1Q), и дальнейшаямаршрутизация производится уже с использованием этих флагов. Для осуществления маршрутизации коммутатор, как и раньше, должен знать, какие виртуальные сети доступны на всех портах.
Информация о том, что кадр принадлежит серой виртуальной сети, еще, по большому счету, ни о чем не говорит, посколькукоммутатору еще нужно знать, какие порты соединены с машинами серой виртуальной сети. Таким образом, коммутатору нужна таблица соответствия портоввиртуальным сетям, из которой также можно было бы узнать, являются ли порты ВЛВС-совместимыми.Когда обычный, ничего не подозревающий о существовании виртуальных сетей компьютер посылает кадр на коммутатор виртуальной сети, последний генерирует новый кадр, вставляя в него флаг ВЛВС. Информацию для этого флагаон получает с виртуальной сети отправителя (для ее определения используетсяномер порта, MAC- или IP-адрес.) Начиная с этого момента никто больше не переживает из-за того, что отправитель является машиной, не поддерживающейстандарт 802.1Q, Таким же образом коммутатор, желающий доставить кадр с флагом на такую машину, должен привести его к соответствующему формату.Теперь рассмотрим собственно формат 802.1Q.