понедельник, 17 марта 2014 г.

Настройка сети в Ubuntu и CentOS

Настройка сети в Ubuntu и CentOS

В большинстве мест где я бываю есть wifi-роутеры и все что надо для подключения - пароль на wifi. Но есть пару менее дружелюбных мест, где нету своего DHCP и DNS сервера и все приходиться настраивать вручную.
Многие linux-дистрибутивы и среды рабочего стола имеют свои gui-инструменты для настройки сети, но есть и общий набор конфигурационных файлов и утилит - вот про них и пойдет речь в этой заметке.
В минимальный набор настроек для работы сети необходимо
  • IP-адрес для хоста и маска подсети
  • маршрут по-умолчанию (шлюз)
  • указать используемый DNS-сервер
Установим ip-адрес, сетевую маску, широковещательный адрес с помощью ifconfig или ip
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
# или
ip address add 192.168.1.2/24 dev eth0 broadcast 192.168.1.255
Вместо интерфейса eth0 может быть любой другой, например, wlan0.
Узнать действующие сетевые интерфейсы можно с помощью
ifconfig -a
# или еще один вариант для ubuntu
nmcli dev
Укажем шлюз
route add default gw 192.168.1.1
Указанные настройки, с помощью выше приведенных способов, сохраняться только на момент работы системы, после перезагрузки все пропадет. Команды ifconfig, ip, route доступны в Ubuntu и CentOS.
Теперь рассмотрим как сохраняются настройки в разных дистрибутивах.
Ubuntu (debian-base)
Под Ubuntu скрипт /etc/init.d/networking читает конфигурации из директории /etc/network/, в частности /etc/network/interfaces.
Пример файла
auto eth0
ifcae eth0 inet static 
    address 192.168.1.2
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
Вместо static, может быть dynamic - означает, что настройки будут получены от DHCP-сервера.
Для применения настроек
# если не установлен Network Manager
sudo /etc/init.d/networking restart

# если установлен Network Manager
sudo /etc/init.d/network-manager restart
CentOS (redhat-base)
В CentOS файл с конфигурациями сетевых настроек находиться в /etc/sysconfig/network-scripts/ifcfg-ethN, где N - номер интерфейса (число от 0 и выше).
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
IPADDR=192.168.1.2
NETMASK=255.255.255.0
Вместо BOOTPROTO=none, может быть BOOTPROTO=dhcp - означает, что настройки будут получены от DHCP-сервера.
Шлюз и имя хоста настраивается в /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=hostname
GATEWAY=192.168.1.1
Для применения настроек
ifdown eth0
ifup eth0
# или 
service network restart
Указание DNS-сервера
Определение DNS-серверов, для преобразования доменов в IP-адреса, находиться в /etc/resolv.cfg(перезаписываться, если используется DHCP-сервер).
search skynet 
nameserver 8.8.8.8
nameserver 8.8.4.4
  • search skynet - суффикс, добавляемый к не полностью введенному hostname, например, ping ftp => ftp.skynet.
  • nameserver 8.8.8.8 - DNS-сервер, к которому будут идти все запросы
  • nameserver 8.8.4.4 - запасной DNS-сервер, к которому будут идти запросы в случаи отказа первого
Кроме опроса DNS-сервера, возможен запрос к локальному хранилищу записей, за это отвечает файл/etc/nsswitch.conf, в котором две основные записи
hosts:          files dns
networks:       files
отвечают за определение, откуда резолвить имена хостов и сетей
  • files - означает брать из /etc/hosts
  • dns - по запросу к DNS-серверу, указанному в /etc/resolv.cfg
Иногда бывает, что надо указать явно ip dns-сервера, например, если dns-сервер провайдера работает не стабильно (как у Укртелекома ;) ), для этого, под ubuntu, подправим файл /etc/dhcp/dhclient.conf:
  • удалим domain-name-servers из request
  • добавим prepend domain-name-servers 8.8.8.8;
Проверим
nslookup proft.me
Тестирование скорости соединения
Для проверки скорости соединения между двумя хостами есть утилита iperf.
Под Ubuntu устанавливаеться так
sudo apt-get install iperf
Под CentOS нужно подключить RPMforge-репозиторий и установить как обычно
sudo yum install iperf
На одной машине запустим iperf как сервер на порте 1234
iperf -s -p 1234
На другой запустим как клиент и подключимся к серверу
iperf -c 192.168.1.2 -p 1234
Поокончанию тестирования можно увидить скорость между этими двумя хостами.

Комментариев нет:

Отправить комментарий