Часть пятая, практически BSDM
Раздачу файлов по сети мы организовали, осталось настроить сервер BOOTP, который будет рассказывать, что как откуда и куда грузить

Как обычно, все необходимое для обслуживания запросов BSDP (Boot Service Discovery Protocol) в системе уже присутствует, осталось только все немного настроить.
За управление сервисом со стороны launchd отвечает файл /System/Library/LaunchDaemons/bootps.plist, а конфигурация самого демона bootpd описана в файле /etc/bootpd.plist
Ахтунг! Включение шаринга интернета автоматически создает новый файл конфигурации /etc/bootpd.plist, а его прежнее содержимое теряется. Так что на время экспериментов общий интернет следует отключать и держать копию bootpd.plist в безопасном месте. Кроме того, bootpd в режиме шаринга может убить симлинки в /Library/NetBoot. Бдите!
На этот раз гений индусских программистов Apple не остался незамеченным и файл конфигурации bootpd имеет XML формат. Само содержимое довольно обширно, чтобы обойтись несколькими командами defaults write, так что приведем содержимое файла целиком. В данном случае предполагается, что
- Сервер будет подключен к клиентам при помощи проводного эзернета, интерфейс en0
- Настройки сети для проводной карты следующие:
- Присвоен статический ip адрес 192.168.101.1
- Маска подсети 255.255.255.0
- Шлюз по-умолчанию отстутствует (не заполнен)
- Своим клиентам сервер будет выдавать адреса из диапазона 192.168.101.101 — 192.168.101.101
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList- 1.0.dtd">
<plist version="1.0">
<dict>
<key>Subnets</key>
<array>
<dict>
<key>allocate</key>
<true/>
<key>name</key>
<string>192.168.101/24</string>
<key>net_address</key>
<string>192.168.101.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
<string>192.168.101.101</string>
<string>192.168.101.200</string>
</array>
</dict>
</array>
<key>bootp_enabled</key>
<string>en0</string>
<key>detect_other_dhcp_server</key>
<true/>
<key>dhcp_enabled</key>
<string>en0</string>
<key>netboot_enabled</key>
<string>en0</string>
<key>old_netboot_enabled</key>
<string>en0</string>
</dict>
</plist>
Сохраним файл конфигурации и запустим демон по знакомому рецепту
launchctl load -F /System/Library/LaunchDaemons/bootps.plist
В логах Console.app не должно быть ни какой ругани по этому поводу.
Проверяем. Подсоединяем кабелем другой Mac и в настройках выставляем получать для проводной карты адрес по DHCP. Если все хорошо, то клиент получит адрес 192.168.101.101, а влогах сервера появятся записи типа
21.02.10 18:26:10 bootpd[694] DHCP REQUEST [en0]: 1,0:17:f2:f2:61:2c 21.02.10 18:26:10 bootpd[694] ACK sent192.168.101.101 pktsize 300 21.02.10 18:26:11 bootpd[694] BSDP INFORM [en0] 1,0:17:f2:f2:61:2c arch=i386 sysid=MacBook2,1 21.02.10 18:26:11 bootpd[694] NetBoot: [1,0:17:f2:f2:61:2c] BSDP ACK[LIST] sent 192.168.101.101 pktsize 300 21.02.10 18:26:11 bootpd[694] DHCP INFORM [en0]: 1,0:17:f2:f2:61:2c
Теперь можно пробовать перегрузить клиента и стартовать загрузку с нажатой клавишей N
Ой.

1 коммент.:
RSS сказала Ой на этот пост :(
Отправить комментарий