Глава 7. Сеть

Этот перевод может быть устаревшим. Для того, чтобы помочь с переводом, пожалуйста, обратитесь к Сервер переводов FreeBSD.

7.1. Обзор

Эта глава углубляется в тему настройки сети и производительности, демонстрируя мощные сетевые возможности операционной системы FreeBSD. Независимо от работы с проводными или беспроводными сетями, эта глава предоставляет всеобъемлющее руководство по настройке и оптимизации сетевого подключения в FreeBSD.

Прежде чем углубляться в детали, читателям будет полезно иметь базовое понимание сетевых концепций, таких как протоколы, сетевые интерфейсы и адресация.

Эта глава охватывает:

  • Возможности настройки проводных сетей в FreeBSD, включая настройку сетевых интерфейсов, адресацию и параметры конфигурации.

  • Навыки, необходимые для настройки беспроводных сетей в FreeBSD, включая настройку беспроводных сетевых интерфейсов, протоколы безопасности и методы устранения неполадок.

  • Возможности сетевых подключений FreeBSD и её репутация в области превосходной сетевой производительности.

  • Понимание различных сетевых служб и протоколов, поддерживаемых FreeBSD, с инструкциями по настройке DNS, DHCP и других.

Дополнительная информация о настройке расширенных конфигураций сети приведена в разделе Сложные вопросы работы в сети.

7.2. Настройка сети

Настройка проводного или беспроводного подключения — распространённая задача для пользователя FreeBSD. В этом разделе показано, как определить проводные и беспроводные сетевые адаптеры и как их настроить.

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

  • Есть ли в сети DHCP

  • Если в сети нет DHCP, используемый статический IP-адрес

  • Маска сети

  • IP-адрес шлюза по умолчанию

Сетевое соединение могло быть настроено во время установки с помощью bsdinstall(8).

7.2.1. Определение сетевых адаптеров

FreeBSD поддерживает широкий спектр сетевых адаптеров как для проводных, так и для беспроводных сетей. Проверьте список совместимости оборудования для используемого выпуска FreeBSD, чтобы убедиться, что сетевой адаптер поддерживается.

Чтобы получить список сетевых адаптеров, используемых в системе, выполните следующую команду:

% pciconf -lv | grep -A1 -B3 network

Вывод должен быть похож на следующий:

em0@pci0:0:25:0:        class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x10f5 subvendor=0x17aa subdevice=0x20ee
    vendor     = 'Intel Corporation' (1)
    device     = '82567LM Gigabit Network Connection' (2)
    class      = network
    subclass   = ethernet
--
iwn0@pci0:3:0:0:        class=0x028000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4237 subvendor=0x8086 subdevice=0x1211
    vendor     = 'Intel Corporation' (1)
    device     = 'PRO/Wireless 5100 AGN [Shiloh] Network Connection' (2)
    class      = network

Текст перед символом '@' — это название драйвера, управляющего устройством. В данном случае это em(4) и iwn(4).

1Показывает название производителя
2Показывает название устройства

Требуется загружать модуль сетевой карты только в том случае, если FreeBSD не определил его правильно.

Например, для загрузки модуля alc(4) выполните следующую команду:

# kldload if_alc

В качестве альтернативы, для загрузки драйвера как модуля во время загрузки, добавьте следующую строку в /boot/loader.conf:

if_alc_load="YES"

7.3. Проводные сети

После загрузки нужного драйвера необходимо настроить сетевой адаптер. В FreeBSD для именования сетевого интерфейса используется имя драйвера, за которым следует номер устройства. Номер устройства указывает порядок обнаружения адаптера при загрузке или позднее.

Например, em0 — это первая сетевая карта (NIC) в системе, использующая драйвер em(4).

Для отображения конфигурации сетевого интерфейса введите следующую команду:

% ifconfig

Вывод должен быть похож на следующий:

em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        inet6 fe80::21f:16ff:fe0f:275a%em0 prefixlen 64 scopeid 0x1
        inet 192.168.1.19 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet 127.0.0.1 netmask 0xff000000
        groups: lo
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

В этом примере были отображены следующие устройства:

  • em0: Интерфейс Ethernet.

  • lo0: Интерфейс loop представляет собой механизм программной петли (loopback), который может использоваться для анализа производительности, тестирования программного обеспечения и/или локального взаимодействия. Подробнее см. в lo(4).

Пример показывает, что em0 работает и активен.

Ключевые показатели:

  1. UP означает, что интерфейс настроен и готов к работе.

  2. Интерфейс имеет IPv4 адрес в Интернете (inet) — 192.168.1.19.

  3. Интерфейс имеет IPv6-адрес (inet6) в Интернете: fe80::21f:16ff:fe0f:275a%em0.

  4. У него есть действительная маска подсети (netmask), где 0xffffff00 эквивалентно 255.255.255.0.

  5. У него есть корректный широковещательный адрес, 192.168.1.255.

  6. MAC-адрес интерфейса (ether) — 00:1f:16:0f:27:5a.

  7. Выбор физической среды находится в режиме автоопределения (media: Ethernet autoselect (1000baseT <full-duplex>)).

  8. Состояние соединения (status) имеет значение active, что указывает на обнаружение несущего сигнала. Для em0 состояние status: no carrier является нормальным, если кабель Ethernet не подключен к интерфейсу.

Если вывод ifconfig(8) показал что-то похожее на следующий результат, это означало бы, что интерфейс не настроен:

em0: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        media: Ethernet autoselect
        status: no carrier
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

7.3.1. Настройка статического IPv4-адреса

В этом разделе представлено руководство по настройке статического IPv4-адреса в системе FreeBSD.

Настройку сетевой интерфейсной карты можно выполнить из командной строки с помощью ifconfig(8), но она не сохранится после перезагрузки, если конфигурация также не добавлена в /etc/rc.conf.

Если сеть была настроена во время установки с помощью bsdinstall(8), некоторые записи для сетевой интерфейсной карты (NIC) могут уже присутствовать. Проверьте /etc/rc.conf перед выполнением sysrc(8).

IP-адрес можно задать, выполнив следующую команду:

# ifconfig em0 inet 192.168.1.150/24

Чтобы изменение сохранялось после перезагрузки, выполните следующую команду:

# sysrc ifconfig_em0="inet 192.168.1.150 netmask 255.255.255.0"

Добавьте маршрут по умолчанию, выполнив следующую команду:

# sysrc defaultrouter="192.168.1.1"

Добавьте DNS-записи в /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

Затем перезапустите netif и routing, выполнив следующую команду:

# service netif restart && service routing restart

Соединение можно проверить с помощью ping(8):

% ping -c2 www.FreeBSD.org

Вывод должен быть похож на следующий:

PING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes
64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms
64 bytes from 147.28.184.45: icmp_seq=1 ttl=51 time=53.093 ms

--- web.geo.FreeBSD.org ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 ms

7.3.2. Настройка динамического IPv4-адреса

Если в сети есть DHCP-сервер, то настроить сетевой интерфейс для использования DHCP очень просто. FreeBSD использует dhclient(8) в качестве DHCP-клиента. dhclient(8) автоматически предоставит IP-адрес, маску сети и маршрутизатор по умолчанию.

Чтобы настроить интерфейс для работы с DHCP, выполните следующую команду:

# sysrc ifconfig_em0="DHCP"

dhclient(8) можно использовать вручную, выполнив следующую команду:

# dhclient em0

Вывод должен быть похож на следующий:

DHCPREQUEST on em0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
unknown dhcp option value 0x7d
bound to 192.168.1.19 -- renewal in 43200 seconds.

Таким образом можно убедиться, что назначение адреса с помощью DHCP работает корректно.

Клиент dhclient(8) может быть запущен в фоновом режиме. Это может вызвать проблемы с приложениями, зависящими от рабочей сети, но во многих случаях обеспечит более быстрый запуск.

Для выполнения dhclient(8) в фоновом режиме выполните следующую команду:

# sysrc background_dhclient="YES"

Затем перезапустите netif, выполнив следующую команду:

# service netif restart

Соединение можно проверить с помощью ping(8):

% ping -c2 www.FreeBSD.org

Вывод должен быть похож на следующий:

PING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes
64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms
64 bytes from 147.28.184.45: icmp_seq=1 ttl=51 time=53.093 ms

--- web.geo.FreeBSD.org ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 ms

7.3.3. IPv6

IPv6 — это новая версия широко известного протокола IP, также известного как IPv4.

IPv6 предоставляет несколько преимуществ по сравнению с IPv4, а также множество новых функций:

  • Его 128-битное адресное пространство позволяет использовать 340 282 366 920 938 463 463 374 607 431 768 211 456 адресов. Это решает проблему нехватки IPv4-адресов и неизбежного исчерпания IPv4-адресного пространства.

  • Маршрутизаторы хранят в своих таблицах маршрутизации только агрегированные сетевые адреса, что сокращает средний размер таблицы маршрутизации до 8192 записей. Это решает проблемы масштабируемости, связанные с IPv4, где каждый выделенный блок IPv4-адресов должен был обмениваться между интернет-маршрутизаторами, что приводило к чрезмерному увеличению их таблиц маршрутизации и затрудняло эффективную маршрутизацию.

  • Автоконфигурация адресов (RFC4862).

  • Обязательные multicast-адреса.

  • Встроенный IPsec (безопасность IP).

  • Упрощённая структура заголовка.

  • Поддержка мобильного IP.

  • Механизмы перехода с IPv6 на IPv4.

FreeBSD включает в себя эталонную реализацию IPv6 от проекта KAME и поставляется со всем необходимым для работы с IPv6.

Этот раздел посвящён настройке и запуску IPv6.

Существует три различных типа IPv6-адресов:

Unicast

Пакет, отправленный на одноадресный (unicast) адрес, поступает на интерфейс, принадлежащий этому адресу.

Anycast

Эти адреса синтаксически неотличимы от одноадресных, но они обозначают группу интерфейсов. Пакет, предназначенный для адреса anycast, будет доставлен на ближайший интерфейс.

Multicast

Эти адреса идентифицируют группу интерфейсов. Пакет, предназначенный для multicast-адреса, будет доставлен на все интерфейсы, входящие в multicast-группу. IPv4 широковещательный адрес, обычно xxx.xxx.xxx.255, в IPv6 выражается через multicast-адреса.

При чтении IPv6-адреса каноническая форма представляется как x:x:x:x:x:x:x:x, где каждый x соответствует 16-битному шестнадцатеричному значению. Пример: FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.

Часто в адресе встречаются длинные последовательности нулей. Для замены одной такой последовательности в адресе можно использовать :: (двойное двоеточие). Кроме того, в каждом шестнадцатеричном числе можно опустить до трёх ведущих нулей. Например, fe80::1 соответствует канонической форме fe80:0000:0000:0000:0000:0000:0000:0001.

Третья форма записи — указание последних 32 битов в известной IPv4 нотации. Например, 2002::10.0.0.1 соответствует шестнадцатеричной канонической записи 2002:0000:0000:0000:0000:0000:0a00:0001, которая, в свою очередь, эквивалентна 2002::a00:1.

Чтобы просмотреть IPv6-адрес системы FreeBSD, выполните следующую команду:

# ifconfig

Вывод должен быть похож на следующий:

em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        inet 192.168.1.150 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::21f:16ff:fe0f:275a%em0 prefixlen 64 scopeid 0x1
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>

В этом примере интерфейс em0 использует fe80::21f:16ff:fe0f:275a%em0 — автоматически сконфигурированный link-local адрес, который был автоматически сгенерирован из MAC-адреса.

Некоторые IPv6-адреса зарезервированы. Список зарезервированных адресов можно посмотреть в следующей таблице:

Таблица 1. Пример зарезервированных адресов IPv6
IPv6 addressОписаниеЗаметки

::/128

не указано

Эквивалентно 0.0.0.0 в IPv4.

::1/128

loopback-адрес (адрес обратной петли)

Эквивалент 127.0.0.1 в IPv4.

::ffff:0.0.0.0/96

IPv4-отображенный IPv6-адрес

Младшие 32 бита представляют IPv4-адрес для совместимости с хостами и маршрутизаторами, поддерживающих только IPv4.

fe80::/10

link-local unicast

Эквивалентно 169.254.0.0/16 в IPv4.

fc00::/7

unique-local

Уникальные локальные адреса предназначены для локального взаимодействия и доступны для маршрутизации только в пределах группы взаимодействующих сайтов.

ff00::/8

multicast

2000::/3

global unicast

Все глобальные одноадресные адреса выделяются из этого пула. Первые 3 бита имеют значение 001.

2001:db8::/32, 3fff::/20

documentation

Адресный префикс IPv6 для использования в документации.

Для получения дополнительной информации о структуре IPv6-адресов обратитесь к RFC4291.

7.3.4. Настройка статического IPv6-адреса

Для настройки системы FreeBSD в качестве IPv6-клиента со статическим IPv6-адресом необходимо установить IPv6-адрес.

Выполните следующие команды для выполнения требований:

# sysrc ifconfig_em0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"

Чтобы назначить маршрутизатор по умолчанию, укажите его адрес, выполнив следующую команду:

# sysrc ipv6_defaultrouter="2001:db8:4672:6565::1"

Для настройки дополнительного IPv6 anycast-адреса укажите адрес anycast как _aliasN(указано в rc.conf(5)) с добавлением опции anycast:

# sysrc ifconfig_em0_alias0="inet6 2001:db8:4672:6565::a anycast"

Имейте в виду, что приложения не могут привязываться к anycast-адресам; в этом случае необходимо использовать алиас-адрес.

7.3.5. Настройка динамического адреса IPv6

Для динамической настройки IPv6-адреса интерфейса с использованием SLAAC, выполните следующие команды:

# sysrc ifconfig_em0_ipv6="inet6 accept_rtadv"
# sysrc rtsold_enable="YES"

Обратите внимание, что при включённой IPv6-маршрутизации (т.е. ipv6_gateway_enable=YES), система не будет настраивать SLAAC-адрес, если переменная sysctl(8) net.inet6.ip6.rfc6204w3 не установлена в 1.

7.3.6. Объявление маршрутизатора и автонастройка хоста

Этот раздел демонстрирует, как настроить rtadvd(8) на IPv6-маршрутизаторе для объявления префикса IPv6-сети и маршрута по умолчанию.

Чтобы включить rtadvd(8), выполните следующую команду:

# sysrc rtadvd_enable="YES"

Важно указать интерфейс, на котором будет выполняться IPv6-анонсирование маршрутизатора. Например, чтобы указать rtadvd(8) использовать em0:

# sysrc rtadvd_interfaces="em0"

Далее создайте файл конфигурации /etc/rtadvd.conf, как показано в этом примере:

em0:\
	:addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:

Замените em0 на используемый интерфейс и 2001:db8:1f11:246:: на префикс выделенного диапазона.

Для выделенной подсети /64 больше ничего менять не нужно. В противном случае измените значение prefixlen# на соответствующее.

7.3.7. Соответствие адресов IPv6 и IPv4

Когда на сервере включен IPv6, может возникнуть необходимость разрешить использование IPv4-отображенных IPv6-адресов. Эта опция совместимости позволяет представлять IPv4-адреса в виде IPv6-адресов. Разрешение IPv6-приложениям взаимодействовать с IPv4 и наоборот может представлять угрозу безопасности.

Эта опция может не требоваться в большинстве случаев и доступна только для совместимости. Она позволит IPv6-приложениям работать с IPv4 в двухстековой среде. Это особенно полезно для сторонних приложений, которые могут не поддерживать IPv6-окружение.

Для включения этой функции выполните следующую команду:

# sysrc ipv6_ipv4mapping="YES"

7.4. Беспроводные сети

Большинство беспроводных сетей основаны на стандартах IEEE® 802.11.

FreeBSD поддерживает сети, работающие по стандартам 802.11a, 802.11b, 802.11g и 802.11n.

802.11ac поддержка в FreeBSD в настоящее время находится в стадии разработки.

Базовая беспроводная сеть состоит из нескольких станций, взаимодействующих через радиомодули, работающие в диапазоне 2,4 ГГц или 5 ГГц, хотя это может различаться в зависимости от региона и также меняется для обеспечения связи в диапазонах 2,3 ГГц и 4,9 ГГц.

Настройка беспроводной сети включает три основных этапа:

  1. Сканировать и выбрать точку доступа

  2. Аутентификация станции

  3. Настройте IP-адрес или используйте DHCP.

Следующие разделы описывают каждый шаг.

7.4.1. Быстрое начало работы: подключение к беспроводной сети

Подключение FreeBSD к существующей беспроводной сети — весьма распространённая ситуация.

Эта процедура быстрого старта показывает шаги, необходимые для подключения к сети с использованием базовой аутентификации. Более подробная процедура приведена в следующем разделе.

Первый шаг — получить Service Set Identifier (SSID) и Pre-Shared Key (PSK) для беспроводной сети у администратора сети.

Второй шаг — добавить запись для этой сети в файл /etc/wpa_supplicant.conf.

Если файл не существует, создайте его. Подробности о форматировании записей в этом файле см. в wpa_supplicant.conf(5).

ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1

network={
 ssid="myssid" (1)
 psk="mypsk" (2)
}
1Это SSID беспроводной сети. Замените его на имя беспроводной сети.
2Это PSK беспроводной сети. Замените его на пароль от беспроводной сети.

Третий шаг — добавить запись о сетевом интерфейсе для настройки сети при загрузке. Получите имя сетевого интерфейса с помощью sysctl net.wlan.devices. В приведённом ниже примере вывод этой команды показывает, что сетевым интерфейсом является "iwn0".

# sysctl net.wlan.devices

Вывод должен быть похож на следующий:

net.wlan.devices: iwm0

В следующей строке с командой sysrc замените "iwn0" на вывод команды sysctl, если это необходимо.

# sysrc wlans_iwn0="wlan0"
# sysrc ifconfig_wlan0="WPA DHCP"
  • И последний шаг — перезапуск службы netif выполнением следующей команды:

# service netif restart

7.4.2. Базовая настройка беспроводной сети

Эта секция предоставляет детальный пример настройки беспроводной сетевой карты. Чтобы узнать, какие беспроводные сетевые карты есть в системе, ознакомьтесь с разделом Определение сетевых адаптеров.

# ifconfig wlan0 create wlandev iwm0

Чтобы изменение сохранялось после перезагрузки, выполните следующую команду:

# sysrc wlans_iwm0="wlan0"

Поскольку нормативные требования различаются в разных частях мира, необходимо правильно настроить домены, соответствующие вашему местоположению, чтобы получить корректную информацию о доступных каналах.

Доступные определения регионов можно найти в /etc/regdomain.xml. Для установки данных во время выполнения используйте ifconfig:

# ifconfig wlan0 regdomain etsi2 country AT

Чтобы сохранить настройки, добавьте их в /etc/rc.conf:

# sysrc create_args_wlan0="country AT regdomain etsi2"

7.4.3. Сканирование беспроводных сетей

Доступные беспроводные сети можно просканировать с помощью ifconfig(8).

Для вывода списка беспроводных сетей выполните следующую команду:

# ifconfig wlan0 up list scan

Вывод должен быть похож на следующий:

SSID/MESH ID                      BSSID              CHAN RATE    S:N     INT CAPS
FreeBSD                           e8:d1:1b:1b:58:ae    1   54M  -47:-96   100 EP   RSN BSSLOAD HTCAP WPS WME
NetBSD                            d4:b9:2f:35:fe:08    1   54M  -80:-96   100 EP   RSN BSSLOAD HTCAP WPS WME
OpenBSD                           fc:40:09:c6:31:bd   36   54M  -94:-96   100 EPS  VHTPWRENV APCHANREP RSN WPS BSSLOAD HTCAP VHTCAP VHTOPMODE WME
GNU-Linux                         dc:f8:b9:a0:a8:e0   44   54M  -95:-96   100 EP   WPA RSN WPS HTCAP VHTCAP VHTOPMODE WME VHTPWRENV
Windows                           44:48:b9:b3:c3:ff   44   54M  -84:-96   100 EP   BSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPS
MacOS                             46:48:b9:b3:c3:ff   44   54M  -84:-96   100 EP   BSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPS
  1. SSID/MESH ID идентифицирует название сети.

  2. BSSID идентифицирует MAC-адрес точки доступа.

  3. Поле CAPS определяет тип каждой сети и возможности работающих в ней станций (подробности см. в определении list scan в ifconfig(8)).

7.4.4. Подключение и аутентификация в беспроводной сети

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

7.4.4.1. Аутентификация с WPA2/WPA/Personal

Процесс аутентификации в беспроводной сети управляется с помощью wpa_supplicant(8).

Конфигурация wpa_supplicant(8) задаётся в файле /etc/wpa_supplicant.conf. Подробнее см. wpa_supplicant.conf(5).

После завершения сканирования беспроводных сетей, выбора сети и получения пароля (PSK), эта информация будет добавлена в файл /etc/wpa_supplicant.conf, как показано в следующем примере:

network={
        scan_ssid=1 (1)
        ssid="FreeBSD" (2)
        psk="12345678" (3)
}
1Метод сканирования SSID. Используйте эту опцию только если сеть скрыта.
2Имя сети.
3Пароль беспроводной сети.

Следующим шагом будет настройка беспроводного соединения в файле /etc/rc.conf.

Для использования статического адреса необходимо выполнить следующую команду:

# sysrc ifconfig_wlan0="inet 192.168.1.20 netmask 255.255.255.0"

Для использования динамического адреса необходимо выполнить следующую команду:

# sysrc ifconfig_wlan0="WPA DHCP"

Затем перезапустите сеть, выполнив следующую команду:

# service netif restart

Дополнительная информация о более сложных методах аутентификации доступна в Расширенная аутентификация беспроводных сетей.

7.4.4.2. Аутентификация в открытых сетях

Важно, чтобы пользователь был очень осторожен при подключении к открытым сетям без какой-либо аутентификации.

После завершения сканирования беспроводной сети и выбора SSID выполните следующую команду:

# ifconfig wlan0 ssid SSID

Затем выполните dhclient(8), чтобы настроить адрес:

# dhclient wlan0

7.4.5. Использование проводного и беспроводного подключений одновременно

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

На FreeBSD можно объединить два или более сетевых интерфейса в режиме "отказоустойчивости". Такой тип конфигурации использует наиболее предпочтительное и доступное соединение из группы сетевых интерфейсов, а операционная система автоматически переключается при изменении состояния канала.

Агрегация и отказоустойчивость каналов описаны в Агрегация и отказоустойчивость каналов, а пример использования как проводных, так и беспроводных соединений приведен в Режим отказоустойчивости между проводными и беспроводными интерфейсами.

7.5. Имя сайта

Имя хоста представляет собой полностью определённое доменное имя (FQDN) хоста в сети.

Если для хоста не задано имя, FreeBSD назовет себя Amnesiac.

7.5.1. Проверить текущее имя хоста

hostname(1) может использоваться для проверки текущего имени хоста:

$ hostname

Вывод должен быть похож на следующий:

freebsdhostname.example.com

7.5.2. Изменить имя хоста

Для изменения имени хоста с сохранением после перезагрузки выполните следующую команду:

# sysrc hostname="freebsdhostname.example.com"

7.6. DNS

DNS можно представить как телефонный справочник, в котором IP-адрес сопоставляется с именем хоста и наоборот.

Существует три файла, которые управляют взаимодействием системы FreeBSD с DNS. Эти три файла: hosts(5), resolv.conf(5) и nsswitch.conf(5)

Если иное не указано в файле /etc/nsswitch.conf, FreeBSD сначала проверит адреса в файле /etc/hosts, а затем DNS-информацию в файле /etc/resolv.conf.

Файл nsswitch.conf(5) определяет, как должен работать nsdispatch (диспетчер переключения службы имен).

По умолчанию раздел hosts в файле /etc/nsswitch.conf будет выглядеть следующим образом:

hosts: files dns

Например, в случае использования службы nscd(8). Порядок предпочтения можно изменить, оставив строку следующей:

hosts: files cache dns

7.6.1. Локальные адреса

Файл /etc/hosts представляет собой простую текстовую базу данных, которая сопоставляет имена хостов с IP-адресами. В него можно добавить записи для локальных компьютеров, подключенных через LAN, чтобы использовать простые имена вместо настройки DNS-сервера. Кроме того, /etc/hosts может использоваться для хранения локальных записей интернет-имен, что уменьшает необходимость запрашивать внешние DNS-серверы для часто используемых имен.

Например, если в локальной среде имеется локальный экземпляр www/gitlab-ce, его можно добавить следующим образом в файл /etc/hosts:

192.168.1.150 git.example.com git

7.6.2. Настройка сервера имен

Как система FreeBSD обращается к системе доменных имен (DNS) в Интернете, управляется с помощью resolv.conf(5).

Наиболее распространённые записи в /etc/resolv.conf:

nameserver

IP-адрес сервера имен, к которому должен обращаться резолвер. Серверы опрашиваются в указанном порядке, максимум три.

search

Список поиска для разрешения имён хостов. Обычно определяется доменом локального имени хоста.

domain

Локальное доменное имя.

Типичный файл /etc/resolv.conf выглядит следующим образом:

search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30

Должна использоваться только одна из опций — search или domain.

При использовании DHCP dhclient(8) обычно перезаписывает /etc/resolv.conf информацией, полученной от DHCP-сервера.

Если машина, в которой производится настройка, не является DNS-сервером, для улучшения производительности DNS-запросов можно использовать local-unbound(8).

Чтобы включить его при загрузке, выполните следующую команду:

# sysrc local_unbound_enable="YES"

Чтобы запустить службу local-unbound(8), выполните следующую команду:

# service local_unbound start

7.7. Устранение неполадок

При устранении неполадок в конфигурации оборудования и программного обеспечения сначала проверяйте самые простые вещи.

  • Вставлен ли сетевой кабель?

  • Правильно ли настроены сетевые службы?

  • Настроен ли межсетевой экран правильно?

  • Поддерживается ли сетевая карта (NIC) в FreeBSD?

  • Работает ли маршрутизатор правильно?

Прежде чем отправить отчёт об ошибке, всегда проверяйте раздел "Аппаратные требования" на странице релиза FreeBSD, обновите версию FreeBSD до последней STABLE версии, проверьте архивы списков рассылки и выполните поиск в Интернете.

7.7.1. Устранение неполадок в проводных сетях

Если карта работает, но производительность низкая, ознакомьтесь с tuning(7). Также проверьте настройки сети, так как неправильные параметры могут быть причиной медленного соединения.

Сообщения No route to host возникают, если система не может найти маршрут для пакета до целевого хоста. Это может произойти, если не указан маршрут по умолчанию или если кабель отключен. Проверьте вывод команды netstat -rn и убедитесь, что существует действительный маршрут до хоста. Если его нет, ознакомьтесь с разделом Шлюзы и маршруты.

Сообщения об ошибках ping: sendto: Permission denied часто возникают из-за неправильно настроенного межсетевого экрана. Если на FreeBSD включен межсетевой экран, но не определены правила, политика по умолчанию — запрещать весь трафик, включая ping(8). Дополнительную информацию можно найти в Межсетевые экраны.

7.7.2. Устранение неполадок в беспроводных сетях

В этом разделе описаны шаги для устранения распространённых проблем с беспроводными сетями.

  • Если точка доступа не отображается при сканировании, проверьте, что конфигурация не ограничивает беспроводное устройство определенным набором каналов.

  • Если устройство не может подключиться к точке доступа, убедитесь, что конфигурация соответствует настройкам на точке доступа. Это включает схему аутентификации и все протоколы безопасности. Упростите конфигурацию насколько это возможно. Если используется протокол безопасности, такой как WPA2 или WPA, настройте точку доступа на открытую аутентификацию без защиты, чтобы проверить, проходит ли трафик.

  • Как только система сможет подключиться к точке доступа, диагностируйте конфигурацию сети с помощью таких инструментов, как ping(8).

  • Для низкоуровневой отладки существует множество инструментов. Сообщения отладки можно включить в слое поддержки протокола 802.11 с помощью wlandebug(8).


Изменено: 24 ноября 2025 г. by Vladlen Popolitov