В системе Solaris с установленными зонами возможно взаимодействие зон по сети. Всем зонам соответствуют отдельные привязки, или подключения, и во всех зонах могут выполняться собственные серверные демоны. Эти демоны могут выполнять прослушивание одних и тех же номеров портов без конфликтов. Конфликты разрешаются стеком IP путем рассмотрения IP-адресов для входящих подключений. Зоны идентифицируются по IP-адресам.
Разделение сетевого трафика между зонами реализуется стеком IP системы с поддержкой зон. Приложения, получающие IP-трафик, могут получать только трафик, отправленный в ту же самую зону.
Каждый логический интерфейс в системе принадлежит определенной зоне, по умолчанию – глобальной. Для связи по сети используются логические сетевые интерфейсы, назначенные зонам утилитой zonecfg. Все потоки и подключения принадлежат зоне открывшего их процесса.
Связывание между потоками верхнего уровня и логическими интерфейсами ограничено. Поток может связываться с логическими интерфейсами только в той же самой зоне. Аналогично, пакеты из логического интерфейса могут передаваться только в потоки более высокого уровня той же самой зоны, которой принадлежит логический интерфейс.
В каждой зоне имеется собственный набор привязок. В каждой зоне может выполняться одно и то же приложение, выполняющее прослушивание на том же номере порта, причем ошибки привязки из-за занятости адреса не происходит. В каждой зоне может выполняться собственная версия следующих служб:
демон служб Интернет с полным файлом конфигурации (см. справочную страницу inetd(1M));
sendmail (см. справочную страницу sendmail(1M));
apache (см. справочную страницу apache(1M)).
Доступ к сети для неглобальных зон ограничен. Стандартные сокетные интерфейсы TCP и UDP доступны, однако сокетные интерфейсы SOCK_RAW ограничиваются протоколом ICMP. Протокол ICMP необходим для обнаружения ошибок сети и составления отчетов по ним, а также для использования команды ping.
В каждой неглобальной зоне, для которой требуются сетевые подключения, имеется один или несколько уникальных IP-адресов. Эти адреса связаны с логическими сетевыми интерфейсами, которые можно поместить в зону командой ifconfig. Сетевые интерфейсы зоны, настроенные командой zonecfg, автоматически настраиваются и размещаются в зоне при загрузке. Команда ifconfig может использоваться для добавления или удаления логических интерфейсов в работающей зоне. Только глобальный администратор может изменять конфигурацию интерфейса и сетевые маршруты.
Внутри неглобальной зоны команде ifconfig видимы только интерфейсы этой зоны.
Для получения дополнительной информации см. справочные страницы ifconfig(1M) и if_tcp(7P).
Доставка пакетов между двумя зонами одной машины разрешена только при наличии в таблице переадресации "подходящего маршрута" для адресата и зоны.
Информация для сопоставления реализуется следующим образом:
Адрес источника пакетов выбирается на выходном интерфейсе, указанном в подходящем маршруте.
По умолчанию трафик разрешен между двумя зонами, адреса которых находятся в одной подсети. Подходящим маршрутом в этом случае является маршрут интерфейса для подсети.
Если для данной зоны существует маршрут по умолчанию, где шлюз находится в одной из подсетей зоны, разрешается прохождение трафика из такой зоны во все другие зоны. Подходящим маршрутом в этом случае является маршрут по умолчанию.
Если существует совпавший маршрут с флагом RTF_REJECT, отправляется сообщение ICMP о недоступности адресата. Если существует совпавший маршрут с флагом RTF_BLACKHOLE, пакеты отклоняются. Для создания маршрутов с этими флагами глобальному администратору необходимо воспользоваться командой route с параметрами, описанными в следующей таблице.
Модификатор |
Флаг |
Описание |
---|---|---|
-reject |
RTF_REJECT |
При совпадении выдается сообщение о недоступности ICMP. |
-blackhole |
RTF_BLACKHOLE |
Отклонение пакетов во время обновлений без уведомления. |
Для получения дополнительной информации см. route(1M)
Фильтр IP Solaris обеспечивает фильтрацию пакетов с сохранением информации о состоянии, а также трансляцию сетевых адресов (NAT). Фильтр пакетов с сохранением информации о состоянии может использоваться для наблюдения за состоянием активных подключений и определения пакетов, пропускаемых через брандмауэр, на основании полученной информации. Фильтр IP Solaris включает в себя фильтрацию пакетов без сохранения информации о состоянии, а также возможность создания адресных пулов и управления ими. Для получения дополнительной информации см. раздел Глава 25, Solaris IP Filter (Overview), в System Administration Guide: IP Services.
Фильтр IP Solaris включается в неглобальных зонах путем включения фильтрации с закольцовыванием в соответствии с описанием в разделе Глава 26, Solaris IP Filter (Tasks), в System Administration Guide: IP Services.
Фильтр IP Solaris разработан на основе программного обеспечения с открытым кодом IP Filter.
Организация резервных каналов IP-сети (IPMP) обеспечивает возможность обнаружения отказов физического интерфейса и прозрачное переключение при отказе сетевого доступа для системы с несколькими интерфейсами на одном IP-канале. IPMP также обеспечивает распределение пакетной нагрузки в системах с несколькими интерфейсами.
Вся настройка сети выполняется в глобальной зоне. IPMP можно настроить в глобальной зоне, а затем распространить функциональные возможности на неглобальные зоны. Подобное распространение достигается путем помещения адреса зоны в группу IPMP при настройке зоны. Затем, если возникает отказ одного из интерфейсов глобальной зоны, будет выполнен перевод адресов неглобальной зоны на другую сетевую плату.
В отдельной неглобальной зоне по команде ifconfig видны только интерфейсы, связанные с этой зоной.
См. Распространение функциональности резервных каналов IP-сети на неглобальные зоны с общим IP. Процедура настройки зон рассматривается в Настройка зоны. Для получения информации относительно функций, компонентов и способов использования IPMP см. раздел Глава 30, Introducing IPMP (Overview), в System Administration Guide: IP Services.