Configuring Network (Русский)
Contents |
Обзор
Это простое руководство по настройке сети.
Загрузка модуля устройства
Если вы используете hwdetect или lshwd, они должны обнаружить модуль для вашей сетевой карты (NIC) и загрузить его автоматически при старте системы. В другом случае вы должны знать, какой модуль требуется для вашей сетевой карты.
Поищите эту информацию в сети или попробуйте LiveCD, чтобы найти имя требуемого модуля запустите lsmod, выведет все загруженные модули.
Теперь когда вы знаете, какой модуль использовать, можно его загрузить:
# modprobe <имя_модуля>
Если вы не хотите использовать какой-либо автозагрузчик (например, hwdetect) , вы можете добавить его в список MODULES в /etc/rc.conf, чтобы не подгружать его каждый раз. Например, если tg3 является требуемым модулем:
MODULES=(!usbserial tg3 snd-cmipci)
Настройка
У вас могут быть динамически назначаемые с помощью DHCP адреса, или неизменные "статические".
Для 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 не требуется.
Для статического 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
Ручное назначение
Вы можете назначить статический 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 столкнулись с этим:
- Odd network issue
- Kernel 2.6.17 and TCP window scaling — Тема, с которой началась эта статья
Также есть несколько обсуждений в LKML.