Настройка сетевых интерфейсов
Для того чтобы через сетевой интерфейс можно было принимать и передавать данные, системе следует сообщить его параметры, а именно IP-адрес и маску сети. Но прежде необходимо выполнить специфичную для Solaris команду для активации интерфейса:
ifconfig if_name plumb
После этого надо назначить адрес и маску:
ifconfig if_name IP-address broadcast broadcast-address netmask netmask
Здесь if_name - это имя интерфейса (например, eri0), IP-address - адрес, который следует назначить этому интерфейсу, а необязательные параметры broadcast-address и netmask задают широковещательный адрес сети, к которой подключен интерфейс, и маску сети.
ifconfig if_name up
Все эти команды можно объединить в одну, указав таким образом, что следует выполнить низкоуровневую инициализацию интерфейса, назначить ему адрес и маску, после чего включить (сделать возможным получение и отправку IP-пакетов через него):
ifconfig if_name IP-address broadcast broadcast-address netmask netmask plumb up
Как создать "ip alias" - несколько адресов на одном интерфейсе
Для присвоения одному интерфейсу нескольких сетевых адресов в Solaris используются псевдонимы. В отличие от других вариантов UNIX здесь не работает конструкция ifconfig alias. Вместо этого следует воспользоваться командами
ifconfig if_name:0 IP-address netmask netmask up ifconfig if_name:1 IP-address netmask netmask up
Следует помнить, что if_name:0 обозначает сам оригинальный интерфейс, т.е. elxl0:0 - это то же самое, что elxl0. Кроме того, перед выполнением команд, назначающих адрес и другие параметры такому "виртуальному" интерфейсу, например, elxl0:1, следует создать этот виртуальный интерфейс командой
ifconfig if_name:1 plumb
Удаление такого интерфейса выполняется командой
ifconfig if_name:1 down
Например,
ifconfig le0:1 down
В Solaris до версии 7 не требуется выполнять команду
ifconfig if_name:1 plumb
для создания интерфейса. Для удаления интерфейса также можно применить
ifconfig if_name:1 unplumb
Это означает удаление интерфейса и связанных с ним структур данных из памяти, в то время как
ifconfig le0:1 down
обеспечивает только отключение интерфейса и "забывание" его настроек.
Для добавления постоянного виртуального (его иногда еще называют "логическим") интерфейса- псевдонима следует создать соответствующий файл /etc/hostname:
echo IP-адрес-псевдоним >/etc/hostname.if_name:1
Например,
echo 194.125.5.6 >/etc/hostname.le0:1
Для изменения параметров настройки сети можно использовать программу ndd. Она служит для изменения параметров некоторых драйверов в ядре. Обычно ndd используется для назначения параметров драйверов сети. Например, команда
ndd -set /dev/ip ip_forwarding 0
позволяет отключить пересылку сетевых пакетов между интерфейсами системы.
За более детальной информацией о ndd следует обратиться к руководству ndd(1M).
Интерфейс-псевдоним может использоваться для организации "виртуальной маршрутизации", когда в одном физическом сегменте сети устанавливаются компьютеры с адресами из разных сетей, и пакеты друг другу они могут пересылать через систему, сетевой адаптер которой имеет два адреса из разных сетей:
ifconfig -a lo0: flags=1000849<UP,LOOPBACK,RUNNING,MU<ICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 elxl0: flags=1000843<UP,BROADCAST,RUNNING,MU<ICAST,IPv4> mtu 1500 index 2 inet 192.168.5.33 netmask ffffff00 broadcast 192.168.5.255 ether 0:60:8:cb:3b:c0 elxl0:2: flags=1000842<BROADCAST,RUNNING,MU<ICAST,IPv4> mtu 1500 index 2 inet 198.16.1.1 netmask ffffff00 broadcast 198.16.1.255