Глава 12. Работа в сети

12.1. Где можно найти информацию о <<бездисковой загрузке>>?
12.2. Может ли машина с FreeBSD использоваться как маршрутизатор?
12.3. Можно ли подключить машину с Windows(R) к Internet с помощью FreeBSD?
12.4. Поддерживает ли FreeBSD протокол PPP?
12.5. Поддерживает ли FreeBSD технологию NAT или Masquerading?
12.6. Как настроить алиас в сети Ethernet?
12.7. Почему я не могу смонтировать диск Linux(R) по NFS?
12.8. Почему mountd продолжает выдавать сообщения can't change attributes и bad exports list на моём сервере NFS, работающем под управлением FreeBSD?
12.9. Как включить поддержку multicast IP?
12.10. Почему я должен использовать FQDN для хостов не в моей сети?
12.11. Permission denied для любых действий, связанных с работой сети.
12.12. Почему моё правило <> для ipfw по перенаправлению сервиса на другую машину не работает?
12.13. Как можно перенаправить запросы с одной машины на другую?
12.14. Где можно найти средства управления сетевым трафиком?
12.15. Почему появляются сообщения /dev/bpf0: device not configured?
12.16. Как смонтировать диск Windows(R)-машины в моей локальной сети, как это делает smbmount в Linux(R)?
12.17. Что значат сообщения Limiting icmp/open port/closed port response в файле журнала?
12.18. Что это за сообщения arp: unknown hardware address format?
12.19. Почему я постоянно вижу сообщения вида 192.168.0.10 is on fxp1 but got reply from 00:15:17:67:cf:82 on rl0 и как мне их отключить?

12.1.

Где можно найти информацию о <<бездисковой загрузке>>?

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

12.2.

Может ли машина с FreeBSD использоваться как маршрутизатор?

Да. Обратитесь к разделу Руководства, посвящённому сложным вопросам работы в сети, особенно в той части, что касается маршрутизации и маршрутизаторов.

12.3.

Можно ли подключить машину с Windows(R) к Internet с помощью FreeBSD?

Как правило, те, кто задают такие вопросы, имеют дома два компьютера, один с FreeBSD, а другой с какой-то версией Windows(R). Идея состоит в использовании FreeBSD для подключения к Internet, а затем осуществлять выход в Internet из Windows(R) через FreeBSD. На самом деле это просто частный случай предыдущего вопроса, который хорошо отработан.

Для подключения к Internet с использованием коммутируемого соединения нужно указать параметр -nat и установить в файле /etc/rc.conf переменную gateway_enable в значение YES. Для получения дополнительной информации обратитесь к страницам справочной системы по команде ppp(8) или разделу Руководства о PPP режима пользователя.

Если подключение к Internet выполняется через Ethernet, используйте natd(8). Вводная информация находится в разделе Руководства natd.

12.4.

Поддерживает ли FreeBSD протокол PPP?

Да. ppp(8) может обслуживать как входящие, так и исходящие соединения.

Более подробная информация об их использовании находится в разделе Руководства о протоколе PPP.

12.5.

Поддерживает ли FreeBSD технологию NAT или Masquerading?

Да. Для получения указаний по использованию NAT через подключение PPP обратитесь к разделу Руководства о PPP. Чтобы использовать NAT вместе с другим типом сетевого подключения, взгляните на раздел Руководства natd.

12.6.

Как настроить алиас в сети Ethernet?

Если алиас находится в той же самой сети, что и уже настроенный на интерфейсе адрес, допишите к этой команде netmask 0xffffffff:

# ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff

В противном случае укажите сетевой адрес и маску обычным образом:

# ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00

Дополнительная информация находится в Руководстве FreeBSD.

12.7.

Почему я не могу смонтировать диск Linux(R) по NFS?

Некоторые версии NFS для Linux(R) поддерживают запросы на монтирование только с привилегированного порта; попробуйте выполнить следующую команду:

# mount -o -P linuxbox:/blah /mnt

12.8.

Почему mountd продолжает выдавать сообщения can't change attributes и bad exports list на моём сервере NFS, работающем под управлением FreeBSD?

В большинстве случаев проблема заключается в недостаточном понимании корректного формата файла /etc/exports. Просмотрите ещё раз справочную информацию по exports(5) и раздел об NFS в Руководстве, особенно в части настройки NFS.

12.9.

Как включить поддержку multicast IP?

Установите пакет net/mrouted и добавьте mrouted_enable="YES" в /etc/rc.conf для запуска этого сервиса во время загрузки.

12.10.

Почему я должен использовать FQDN для хостов не в моей сети?

За ответом на этот вопрос обращайтесь к Руководству FreeBSD.

12.11.

Permission denied для любых действий, связанных с работой сети.

Если ядро скомпилировано с параметром IPFIREWALL, имейте в виду, что политикой по умолчанию является запрет прохождения всех пакетов, которые явно не разрешены.

Если межсетевой экран был случайно сконфигурирован неверным образом, то для восстановления работоспособности сети наберите такую команду из-под пользователя root:

# ipfw add 65534 allow all from any to any

Рассмотрите использование firewall_type='open' в файле /etc/rc.conf.

Дополнительная информация о настройке данного межсетевого экрана находится в соответствующей главе Руководства.

12.12.

Почему моё правило <<fwd>> для ipfw по перенаправлению сервиса на другую машину не работает?

Возможно, потому, что вместо простого перенаправления пакетов нужна трансляция сетевых адресов (NAT). Правило <<fwd>> только перенаправляет пакеты и данные внутри него не меняет. Рассмотрим такое правило:

01000 fwd 10.0.0.1 from any to foo 21

Когда пакет с адресом назначения foo достигает машины с этим правилом, пакет перенаправляется на 10.0.0.1, но в нём остаётся адрес назначения foo. Адрес назначения пакета не меняется на 10.0.0.1. Большинство машин, скорее всего, отбросят полученный пакет, имеющий адрес назначения, им не соответствующий. Таким образом, правило <<fwd>> не часто работает так, как ожидает пользователь. Такое поведение является особенностью, а не ошибкой.

Обратитесь к FAQ о перенаправлении сервисов, руководству по natd(8) или одной из нескольких утилит для перенаправления из Коллекции Портов для того, чтобы сделать это правильно.

12.13.

Как можно перенаправить запросы с одной машины на другую?

Запросы FTP и других сервисов можно перенаправить с помощью порта sysutils/socket. Замените запись для этого сервиса в /etc/inetd.conf на вызов socket, как показано в этом примере для ftpd:

ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp

где ftp.example.com и ftp являются соответственно хостом и портом для перенаправления.

12.14.

Где можно найти средства управления сетевым трафиком?

Для FreeBSD имеются три средства управления трафиком. dummynet(4) интегрирован в систему FreeBSD как составная часть ipfw(4). ALTQ включен во FreeBSD как составная часть pf(4). Bandwidth Manager компании Emerging Technologies является коммерческим продуктом.

12.15.

Почему появляются сообщения /dev/bpf0: device not configured?

Для работы приложения требуется Berkeley Packet Filter (bpf(4)), однако это устройство удалено из вашего ядра. Постройте новое ядро с добавлением в его конфигурационный файл следующей строки:

device bpf	# Berkeley Packet Filter

12.16.

Как смонтировать диск Windows(R)-машины в моей локальной сети, как это делает smbmount в Linux(R)?

Используйте пакет SMBFS. В него включён набор изменений в ядре и пользовательские программы. Программы и информация доступны как mount_smbfs(8) и входят в состав базовой системы.

12.17.

Что значат сообщения Limiting icmp/open port/closed port response в файле журнала?

Данное сообщение ядра означает, что имеет место некоторая активность, приводящая к отправке большого количества ответных пакетов ICMP или сбросов TCP (RST). Ответы ICMP часто генерируются в результате попыток подключения к незанятым портам UDP. Сбросы TCP генерируются в результате попыток подключения к закрытым портам TCP. Помимо всего прочего, такие сообщения могут быть вызваны следующими действиями:

  • Лобовая атака типа отказ в обслуживании DoS (в отличие от атак в один пакет, которые используют конкретную брешь в защите).

  • Сканирование портов в попытке осуществить подключение к большому количеству портов (в отличие от проб нескольких известных портов).

Первое число в сообщении показывает количество пакетов, которое ядро посылало бы при отсутствии ограничений, а второе число указывает лимит. Этот лимит меняется при помощи net.inet.icmp.icmplim. В этом примере устанавливается лимит на 300 пакетов в секунду:

# sysctl net.inet.icmp.icmplim=300

Для выключения подобных сообщений без отключения самого ограничения используйте net.inet.icmp.icmplim_output, чтобы подавить вывода:

# sysctl net.inet.icmp.icmplim_output=0

И наконец, чтобы полностью выключить это ограничение, сделайте net.inet.icmp.icmplim равным 0. Выключение этого лимита не приветствуется по причинам, изложенным выше.

12.18.

Что это за сообщения arp: unknown hardware address format?

Это означает, что какое-то устройство в локальной сети Ethernet использует MAC-адрес в формате, неизвестном FreeBSD. Вероятно, это происходит из-за того, что кто-то в сети экспериментирует с сетевым адаптером. Чаще всего это происходит в сетях с кабельными модемами. Это безобидно и не должно влиять на производительность системы FreeBSD.

12.19.

Почему я постоянно вижу сообщения вида 192.168.0.10 is on fxp1 but got reply from 00:15:17:67:cf:82 on rl0 и как мне их отключить?

Это так, потому что пакет приходит извне сети, чего не должно быть. Чтобы отключить эти сообщения, установите net.link.ether.inet.log_arp_wrong_iface в значение 0.

Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.

По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.