При первичной установке Solaris 11 Express сетевая карта получает адрес по dhcp. Что делать, если нужно принудительно установить статический IP адрес? Об этом пойдёт ниже.
Тестовый стенд: Solaris 11 Express x64
1) Изменение настройки сетевой карты при автозапуске
В Солярис 11 сетевая служба запускается либо в виде svc:/network/physical:nwam, либо в виде svc:/network/physical:default. Одновременно они запущены быть не могут. NWAM (network auto magic) отвечает за автоматические настройки сетевой службы и используется в настольных компьютерах и ноутбуках. Default – используется для ручной настройки сетевой службы и применяется в серверах. По умолчанию включен nwam и выключен default.
Принципы настроек этих двух служб совершенно разные. В данной статье будем изучать только настройку службы svc:/network/physical:default.
Значит, первое, что нужно сделать – это выключить nwam и включить default:
# svcadm disable svc:/network/physical:nwam
# svcadm enable svc:/network/physical:default
2) Создание сетевых интефейсов.
Смотрим список сетевых карт:
# ipadm show-if
IFNAME STATE CURRENT PERSISTENT
lo0 ok -m-v------46 ---
e1000g0 ok bm---------- ---
Для начала нужно удалить текущую сетевую карту:
# ipadm delete-ip e1000g0
Теперь создадим заново:
# ipadm create-ip e1000g0
и посмотрим состояние:
# ipadm show-if
IFNAME STATE CURRENT PERSISTENT
lo0 ok -m-v------46 ---
e1000g0 ok bm--------46 -46
Как видим у нас есть возможность использовать настройку сетевой карты для ipv4/ipv6.
3) Установка сетевого адреса, шлюза, DNS’ов
– статический IP-адрес:
Что бы присвоить сетевой адрес IPv4 на интерфейс, выполняем такую команду:
# ipadm create-addr -T static -a 10.10.10.10/24 e1000g0/v4
Добавляем шлюз:
# route -p add default 10.10.10.1
– адрес по DHCP
# ipadm create-addr -T DHCP e1000g0/v4
получить адрес
#ifconfig e1000g0 dhcp start
посмотреть статус:
#ifconfig e1000g0 dhcp status
DNS:
В 11 версии нет необходимости править конфиг /etc/resolv.conf. Теперь надо изменять свойства службы dns/client:
# svccfg
svc:> select dns/client
svc:/network/dns/client> setprop config/nameserver = net_address: ( 138.2.202.15 138.2.202.25 )
svc:/network/dns/client> select dns/client:default
svc:/network/dns/client:default> refresh
svc:/network/dns/client:default> validate
svc:/network/dns/client:default> select name-service/switch
svc:/system/name-service/switch> setprop config/host = astring: "files dns"
svc:/system/name-service/switch> select system/name-service/switch:default
svc:/system/name-service/switch:default> refresh
svc:/system/name-service/switch:default> validate
svc:/system/name-service/switch:default> end
# svcadm enable dns/client
# svcadm refresh name-service/switch
Примечание.
Если при загрузке появляется ошибка
Aug 19 19:16:57 svc.startd[7]: svc:/network/physical:default: Method "/lib/svc/method/net-physical" failed with exit status 96.
[ network/physical:default misconfigured (see 'svcs -x' for details) ]
и вы сделали всё как в статье, то скорее всего у вас двойные настройки сетевого интерфейса. Дело в том, что в 11 версии, в отличии от предыдущих НЕТ НАДОБНОСТИ ПРАВИТЬ КОНФИГИ для настройки сетевых параметров. Достаточно использовать команды ipadm/dladm, которые сами генерируют соответствующие конфиги в папках /etc/ipadm, /etc/dladm. В итоге напрашивается вариант решения проблемы:
– удаляем файл /etc/defaultrouter (а так файл /etc/inet/defaultrouter, если он конечно есть)
– удаляем файл /etc/hostname.e1000g0 (а так файл /etc/inet/hostname.e1000g0, если он конечно есть)
– удаляем файл /etc/netmask (а так файл /etc/inet/netmask, если он конечно есть)
После этого уходим в ребут и ошибок больше не должно появляться. Если вдруг не помогло, тогда советую посмотреть сюда
Бонус.
Есть недокументированный параметр в команде ifconfig – configinfo, который показывает, в каком порядке поднимаются сетевые интерфейсы и какие адреса им присваиваются:
$ ifconfig -a configinfo
lo0 inet plumb mtu 8232 index 1 set 127.0.0.1 netmask 0xff000000 up
lo0 inet plumb mtu 8232 index 1 addif 127.0.0.1 netmask 0xff000000 up
lo0 inet plumb mtu 8232 index 1 addif 127.0.0.1 netmask 0xff000000 up
igb0 inet plumb mtu 1500 index 2 set 10.4.4.4 netmask 0xffffffe0 broadcast 10.4.4.31 up
igb0 inet plumb mtu 1500 index 2 addif 10.4.4.98 netmask 0xfffffff0 broadcast 10.4.4.111 up
igb0 inet plumb mtu 1500 index 2 addif 10.4.4.97 netmask 0xfffffff0 broadcast 10.4.4.111 up
Это пример сервера с основным IP=10.4.4.4/28 и остальными IP в зонах.