Тестирование и решение проблем



Как только вы внесете необходимые изменения в /etc/rc.conf, перегрузите компьютер. Изменения настроек интерфейсов будут применены, кроме того будет проверена правильность настроек.

Как только система перезагрузится, проверьте сетевые интерфейсы.

Проверка Ethernet карты

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

Сначала проверьте локальный интерфейс:

% ping -c5 192.168.1.3

PING 192.168.1.3 (192.168.1.3): 56 data bytes

64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms

64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms

64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms

64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms

64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms

 

--- 192.168.1.3 ping statistics ---

5 packets transmitted, 5 packets received, 0% packet loss

round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms

Затем проверьте другую машину в локальной сети:

% ping -c5 192.168.1.2

PING 192.168.1.2 (192.168.1.2): 56 data bytes

64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms

64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms

64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms

64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms

64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms

 

--- 192.168.1.2 ping statistics ---

5 packets transmitted, 5 packets received, 0% packet loss

round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms

Вы можете также использовать имя машины вместо 192.168.1.2, если настроен файл /etc/hosts.

Решение проблем

Решение проблем с аппаратным и программным обеспечением всегда вызывает сложности, которые можно уменьшить, проверив сначала самые простые варианты. Подключен ли сетевой кабель? Правильно ли настроены сетевые сервисы? Правильно ли настроен брандмауэр? Поддерживается ли используемая карта в FreeBSD? Всегда проверяйте информацию об оборудовании перед отправкой сообщения об ошибке. Обновите FreeBSD до последней версии STABLE. Просмотрите архивы списков рассылки, или поищите информацию в интернет.

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

Некоторые пользователи встречаются с несколькими device timeouts, что нормально для некоторых сетевых карт. Если это продолжается и надоедает, убедитесь, что устройство не конфликтует с другим устройством. Внимательно проверьте подключение кабеля. Возможно также, что вам просто надо установить другую карту.

Время от времени, пользователи видят несколько ошибок watchdog timeout. Первое, что требуется сделать, это проверить сетевой кабель. Многие карты требуют поддержки Bus Mastering слотом PCI. На некоторых старых материнских платах, только один PCI слот имеет такую поддержку (обычно слот 0). Сверьтесь с документацией на сетевую карту и материнскую плату, чтобы определить, может ли это быть проблемой.

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

Сообщения ping: sendto: Permission denied зачастую появляются при неправильно настроенном брандмауэре. Если ipfw включен в ядре, но правила не определены, правило по умолчанию блокирует весь трафик, даже запросы ping! Прочтите Гл. 27 с более подробной информацией.

Иногда скорость карты недостаточна, или ниже среднего. В этих случаях лучше всего изменить режим выбора типа подключения с autoselect на правильный тип. Обычно это работает для большинства оборудования, но не может решить проблему во всех случаях. Проверьте еще раз настройки сети и прочтите страницу справочника tuning(7).

Настройка виртуальных серверов

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

У сетевого интерфейса всегда есть один ''настоящий'' адрес, хотя он может иметь любое количество ''синонимов'' (alias). Эти синонимы обычно добавляются путём помещения соответствующих записей в /etc/rc.conf.

Синоним для интерфейса fxp0 выглядит следующим образом:

ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"

Заметьте, что записи синонимов должны начинаться с alias0 и идти далее в определенном порядке (например, _alias1, _alias2, и т.д.). Конфигурационный процесс остановится на первом по порядку отсутствующем числе.

Определение маски подсети для синонима очень важно, но к счастью, так же просто. Для каждого интерфейса должен быть один адрес с истинной маской подсети. Любой другой адрес в сети должен иметь маску подсети, состоящую из всех единичек (что выражается как 255.255.255.255 или как 0xffffffff).

Например, рассмотрим случай, когда интерфейс fxp0 подключён к двум сетям, к сети 10.1.1.0 с маской подсети 255.255.255.0 и к сети 202.0.75.16 с маской 255.255.255.240. Мы хотим, чтобы система была видна по IP, начиная с 10.1.1.1 по 10.1.1.5 и с 202.0.75.17 по 202.0.75.20. Как было сказано выше, только первый адрес в заданном диапазоне (в данном случае, 10.0.1.1 и 202.0.75.17) должен иметь реальную маску сети; все остальные (с 10.1.1.2 по 10.1.1.5 и с 202.0.75.18 по 202.0.75.20) должны быть сконфигурированы с маской сети 255.255.255.255.

Для этого в файл /etc/rc.conf должны быть внесены следующие записи:

ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"

ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"

ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"

ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"

ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"

ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"

ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"

ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"

ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"

Файлы настройки

Каталог /etc

Во FreeBSD определён ряд каталогов, предназначенных для хранения конфигурационных файлов. Это:

/etc Основные файлы конфигурации системы. Тут размещены системно–зависимые данные.
/etc/defaults Версии системных конфигурационных файлов по умолчанию.
/etc/mail Дополнительные конфигурационные файлы sendmail(8), другие конфигурационные файлы MTA.
/etc/ppp Настройка для user- и kernel-ppp программ.
/etc/namedb Основное место расположения данных named(8). Обычно named.conf и файлы зон расположены здесь.
/usr/local/etc Конфигурационные файлы установленных приложений. Могут содержать подкаталоги приложений.
/usr/local/etc/rc.d Скрипты запуска/остановки установленных приложений.
/var/db Автоматически генерируемые системно-специфичные файлы баз данных, такие как база данных пакетов, и так далее

 

Имена хостов

Etc/resolv.conf

/etc/resolv.conf определяет, как резолвер (resolver) FreeBSD получает доступ к Системе Доменных Имён (DNS).

Основные записи resolv.conf:

nameserver IP адрес сервера имён. Сервера опрашиваются в порядке описания. Максимальное количество адресов — три.
search Список доменов для поиска с помощью hostname lookup. Обычно определяется доменом, в котором находится компьютер.
domain Домен, в котором находится компьютер.

 

Типичный вид resolv.conf:

search example.com

nameserver 147.11.1.11

nameserver 147.11.100.30

Замечание: Опции search и domain нельзя использовать совместно.

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

Etc/hosts

/etc/hosts — простая текстовая база данных, напоминающая старый Интернет. Она работает совместно с DNS и NIS, сопоставляя доменные имена IP адресу. Отдельные компьютеры, соединённые с помощью локальной сети, могут быть записаны тут вместо named(8) сервера с целью упрощения. Кроме того, /etc/hosts используется для записи IP адресов и соответствующих им доменов, избавляя от внешнего трафика, используемого для запросов к DNS серверам.

# $FreeBSD$

#

# Host Database

# This file should contain the addresses and aliases

# for local hosts that share this file.

# In the presence of the domain name service or NIS, this file may

# not be consulted at all; see /etc/nsswitch.conf for the resolution order.

#

#

::1                localhost localhost.my.domain myname.my.domain

127.0.0.1          localhost localhost.my.domain myname.my.domain

 

#

# Imaginary network.

#10.0.0.2          myname.my.domain myname

#10.0.0.3          myfriend.my.domain myfriend

#

# According to RFC 1918, you can use the following IP networks for

# private nets which will never be connected to the Internet:

#

#  10.0.0.0   - 10.255.255.255

#  172.16.0.0 - 172.31.255.255

#  192.168.0.0 - 192.168.255.255

#

# In case you want to be able to connect to the Internet, you need

# real official assigned numbers. PLEASE PLEASE PLEASE do not try

# to invent your own network numbers but instead get one from your

# network provider (if any) or from the Internet Registry (ftp to

# rs.internic.net, directory `/templates').

#

Формат /etc/hosts:

[IP адрес в Интернете] [имя компьютера] [alias1] [alias2] ...

Например:

10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2

За дополнительной информацией обращайтесь к hosts(5).

Настройка лог файлов

Syslog.conf

syslog.conf is является файлом конфигурации для syslogd(8). В нём указываются, типы сообщений генерируемые syslog, и лог файлы, в которые они записываются.

# $FreeBSD$

#

#  Spaces ARE valid field separators in this file. However,

#  other *nix-like systems still insist on using tabs as field

#  separators. If you are sharing this file between systems, you

#  may want to use only tabs as field separators here.

#  Consult the syslog.conf(5) manual page.

*.err;kern.debug;auth.notice;mail.crit     /dev/console

*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

security.*                                 /var/log/security

mail.info                                  /var/log/maillog

lpr.info                                   /var/log/lpd-errs

cron.*                                     /var/log/cron

*.err                                      root

*.notice;news.err                          root

*.alert                                    root

*.emerg                                    *

# uncomment this to log all writes to /dev/console to /var/log/console.log

#console.info                              /var/log/console.log

# uncomment this to enable logging of all log messages to /var/log/all.log

#*.*                                       /var/log/all.log

# uncomment this to enable logging to a remote log host named loghost

#*.*                                       @loghost

# uncomment these if you're running inn

# news.crit                                /var/log/news/news.crit

# news.err                                 /var/log/news/news.err

# news.notice                              /var/log/news/news.notice

!startslip

*.*                                        /var/log/slip.log

!ppp

*.*                                        /var/log/ppp.log

За более полной информацией обратитесь к syslog.conf(5).

Newsyslog.conf

newsyslog.conf — конфигурационный файл newsyslog(8), программы, обычно контролируемой cron(8). newsyslog(8) определяет, когда лог-файлы нуждаются в архивировании и перегруппировке. logfile перемещается в logfile.0, logfile.0 перемещается в logfile.1, и так далее. Другое именование получится при архивировании с помощью gzip(1): logfile.0.gz, logfile.1.gz, и т.д.

newsyslog.conf показывает, какие лог файлы должны быть проинспектированы, сколько их должно быть сохранено, и когда они должны быть пересмотрены. Лог файлы могут быть перегруппированы и/или заархивированы, когда они либо достигнут определённого размера, либо при достижении определённых даты/времени.

# configuration file for newsyslog

# $FreeBSD$

#

# filename     [owner:group] mode count size when [ZB] [/pid_file] [sig_num]

/var/log/cron                      600 3 100 * Z

/var/log/amd.log                   644 7 100 * Z

/var/log/kerberos.log              644 7 100 * Z

/var/log/lpd-errs                  644 7 100 * Z

/var/log/maillog                   644 7 * @T00 Z

/var/log/sendmail.st               644 10 * 168 B

/var/log/messages                  644 5 100 * Z

/var/log/all.log                   600 7 * @T00 Z

/var/log/slip.log                  600 3 100 * Z

/var/log/ppp.log                   600 3 100 * Z

/var/log/security                  600 10 100 * Z

/var/log/wtmp                      644 3 * @01T05 B

/var/log/daily.log                 640 7 * @T00 Z

/var/log/weekly.log                640 5 1 $W6D0 Z

/var/log/monthly.log               640 12 * $M1D0 Z

/var/log/console.log               640 5 100 * Z

За дополнительной информацией обращайтесь к newsyslog(8).

Sysctl.conf

sysctl.conf очень похож на rc.conf. Значения устанавливаются в виде variable=value. Указанные значения устанавливаются после перевода системы в многопользовательский режим. Однако не все переменные могут быть установлены в этом режиме.

Пример sysctl.conf, настроенного для выключения протоколирования фатальных ошибок программ и разрешения Linux-программам определять, что они запускаются под FreeBSD:

kern.logsigexit=0  # Do not log fatal signal exits (e.g. sig 11)

compat.linux.osname=FreeBSD

compat.linux.osrelease=4.3-STABLE

Настройка с помощью sysctl

sysctl(8) — это интерфейс, позволяющий вам вносить изменения в работающую систему FreeBSD. Эти изменения касаются многих опций стека TCP/IP и виртуальной памяти; опытный системный администратор может использовать их для существенного увеличения производительности. Более пяти тысяч системных переменных могут быть прочитаны и записаны с помощью sysctl(8).

По своей сути, sysctl(8) выполняет две функции: чтение и изменение настроек системы.

Для просмотра всех доступных для чтения переменных:

% sysctl -a

Чтобы прочитать определённую переменную, например, kern.maxproc, введите:

% sysctl kern.maxproc

kern.maxproc: 1044

Для присвоения значения переменной, используйте выражение вида переменная=значение:

# sysctl kern.maxfiles=5000

kern.maxfiles: 2088 -> 5000

Изменяемые с помощью sysctl переменные обычно принимают значения либо строкового, либо целого, либо булевого типа. Переменные булевого типа могут принимать два значения (1 (истина) и 0 (ложь)).

Если вы хотите устанавливать некоторые переменные автоматически при каждой загрузке компьютера, добавьте их в файл /etc/sysctl.conf. За дополнительной информацией обращайтесь к странице справочника sysctl.conf(5) и к Разд. 11.10.4.


Дата добавления: 2018-10-26; просмотров: 242; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!