diff options
Diffstat (limited to 'documentation/content/ru/books/handbook/network/_index.adoc')
| -rw-r--r-- | documentation/content/ru/books/handbook/network/_index.adoc | 927 |
1 files changed, 927 insertions, 0 deletions
diff --git a/documentation/content/ru/books/handbook/network/_index.adoc b/documentation/content/ru/books/handbook/network/_index.adoc new file mode 100644 index 0000000000..e8b99fd715 --- /dev/null +++ b/documentation/content/ru/books/handbook/network/_index.adoc @@ -0,0 +1,927 @@ +--- +description: 'Эта глава рассматривает тему настройки сети и производительности, демонстрируя мощные сетевые возможности операционной системы FreeBSD.' +next: books/handbook/partii +params: + path: /books/handbook/network/ +part: 'В начале' +prev: books/handbook/wayland +showBookMenu: true +tags: ["network", "ipv4", "ipv6", "wireless", "wpa_supplicant", "static ip", "dynamic ip"] +title: 'Глава 7. Сеть' +weight: 9 +--- + +[[network]] += Сеть +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 7 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/handbook/network/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../../images/{images-path} +endif::[] +ifndef::book[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +toc::[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +toc::[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[[network-synopsis]] +== Обзор + +Эта глава углубляется в тему настройки сети и производительности, демонстрируя мощные сетевые возможности операционной системы FreeBSD. Независимо от работы с проводными или беспроводными сетями, эта глава предоставляет всеобъемлющее руководство по настройке и оптимизации сетевого подключения в FreeBSD. + +Прежде чем углубляться в детали, читателям будет полезно иметь базовое понимание сетевых концепций, таких как протоколы, сетевые интерфейсы и адресация. + +Эта глава охватывает: + +* Возможности настройки проводных сетей в FreeBSD, включая настройку сетевых интерфейсов, адресацию и параметры конфигурации. +* Навыки, необходимые для настройки беспроводных сетей в FreeBSD, включая настройку беспроводных сетевых интерфейсов, протоколы безопасности и методы устранения неполадок. +* Возможности сетевых подключений FreeBSD и её репутация в области превосходной сетевой производительности. +* Понимание различных сетевых служб и протоколов, поддерживаемых FreeBSD, с инструкциями по настройке DNS, DHCP и других. + +Дополнительная информация о настройке расширенных конфигураций сети приведена в разделе crossref:advanced-networking[advanced-networking,Сложные вопросы работы в сети]. + +[[config-network-setup]] +== Настройка сети + +Настройка проводного или беспроводного подключения — распространённая задача для пользователя FreeBSD. В этом разделе показано, как определить проводные и беспроводные сетевые адаптеры и как их настроить. + +Прежде чем приступить к настройке, необходимо знать следующие сетевые данные: + +* Есть ли в сети DHCP +* Если в сети нет DHCP, используемый статический IP-адрес +* Маска сети +* IP-адрес шлюза по умолчанию + +[TIP] +==== +Сетевое соединение могло быть настроено во время установки с помощью man:bsdinstall[8]. +==== + +[[config-identify-network-adapter]] +=== Определение сетевых адаптеров + +FreeBSD поддерживает широкий спектр сетевых адаптеров как для проводных, так и для беспроводных сетей. Проверьте link:https://www.freebsd.org/releases/[список совместимости оборудования] для используемого выпуска FreeBSD, чтобы убедиться, что сетевой адаптер поддерживается. + +Чтобы получить список сетевых адаптеров, используемых в системе, выполните следующую команду: + +[source, shell] +.... +% pciconf -lv | grep -A1 -B3 network +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +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 +.... + +Текст перед символом '@' — это название драйвера, управляющего устройством. В данном случае это man:em[4] и man:iwn[4]. + +<1> Показывает название производителя +<2> Показывает название устройства + +[NOTE] +==== +Требуется загружать модуль сетевой карты только в том случае, если FreeBSD не определил его правильно. + +Например, для загрузки модуля man:alc[4] выполните следующую команду: + +[source, shell] +.... +# kldload if_alc +.... + +В качестве альтернативы, для загрузки драйвера как модуля во время загрузки, добавьте следующую строку в [.filename]#/boot/loader.conf#: + +[.programlisting] +.... +if_alc_load="YES" +.... +==== + +[[config-network-connection]] +== Проводные сети + +После загрузки нужного драйвера необходимо настроить сетевой адаптер. В FreeBSD для именования сетевого интерфейса используется имя драйвера, за которым следует номер устройства. Номер устройства указывает порядок обнаружения адаптера при загрузке или позднее. + +Например, `em0` — это первая сетевая карта (NIC) в системе, использующая драйвер man:em[4]. + +Для отображения конфигурации сетевого интерфейса введите следующую команду: + +[source, shell] +.... +% ifconfig +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +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), который может использоваться для анализа производительности, тестирования программного обеспечения и/или локального взаимодействия. Подробнее см. в man:lo[4]. + +Пример показывает, что `em0` работает и активен. + +Ключевые показатели: + +. `UP` означает, что интерфейс настроен и готов к работе. +. Интерфейс имеет IPv4 адрес в Интернете (`inet`) — `192.168.1.19`. +. Интерфейс имеет IPv6-адрес (`inet6`) в Интернете: `fe80::21f:16ff:fe0f:275a%em0`. +. У него есть действительная маска подсети (`netmask`), где `0xffffff00` эквивалентно `255.255.255.0`. +. У него есть корректный широковещательный адрес, `192.168.1.255`. +. MAC-адрес интерфейса (`ether`) — `00:1f:16:0f:27:5a`. +. Выбор физической среды находится в режиме автоопределения (`media: Ethernet autoselect (1000baseT <full-duplex>)`). +. Состояние соединения (`status`) имеет значение `active`, что указывает на обнаружение несущего сигнала. Для `em0` состояние `status: no carrier` является нормальным, если кабель Ethernet не подключен к интерфейсу. + +Если вывод man:ifconfig[8] показал что-то похожее на следующий результат, это означало бы, что интерфейс не настроен: + +[.programlisting] +.... +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> +.... + +[[config-static-ip-v4]] +=== Настройка статического IPv4-адреса + +В этом разделе представлено руководство по настройке статического IPv4-адреса в системе FreeBSD. + +Настройку сетевой интерфейсной карты можно выполнить из командной строки с помощью man:ifconfig[8], но она не сохранится после перезагрузки, если конфигурация также не добавлена в [.filename]#/etc/rc.conf#. + +[NOTE] +==== +Если сеть была настроена во время установки с помощью man:bsdinstall[8], некоторые записи для сетевой интерфейсной карты (NIC) могут уже присутствовать. Проверьте [.filename]#/etc/rc.conf# перед выполнением man:sysrc[8]. +==== + +IP-адрес можно задать, выполнив следующую команду: + +[source, shell] +.... +# ifconfig em0 inet 192.168.1.150/24 +.... + +Чтобы изменение сохранялось после перезагрузки, выполните следующую команду: + +[source, shell] +.... +# sysrc ifconfig_em0="inet 192.168.1.150 netmask 255.255.255.0" +.... + +Добавьте маршрут по умолчанию, выполнив следующую команду: + +[source, shell] +.... +# sysrc defaultrouter="192.168.1.1" +.... + +Добавьте DNS-записи в [.filename]#/etc/resolv.conf#: + +[.programlisting] +.... +nameserver 8.8.8.8 +nameserver 8.8.4.4 +.... + +Затем перезапустите `netif` и `routing`, выполнив следующую команду: + +[source, shell] +.... +# service netif restart && service routing restart +.... + +Соединение можно проверить с помощью man:ping[8]: + +[source, shell] +.... +% ping -c2 www.FreeBSD.org +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +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 +.... + +[[config-dynamic-ip-v4]] +=== Настройка динамического IPv4-адреса + +Если в сети есть DHCP-сервер, то настроить сетевой интерфейс для использования DHCP очень просто. FreeBSD использует man:dhclient[8] в качестве DHCP-клиента. man:dhclient[8] автоматически предоставит IP-адрес, маску сети и маршрутизатор по умолчанию. + +Чтобы настроить интерфейс для работы с DHCP, выполните следующую команду: + +[source, shell] +.... +# sysrc ifconfig_em0="DHCP" +.... + +man:dhclient[8] можно использовать вручную, выполнив следующую команду: + +[source, shell] +.... +# dhclient em0 +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +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 работает корректно. + +[TIP] +==== +Клиент man:dhclient[8] может быть запущен в фоновом режиме. Это может вызвать проблемы с приложениями, зависящими от рабочей сети, но во многих случаях обеспечит более быстрый запуск. + +Для выполнения man:dhclient[8] в фоновом режиме выполните следующую команду: + +[source, shell] +.... +# sysrc background_dhclient="YES" +.... +==== + +Затем перезапустите `netif`, выполнив следующую команду: + +[source, shell] +.... +# service netif restart +.... + +Соединение можно проверить с помощью man:ping[8]: + +[source, shell] +.... +% ping -c2 www.FreeBSD.org +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +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 +.... + +[[network-ipv6]] +=== 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-адресов должен был обмениваться между интернет-маршрутизаторами, что приводило к чрезмерному увеличению их таблиц маршрутизации и затрудняло эффективную маршрутизацию. +* Автоконфигурация адресов (http://www.ietf.org/rfc/rfc4862.txt[RFC4862]). +* Обязательные multicast-адреса. +* Встроенный IPsec (безопасность IP). +* Упрощённая структура заголовка. +* Поддержка мобильного IP. +* Механизмы перехода с IPv6 на IPv4. + +FreeBSD включает в себя эталонную реализацию IPv6 от http://www.kame.net/[проекта 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, выполните следующую команду: + +[source, shell] +.... +# ifconfig +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +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-адреса зарезервированы. Список зарезервированных адресов можно посмотреть в следующей таблице: + +[[reservedip6]] +.Пример зарезервированных адресов IPv6 +[cols="1,1,1", frame="none", options="header"] +|=== +| 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-адресов обратитесь к http://www.ietf.org/rfc/rfc4291.txt[RFC4291]. + +[[config-static-ip-v6]] +=== Настройка статического IPv6-адреса + +Для настройки системы FreeBSD в качестве IPv6-клиента со статическим IPv6-адресом необходимо установить IPv6-адрес. + +Выполните следующие команды для выполнения требований: + +[source, shell] +.... +# sysrc ifconfig_em0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64" +.... + +Чтобы назначить маршрутизатор по умолчанию, укажите его адрес, выполнив следующую команду: + +[source, shell] +.... +# sysrc ipv6_defaultrouter="2001:db8:4672:6565::1" +.... + +Для настройки дополнительного IPv6 anycast-адреса укажите адрес anycast как `_aliasN`(указано в man:rc.conf[5]) с добавлением опции `anycast`: +[source, shell] +.... +# sysrc ifconfig_em0_alias0="inet6 2001:db8:4672:6565::a anycast" +.... + +Имейте в виду, что приложения не могут привязываться к anycast-адресам; в этом случае необходимо использовать алиас-адрес. + +[[config-dynamic-ip-v6]] +=== Настройка динамического адреса IPv6 + +Для динамической настройки IPv6-адреса интерфейса с использованием crossref:glossary[slaac-glossary,SLAAC], выполните следующие команды: + +[source, shell] +.... +# sysrc ifconfig_em0_ipv6="inet6 accept_rtadv" +# sysrc rtsold_enable="YES" +.... + +Обратите внимание, что при включённой IPv6-маршрутизации (т.е. `ipv6_gateway_enable=YES`), система не будет настраивать SLAAC-адрес, если переменная man:sysctl[8] `net.inet6.ip6.rfc6204w3` не установлена в 1. + +=== Объявление маршрутизатора и автонастройка хоста + +Этот раздел демонстрирует, как настроить man:rtadvd[8] на IPv6-маршрутизаторе для объявления префикса IPv6-сети и маршрута по умолчанию. + +Чтобы включить man:rtadvd[8], выполните следующую команду: + +[source, shell] +.... +# sysrc rtadvd_enable="YES" +.... + +Важно указать интерфейс, на котором будет выполняться IPv6-анонсирование маршрутизатора. Например, чтобы указать man:rtadvd[8] использовать `em0`: + +[source, shell] +.... +# sysrc rtadvd_interfaces="em0" +.... + +Далее создайте файл конфигурации [.filename]#/etc/rtadvd.conf#, как показано в этом примере: + +[.programlisting] +.... +em0:\ + :addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether: +.... + +Замените `em0` на используемый интерфейс и `2001:db8:1f11:246::` на префикс выделенного диапазона. + +Для выделенной подсети `/64` больше ничего менять не нужно. В противном случае измените значение `prefixlen#` на соответствующее. + +=== Соответствие адресов IPv6 и IPv4 + +Когда на сервере включен IPv6, может возникнуть необходимость разрешить использование IPv4-отображенных IPv6-адресов. Эта опция совместимости позволяет представлять IPv4-адреса в виде IPv6-адресов. Разрешение IPv6-приложениям взаимодействовать с IPv4 и наоборот может представлять угрозу безопасности. + +Эта опция может не требоваться в большинстве случаев и доступна только для совместимости. Она позволит IPv6-приложениям работать с IPv4 в двухстековой среде. Это особенно полезно для сторонних приложений, которые могут не поддерживать IPv6-окружение. + +Для включения этой функции выполните следующую команду: + +[source, shell] +.... +# sysrc ipv6_ipv4mapping="YES" +.... + +[[network-wireless]] +== Беспроводные сети + +Большинство беспроводных сетей основаны на стандартах link:https://en.wikipedia.org/wiki/IEEE_802.11[IEEE(R) 802.11]. + +FreeBSD поддерживает сети, работающие по стандартам link:https://en.wikipedia.org/wiki/IEEE_802.11a-1999[802.11a], link:https://en.wikipedia.org/wiki/IEEE_802.11b-1999[802.11b], link:https://en.wikipedia.org/wiki/IEEE_802.11g-2003[802.11g] и link:https://en.wikipedia.org/wiki/IEEE_802.11n-2009[802.11n]. + +[NOTE] +==== +link:https://en.wikipedia.org/wiki/IEEE_802.11ac-2013[802.11ac] поддержка в FreeBSD в настоящее время находится в стадии разработки. +==== + +Базовая беспроводная сеть состоит из нескольких станций, взаимодействующих через радиомодули, работающие в диапазоне 2,4 ГГц или 5 ГГц, хотя это может различаться в зависимости от региона и также меняется для обеспечения связи в диапазонах 2,3 ГГц и 4,9 ГГц. + +Настройка беспроводной сети включает три основных этапа: + +1. Сканировать и выбрать точку доступа +2. Аутентификация станции +3. Настройте IP-адрес или используйте DHCP. + +Следующие разделы описывают каждый шаг. + +[[network-wireless-quick-start]] +=== Быстрое начало работы: подключение к беспроводной сети + +Подключение FreeBSD к существующей беспроводной сети — весьма распространённая ситуация. + +Эта процедура быстрого старта показывает шаги, необходимые для подключения к сети с использованием базовой аутентификации. Более подробная процедура приведена в следующем разделе. + +Первый шаг — получить Service Set Identifier (SSID) и Pre-Shared Key (PSK) для беспроводной сети у администратора сети. + +Второй шаг — добавить запись для этой сети в файл [.filename]#/etc/wpa_supplicant.conf#. + +Если файл не существует, создайте его. Подробности о форматировании записей в этом файле см. в man:wpa_supplicant.conf[5]. + +[.programlisting] +.... +ctrl_interface=/var/run/wpa_supplicant +eapol_version=1 +ap_scan=1 +fast_reauth=1 + +network={ + ssid="myssid" <.> + psk="mypsk" <.> +} +.... + +<.> Это SSID беспроводной сети. Замените его на имя беспроводной сети. +<.> Это PSK беспроводной сети. Замените его на пароль от беспроводной сети. + +Третий шаг — добавить запись о сетевом интерфейсе для настройки сети при загрузке. Получите имя сетевого интерфейса с помощью sysctl `net.wlan.devices`. В приведённом ниже примере вывод этой команды показывает, что сетевым интерфейсом является "iwn0". + +[source, shell] +.... +# sysctl net.wlan.devices +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +net.wlan.devices: iwm0 +.... + +В следующей строке с командой sysrc замените "iwn0" на вывод команды sysctl, если это необходимо. + +[source, shell] +.... +# sysrc wlans_iwn0="wlan0" +# sysrc ifconfig_wlan0="WPA DHCP" +.... + +* И последний шаг — перезапуск службы `netif` выполнением следующей команды: + +[source, shell] +.... +# service netif restart +.... + +[[basic-wireless-configuration]] +=== Базовая настройка беспроводной сети + +Эта секция предоставляет детальный пример настройки беспроводной сетевой карты. Чтобы узнать, какие беспроводные сетевые карты есть в системе, ознакомьтесь с разделом crossref:network[config-identify-network-adapter, Идентификация сетевых адаптеров]. + +[source, shell] +.... +# ifconfig wlan0 create wlandev iwm0 +.... + +Чтобы изменение сохранялось после перезагрузки, выполните следующую команду: + +[source, shell] +.... +# sysrc wlans_iwm0="wlan0" +.... + +[NOTE] +==== +Поскольку нормативные требования различаются в разных частях мира, необходимо правильно настроить домены, соответствующие вашему местоположению, чтобы получить корректную информацию о доступных каналах. + +Доступные определения регионов можно найти в [.filename]#/etc/regdomain.xml#. Для установки данных во время выполнения используйте `ifconfig`: + +[source, shell] +.... +# ifconfig wlan0 regdomain etsi2 country AT +.... + +Чтобы сохранить настройки, добавьте их в [.filename]#/etc/rc.conf#: + +[source, shell] +.... +# sysrc create_args_wlan0="country AT regdomain etsi2" +.... +==== + +[[scan-wireless-networks]] +=== Сканирование беспроводных сетей + +Доступные беспроводные сети можно просканировать с помощью man:ifconfig[8]. + +Для вывода списка беспроводных сетей выполните следующую команду: + +[source, shell] +.... +# ifconfig wlan0 up list scan +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +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 +.... + +. SSID/MESH ID идентифицирует название сети. +. BSSID идентифицирует MAC-адрес точки доступа. +. Поле `CAPS` определяет тип каждой сети и возможности работающих в ней станций (подробности см. в определении `list scan` в man:ifconfig[8]). + +[[wireless-authentication]] +=== Подключение и аутентификация в беспроводной сети + +После выбора беспроводной сети из списка обнаруженных необходимо выполнить подключение и аутентификацию. В подавляющем большинстве беспроводных сетей аутентификация осуществляется с помощью пароля, настроенного в маршрутизаторе. Другие схемы требуют выполнения криптографического рукопожатия перед началом передачи данных, используя либо предварительно распределённые ключи или секреты, либо более сложные схемы, включающие серверные службы, такие как RADIUS. + +[[authenticate-wpa2-wpa-personal]] +==== Аутентификация с WPA2/WPA/Personal + +Процесс аутентификации в беспроводной сети управляется с помощью man:wpa_supplicant[8]. + +Конфигурация man:wpa_supplicant[8] задаётся в файле [.filename]#/etc/wpa_supplicant.conf#. Подробнее см. man:wpa_supplicant.conf[5]. + +После завершения сканирования беспроводных сетей, выбора сети и получения пароля (PSK), эта информация будет добавлена в файл [.filename]#/etc/wpa_supplicant.conf#, как показано в следующем примере: + +[.programlisting] +.... +network={ + scan_ssid=1 <.> + ssid="FreeBSD" <.> + psk="12345678" <.> +} +.... + +<.> Метод сканирования SSID. Используйте эту опцию только если сеть скрыта. +<.> Имя сети. +<.> Пароль беспроводной сети. + +Следующим шагом будет настройка беспроводного соединения в файле [.filename]#/etc/rc.conf#. + +Для использования статического адреса необходимо выполнить следующую команду: + +[source, shell] +.... +# sysrc ifconfig_wlan0="inet 192.168.1.20 netmask 255.255.255.0" +.... + +Для использования динамического адреса необходимо выполнить следующую команду: + +[source, shell] +.... +# sysrc ifconfig_wlan0="WPA DHCP" +.... + +Затем перезапустите сеть, выполнив следующую команду: + +[source, shell] +.... +# service netif restart +.... + +[NOTE] +==== +Дополнительная информация о более сложных методах аутентификации доступна в crossref:advanced-networking[network-advanced-wireless,"Расширенная аутентификация беспроводных сетей"]. +==== + +[[authenticate-open-networks]] +==== Аутентификация в открытых сетях + +[TIP] +==== +Важно, чтобы пользователь был *очень* осторожен при подключении к открытым сетям без какой-либо аутентификации. +==== + +После завершения сканирования беспроводной сети и выбора SSID выполните следующую команду: + +[source, shell] +.... +# ifconfig wlan0 ssid SSID +.... + +Затем выполните man:dhclient[8], чтобы настроить адрес: + +[source, shell] +.... +# dhclient wlan0 +.... + +=== Использование проводного и беспроводного подключений одновременно + +Проводное соединение обеспечивает лучшую производительность и надежность, тогда как беспроводное соединение предоставляет гибкость и мобильность. Пользователи ноутбуков, как правило, хотят свободно переключаться между этими двумя типами соединений. + +На FreeBSD можно объединить два или более сетевых интерфейса в режиме "отказоустойчивости". Такой тип конфигурации использует наиболее предпочтительное и доступное соединение из группы сетевых интерфейсов, а операционная система автоматически переключается при изменении состояния канала. + +Агрегация и отказоустойчивость каналов описаны в crossref:advanced-networking[network-aggregation,"Агрегация и отказоустойчивость каналов"], а пример использования как проводных, так и беспроводных соединений приведен в crossref:advanced-networking[networking-lagg-wired-and-wireless,"Режим отказоустойчивости между проводными и беспроводными интерфейсами"]. + +[[hostname]] +== Имя сайта + +Имя хоста представляет собой полностью определённое доменное имя (FQDN) хоста в сети. + +[TIP] +==== +Если для хоста не задано имя, FreeBSD назовет себя `Amnesiac`. +==== + +[[get-hostname]] +=== Проверить текущее имя хоста + +man:hostname[1] может использоваться для проверки текущего имени хоста: + +[source, shell] +.... +$ hostname +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +freebsdhostname.example.com +.... + +[[change-hostname]] +=== Изменить имя хоста + +Для изменения имени хоста с сохранением после перезагрузки выполните следующую команду: + +[source, shell] +.... +# sysrc hostname="freebsdhostname.example.com" +.... + +[[dns]] +== DNS + +DNS можно представить как link:https://en.wikipedia.org/wiki/Telephone_directory[телефонный справочник], в котором IP-адрес сопоставляется с именем хоста и наоборот. + +Существует три файла, которые управляют взаимодействием системы FreeBSD с DNS. Эти три файла: man:hosts[5], man:resolv.conf[5] и man:nsswitch.conf[5] + +Если иное не указано в файле [.filename]#/etc/nsswitch.conf#, FreeBSD сначала проверит адреса в файле [.filename]#/etc/hosts#, а затем DNS-информацию в файле [.filename]#/etc/resolv.conf#. + +[NOTE] +==== +Файл man:nsswitch.conf[5] определяет, как должен работать nsdispatch (диспетчер переключения службы имен). + +По умолчанию раздел hosts в файле [.filename]#/etc/nsswitch.conf# будет выглядеть следующим образом: + +[.programlisting] +.... +hosts: files dns +.... + +Например, в случае использования службы man:nscd[8]. Порядок предпочтения можно изменить, оставив строку следующей: + +[.programlisting] +.... +hosts: files cache dns +.... +==== + +[[local-addresses]] +=== Локальные адреса + +Файл [.filename]#/etc/hosts# представляет собой простую текстовую базу данных, которая сопоставляет имена хостов с IP-адресами. В него можно добавить записи для локальных компьютеров, подключенных через LAN, чтобы использовать простые имена вместо настройки DNS-сервера. Кроме того, [.filename]#/etc/hosts# может использоваться для хранения локальных записей интернет-имен, что уменьшает необходимость запрашивать внешние DNS-серверы для часто используемых имен. + +Например, если в локальной среде имеется локальный экземпляр package:www/gitlab-ce[], его можно добавить следующим образом в файл [.filename]#/etc/hosts#: + +[.programlisting] +.... +192.168.1.150 git.example.com git +.... + +[[configuring-nameserver]] +=== Настройка сервера имен + +Как система FreeBSD обращается к системе доменных имен (DNS) в Интернете, управляется с помощью man:resolv.conf[5]. + +Наиболее распространённые записи в [.filename]#/etc/resolv.conf#: + +[.informaltable] +[cols="1,1", frame="none"] +|=== + +|`nameserver` +|IP-адрес сервера имен, к которому должен обращаться резолвер. Серверы опрашиваются в указанном порядке, максимум три. + +|`search` +|Список поиска для разрешения имён хостов. Обычно определяется доменом локального имени хоста. + +|`domain` +|Локальное доменное имя. +|=== + +Типичный файл [.filename]#/etc/resolv.conf# выглядит следующим образом: + +[.programlisting] +.... +search example.com +nameserver 147.11.1.11 +nameserver 147.11.100.30 +.... + +[NOTE] +==== +Должна использоваться только одна из опций — `search` или `domain`. +==== + +При использовании DHCP man:dhclient[8] обычно перезаписывает [.filename]#/etc/resolv.conf# информацией, полученной от DHCP-сервера. + +[TIP] +==== +Если машина, в которой производится настройка, *не* является DNS-сервером, для улучшения производительности DNS-запросов можно использовать man:local-unbound[8]. + +Чтобы включить его при загрузке, выполните следующую команду: + +[source, shell] +.... +# sysrc local_unbound_enable="YES" +.... + +Чтобы запустить службу man:local-unbound[8], выполните следующую команду: + +[source, shell] +.... +# service local_unbound start +.... +==== + +[[troubleshooting]] +== Устранение неполадок + +При устранении неполадок в конфигурации оборудования и программного обеспечения сначала проверяйте самые простые вещи. + +* Вставлен ли сетевой кабель? +* Правильно ли настроены сетевые службы? +* Настроен ли межсетевой экран правильно? +* Поддерживается ли сетевая карта (NIC) в FreeBSD? +* Работает ли маршрутизатор правильно? + +[TIP] +==== +Прежде чем отправить отчёт об ошибке, всегда проверяйте раздел "Аппаратные требования" на странице link:https://www.freebsd.org/releases/[релиза FreeBSD], обновите версию FreeBSD до последней STABLE версии, проверьте архивы списков рассылки и выполните поиск в Интернете. +==== + +[[wired-troubleshooting]] +=== Устранение неполадок в проводных сетях + +Если карта работает, но производительность низкая, ознакомьтесь с man:tuning[7]. Также проверьте настройки сети, так как неправильные параметры могут быть причиной медленного соединения. + +Сообщения `No route to host` возникают, если система не может найти маршрут для пакета до целевого хоста. Это может произойти, если не указан маршрут по умолчанию или если кабель отключен. Проверьте вывод команды `netstat -rn` и убедитесь, что существует действительный маршрут до хоста. Если его нет, ознакомьтесь с разделом crossref:advanced-networking[network-routing,"Шлюзы и маршруты"]. + +Сообщения об ошибках `ping: sendto: Permission denied` часто возникают из-за неправильно настроенного межсетевого экрана. Если на FreeBSD включен межсетевой экран, но не определены правила, политика по умолчанию — запрещать весь трафик, включая man:ping[8]. Дополнительную информацию можно найти в crossref:firewalls[firewalls,Межсетевые экраны]. + +[[wireless-troubleshooting]] +=== Устранение неполадок в беспроводных сетях + +В этом разделе описаны шаги для устранения распространённых проблем с беспроводными сетями. + +* Если точка доступа не отображается при сканировании, проверьте, что конфигурация не ограничивает беспроводное устройство определенным набором каналов. + +* Если устройство не может подключиться к точке доступа, убедитесь, что конфигурация соответствует настройкам на точке доступа. Это включает схему аутентификации и все протоколы безопасности. Упростите конфигурацию насколько это возможно. Если используется протокол безопасности, такой как WPA2 или WPA, настройте точку доступа на открытую аутентификацию без защиты, чтобы проверить, проходит ли трафик. + +* Как только система сможет подключиться к точке доступа, диагностируйте конфигурацию сети с помощью таких инструментов, как man:ping[8]. + +* Для низкоуровневой отладки существует множество инструментов. Сообщения отладки можно включить в слое поддержки протокола 802.11 с помощью man:wlandebug[8]. |
