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:
- associated - подключено
- unassociated - неудачное подключение, неверный пароль
- blocked - WiFi-точка отвергла запрос на соединение - неверный тип подключения
Если есть возможность временно переключить точку в режим общедоступной сети, можно проверить, возможно ли вообще подключение данного устройства к данной сети. Проблемы авторизации со стороны 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. В этот файл можно использовать для временных исправлений без перезагрузки.