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

12.1. Где можно найти информацию о «бездисковой загрузке»?
12.2. Может ли машина с FreeBSD использоваться как маршрутизатор?
12.3. Можно ли подключить машину с Windows® к Internet с помощью FreeBSD?
12.4. Поддерживает ли FreeBSD протокол PPP?
12.5. Поддерживает ли FreeBSD технологию NAT или Masquerading?
12.6. Как настроить алиас в сети Ethernet?
12.7. Почему я не могу смонтировать диск Linux® по 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. Почему моё правило «fwd» для ipfw по перенаправлению сервиса на другую машину не работает?
12.13. Как можно перенаправить запросы с одной машины на другую?
12.14. Где можно найти средства управления сетевым трафиком?
12.15. Почему появляются сообщения /dev/bpf0: device not configured?
12.16. Как смонтировать диск Windows®-машины в моей локальной сети, как это делает smbmount в Linux®?
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® к Internet с помощью FreeBSD?

Как правило, те, кто задают такие вопросы, имеют дома два компьютера, один с FreeBSD, а другой с какой-то версией Windows®. Идея состоит в использовании FreeBSD для подключения к Internet, а затем осуществлять выход в Internet из Windows® через 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® по NFS?

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

# 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®-машины в моей локальной сети, как это делает smbmount в Linux®?

Используйте пакет 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.

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

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

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