пятница, 29 января 2010 г.

Заметки по Sun Solaris


OpenSolaris

   Первое с чем пришлось столкнуться, при попытке настроить сеть через GUI, выскочило сообщение, мол пока активна nwam (NetWork Auto Magic) конфигуратор не будет работать. Как я понял, особо эту службу настраивать возможности нет. При наличии одного сетевого адаптера, она сама автоматически его цепляет, и настраивает через DHCP. Поэтому конфигуратор сети и требует чтобы она была отключена.
svcs - позволяет посмотреть состояние активных служб
svcadm - понятно из названия

переключение с nwam на стандартный режим:

# svcs network/physical
STATE STIME FMRI
disabled 23:58:32 svc:/network/physical:default
online 23:58:36 svc:/network/physical:nwam
# svcadm disable network/physical:nwam
# svcadm enable network/physical:default
Теперь можно конфигурировать сеть через System->Administration->Network

Solaris 10

Заметил интересное отличие в организации домашних папок пользователей. Локальные пользователи создаются в /export/home/ Тогда как /home сконфигурирован как точка автомонтирования, в которую будут отображаться каталоги удаленных пользователей. Несколько странно что для команды useradd по умолчанию пользователю назначается именно /home/. Хотя для управления пользователями гораздо удобнее пользоваться smc (Solaris Management Console). Примечательно также что локальные пользователи из /export/home будут автоматически отображаться в /home


Монтирование ISO образа
   Сначала необходимо создать блочное устройство на которое отображается файл образа с помощью lofiadm(1M), затем достаточно просто смонтировать это устройство

$ pfexec bash
# lofiadm -a /opt/ISO/sol-10-u8-companion-ga.iso /dev/lofi/1
# ls -l /dev/lofi
total 1
lrwxrwxrwx 1 root root 29 февр. 1 18:31 1 -> ../../devices/pseudo/lofi@0:1
# mount -F hsfs /dev/lofi/1 /mnt/cd1
# ls /mnt/cd1
Legal_Notice LICENSE_NOTICE README Solaris_Software_Companion
Для освобождения псевдо-устройства


# umount /mnt/cd1
# lofiadm -d /dev/lofi/1
В общем-то и все. можно конечно выполнить подключение образа и одной командой, например так
mount -F hsfs `lofiadm -a /abs_path_to_imgfile/image.iso` /desired_mountpoint
Без второго параметра lofiadm сама выберает название для устройства и возвращает его в stdout.


Добавление драйвера сетевой карты
   Как ни странно, но в Solaris не оказалось штатного драйвера для сетевой карты IntelPRO 100. Для опеределения того какие устройства поддерживаются Sun предлагает Java утилиту Sun Device Detection Tool. Данная утилита показала, что существует драйвер стороннего производителя. Он то и был установлен. Итак для установки драйвера достаточно выполнить следующее

# mkdir /var/tmp/ife
# cd /var/tmp/ife
# wget http://homepage2.nifty.com/mrym3/taiyodo/ife-2.6.1.tar.gz
# gunzip -cd ife-2.6.1.tar.gz|tar xf -
# cd ife-2.6.1
# rm -f obj Makefile
# ln -s Makefile.i386_gcc Makefile
# ln -s i386 obj                      (или выбрать необходимую платформу)
# /usr/ccs/bin/make install
# ./adddrv.sh
# devfsadm -i ife
# echo "YourHostname" >/etc/hostname.ife0
# ifconfig ife0 plumb
# init 6
Все оказалось довольно просто и быстро.



Где настраивать сеть?

начнем с того чем можно диагностировать сеть.
tcpdumpа нет. (в дефолтной 10-й спарковой солярке точно нет)
есть snoop

можно man snoop
но вот некоторые его опции

snoop - всё всё
snoop -V полный подробный вывод
snoop -v детальный вывод
snoop -o filename запись в файл
snoop -i filename чтение из файла
snoop -d device всё что касается конкретного девайса

За сеть отвечают:
1. Сервис svc:/netvork/physical:default
2. файл /etc/hostname.xxn
3. файл /etc/inet/hosts
4. файл /etc/inet/ipnodes

Сервис svc:/netvork/physical:default вызывает скрипт /lib/svc/method/net-physical. Этот скрипт использует утилиту ifconfig, которая конфигурирует все интерфейсы, их айпи, маски и проч. Так же этот скрипт просматривает файлы /etc/hostname.xxn (xx - это тип интерфейса и n - его номер). Скрипт запускает ifconfig для каждого /etc/hostname.xxn с опцией plump для того чтобы ядро начало "общаться" с интерфейсом.
(в 9-й солярке за это дело отвечает /etc/rcS.d/S30network.sh.

Файл /etc/hostname.xxn

Файл /etc/hostname.xxn содержит имя хоста или его IP адрес. Имя хоста, содержащиеся в этом файле должно присутствовать в /etc/inet/hosts, чтобы система могла резолвить его во время загрузки.


cat /etc/hostname.[i]xxn[/i]
sysname


или

cat /etc/hostname.[i]xxn[/i]
10.1.1.1


Файл /etc/inet/hosts

формат: IP-address official-host-name [alises]

cat /etc/inet/hosts
127.0.0.1 localhost
10.1.1.1 sysname loghost


(/etc/inet/hosts - официальное имя файла по SVr4 (System V release 4) )


Файл /etc/inet/ipnodes

Файл ipnodes -- локальная база данных которая ассоциирует имя нодов с IP адресами. Этот файл моет использоваться в сочетании (или вместо) другими базами ipnodes, включая DNS, карту NIS и LDAP.

Файл ipnodes

IP-address official-node-name nicknames...

cat /etc/inet/ipnodes

#Internet host table

::1 localhost
127.0.0.1 localhost
10.1.1.1 systemname loghost


IP-адрес могут быть определены в ipnodes или в файле hosts. Файл ipnodes просматривается раньше чем hosts.


Так же следует сказать пару слов о Solaris в "состоянии" router

В случае включенного роутинга (в Solaris , в этом случае, включается протокол RIP ) существует вероятность испортить таблицы маршрутизации других роутеров...

В Solaris 9 он будет включен если:

будет существовать файл /etc/gateways

будут существовать два файла настроек сетевых интерфейсов
(например /etc/hostname.eri0 и /etc/hostname.eri1)
но приоритет отдаётся существованию файла /etc/gateways

для отключения роутинга нужно чтобы был:
/etc/defaultrouter
или создать (даже необходимо сосздать, чтобы как-то оно случайно не врубилось) файл /etc/notrouter


В Solaris 10 роутинг управляется или как в Solaris 9 или на новый лад -- командой routeadm (man routeadm ) которой можно посмотреть текущее состояние и отключить роутинг

по умолчанию в 10-я солярка работает как роутер...
(возможно при секурной установке он будет отключен)


Изменение имени хоста

Имя хоста содержится в четырех системных файлах. Для изменения имеи вы должны отредактировать ВСЕ эти файлы и перезагрузить систему для полного изменения имени хоста.

Вот эти файлы:

/etc/nodename
/etc/hostname.xxn
/etc/inet/ipnodes
/etc/inet/hosts

а). Редактирование файла /etc/nodename

Каждая OS Solaris имеет каноническое имя, которое используется для обращения к системе. По соглашению , системное имя соответствует имени, которое ассоциировано IP-адресу главного интерфейса.

cat /etc/nodename
systemname

Вы можете изменить каноническое имя редактированием /etc/nodename и перезагрузкой системы.

Если сетевая конфигурация машины управляется удаленно и определяется с помощью DHCP, то /etc/nodename не используется так как удаленный сервис выдает каноническое имя.

б). Редактирование файла /etc/hostname.xxn

в). Редактирование файла /etc/inet/hosts

г). Редактирование файла/etc/inet/ipnodes

Если вы пытаетесь изменить IP адрес редактированием /etc/inet/hosts и перезагрузите систему, то он не изменится...



и после этого нужно запомнить, что изменение имени хоста вручную не оч желательноsmile.gif

лучше использовать команду sys-unconfig которая откатывает системные конфигурации и конфигурирует их заново.

эта комманда делает следующее:

1. Сохраняет текущий /etc/inet/hosts в /etc/inet/hosts.saved
2. Если текущий файл /etc/vfstab содержит записи о маунтах NFS, он сохраняется в /etc/vfstab.orig
3. Восстанавливает дефолтный /etc/inet/hosts
4. Удаляет дефолтный хостнэйм в /etc/hostname.xxn для всех сконфигурированных интерфейсов
5. Удаляет дефолтное доменное имя из /etc/defaultdomain
6. Восстанавливает временную зону на PST8PDT в /etc/TIMEZONE
7. Сбрасывает нейм сервисы на локальные файлы
8. удаляет файл /etc/netmasks (кстати если у вас нестандартная маска для вашего айпи , то нужно в нём сделать запись при конфигурации сетевого интерфейса)
9. удаляет /etc/defaultrouter
10. Удаляет пароль рута из /etc/shadow
11. Удаляет /etc/.rootkey для NIS+
12. Выполняет все системные конфигурационные утилиты, которые определены командой sysidconfig -a
13. Удаляет запись в /etc/resolv.conf
14. Одключает LDAP удалением файлов:
/var/ldap/ldap_client_cache
/var/ldap/ldap_client_file
/var/ldap/ldap_client_cred
/var/ldap/cachemrg.log
15. Регенерирует ключи для sshd

После окончания работы команды sys-unconfig система перезагружается.

После перезагрузки, конфигурационный скрипт( и вы) сконфигурирует систему.
(sys-unconfig недоступен на бездисковых станциях)

Комментариев нет:

Отправить комментарий