git: 0ab84b3952 - main - update translation of books/handbook to Russian
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 20 Oct 2025 08:11:45 UTC
The branch main has been updated by vladlen:
URL: https://cgit.FreeBSD.org/doc/commit/?id=0ab84b3952512726d55fdffa6f13319bbae3a5db
commit 0ab84b3952512726d55fdffa6f13319bbae3a5db
Author: Vladlen Popolitov <vladlen@FreeBSD.org>
AuthorDate: 2025-10-20 08:11:35 +0000
Commit: Vladlen Popolitov <vladlen@FreeBSD.org>
CommitDate: 2025-10-20 08:11:35 +0000
update translation of books/handbook to Russian
Reviewed by: mizhka
Differential Revision: https://reviews.freebsd.org/D52052
---
.../content/ru/books/handbook/_index.adoc | 23 +-
documentation/content/ru/books/handbook/_index.po | 37 +
.../books/handbook/advanced-networking/_index.adoc | 2721 +++----
.../books/handbook/advanced-networking/_index.po | 6227 +++++++++++++++
.../content/ru/books/handbook/audit/_index.adoc | 232 +-
.../content/ru/books/handbook/audit/_index.po | 1478 ++++
.../content/ru/books/handbook/basics/_index.adoc | 1348 ++--
.../content/ru/books/handbook/basics/_index.po | 5631 +++++++++++++
.../ru/books/handbook/bibliography/_index.adoc | 166 +-
.../ru/books/handbook/bibliography/_index.po | 407 +
documentation/content/ru/books/handbook/book.adoc | 30 +-
documentation/content/ru/books/handbook/book.po | 37 +
.../content/ru/books/handbook/boot/_index.adoc | 454 +-
.../content/ru/books/handbook/boot/_index.po | 1260 +++
.../ru/books/handbook/bsdinstall/_index.adoc | 1501 ++--
.../content/ru/books/handbook/bsdinstall/_index.po | 4699 +++++++++++
.../content/ru/books/handbook/colophon.adoc | 48 +
.../content/ru/books/handbook/colophon.po | 41 +
.../content/ru/books/handbook/config/_index.adoc | 1757 ++--
.../content/ru/books/handbook/config/_index.po | 4207 ++++++++++
.../ru/books/handbook/cutting-edge/_index.adoc | 1048 ++-
.../ru/books/handbook/cutting-edge/_index.po | 3089 +++++++
.../content/ru/books/handbook/desktop/_index.adoc | 1162 ++-
.../content/ru/books/handbook/desktop/_index.po | 2439 ++++++
.../content/ru/books/handbook/disks/_index.adoc | 2613 +++---
.../content/ru/books/handbook/disks/_index.po | 6457 +++++++++++++++
.../content/ru/books/handbook/dtrace/_index.adoc | 247 +
.../content/ru/books/handbook/dtrace/_index.po | 723 ++
.../ru/books/handbook/eresources/_index.adoc | 1033 +--
.../content/ru/books/handbook/eresources/_index.po | 681 ++
.../ru/books/handbook/filesystems/_index.adoc | 437 +-
.../ru/books/handbook/filesystems/_index.po | 473 ++
.../ru/books/handbook/firewalls/_index.adoc | 2622 +++---
.../content/ru/books/handbook/firewalls/_index.po | 7503 +++++++++++++++++
.../content/ru/books/handbook/geom/_index.adoc | 1020 ++-
.../content/ru/books/handbook/geom/_index.po | 3158 ++++++++
.../content/ru/books/handbook/glossary.adoc | 1046 +++
.../content/ru/books/handbook/glossary.po | 3320 ++++++++
.../content/ru/books/handbook/introduction.adoc | 10 +-
.../content/ru/books/handbook/introduction.po | 62 +
.../ru/books/handbook/introduction/_index.adoc | 226 +-
.../ru/books/handbook/introduction/_index.po | 1079 +++
.../content/ru/books/handbook/jails/_index.adoc | 1157 +++
.../content/ru/books/handbook/jails/_index.po | 3233 ++++++++
.../ru/books/handbook/kernelconfig/_index.adoc | 1129 +--
.../ru/books/handbook/kernelconfig/_index.po | 940 +++
.../content/ru/books/handbook/l10n/_index.adoc | 337 +-
.../content/ru/books/handbook/l10n/_index.po | 1664 ++++
.../content/ru/books/handbook/linuxemu/_index.adoc | 2224 +-----
.../content/ru/books/handbook/linuxemu/_index.po | 1050 +++
.../content/ru/books/handbook/mac/_index.adoc | 1048 +--
.../content/ru/books/handbook/mac/_index.po | 3115 ++++++++
.../content/ru/books/handbook/mail/_index.adoc | 1164 ++-
.../content/ru/books/handbook/mail/_index.po | 2539 ++++++
.../content/ru/books/handbook/mirrors/_index.adoc | 862 +-
.../content/ru/books/handbook/mirrors/_index.po | 1581 ++++
.../ru/books/handbook/multimedia/_index.adoc | 1132 +--
.../content/ru/books/handbook/multimedia/_index.po | 1720 ++++
.../ru/books/handbook/network-servers/_index.adoc | 2969 ++++---
.../ru/books/handbook/network-servers/_index.po | 8400 ++++++++++++++++++++
.../content/ru/books/handbook/network/_index.adoc | 927 +++
.../content/ru/books/handbook/network/_index.po | 2526 ++++++
documentation/content/ru/books/handbook/parti.adoc | 23 +-
documentation/content/ru/books/handbook/parti.po | 86 +
.../content/ru/books/handbook/partii.adoc | 26 +-
documentation/content/ru/books/handbook/partii.po | 87 +
.../content/ru/books/handbook/partiii.adoc | 14 +-
documentation/content/ru/books/handbook/partiii.po | 55 +
.../content/ru/books/handbook/partiv.adoc | 26 +-
documentation/content/ru/books/handbook/partiv.po | 81 +
documentation/content/ru/books/handbook/partv.adoc | 12 +-
documentation/content/ru/books/handbook/partv.po | 31 +
.../content/ru/books/handbook/pgpkeys/_index.adoc | 18 +-
.../content/ru/books/handbook/pgpkeys/_index.po | 89 +
.../content/ru/books/handbook/ports/_index.adoc | 1445 ++--
.../content/ru/books/handbook/ports/_index.po | 3481 ++++++++
.../ru/books/handbook/ppp-and-slip/_index.adoc | 1663 +---
.../ru/books/handbook/ppp-and-slip/_index.po | 2374 ++++++
.../content/ru/books/handbook/preface/_index.adoc | 320 +-
.../content/ru/books/handbook/preface/_index.po | 1485 ++++
.../content/ru/books/handbook/printing/_index.adoc | 2655 ++-----
.../content/ru/books/handbook/printing/_index.po | 2055 +++++
.../content/ru/books/handbook/security/_index.adoc | 2707 +++----
.../content/ru/books/handbook/security/_index.po | 5993 ++++++++++++++
.../ru/books/handbook/serialcomms/_index.adoc | 1290 +--
.../ru/books/handbook/serialcomms/_index.po | 3226 ++++++++
.../ru/books/handbook/usb-device-mode/_index.adoc | 268 +
.../ru/books/handbook/usb-device-mode/_index.po | 692 ++
.../ru/books/handbook/virtualization/_index.adoc | 2259 ++++++
.../ru/books/handbook/virtualization/_index.po | 6769 ++++++++++++++++
.../content/ru/books/handbook/wayland/_index.adoc | 427 +-
.../content/ru/books/handbook/wayland/_index.po | 1725 ++++
.../content/ru/books/handbook/wine/_index.adoc | 780 ++
.../content/ru/books/handbook/wine/_index.po | 2968 +++++++
.../content/ru/books/handbook/x11/_index.adoc | 1184 ++-
.../content/ru/books/handbook/x11/_index.po | 2489 ++++++
.../content/ru/books/handbook/zfs/_index.adoc | 2526 ++++++
.../content/ru/books/handbook/zfs/_index.po | 7393 +++++++++++++++++
98 files changed, 146555 insertions(+), 24636 deletions(-)
diff --git a/documentation/content/ru/books/handbook/_index.adoc b/documentation/content/ru/books/handbook/_index.adoc
index 7fba62817b..9c818377bb 100644
--- a/documentation/content/ru/books/handbook/_index.adoc
+++ b/documentation/content/ru/books/handbook/_index.adoc
@@ -1,21 +1,22 @@
---
-title: Руководство FreeBSD
+add_single_page_link: true
authors:
- - author: Проект Документации FreeBSD
-copyright: 1995-2025 The FreeBSD Documentation Project
-description: A constantly evolving, comprehensive resource for FreeBSD users
-trademarks: ["freebsd", "ibm", "ieee", "redhat", "3com", "adobe", "apple", "intel", "linux", "microsoft", "opengroup", "sun", "realnetworks", "oracle", "3ware", "arm", "adaptec", "google", "heidelberger", "intuit", "lsilogic", "themathworks", "thomson", "vmware", "wolframresearch", "xiph", "xfree86", "general"]
-tags: ["FreeBSD Handbook", "Handbook"]
+ -
+ author: 'The FreeBSD Documentation Project'
+bookOrder: 1
+copyright: '1995-2025 The FreeBSD Documentation Project'
+description: 'Постоянно развивающийся и всеобъемлющий ресурс для пользователей FreeBSD'
next: books/handbook/preface
-add_single_page_link: true
+params:
+ path: /books/handbook/
showBookMenu: true
+tags: ["FreeBSD Handbook", "Handbook"]
+title: 'Руководство FreeBSD'
+trademarks: ["freebsd", "ibm", "ieee", "redhat", "3com", "adobe", "apple", "intel", "linux", "microsoft", "opengroup", "sun", "realnetworks", "oracle", "3ware", "arm", "adaptec", "google", "heidelberger", "intuit", "lsilogic", "themathworks", "thomson", "vmware", "wolframresearch", "xiph", "xfree86", "general"]
weight: 0
-params:
- path: "/books/handbook/"
-bookOrder: 1
---
-= FreeBSD Handbook
+= Руководство FreeBSD
:doctype: book
:toc: macro
:toclevels: 1
diff --git a/documentation/content/ru/books/handbook/_index.po b/documentation/content/ru/books/handbook/_index.po
new file mode 100644
index 0000000000..7b7ee75796
--- /dev/null
+++ b/documentation/content/ru/books/handbook/_index.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR The FreeBSD Project
+# This file is distributed under the same license as the FreeBSD Documentation package.
+# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
+msgid ""
+msgstr ""
+"Project-Id-Version: FreeBSD Documentation VERSION\n"
+"POT-Creation-Date: 2025-10-20 11:02+0300\n"
+"PO-Revision-Date: 2025-05-26 08:57+0000\n"
+"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
+"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
+"documentation/bookshandbook_index/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. type: Yaml Front Matter Hash Value: description
+#: documentation/content/en/books/handbook/_index.adoc:1
+#, no-wrap
+msgid "A constantly evolving, comprehensive resource for FreeBSD users"
+msgstr "Постоянно развивающийся и всеобъемлющий ресурс для пользователей FreeBSD"
+
+#. type: Title =
+#: documentation/content/en/books/handbook/_index.adoc:1
+#: documentation/content/en/books/handbook/_index.adoc:18
+#, no-wrap
+msgid "FreeBSD Handbook"
+msgstr "Руководство FreeBSD"
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/_index.adoc:54
+msgid "'''"
+msgstr "'''"
diff --git a/documentation/content/ru/books/handbook/advanced-networking/_index.adoc b/documentation/content/ru/books/handbook/advanced-networking/_index.adoc
index 4687e8358c..1ccb828049 100644
--- a/documentation/content/ru/books/handbook/advanced-networking/_index.adoc
+++ b/documentation/content/ru/books/handbook/advanced-networking/_index.adoc
@@ -1,12 +1,14 @@
---
-title: Глава 27. Сложные вопросы работы в сети
-part: Часть IV. Сетевые коммуникации
-prev: books/handbook/firewalls
+description: 'Сложные вопросы работы в сети в FreeBSD: основы шлюзов и маршрутов, CARP, настройка нескольких VLAN в FreeBSD и так далее'
next: books/handbook/partv
-showBookMenu: true
-weight: 32
params:
- path: "/books/handbook/advanced-networking/"
+ path: /books/handbook/advanced-networking/
+part: 'IV. Сетевое взаимодействие'
+prev: books/handbook/firewalls
+showBookMenu: true
+tags: ["Advanced Networking", "Handbook", "gateway", "routes", "wireless", "tethering", "bluetooth", "bridging", "CARP", "VLAN"]
+title: 'Глава 34. Сложные вопросы работы в сети'
+weight: 39
---
[[advanced-networking]]
@@ -17,7 +19,7 @@ params:
:icons: font
:sectnums:
:sectnumlevels: 6
-:sectnumoffset: 27
+:sectnumoffset: 34
:partnums:
:source-highlighter: rouge
:experimental:
@@ -48,204 +50,164 @@ include::../../../../../shared/asciidoctor.adoc[]
endif::[]
[[advanced-networking-synopsis]]
-== Краткий обзор
+== Обзор
-Эта глава охватывает множество различных сетевых тематик повышенной сложности.
+Эта глава охватывает ряд сложных тем, связанных с сетями.
-После чтения этой главы вы будете знать:
+Прочитав эту главу, вы будете знать:
-* Основные понятия о маршрутизации и маршрутах.
-* Как настроить IEEE 802.11 и Bluetooth(R).
-* Как заставить FreeBSD работать в качестве сетевого моста.
-* Как настроить загрузку по сети для бездисковой машины.
-* Как настроить трансляцию сетевых адресов.
-* Как соединить два компьютера посредством PLIP.
-* Как настроить IPv6 на машине FreeBSD.
-* Как настроить ATM.
+* Основы шлюзов и маршрутов.
+* Как настроить USB-тетеринг.
+* Как настроить устройства IEEE(R) 802.11 и Bluetooth(R).
+* Как сделать так, чтобы система FreeBSD работала как мост.
+* Как настроить загрузку системы из сети с помощью PXE.
+* Как включить и использовать возможности протокола Common Address Redundancy Protocol (CARP) в FreeBSD.
+* Как настроить несколько VLAN в FreeBSD.
+* Как настроить гарнитуру Bluetooth.
-Перед чтением этой главы вы должны:
+Прежде чем читать эту главу, вы должны:
-* Понимать основы работы скриптов [.filename]#/etc/rc#.
-* Свободно владеть основными сетевыми терминами.
-* Знать как настраивать и устанавливать новое ядро FreeBSD (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]).
-* Знать как устанавливать дополнительное программное обеспечение сторонних разработчиков (crossref:ports[ports, Установка приложений. порты и пакеты]).
+* Понимать основы скриптов [.filename]#/etc/rc#.
+* Знать основные термины и понятия сетевых технологий.
+* Понимать базовые настройки сети в FreeBSD (crossref:network[network,Сеть FreeBSD]).
+* Знать, как настроить и установить новое ядро FreeBSD (crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]).
+* Знать, как устанавливать дополнительное стороннее программное обеспечение (crossref:ports[ports,Установка приложений: Пакеты и Порты]).
[[network-routing]]
-== Сетевые шлюзы и маршруты
+== Шлюзы и Маршруты
-Чтобы некоторая машина могла найти в сети другую, должен иметься механизм описания того, как добраться от одной машине к другой. Такой механизм называется _маршрутизацией_. "Маршрут" задаётся парой адресов: "адресом назначения" (destination) и "сетевым шлюзом" (gateway). Эта пара указывает на то, что если Вы пытаетесь соединиться с _адресом назначения_, то вам нужно устанавливать связь через "сетевой шлюз". Существует три типа адресов назначения: отдельные хосты, подсети и "маршрут по умолчанию" (default). "Маршрут по умолчанию" (default route) используется, если не п
одходит ни один из других маршрутов. Мы поговорим немного подробнее о маршрутах по умолчанию позже. Также имеется и три типа сетевых шлюзов: отдельные хосты, интерфейсы (также называемые "подключениями" (links)) и аппаратные адреса Ethernet (MAC-адреса).
+_Маршрутизация_ — это механизм, позволяющий системе находить сетевой путь к другой системе. _Маршрут_ — это определенная пара адресов, представляющих "назначение" и "шлюз". Маршрут указывает, что при попытке достичь указанного назначения пакеты должны отправляться через указанный шлюз. Существует три типа назначений: отдельные хосты, подсети и "маршрут по умолчанию". "Маршрут по умолчанию" используется, если не подходит ни один другой маршрут. Также существует три типа шлюзов: отдельные хосты, интерфейсы (также называемые линками) и аппарат
ные (MAC) адреса Ethernet. Известные маршруты хранятся в таблице маршрутизации.
-=== Пример
+В этом разделе представлен обзор основ маршрутизации. Затем показано, как настроить систему FreeBSD в качестве маршрутизатора, и даны некоторые советы по устранению неполадок.
-Для иллюстрации различных аспектов маршрутизации мы будем использовать следующий пример использования команды `netstat`:
+[[network-routing-default]]
+=== Основы маршрутизации
+
+Для просмотра таблицы маршрутизации системы FreeBSD используйте man:netstat[1]:
-[source,shell]
+[source, shell]
....
% netstat -r
Routing tables
+Internet:
Destination Gateway Flags Refs Use Netif Expire
-
-default outside-gw UGSc 37 418 ppp0
-localhost localhost UH 0 181 lo0
-test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
-10.20.30.255 link#1 UHLW 1 2421
-example.com link#1 UC 0 0
-host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
-host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
-host2.example.com link#1 UC 0 0
-224 link#1 UC 0 0
+default outside-gw UGS 37 418 em0
+localhost localhost UH 0 181 lo0
+test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 77
+10.20.30.255 link#1 UHLW 1 2421
+example.com link#1 UC 0 0
+host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
+host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
+host2.example.com link#1 UC 0 0
+224 link#1 UC 0 0
....
-В первых двух строках задаются маршрут по умолчанию (который будет описан в <<network-routing-default,следующем разделе>>) и маршрут на `localhost`.
+Записи в этом примере следующие:
-Интерфейс (колонка `Netif`), который указан в этой таблице маршрутов для использования с `localhost` и который назван [.filename]#lo0#, имеет также второе название, устройство loopback. Это значит сохранение всего трафика для указанного адреса назначения внутри, без посылки его по сети, так как он все равно будет направлен туда, где был создан.
-
-Следующими выделяющимися адресами являются адреса, начинающиеся с `0:e0:...`. Это аппаратные адреса Ethernet, или MAC-адреса. FreeBSD будет автоматически распознавать любой хост (в нашем примере это `test0`) в локальной сети Ethernet и добавит маршрут для этого хоста, указывающий непосредственно на интерфейс Ethernet, [.filename]#ed0#. С этим типом маршрута также связан параметр таймаута (колонка `Expire`), используемый в случае неудачной попытки услышать этот хост в течении некоторого периода времени. Если такое происходит, то маршрут до этого хоста будет автоматически уда
ён. Такие хосты поддерживаются при помощи механизма, известного как RIP (Routing Information Protocol), который вычисляет маршруты к хостам локальной сети при помощи определения кратчайшего расстояния.
+default::
+Первый маршрут в этой таблице указывает маршрут по умолчанию (`default`). Когда локальной системе требуется установить соединение с удалённым узлом, она проверяет таблицу маршрутизации, чтобы определить, существует ли известный путь. Если удалённый узел соответствует записи в таблице, система проверяет, может ли она подключиться, используя интерфейс, указанный в этой записи.
++
+Если назначение не соответствует ни одной записи или если все известные пути недоступны, система использует запись для маршрута по умолчанию. Для хостов в локальной сети поле `Gateway` в маршруте по умолчанию указывает на систему, имеющую прямое подключение к Интернету. При чтении этой записи убедитесь, что столбец `Flags` указывает на то, что шлюз доступен (`UG`).
++
+Маршрут по умолчанию для машины, которая сама функционирует как шлюз во внешний мир, будет шлюзом провайдера интернет-услуг (ISP).
-FreeBSD добавит также все маршруты к подсетям для локальных подсетей (`10.20.30.255` является широковещательным адресом для подсети `10.20.30`, а имя `example.com` является именем домена, связанным с этой подсетью). Назначение `link#1` соответствует первому адаптеру Ethernet в машине. Отметьте отсутствие дополнительного интерфейса для этих строк.
+localhost::
+Второй маршрут — это маршрут `localhost`. Интерфейс, указанный в столбце `Netif` для `localhost`, — это [.filename]#lo0#, также известное как loopback-устройство. Это означает, что весь трафик для этого назначения должен быть внутренним, а не отправляться через сеть.
-В обеих этих группах (хосты и подсети локальной сети) маршруты конфигурируются автоматически даемоном, который называется routed. Если он не запущен, то будут существовать только статически заданные (то есть введенные явно) маршруты.
+MAC адрес::
+Адреса, начинающиеся с `0:e0:`, являются MAC-адресами. FreeBSD автоматически определит любые хосты, например `test0`, в локальной сети Ethernet и добавит маршрут для этого хоста через интерфейс Ethernet [.filename]#re0#. Такой маршрут имеет время жизни, указанное в столбце `Expire`, которое используется, если хост не отвечает в течение определённого времени. В этом случае маршрут к этому хосту будет автоматически удалён. Эти хосты определяются с помощью Протокола маршрутной информации (RIP — Routing Information Protocol), который вычисляет маршруты к локальным хостам на основе опреде
ения кратчайшего пути.
-Строка `host1` относится к нашему хосту, который известен по адресу Ethernet. Так как мы являемся посылающим хостом, FreeBSD знает, что нужно использовать loopback-интерфейс ([.filename]#lo0#) вместо того, чтобы осуществлять посылку в интерфейс Ethernet.
+subnet::
+FreeBSD автоматически добавит маршруты для локальной подсети. В этом примере `10.20.30.255` — это широковещательный адрес для подсети `10.20.30`, а `example.com` — доменное имя, связанное с этой подсетью. Обозначение `link#1` относится к первой Ethernet-карте в машине.
++
+Локальные хосты сети и локальные подсети автоматически получают маршруты через демон man:routed[8]. Если он не запущен, будут существовать только маршруты, статически определённые администратором.
-Две строки `host2` являются примером того, что происходит при использовании алиасов в команде man:ifconfig[8] (обратитесь к разделу об Ethernet для объяснения того, почему мы это делаем). Символ `=>` после интерфейса [.filename]#lo0# указывает на то, что мы используем не просто интерфейс loopback (так как это адрес, обозначающий локальный хост), но к тому же это алиас. Такие маршруты появляются только на хосте, поддерживающем алиасы; для всех остальных хостов в локальной сети для таких маршрутов будут показаны просто строчки `link#1`.
+host::
+Строка `host1` ссылается на хост по его Ethernet-адресу. Поскольку это отправляющий хост, FreeBSD использует loopback-интерфейс ([.filename]#lo0#) вместо Ethernet-интерфейса.
++
+Две строки `host2` представляют собой псевдонимы, созданные с помощью man:ifconfig[8]. Символ `=>` после интерфейса [.filename]#lo0# указывает, что помимо loopback-адреса был установлен псевдоним. Такие маршруты отображаются только на хосте, поддерживающем псевдоним, а все остальные хосты в локальной сети будут иметь строку `link#1` для таких маршрутов.
-Последняя строчка (подсеть назначения `224`) имеет отношение к многоадресной посылке, которая будет рассмотрена в другом разделе.
+224::
+Последняя строка (подсеть назначения `224`) относится к многоадресной рассылке.
-И наконец, различные атрибуты каждого маршрута перечисляются в колонке `Flags`. Ниже приводится краткая таблица некоторых из этих флагов и их значений:
+Различные атрибуты каждого маршрута можно увидеть в столбце `Flags`. crossref:advanced-networking[routeflags,Часто встречающиеся флаги таблицы маршрутизации] содержит сводку некоторых из этих флагов и их значений:
-[.informaltable]
-[cols="1,1", frame="none"]
+[[routeflags]]
+.Часто встречающиеся флаги таблицы маршрутизации
+[cols="1,1", frame="none", options="header"]
|===
+| Flag
+| Назначение
|U
-|Up: Маршрут актуален.
+|Маршрут активен (поднят).
|H
-|Host: Адресом назначения является отдельный хост.
+|Целью маршрута является отдельный хост.
|G
-|Gateway: Посылать все для этого адреса назначения на указанную удаленную систему, которая будет сама определять дальнейший путь прохождения информации.
+|Отправляйте всё для этого назначения на этот шлюз, который разберётся, куда это нужно отправить.
|S
-|Static: Маршрут был настроен вручную, а не автоматически сгенерирован системой.
+|Этот маршрут был настроен статически.
|C
-|Clone: Новый маршрут сгенерирован на основе указанного для машин, к которым мы подключены. Такой тип маршрута обычно используется для локальных сетей.
+|Клонирует новый маршрут на основе данного для подключения машин. Такой тип маршрута обычно используется для локальных сетей.
|W
-|WasCloned: Указывает на то, что маршрут был автоматически сконфигурирован на основе маршрута в локальной сети (Clone).
+|Маршрут был автоматически настроен на основе локальной сети (клон) маршрута.
|L
-|Link: Маршрут включает ссылку на аппаратный адрес Ethernet.
-|===
-
-[[network-routing-default]]
-=== Маршруты по умолчанию
-
-Когда локальной системе нужно установить соединение с удаленным хостом, она обращается к таблице маршрутов для того, чтобы определить, существует ли такой маршрут. Если удаленный хост попадает в подсеть, для которой известен способ ее достижения (маршруты типа Cloned), то система определяет возможность подключиться к ней по этому интерфейсу.
-
-Если все известные маршруты не подходят, у системы имеется последняя возможность: маршрут "default". Это маршрут с особым типом сетевого шлюза (обычно единственным, присутствующим в системе), и в поле флагов он всегда помечен как `c`. Для хостов в локальной сети этот сетевой шлюз указывает на машину, имеющую прямое подключение к внешнему миру (неважно, используется ли связь по протоколу PPP, канал DSL, кабельный модем, T1 или какой-то другой сетевой интерфейс).
-
-Если вы настраиваете маршрут по умолчанию на машине, которая сама является сетевым шлюзом во внешний мир, то маршрутом по умолчанию будет являться сетевой шлюз у Вашего провайдера Интернет (ISP).
-
-Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная конфигурация:
-
-image::net-routing.png[]
-
-Хосты `Local1` и `Local2` находятся в нашей сети. `Local1` подключён к ISP через коммутируемое соединение по протоколу PPP. Этот компьютер с сервером PPP подключён посредством локальной сети к другому шлюзовому компьютеру через внешний интерфейс самого ISP к Интернет.
-
-Маршруты по умолчанию для каждой из ваших машин будут следующими:
-
-[.informaltable]
-[cols="1,1,1", frame="none", options="header"]
-|===
-| Хост
-| Маршрут по умолчанию
-| Интерфейс
-
-|Local2
-|Local1
-|Ethernet
-
-|Local1
-|T1-GW
-|PPP
-|===
-
-Часто задаётся вопрос "Почему (или каким образом) в качестве шлюза по умолчанию для машины `Local1` мы указываем `T1-GW`, а не сервер провайдера, к которому подключаемся?".
-
-Запомните, что из-за использования PPP-интерфейсом адреса в сети провайдера Интернет с вашей стороны соединения, маршруты для всех других машин в локальной сети провайдера будут сгенерированы автоматически. Таким образом, вы уже будете знать, как достичь машины `T1-GW`, так что нет нужды в промежуточной точке при посылке трафика к серверу ISP.
-
-В локальных сетях адрес `X.X.X.1` часто используется в качестве адреса сетевого шлюза. Тогда (при использовании того же самого примера) если пространство адресов класса C вашей локальной сети было задано как `10.20.30`, а ваш провайдер использует `10.9.9`, то маршруты по умолчанию будут такие:
-
-[.informaltable]
-[cols="1,1", frame="none", options="header"]
-|===
-| Хост
-| Маршрут по умолчанию
-
-|Local2 (10.20.30.2)
-|Local1 (10.20.30.1)
-
-|Local1 (10.20.30.1, 10.9.9.30)
-|T1-GW (10.9.9.1)
+|Маршрут включает ссылки на оборудование Ethernet (link).
|===
-Вы можете легко задать используемый по умолчанию маршрутизатор посредством файла [.filename]#/etc/rc.conf#. В нашем примере на машине `Local2` мы добавили такую строку в файл [.filename]#/etc/rc.conf#:
+На системе FreeBSD маршрут по умолчанию может быть определён в [.filename]#/etc/rc.conf# путём указания IP-адреса шлюза по умолчанию:
[.programlisting]
....
defaultrouter="10.20.30.1"
....
-Это также возможно сделать и непосредственно из командной строки при помощи команды man:route[8]:
+Также можно вручную добавить маршрут с помощью `route`:
-[source,shell]
+[source, shell]
....
# route add default 10.20.30.1
....
-Для получения дополнительной информации об управлении таблицами маршрутизации обратитесь к справочной странице по команде man:route[8].
-
-=== Хосты с двойным подключением
-
-Есть еще один тип подключения, который мы должны рассмотреть, и это случай, когда хост находится в двух различных сетях. Технически, любая машина, работающая как сетевой шлюз (в примере выше использовалось PPP-соединение), считается хостом с двойным подключением. Однако этот термин реально используется для описания машины, находящейся в двух локальных сетях.
-
-В одном случае у машины имеется два адаптера Ethernet, каждый имеющий адрес в разделенных подсетях. Как альтернативу можно рассмотреть вариант с одним Ethernet-адаптером и использованием алиасов в команде man:ifconfig[8]. В первом случае используются два физически разделённые сети Ethernet, в последнем имеется один физический сегмент сети, но две логически разделённые подсети.
+Обратите внимание, что вручную добавленные маршруты не сохранятся после перезагрузки. Для получения дополнительной информации о ручном управлении таблицами сетевой маршрутизации обратитесь к man:route[8].
-В любом случае таблицы маршрутизации настраиваются так, что для каждой подсети эта машина определена как шлюз (входной маршрут) в другую подсеть. Такая конфигурация, при которой машина выступает в роли маршрутизатора между двумя подсетями, часто используется, если нужно реализовать систему безопасности на основе фильтрации пакетов или функций брандмауэра в одном или обоих направлениях.
+[[network-static-routes]]
+=== Настройка маршрутизатора со статическими маршрутами
-Если вы хотите, чтобы эта машина действительно перемещала пакеты между двумя интерфейсами, то вам нужно указать FreeBSD на включение этой функции. Обратитесь к следующей главе, чтобы узнать, как это сделать.
+Система FreeBSD может быть настроена как шлюз по умолчанию или маршрутизатор для сети, если она является двухдоменной системой. Двухдоменная система — это хост, который находится как минимум в двух разных сетях. Обычно каждая сеть подключена к отдельному сетевому интерфейсу, хотя IP-алиасинг может использоваться для привязки нескольких адресов, каждый в своей подсети, к одному физическому интерфейсу.
-[[network-dedicated-router]]
-=== Построение маршрутизатора
-
-Сетевой маршрутизатор является обычной системой, которая пересылает пакеты с одного интерфейса на другой. Стандарты Интернет и хорошая инженерная практика не позволяют Проекту FreeBSD включать эту функцию по умолчанию во FreeBSD. Вы можете включить эту возможность, изменив значение следующей переменной в `YES` в файле man:rc.conf[5]:
+Для того чтобы система могла пересылать пакеты между интерфейсами, FreeBSD должна быть настроена как маршрутизатор. Интернет-стандарты и лучшие инженерные практики не позволяют проекту FreeBSD включать эту функцию по умолчанию, но её можно настроить для запуска при загрузке, добавив следующую строку в [.filename]#/etc/rc.conf#:
[.programlisting]
....
-gateway_enable=YES # Set to YES if this host will be a gateway
+gateway_enable="YES" # Set to YES if this host will be a gateway
....
-Этот параметр изменит значение man:sysctl[8]-переменной `net.inet.ip.forwarding` в `1`. Если вам временно нужно выключить маршрутизацию, вы можете на время сбросить это значение в `0`.
-
-Вашему новому маршрутизатору нужна информация о маршрутах для того, чтобы знать, куда пересылать трафик. Если ваша сеть достаточно проста, то вы можете использовать статические маршруты. С FreeBSD также поставляется стандартный даемон BSD для маршрутизации man:routed[8], который умеет работать с RIP (как версии 1, так и версии 2) и IRDP. Поддержка BGP v4, OSPF v2 и других сложных протоколов маршрутизации имеется в пакете package:net/zebra[]. Также существуют и коммерческие продукты, применяемые как более комплексное решение проблемы маршрутизации в сети, такие как GateD(R).
+Чтобы теперь включить маршрутизацию, установите переменную man:sysctl[8] `net.inet.ip.forwarding` в значение `1`. Для отключения маршрутизации сбросьте эту переменную в `0`.
-=== Настройка статических маршрутов
+Таблица маршрутизации маршрутизатора требует дополнительных маршрутов, чтобы он знал, как достичь других сетей. Маршруты могут быть добавлены вручную с использованием статических маршрутов или могут быть автоматически созданы обучением с помощью протокола маршрутизации. Статические маршруты подходят для небольших сетей, и в этом разделе описывается, как добавить запись статической маршрутизации для небольшой сети.
-==== Ручная настройка
+[NOTE]
+====
+Для больших сетей статические маршруты быстро становятся неэффективными. FreeBSD включает стандартный демон маршрутизации man:routed[8], который поддерживает протоколы RIP версий 1 и 2, а также IRDP. Поддержка протоколов маршрутизации BGP и OSPF может быть установлена с помощью пакета package:net/quagga[] или порта.
+====
-Предположим, что у нас есть следующая сеть:
+Рассмотрим следующую сеть:
image::static-routes.png[]
-В этом сценарии, `RouterA` это наш компьютер с FreeBSD, который выступает в качестве маршрутизатора в сеть Интернет. Его маршрут по умолчанию настроен на `10.0.0.1`, что позволяет ему соединяться с внешним миром. Мы будем предполагать, что `RouterB` уже правильно настроен и знает все необходимые маршруты (на этом рисунке все просто; добавьте на `RouterB` маршрут по умолчанию, используя `192.168.1.1` в качестве шлюза).
+В этом сценарии `RouterA` — это машина FreeBSD, которая выступает в качестве маршрутизатора для остальной части Интернета. У нее установлен маршрут по умолчанию на `10.0.0.1`, что позволяет ей соединяться с внешним миром. `RouterB` уже настроен на использование `192.168.1.1` в качестве шлюза по умолчанию.
-Если мы посмотрим на таблицу маршрутизации `RouterA`, то увидим примерно следующее:
+Прежде чем добавлять статические маршруты, таблица маршрутизации на `RouterA` выглядит следующим образом:
-[source,shell]
+[source, shell]
....
% netstat -nr
Routing tables
@@ -254,40 +216,29 @@ Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
-10.0.0/24 link#1 UC 0 0 xl0
-192.168.1/24 link#2 UC 0 0 xl1
+10.0.0.0/24 link#1 UC 0 0 xl0
+192.168.1.0/24 link#2 UC 0 0 xl1
....
-С текущей таблицей маршрутизации `RouterA` не сможет достичь внутренней сети 2 (Internal Net 2). Один из способов обхода этой проблемы - добавление маршрута вручную. Следующая команда добавляет внутреннюю сеть 2 к таблице маршрутизации `RouterA` с `192.168.1.2` в качестве следующего узла:
+С текущей таблицей маршрутизации `RouterA` не имеет маршрута к сети `192.168.2.0/24`. Следующая команда добавляет сеть `Internal Net 2` в таблицу маршрутизации ``RouterA``, используя `192.168.1.2` в качестве следующего прыжка:
-[source,shell]
+[source, shell]
....
# route add -net 192.168.2.0/24 192.168.1.2
....
-Теперь `RouterA` сможет достичь любого хоста в сети `192.168.2.0/24`.
-
-==== Постоянная конфигурация
-
-Предыдущий пример прекрасно подходит для настройки статического маршрута в работающей системе. Однако, проблема заключается в том, что маршрутная информация не сохранится после перезагрузки FreeBSD. Способ сохранения добавленного маршрута заключается в добавлении его в файл [.filename]#/etc/rc.conf#:
+Теперь `RouterA` может достигать любого узла в сети `192.168.2.0/24`. Однако информация о маршрутизации не сохранится после перезагрузки системы FreeBSD. Если требуется, чтобы статический маршрут был постоянным, добавьте его в [.filename]#/etc/rc.conf#:
[.programlisting]
....
-# Добавление статического маршрута в Internal Net 2
+# Add Internal Net 2 as a persistent static route
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"
....
-В переменной `static_routes` находятся строки, разделенные пробелами. Каждая строка означает имя маршрута. В примере выше в `static_routes` есть только одна строка, это _internalnet2_. Затем мы добавили переменную `route__internalnet2_`, куда помещены все параметры, которые необходимо передать команде man:route[8]. В примере выше была использована команда:
-
-[source,shell]
-....
-# route add -net 192.168.2.0/24 192.168.1.2
-....
-
-поэтому нам потребуется `"-net 192.168.2.0/24 192.168.1.2"`.
+Переменная конфигурации `static_routes` представляет собой список строк, разделённых пробелом, где каждая строка ссылается на имя маршрута. Переменная `route_internalnet2` содержит статический маршрут для этого имени маршрута.
-Как было сказано выше, мы можем добавить в `static_routes` более чем одну строку. Это позволит создать несколько статических маршрутов. В следующем примере показано добавление маршрутов для сетей `192.168.0.0/24` и `192.168.1.0/24` (этот маршрутизатор не показан на рисунке выше:
+Использование более одной строки в `static_routes` создает несколько статических маршрутов. Ниже приведен пример добавления статических маршрутов для сетей `192.168.0.0/24` и `192.168.1.0/24`:
[.programlisting]
....
@@ -296,381 +247,555 @@ route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"
....
-=== Распространение маршрутов
-
-Мы уже говорили о том, как мы задаем наши маршруты во внешний мир, но не упоминали о том, как внешний мир находит нас.
-
-Мы уже знаем, что таблицы маршрутизации могут быть настроены так, что весь трафик для некоторого диапазона адресов (в нашем примере это подсеть класса C) может быть направлен заданному хосту в той сети, которая будет перенаправлять входящие пакеты дальше.
-
-При получении адресного пространства, выделенного Вашей сети, Ваш провайдер настроит свои таблицы маршрутизации так, что весь трафик для Вашей подсети будет пересылаться по PPP-соединению к Вашей сети. Но как серверы по всей стране узнают, что Ваш трафик нужно посылать Вашему ISP?
-
-Существует система (подобная распределению информации DNS), которая отслеживает все назначенные пространства адресов и определяет точку подключения к магистрали Интернет. "Магистралью" называют главные каналы, по которым идет трафик Интернет внутри страны и по всему миру. Каждая магистральная машина имеет копию основного набора таблиц, согласно которой трафик для конкретной сети направляется по конкретному магистральному каналу, и затем, передаваясь по цепочке провайдеров, он достигает вашей сети.
+[[network-routing-troubleshooting]]
+=== Устранение неполадок
-Задачей вашего провайдера является объявить на магистрали о том, что он отвечает за подключение (и поэтому на него указывает маршрут) вашей сети. Этот процесс называется распространением маршрута.
+Когда адресное пространство назначается сети, поставщик услуг настраивает свои таблицы маршрутизации так, чтобы весь трафик для сети отправлялся по каналу связи к сайту. Но как внешние сайты узнают, что их пакеты нужно отправлять к межсетевому экрану провайдера сети?
-=== Устранение неполадок
+Существует система, которая отслеживает все выделенные адресные пространства и определяет их точку подключения к магистрали Интернета или основным магистральным линиям, передающим интернет-трафик по стране и по всему миру. Каждая машина магистрали имеет копию главного набора таблиц, которые направляют трафик для определённой сети к конкретному магистральному оператору, а оттуда по цепочке поставщиков услуг, пока он не достигнет конкретной сети.
-Иногда с распространением маршрута возникают проблемы, и некоторые сайты не могут к вам подключиться. Наверное, самой полезной командой для определения точки неверной работы маршрутизации является man:traceroute[8]. Она также полезна и когда вы сами не можете подключиться к удаленной машине (то есть команда man:ping[8] не срабатывает).
+Это задача поставщика услуг — сообщить магистральным узлам, что они являются точкой подключения и, следовательно, путем внутрь для сайта. Это известно как распространение маршрутов.
-Команда man:traceroute[8] запускается с именем удаленного хоста, с которым вы хотите установить соединение, в качестве параметра. Она показывает промежуточные сетевые шлюзы по пути следования, в конце концов достигая адрес назначения или прерывая свою работу из-за отсутствия соединения.
+Иногда возникают проблемы с распространением маршрутов, и некоторые сайты не могут подключиться. Возможно, наиболее полезная команда для выяснения, где происходит разрыв маршрутизации, — это `traceroute`. Она полезна, когда `ping` не срабатывает.
-За дополнительной информацией обратитесь к странице Справочника по man:traceroute[8].
+При использовании `traceroute` укажите адрес удаленного хоста для подключения. В выводе будут показаны шлюзы на пути попытки соединения, в конечном итоге достигая целевого хоста или прерываясь из-за отсутствия соединения. Для получения дополнительной информации обратитесь к man:traceroute[8].
-=== Маршрутизация многоадресного трафика
+[[network-routing-multicast]]
+=== Аспекты многоадресной рассылки (multicast)
-FreeBSD изначально поддерживает как приложения, работающие с многоадресным трафиком, так и его маршрутизацию. Такие приложения не требуют особой настройки FreeBSD; обычно они работают сразу. Для маршрутизации многоадресного трафика требуется, чтобы поддержка этого была включена в ядро:
+FreeBSD изначально поддерживает как приложения с многоадресной рассылкой, так и маршрутизацию многоадресной рассылки. Для работы приложений с многоадресной рассылкой на FreeBSD не требуется специальной настройки. Для поддержки маршрутизации многоадресной рассылки необходимо включить следующую опцию в собственном ядре:
[.programlisting]
....
options MROUTING
....
-Кроме того, даемон многоадресной маршрутизации, man:mrouted[8], должен быть настроен посредством файла [.filename]#/etc/mrouted.conf# на использование туннелей и DVMRP. Дополнительную информацию о настройки многоадресного трафика можно найти на страницах справочной системы, посвящённых даемону man:mrouted[8].
+Демон маршрутизации многоадресной рассылки, mrouted, может быть установлен с помощью пакета package:net/mrouted[] или порта. Этот демон реализует протокол маршрутизации многоадресной рассылки DVMRP и настраивается путём редактирования файла [.filename]#/usr/local/etc/mrouted.conf# для настройки туннелей и DVMRP. Установка mrouted также устанавливает map-mbone и mrinfo, а также связанные с ними man-страницы. Обратитесь к ним за примерами конфигурации.
-[[network-wireless]]
-== Беспроводные сети
-
-=== Введение
+[NOTE]
+====
+DVMRP во многом заменён протоколом PIM во многих инсталляциях с использованием многоадресной рассылки. Дополнительную информацию можно найти в man:pim[4].
+====
-Было бы весьма полезным иметь возможность использовать компьютер без хлопот, связанных с постоянно подключенным сетевым кабелем. FreeBSD может использоваться как клиент беспроводной сети, и даже в качестве "точки доступа" к ней.
+[[configtuning-virtual-hosts]]
+== Виртуальные узлы
-=== Режимы работы беспроводной связи
+Распространённое использование FreeBSD — это виртуальный хостинг сайтов, когда один сервер представляется в сети как множество серверов. Это достигается путём назначения нескольких сетевых адресов одному интерфейсу.
-Существуют два варианта конфигурации устройств беспроводного доступа 802.11: BSS и IBSS.
+Указанный сетевой интерфейс имеет один "реальный" адрес и может иметь любое количество "псевдонимных" адресов. Эти псевдонимы обычно добавляются путём размещения записей alias в [.filename]#/etc/rc.conf#, как показано в этом примере:
-==== Режим BSS
+[source, shell]
+....
+# sysrc ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
+....
-Режим BSS является наиболее часто используемым. Режим BSS также называют режимом инфраструктуры. В этом режиме несколько точек доступа беспроводной сети подключаются к проводной сети передачи данных. Каждое беспроводная сеть имеет собственное имя. Это имя является идентификатором SSID сети.
+Записи псевдонимов должны начинаться с `alias__0__`, используя последовательные числа, такие как `alias0`, `alias1` и так далее. Процесс настройки остановится при первом пропущенном числе.
-Клиенты беспроводной сети подключаются к этим точкам доступа беспроводной сети. Стандарт IEEE 802.11 определяет протокол, используемый для связи в беспроводных сетях. Клиент сети беспроводного доступа может подключаться к некоторой сети, если задан её SSID. Клиент может также подключаться к любой сети, если SSID не задан.
+Расчёт масок подсети для псевдонимов важен. Для заданного интерфейса должен быть один адрес, который корректно представляет маску подсети сети. Любые другие адреса, попадающие в эту сеть, должны иметь маску подсети, состоящую из всех ``1``, выраженную как `255.255.255.255` или `0xffffffff`.
-==== Режим IBSS
+Например, рассмотрим случай, когда интерфейс `fxp0` подключён к двум сетям: `10.1.1.0` с маской сети `255.255.255.0` и `202.0.75.16` с маской сети `255.255.255.240`. Система должна быть настроена так, чтобы находиться в диапазонах `10.1.1.1`–`10.1.1.5` и `202.0.75.17`–`202.0.75.20`. Только первый адрес в каждом диапазоне должен иметь реальную маску сети. Все остальные (`10.1.1.2`–`10.1.1.5` и `202.0.75.18`–`202.0.75.20`) должны быть настроены с маской `255.255.255.255`.
-Режим IBSS, также называемый ad-hoc, предназначен для соединений точка-точка. На самом деле существуют два типа режима ad-hoc. Один из них является режимом IBSS, называемый также режимом ad-hoc или IEEE ad-hoc. Этот режим определён стандартами IEEE 802.11. Второй режим называется демонстрационным режимом ad-hoc, или Lucent ad-hoc (или, иногда неправильно, режимом ad-hoc). Это старый, существовавший до появления 802.11, режим ad-hoc, и он должен использоваться только для старых сетей. В дальнейшем мы не будем рассматривать ни один из режимов ad-hoc.
+Для данного сценария правильно настраивают адаптер следующие записи в [.filename]#/etc/rc.conf# :
-=== Режим инфраструктуры
+[source, shell]
+....
+# sysrc ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
+# sysrc ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
+# sysrc ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
+# sysrc ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
+# sysrc ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
+# sysrc ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
+# sysrc ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
+# sysrc ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
+# sysrc ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"
+....
-==== Точки доступа
+Более простой способ выразить это — использовать список диапазонов IP-адресов, разделённых пробелами. Первому адресу будет назначена указанная маска подсети, а дополнительным адресам — маска подсети `255.255.255.255`.
-Точки доступа представляют собой беспроводные сетевые устройства, позволяющие одному или большему количеству клиентов беспроводной сети использовать эти устройства в качестве центрального сетевого концентратора. При использовании точки доступа все клиенты работают через неё. Зачастую используются несколько точек доступа для полного покрытия беспроводной сетью некоторой зоны, такой, как дом, офис или парк.
+[source, shell]
+....
+# sysrc ifconfig_fxp0_aliases="inet 10.1.1.1-5/24 inet 202.0.75.17-20/28"
+....
-Точки доступа обычно имеют несколько подключений к сети: адаптер беспроводной связи и один или большее количество сетевых ethernet-адаптеров для подключения к остальной части сети.
+[[network-advanced-wireless]]
+== Расширенная аутентификация в беспроводной сети
-Точки доступа могут быть либо приобретены уже настроенными, либо вы можете создать собственную при помощи FreeBSD и поддерживаемого адаптера беспроводной связи. Несколько производителей выпускают точки беспроводного доступа и адаптеры беспроводной связи с различными возможностями.
+FreeBSD поддерживает различные способы подключения к беспроводной сети. В этом разделе описано, как выполнить расширенную аутентификацию в беспроводной сети.
-==== Построение точки доступа с FreeBSD
+Для подключения и базовой аутентификации в беспроводной сети раздел crossref:network[wireless-authentication,Подключение и аутентификация в беспроводной сети] в главе "Сеть" описывает, как это сделать.
-===== Требования
+[[network-wireless-wpa-eap-tls]]
+=== WPA с EAP-TLS
-Для того, чтобы создать беспроводную точку доступа на FreeBSD, вам нужно иметь совместимый адаптер беспроводной связи. На данный момент поддерживаются адаптеры только на основе набора микросхем Prism. Вам также потребуется поддерживаемый FreeBSD адаптер проводной сети (найти такой будет нетрудно, FreeBSD поддерживает множество различных устройств). В этом руководстве мы будем полагать, что вы будете строить сетевой мост (man:bridge[4]) для пропуска всего трафика между устройством беспроводной связи и сетью, подключенной к обычному Ethernet-адаптеру.
+Второй способ использования WPA — с сервером аутентификации 802.1X. В этом случае WPA называется WPA Enterprise, чтобы отличать его от менее безопасного WPA Personal. Аутентификация в WPA Enterprise основана на расширяемом протоколе аутентификации (EAP).
-Функциональность hostap, которая используется FreeBSD для организации точки доступа, работает лучше всего с некоторыми версиями микрокода. Адаптеры Prism 2 должны использовать микрокод версии 1.3.4 или более новый. Адаптеры Prism 2.5 и Prism 3 должны использовать микрокод версии 1.4.9. Более старые версии микрокода могут работать нормально, а могут и некорректно. В настоящее время единственным способом обновления адаптеров является использование утилит обновления для Windows(R), которые можно получить у производителя ваших адаптеров.
+EAP не включает в себя метод шифрования. Вместо этого EAP встраивается в зашифрованный туннель. Существует множество методов аутентификации EAP, но наиболее распространены EAP-TLS, EAP-TTLS и EAP-PEAP.
-===== Настройка
+EAP с защитой на транспортном уровне (EAP-TLS) — это широко поддерживаемый протокол аутентификации беспроводных сетей, так как он был первым методом EAP, сертифицированным http://www.wi-fi.org/[Альянсом Wi-Fi]. Для работы EAP-TLS требуется три сертификата: сертификат центра сертификации (CA), установленный на всех машинах, сертификат сервера для сервера аутентификации и один клиентский сертификат для каждого беспроводного клиента. В этом методе EAP и сервер аутентификации, и беспроводной клиент аутентифицируют друг друга, предоставляя свои соответствующие сер
тификаты, а затем проверяют, что эти сертификаты были подписаны CA организации.
-Первым делом убедитесь, что ваша система распознаёт адаптер беспроводной связи:
+Как и ранее, настройка выполняется через [.filename]#/etc/wpa_supplicant.conf#:
-[source,shell]
+[.programlisting]
....
-# ifconfig -a
-wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
- inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
- inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
- ether 00:09:2d:2d:c9:50
- media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
- status: no carrier
- ssid ""
- stationname "FreeBSD Wireless node"
- channel 10 authmode OPEN powersavemode OFF powersavesleep 100
- wepmode OFF weptxkey 1
+network={
+ ssid="freebsdap" <.>
+ proto=RSN <.>
+ key_mgmt=WPA-EAP <.>
+ eap=TLS <.>
+ identity="loader" <.>
+ ca_cert="/etc/certs/cacert.pem" <.>
+ client_cert="/etc/certs/clientcert.pem" <.>
+ private_key="/etc/certs/clientkey.pem" <.>
+ private_key_passwd="freebsdmallclient" <.>
+}
....
-На данном этапе не беспокойтесь о деталях, просто убедитесь, что выдаётся нечто, указывающее на установленный адаптер беспроводной связи. Если при этом у вас есть проблемы с недоступностью интерфейса беспроводной связи, и вы используете PC Card, то обратитесь к страницам справочной системы, описывающим man:pccardc[8] и man:pccardd[8] для получения более полной информации.
+<.> Это поле указывает имя сети (SSID).
+<.> Этот пример использует протокол RSN IEEE(R) 802.11i, также известный как WPA2.
+<.> Строка `key_mgmt` указывает на используемый протокол управления ключами. В данном примере это WPA с аутентификацией EAP.
+<.> Это поле указывает метод EAP для подключения.
+<.> Поле `identity` содержит строку идентификации для EAP.
+<.> Поле `ca_cert` указывает путь к файлу сертификата CA. Этот файл необходим для проверки сертификата сервера.
+<.> Строка `client_cert` указывает путь к файлу сертификата клиента. Этот сертификат уникален для каждого беспроводного клиента в сети.
+<.> Поле `private_key` содержит путь к файлу закрытого ключа клиентского сертификата.
+<.> Поле `private_key_passwd` содержит парольную фразу для закрытого ключа.
-Теперь вам нужно загрузить модуль для подготовки той части FreeBSD, что отвечает за организацию сетевых мостов, для работы с точкой доступа. Для загрузки модуля man:bridge[4] просто выполните следующую команду:
+Затем добавьте следующие строки в [.filename]#/etc/rc.conf#:
-[source,shell]
+[.programlisting]
....
-# kldload bridge
+wlans_ath0="wlan0"
+ifconfig_wlan0="WPA DHCP"
....
-При загрузке модуля никаких сообщений об ошибках быть не должно. Если это всё же произошло, вам может потребоваться вкомпилировать код для модуля man:bridge[4] в ядро. В этом вам должен помочь раздел этого Руководства об <<network-bridging,организации сетевых мостов>>.
-
-Теперь, когда вы завершили с той частью, что касается организации сетевого моста, нам нужно указать ядру FreeBSD, какие интерфейсы должны объединяться в сетевом мосте. Это мы делаем при помощи man:sysctl[8]:
+Следующий шаг — поднять интерфейс:
-[source,shell]
+[source, shell]
....
-# sysctl net.link.ether.bridge.enable=1
-# sysctl net.link.ether.bridge.config="wi0 xl0"
-# sysctl net.inet.ip.forwarding=1
+# service netif start
+Starting wpa_supplicant.
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
+DHCPACK from 192.168.0.20
+bound to 192.168.0.254 -- renewal in 300 seconds.
+wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ ether 00:11:95:d5:43:62
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
+ status: associated
+ ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
+ country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
+ AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
+ bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
+ wme burst roaming MANUAL
....
-В версиях FreeBSD, предшествующих 5.2, вместо указанных нужно использовать следующие параметры:
+Также можно поднять интерфейс вручную с помощью man:wpa_supplicant[8] и man:ifconfig[8].
-[source,shell]
-....
-# sysctl net.link.ether.bridge=1
-# sysctl net.link.ether.bridge_cfg="wi0,xl0"
-# sysctl net.inet.ip.forwarding=1
-....
+[[network-wireless-wpa-eap-ttls]]
+=== WPA с EAP-TTLS
-Теперь необходимо настроить адаптер беспроводной сети. Следующая команда заставит адаптер работать в режиме точки доступа:
+С EAP-TLS и сервер аутентификации, и клиент нуждаются в сертификате. С EAP-TTLS сертификат клиента необязателен. Этот метод аналогичен веб-серверу, который создает защищенный SSL-туннель, даже если у посетителей нет клиентских сертификатов. EAP-TTLS использует зашифрованный TLS-туннель для безопасной передачи данных аутентификации.
-[source,shell]
-....
-# ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"
+Требуемая конфигурация может быть добавлена в [.filename]#/etc/wpa_supplicant.conf#:
+[.programlisting]
+....
+network={
+ ssid="freebsdap"
+ proto=RSN
+ key_mgmt=WPA-EAP
+ eap=TTLS <.>
+ identity="test" <.>
+ password="test" <.>
+ ca_cert="/etc/certs/cacert.pem" <.>
+ phase2="auth=MD5" <.>
+}
....
-Строчка man:ifconfig[8] активизирует интерфейс [.filename]#wi0#, конфигурирует его SSID как _my_net_, а имя станции как _FreeBSD AP_. `media DS/11Mbps` переводит адаптер в режим 11Mbps и нужен только для того, чтобы сработал параметр `mediaopt`. Параметр `mediaopt hostap` переводит интерфейс в режим точки доступа. Параметр `channel 11` задаёт использование канала 802.11b. Страница справки по команде man:wicontrol[8] перечисляет корректные значения каналов для ваших нужд.
-
-Теперь у вас должна получиться полнофункциональная работающая точка доступа. Настоятельно советуем прочесть страницы справочной по man:wicontrol[8], man:ifconfig[8], и man:wi[4] для получения дополнительной информации.
-
-Также полагаем, что вы прочтёте следующий раздел о шифровании.
-
-===== Информация о состоянии
+<.> Это поле определяет метод EAP для подключения.
+<.> Поле `identity` содержит строку идентификации для аутентификации EAP внутри зашифрованного TLS-туннеля.
+<.> Поле `password` содержит парольную фразу для аутентификации EAP.
+<.> Поле `ca_cert` указывает путь к файлу сертификата CA. Этот файл необходим для проверки сертификата сервера.
+<.> Это поле определяет метод аутентификации, используемый в зашифрованном TLS-туннеле. В данном примере используется EAP с MD5-Challenge. Фаза "внутренней аутентификации" часто называется "phase2".
-После того, как точка доступа сконфигурирована и начала свою работу, операторам может понадобиться видеть клиентов, связанных с этой точкой. В любой момент оператор может набрать:
+Далее добавьте следующие строки в [.filename]#/etc/rc.conf#:
-[source,shell]
+[.programlisting]
....
-# wicontrol -l
-1 station:
-00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15
+wlans_ath0="wlan0"
+ifconfig_wlan0="WPA DHCP"
....
-Это показывает, что имеется одна связанная станция с перечисленными характеристиками. Выдаваемое значение сигнала должно использоваться только как сравнительный индикатор его силы. Его перевод в dBm или другие единицы измерения различаются в разных версиях микрокода.
+Следующий шаг — поднять интерфейс:
-==== Клиенты
-
-Клиент в беспроводной сети представляет собой систему, которая обращается к точке доступа или непосредственно к другому клиенту.
+[source, shell]
+....
+# service netif start
+Starting wpa_supplicant.
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
+DHCPACK from 192.168.0.20
+bound to 192.168.0.254 -- renewal in 300 seconds.
+wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ ether 00:11:95:d5:43:62
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
+ status: associated
+ ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
+ country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
+ AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
+ bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
+ wme burst roaming MANUAL
+....
-Как правило, клиенты беспроводной сети имеют только один сетевой адаптер, а именно адаптер беспроводной сети.
+[[network-wireless-wpa-eap-peap]]
+=== WPA с EAP-PEAP
-Существует несколько различных способов конфигурации клиента беспроводной сети. Они основаны на различных режимах работы в беспроводной сети, обычно BSS (режим инфраструктуры, который требует точки доступа) или IBSS (ad-hoc или режим одноранговой сети). В нашем примере мы будем использовать самый популярный их них, режим BSS, для связи с точкой доступа.
+[NOTE]
+====
+PEAPv0/EAP-MSCHAPv2 является наиболее распространенным методом PEAP. В этой главе термин PEAP используется для обозначения данного метода.
+====
-===== Требования
+Защищенный EAP (PEAP) разработан как альтернатива EAP-TTLS и является наиболее используемым стандартом EAP после EAP-TLS. В сети с разными операционными системами PEAP должен быть наиболее поддерживаемым стандартом после EAP-TLS.
-Существует только одно жёсткое условие для настройки FreeBSD в качестве клиента беспроводной сети. Вам нужен адаптер беспроводной связи, поддерживаемый FreeBSD.
+PEAP аналогичен EAP-TTLS, так как использует сертификат на стороне сервера для аутентификации клиентов путем создания зашифрованного TLS-туннеля между клиентом и сервером аутентификации, что защищает последующий обмен аутентификационной информацией. Аутентификация PEAP отличается от EAP-TTLS тем, что передает имя пользователя в открытом виде, и только пароль отправляется в зашифрованном TLS-туннеле. EAP-TTLS использует TLS-туннель как для имени пользователя, так и для пароля.
-===== Конфигурация FreeBSD как клиента беспроводной сети
+Добавьте следующие строки в [.filename]#/etc/wpa_supplicant.conf# для настройки параметров, связанных с EAP-PEAP:
-Перед тем, как подключиться к беспроводной сети, вам нужно будет узнать о ней несколько вещей. В этом примере мы подключаемся к сети, которая называется _my_net_, и шифрование в ней отключено.
+[.programlisting]
+....
+network={
+ ssid="freebsdap"
+ proto=RSN
+ key_mgmt=WPA-EAP
+ eap=PEAP <.>
+ identity="test" <.>
+ password="test" <.>
+ ca_cert="/etc/certs/cacert.pem" <.>
+ phase1="peaplabel=0" <.>
+ phase2="auth=MSCHAPV2" <.>
+}
+....
-[NOTE]
-====
-В этом примере мы не используем шифрование, но это небезопасно. В следующем разделе вы узнаете, как её включить, почему это так важно, и почему некоторые технологии шифрования всё же не могут полностью обеспечить вашу информационную безопасность.
-====
+<.> Это поле определяет метод EAP для подключения.
+<.> Поле `identity` содержит строку идентификации для аутентификации EAP внутри зашифрованного TLS-туннеля.
+<.> Поле `password` содержит парольную фразу для аутентификации EAP.
+<.> Поле `ca_cert` указывает путь к файлу сертификата CA. Этот файл необходим для проверки сертификата сервера.
+<.> Это поле содержит параметры для первой фазы аутентификации, TLS-туннеля. В зависимости от используемого сервера аутентификации укажите конкретную метку для аутентификации. В большинстве случаев меткой будет "client EAP encryption", которая устанавливается с помощью `peaplabel=0`. Дополнительную информацию можно найти в man:wpa_supplicant.conf[5].
+<.> Это поле определяет протокол аутентификации, используемый в зашифрованном TLS-туннеле. В случае PEAP, это `auth=MSCHAPV2`.
-Удостоверьтесь, что ваш адаптер распознаётся во FreeBSD:
+Добавьте следующее в [.filename]#/etc/rc.conf#:
-[source,shell]
+[.programlisting]
....
-# ifconfig -a
-wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
- inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
- inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
- ether 00:09:2d:2d:c9:50
- media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
- status: no carrier
- ssid ""
- stationname "FreeBSD Wireless node"
- channel 10 authmode OPEN powersavemode OFF powersavesleep 100
- wepmode OFF weptxkey 1
+wlans_ath0="wlan0"
+ifconfig_wlan0="WPA DHCP"
....
-Теперь мы можем изменить настройки адаптера на те, что соответствуют нашей сети:
+Затем поднимите интерфейс:
-[source,shell]
+[source, shell]
....
-# ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net
+# service netif start
+Starting wpa_supplicant.
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
+DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
+DHCPACK from 192.168.0.20
+bound to 192.168.0.254 -- renewal in 300 seconds.
+wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ ether 00:11:95:d5:43:62
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
+ status: associated
+ ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
+ country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
+ AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
+ bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
+ wme burst roaming MANUAL
....
-Замените `192.168.0.20` и `255.255.255.0` на правильные IP-адрес и сетевую маску в вашей проводной сети. Запомните, что наша точка доступа выступает в роли моста для данных между беспроводной и проводной сетями, так что они будут доступны для других устройств, находящихся в сети, как будто они тоже находятся в проводной сети.
+[[wireless-ad-hoc-mode]]
+== Беспроводное соединение в режиме Ad-hoc
-Как только вы это выполнили, то сможете получить ping от хостов в проводной сети, как будто вы подключены посредством обычных проводов.
+Режим IBSS, также называемый ad-hoc режимом, предназначен для соединений точка-точка. Например, чтобы создать ad-hoc сеть между машинами `A` и `B`, выберите два IP-адреса и SSID.
-Если вы столкнулись с проблемами при работе в беспроводной сети, удостоверьтесь, что вы ассоциированы (подключены) с точкой доступа:
+На `A`:
-[source,shell]
+[source, shell]
....
-# ifconfig wi0
+# ifconfig wlan0 create wlandev ath0 wlanmode adhoc
+# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap
+# ifconfig wlan0
+ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
+ ether 00:11:95:c3:0d:ac
+ inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
+ media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
+ status: running
+ ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
+ country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
*** 182943 LINES SKIPPED ***