Configuring Network (Русский)

From ArchWiki
Jump to: navigation, search
Tango-preferences-desktop-locale.png This article or section needs to be translated.
Notes: Out of date. Need re-translate. (Discuss)
Tango-preferences-desktop-locale.png

Contents

Обзор

Это простое руководство по настройке сети.

Загрузка модуля устройства

Если вы используете hwdetect или lshwd, они должны обнаружить модуль для вашей сетевой карты (NIC) и загрузить его автоматически при старте системы. В другом случае вы должны знать, какой модуль требуется для вашей сетевой карты.

Поищите эту информацию в сети или попробуйте LiveCD, чтобы найти имя требуемого модуля запустите lsmod, выведет все загруженные модули.

Теперь когда вы знаете, какой модуль использовать, можно его загрузить:

# modprobe <имя_модуля>

Если вы не хотите использовать какой-либо автозагрузчик (например, hwdetect) , вы можете добавить его в список MODULES в /etc/rc.conf, чтобы не подгружать его каждый раз. Например, если tg3 является требуемым модулем:

MODULES=(!usbserial tg3 snd-cmipci)

Настройка

У вас могут быть динамически назначаемые с помощью DHCP адреса, или неизменные "статические".

Note: Для плат с несколькими сетевыми картами, важно знать, какая из них считается основной (т.е. eth0), а какая вторичной (т.е. eth1). Многие вопросы конфигурации вызваны неправильной настройкой eth0 в /etc/rc.conf, когда на самом деле к локальной сети подключен eth1!

Для DHCP

Для этой опции необходим пакет dhcpcd (имеется в большинстве установок). Чтобы использовать его, отредактируйте /etc/rc.conf следующим образом:

interface=eth0
address=
netmask=
gateway=

Должен быть определен только интерфейс, остальные опции оставьте пустыми.

Если вы используете DHCP, и не хотите, чтобы DNS-сервера автоматически назначались каждый раз при поднятии сети, не забудьте добавить следующие строки в последнем разделе /etc/dhcpcd.conf:

nohook resolv.conf

Затем добавьте свои собственные сервера DNS в /etc/resolv.conf.

Проверьте новые настройки путем остановки и запуска демона /etc/rc.d/network. Перезапустить network-демон:

# /etc/rc.d/network restart

Вы можете использовать пакет openresolv, если несколько процессов хотят контролировать resolv.conf (например, dhcpcd и VPN-клиент). Никакой дополнительной конфигурации для dhcpcd не требуется.

Note: Можно иметь статический IP при использовании dhcpcd. Просто отредактируйте файл /etc/conf.d/dhcpcd примерно так (где x.x.x.x это желаемый IP):
DHCPCD_ARGS="-q -s x.x.x.x"

Для статического IP

Существуют различные причины, почему вы, возможно, пожелаете назначить статические IP-адреса в вашей сети. Например, получение в некотором роде предсказуемости и безопасности. Кроме того, если вы используете интернет с windows машины без роутера, необходимо использовать статические ip адреса на обоих машинах. В противном случае возникнут проблемы в локальной сети.

Вам понадобится:

  • Ваш статический ip адрес
  • Маска сети
  • Широковещательный адрес
  • Ваш шлюз
  • Адреса ваших DNS серверов
  • Доменное имя

Если вы находитесь в частной сети, то можете использовать ip адреса диапазона 192.168.*.* с маской сети 255.255.0.0 и широковещательным адресом 192.168.255.255. Если в вашей сети нет роутера - адрес гейта значения не имеет. Исправьте /etc/rc.conf, подставляя свои значения для IP, маски сети, широковещательного адреса и гейта:

interface=eth0
address=192.168.0.2
netmask=255.255.255.0
gateway=192.168.22.1

Исправьте /etc/resolv.conf, заменив адреса ваших DNS серверов и доменное имя:

nameserver 61.23.173.5
nameserver 61.95.849.8
search example.com
Note: Сейчас у вас может быть включено максимум 3 строки nameserver.

Ручное назначение

Вы можете назначить статический IP в консоли:

# ip addr add <ip>/<netmask> dev <interface>
Например:
# ip addr add 192.168.1.2/24 dev eth0
. Больше информации: man ip

Добавить шлюз вот так:

# ip route add default via <ip>

(Замените на ваше значение)

Например:
# ip route add default via 192.168.1.1

Установка имени компьютера

Отредактируйте /etc/rc.conf и установите HOSTNAME в соответствие с желаемым именем компьютера :

HOSTNAME="banana"

Установка имени хоста/ip

Отредактируйте /etc/hosts и добавьте похожую строку с тем же HOSTNAME, который вы ввели в /etc/rc.conf :

127.0.0.1               banana.localdomain             banana

Загрузка настроек

Чтобы проверить ваши настройки, либо перезагрузите компьютер, либо запустите #/etc/rc.d/network restart Попробйте пинговать ваш шлюз, DNS сервер, ISP провайдера и другие интернет сайт в этом порядке, чтобы установить какие-либо проблемы.

Дополнительные настройки

Настройка беспроводной сети

Настройка беспроводной сети (wlan) объяснена на другой странице.

Firewall

Вы можете установить и настроить firewall, чтобы быть более защищённым ;-)

Ifplugd

Вы можете установить демон, который будет автоматически настраивать вашу сеть, когда воткнут кабель, и возвращать её в исходное состояние, когда кабель выдернут. Это полезно для лаптопов с внутренними сетевыми адаптерами, так как демон настроит интерфейс только тогда, когда кабель действительно подключён. Также можно его использовать, когда надо перезапустить сеть, но вы не хотите перезапускать компьютер или делать это из оболочки.

Установка очень проста, так как пакет находится в [extra]:

# pacman -S ifplugd

По умолчанию он настроен на работу с интрфейсом eth0. Эта другие настройки, например задержка, могут быть настроены в /etc/ifplugd/ifplugd.conf.

Запустите его:

# /etc/rc.d/ifplugd start

или добавьте в список DAEMONS в /etc/rc.conf

Возможные проблемы

Проблема расширения TCP-окна

TCP-пакеты содержат значение "окна" в своих заголовках, которое показывает, сколько данных другой хост может послать в ответе. Это значение представлено 16-ю битами. Следовательно, размер окна ограничен 64 килобайтами. Для более эффективного использования широкополосного соединения этого мало.

В 1992 году, когда стало доступно больше памяти, был описан прием (см. RFC 1323), призванный улучшить ситуацию: расширение окна (Window Scaling). Значение "окна", предоставляемое всеми пакетами, модифицируется с помощью опредяемого в момент установки соединения коэффициента (Scale Factor). Коэффициент представлен восемью битами и позволяет увеличить значение окна в 32 раза.

Но в интернете появилось множество роутеров и межсетевых экранов, которые переписывали значение окна на 0, создавая недоразумения.

В ядре 2.6.17 была введена новая схема генерации коэффициента, с которой последствия прохождения пакетов через подобные роутеры стали более заметны.

В результате соединение в лучшем случае очень медленно или падает.

Как диагностировать проблему?

Во-первых, давайте уясним: эта проблема проявляется не всегда. В некоторых случаях, вы сможете использовать TCP-соединения и соединяться с некоторыми хостами (очень немногими).

Внимание: вывод dmesg не выявит ничего необычного, логи будут чисты и ifconfig сообщит, что все нормально; в действительности все в норме.

Если же вы не можете просмотреть любой веб-сайт, однако можете пинговать некоторые хосты, велики шансы, что вы столкнулись с этой проблемой: ping использует ICMP-протокол, которого не касаются проблемы TCP.

Можете попробовать воспользоваться WireShark. Вы можете увидеть удачные UDP- и ICMP-соединения и неудачные TCP.

Как это исправить? (Плохой способ)

Для исправления плохим способом, вы можете изменить значение tcp_rmem, на котором базируется алгоритм вычисления коэффициента. Несмотря на то, что это может сработать с большинством хостов, нет гарантии, что это сработает с очень удаленными.

 echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem

Еще вы можете попробовать удалить один из модулей оперативной памяти (да, сэр).

Как это исправить? (Хороший способ)

Просто отключить злополучное расширение окна. Даже если это и хорошая функция, она может не работать, если вы не сможете разобраться с некорректной работой роутеров. Есть несколько способов отключить расширение окна, и похоже, что самым надежным будет добавить следующую строку в файл /etc/rc.local:

 echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

Как это исправить? (Действительно хороший способ)

Если это происходит по вине роутеров и межсетевых экранов, замените их. Некоторые пользователи сообщали, что проблема была в их собственных DSL-роутерах.

Хотите больше информации об этом?

Эта секция основана на статьях TCP window scaling and broken routers и Window Scaling on the Internet.

Позднее, некоторые пользователи Arch столкнулись с этим:

Также есть несколько обсуждений в LKML.