9F.Sphynkx.Org.Ua: In GNU We Trust

Plan9 обладает большим ассортиментом сетевых средств и возможности для работы в разнородных сетях. В случае однородных сетей используются архитектурные особенности системы и методы реализации оказываются простыми и оригинальными. К примеру реализацию NAT и VPN можно сформировать, импортировав каталог /net с удаленного сервера. Все приложения будут прозрачно использовать сетевой стек удаленной машины (см. также tinc(8)).

Полезные команды

Удобную и быструю проверку сетевой конфигурации можно сделать командой netaudit.

Посмотреть текущий IP-адрес можно командой ndb/ipquery sys $sysname ip

Команды по большому счету такие же как и в Linux, но формат некоторых немного отличается от привычного, имеются дополнительные опции. Ряд команд располагается в каталоге /bin/ip, не находящейся в путях поиска команд, поэтому их вводят указывая каталог ip.

Команда ping(8) вводится как ip/ping. По умолчанию ping отсылает 32 пакета. Прервать его можно клавишей Del, но можно и указать число запросов:

ip/ping -n5 google.com

Команда traceroute также вводится как ip/traceroute.

Команда telnet однако "живет" в /bin поэтому писать перед ней ip/ не надо.

Настройка сетевого интерфейса

Настройка и старт выполняется командой

ip/ipconfig 192.168.7.13 255.255.255.0 ether /net/ether0 -g 192.168.7.1

Тут указаны будущий IP-адрес, маска, интерфейс и шлюз. Интерфейс можно настроить на постоянной основе (см.ниже) и тогда запускать его можно просто командой ip/ipconfig.

Настрока WiFi

При успешной конфигурации карточки должен присутствовать каталог /net/ether1.

В /lib/ndb/local надо добавить запись, указывающую на устройство с определенным сетевым адресом:

sys=vega9 ether=112233445566

Адрес карточки узнаем командой cat /net/ether1/addr. В данной записи отсутствуют остальные сетевые параметры, что вызовет обращение к DHCP.

Авторизация происходит посредством factotum. Ключи в нем по умолчанию после перезагрузки не сохраняются. Для постоянного хранения ключей его надо настраивать через secstore(1), но на первых порах можно прописатьlib/profile:

auth/factotum g 'key proto=wpapsk essid=vega3 !password=SECRET'

Подключение производим командами:

aux/wpa -s vega3 /net/ether1
ip/ipconfig ether /net/ether1

Тут vega3 - имя нужной WiFi-сети. В случае проблем можно перезапустить aux/wpa вручную с параметром -d. Также текущий статус подключения можно смотреть в /net/ether1/ifstats - значение параметра status:

Если есть возможность временно переключить точку в режим общедоступной сети, можно проверить, возможно ли вообще подключение данного устройства к данной сети. Проблемы авторизации со стороны factotum можно посмотреть в его логе:

cat /mnt/factotum/log

Текущие IP-адреса интерфейсов можно посмотреть командами netaudit или:

ndb/ipquery sys $sysname ip

При скачивании больших объемов может наблюдаться зависание интерфейса с потерей соединения. К сожалению это лечится лишь перезагрузкой.

Маршрутизация

Таблица маршрутизации генерируется в файл /net/iproute где его можно посмотреть:

>cat /net/iproute

и отредактировать:

echo 'add 192.168.1.0 255.255.255.0 192.168.7.1' >/net/iproute

/lib/ndb

Все сетевые настройки хранятся в хранилище сетевых данных, расположенном в /lib/ndb. В каталоге находятся файлы сетевой конфигурации. Для применения внесенных изменений в придется перезагружать машину.

/lib/ndb/local

В данном файле хранятся настройки машины, в случае конфигурирования со статическим адресом. Изначально заполняется установщиком системы. Сетевые настройки осуществляются добавлением строк в формате, подобном имеющимся там же образцам. К примеру:

sys=vega9 ether=5254003f5a1b ip=192.168.7.13 ipmask=255.255.255.0 ipgw=192.168.7.1 dns=8.8.8.8

Тут указывается имя хоста, мак-адрес сетевого интерфейса, IP-адрес, маска сети и шлюз. Если IP не задан, система попытается вызвать dhcp и получить сетевые настройки автоматически.

Во второй строке указывается DNS-сервер. Все лаконично и самоочевидно.

Если в системе несколько сетевых интерфейсов, их можно также прописать отдельными аналогичными строками с разными мак-адресами.

В этом же файле можно описать и всю сеть:

ipnet=homenet.org ip=192.168.7.0 ipmask=255.255.255.0 dns=8.8.8.8

Тогда сетевая настройка будет выглядеть так:

ip=192.168.7.13 sys=vega9 dom=vega9.homenet.org ether=5254003f5a1b

Для WiFi-интерфейса необходима запись с MAC-адресом:

sys=hostname ether=112233445566

MAC-адрес можно посмотреть командой

cat /net/ether1/addr

Без предустановленных сетевых параметром интерфейс настроится по DHCP.

/net/ndb

Это динамически генерируемый системой файл, к которому обращаются сервисы и программы. Изменения в файле не сохраняются при перезагрузке, поэтому для постоянных настроек их надо вносить в файлы хранилища /lib/ndb. В этот файл можно использовать для временных исправлений без перезагрузки.