Главная > Операционные системы > UNIX
Описание. Кандидат BSDA должен понимать основы адресации IPv6, включая: компоненты адреса IPv6; поддержку нескольких адресов (link, local, global) на интерфейсе; различные способы записи адреса: запись префикса (aaaa:bbbb::dddd/17) и адресный формат (48 бит на префикс, 16 бит на подсеть и 64 бита на хост). В дополнение кандидат должен понимать процесс автоконфигурирования когда маршрутизатор отсылает префиксы или опрашивается, и как хост добавляет 64 бита, которые получаются из MAC-адреса. Наконец, кандидат должен уметь решать проблемы связи по протоколу IPv6. Практика. ifconfig(8), ping6(8), rtsol(8)
Комментарий
Вот уже более 10 лет нам пророчат пришествие протокола IPv6 в замен IPv4, а между тем его всё нет как нет. Между тем закрывать на него глаза и дальше становится просто опасно. Во многих операционных системах в той или иной степени поддержка IPv6 уже включена и BSD из их числа. Многие администраторы, к сожалению, закрывают глаза на то, что в их IPv4 сетях уже фактически поднята сеть IPv6, а они об этом даже не подозревают. Закрывают брандмауэром порты по протоколу IPv4, а трафик IPv6 просто не видят. Видимо правильным решением было бы отключение данного протокола на уровне ядра, в случае, если он не поднят в сети. В системе FreeBSD для этого можно закомментировать в ядре опцию
options INET6 # IPv6 communications protocols
О проблемах безопасности связанных с появлением протокола IPv6 можно прочитать в статье Натальи Мельниковой [url://IPv6-security].
Что касается документации по IPv6, как ни странно, её довольно мало. В основном речь идёт о переводах RFC. Оригинальная документация на английском языке (список, конечно, неполный):
Что до переводов на русский язык, я могу порекомендовать читателю замечательную статью А.Ю. Семёнова [url://Семёнов-IPv6], которая на 98% представляет собой перевод упомянух RFC. А так же своеобразный HOWTO из FreeBSD-handbook [url://FB-handbook-IPv6-ru], который, в части касающейся документации IPv6 так же является цитатой из упомянутых RFC. Фактически никакой другой документации в настоящий момент в сети нет. (А может и не надо.)
Адреса в IPv6 настолько длинные, что их запись в привычной десятичной нотации становится весьма неудобной (128 бит = 16 байт). Поэтому их записывают в шестнадцатеричном формате. Но даже и в этом случае адреса оказываются слишком длинными, поэтому придуманы некоторые способы сокращённой записи.
Итак, адреса делят на 8 пар байт символом двоеточия:
Допустимо записывать часть адреса в десятичном формате,
разделяя десятичные знаки точками: Левая часть адреса IPv6 может являться префиксом сети. В этом случае её длина в битах записывается через дробь, подобно записи CIDR.
Варианты правильного написания префикса 12AB00000000CD3: А вот так писать нельзя:
Адреса IPv6 бывают:
Широковещательных (broadcast) адресов в IPv6 нет, их функции выполняют адреса multicast. Тип пакета IPv6 можно определить по префиксу. Вот некоторые префиксы адресов unicast:
Адрес anycast синтаксически не отличим от unicast. Адреса anycast выделяются из адресного пространства unicast и всё их отличие состоит в том, что один адрес anycast может быть присвоен нескольким маршрутизаторам. Пакет высланный на этот адрес получит ближайший маршрутизатор, где ближайший маршрутизатор определяется по метрике протокола маршрутизации. Одно из возможных применений адреса anycast — идентификация набора маршрутизаторов провайдера. Префикс адреса anycast фактически указывает на топологическую группу которой принадлежит адрес.
Существует один предопределённый адрес anycast: Один интерфейс может иметь множество различных адресов IPv6. (Подобно тому, как у интерфейса может быть много адресов IPv4.) Таким образом, интерфейс может одновременно иметь приватный и публичный IPv6 адреса. Далее следует прямая цитата из [url://Семёнов-IPv6]:
Одна из целей создателей протокола IPv6 состояла в автоконфигурировании интерфейсов. Система поддерживающая IPv6 должна уметь получать адреса автоматически. Процесс автоконфигурации включает получение локального канального адреса и проверки его уникальности, определение того, какая информация должна быть автосконфигурирована (адреса, другая информация или и то и другое) и, в случае, если надо автосконфигурировать адрес, через какой механизм он должен быть сконфигурирован: stateless или stateful. Механизм автоконфигурирования stateless не требует ручного конфигурирования хостов, требует минимального конфигурирования маршрутизаторов и никаких дополнительных серверов. Данный механизм позволяет хосту сгенерировать собственный адрес из информации доступной локально и информации объявленной маршрутизатором. Маршрутизатор объявляет префикс идентифицирующий подсеть, а хост использует уникальный идентификатор интерфейса. Соединяя их вместе хост получает адрес IPv6. В отсутствии маршрутизатора хост может сформировать только локальный канальный адрес. Однако такой адрес даст ему возможность работать с ближайшими машинами находящимися в его подсети. В случае использования механизма автоконфигурирования stateful, хост получает адрес интерфейса и/или другую информацию с сервера. На серверах должна находиться некая база данных, в которой записано какой адрес с каким хостом проассоциирован. Stateless и stateful механизмы дополняют друг друга. Автоконфигурирование по механизму stateful является частью будущей работы (DHCPv6). Механизм stateless может использоваться когда точные адреса непринципиальны, stateful, наоборот, когда требуется выдача конкретных адресов. Оба механизма могут использоваться совместно. Администратор может определить какой метод будет использоваться при помощи «Router Advertisement messages» — специальных ICMPv6 сообщений. Адрес IPv6 выдаётся на фиксированное (возможно бесконечное) время. Каждый адрес имеет ассоциированное с ним время жизни в течение которого он привязан к интерфейсу. Когда время жизни истекает, адрес теряет связь с интерфейсом и может быть присвоен другой точке в Интернете. Дабы не возникало казусов, в течение жизни адрес проходит через две стадии: «preferred» — адрес, которым пользоваться предпочтительно, и «deprecated» — адрес, который вскорости будет утрачен. Новые соединения должны, насколько это возможно, использовать адрес в состоянии «preferred». Адрес «deprecated» может использоваться только приложениями, которые уже использовали его и не могут запросто переключиться на новый адрес. Чтобы убедиться, что все сконфигурированные адреса уникальны, до присвоения адреса используется специальный механизм Duplicate Address Detection. Маршрутизаторы должны конфигурироваться несколько иным способом, но это не мешает им иметь локальный канальный адрес полученный аналогичным образом. Настройка интерфейсов через команду ifconfig(8) никаких принципиальных отличий от IPv4 не имеет. За информацией о работе этой программы можно обратиться к Раздел 6.1, «Определение существующих установок TCP/IP» и Раздел 6.2, «Установка параметров TCP/IP». Утилита ping6(8) используется вместо ping(8) в протоколе IPv6. Аналагично для выяснения маршрута можно применять утилиту traceroute6(8). Утилита rtsol(8) выполняет «Router Solicition» запросы, пытаясь обнаружить доступный IPv6 маршрутизатор, чтобы получить от него в пакете «Router Advertisement» префикс сети и сформировать адрес. Эта же утилита, под именем rtsold(8) может работать в режиме демона. Утилита не предназначена для работы на маршрутизаторах — только на хостах.
Главная > Операционные системы > UNIX |