суббота, 3 января 2009 г.

Первоначальная настройка сетевых интерфейсов

В данной статье будет рассмотрена первоначальная настройка сетевых интерфейсов (беспроводные сетевые интерфейсы не рассматриваются) в операционной система Debian GNU/Linux. Конфигурирование будет производиться путем редактирования специфичных для Debian конфигурационных файлов, а также будут приведены примеры использования профессиональной утилиты администрирования сети ip.

Установка утилиты ip
Вообще говоря, первоначальное конфигурирование сетевых интерфейсов можно легко произвести и без утилиты ip, пользуясь стандартной утилитой ifconfig, которая присутствует в каждом (думаю, что не ошибся) дистрибутиве GNU/Linux. Но помимо конфигурирования сети нашей целью будет являться освоение утилиты ip, которая, безусловно, понадобится нам впоследствии. Установка производится командой
root@debian:~# apt-get install iproute

Настройка IP-адреса сетевых интерфейсов
Прежде чем приступать к конфигурированию сети, необходимо узнать названия сетевых карт для соответствующих интерфейсов. Сделать это можно, выполнив команду
root@cave:~# dmesg | grep -i eth
r8169 Gigabit Ethernet driver 2.2LK-NAPI loaded
eth0: RTL8169s/8110s at 0xffffc20000030000, 00:0f:ea:66:40:f6, IRQ 193
eth1394: eth0: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0)
r8169: eth1: link up
В примере, показанном в листинге выше, все достаточно просто. В компьютере установлено только два контроллера, причем меня интересует настройка только Ethernet сетевой карты Realtek, которой соответствует сетевой интерфейс eth0. Приведу еще один пример
root@gn:~# zcat /var/log/messages.6.gz | grep -i eth
Nov 10 19:11:51 gn kernel: e100: eth0: e100_probe: addr 0xfe9fd000, irq 169, MAC addr 00:30:48:22:2B:F8
Nov 10 19:11:51 gn kernel: e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
Nov 10 19:11:51 gn kernel: e1000: eth3: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex
Во-первых, стоит заметить, что использовалась другая команда для определения соответствия сетевых карт и интерфейсов. Дело в том, что команда dmesg выводит на экран только содержание файла /var/log/messages, но так как сервер gn, листинг с которого приведен в примере, имеет uptime порядка 50 дней, то записи стоит искать в более старом файле. Сетевой интерфейс eth0 соответствует интеловской сетевой карте, встроенной на материнской плате, eth1 и eth3 – две гигабитные карты, которые когда-то использовались для соединения двух различных сегментов сети. Получив эту информацию можно переходить к настройке.

Настройка статического IP адреса
Открываем файл /etc/network/interfaces своим любимым текстовым редактором и создаем следующие записи
root@cave:~# cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth1
iface eth1 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
Рассмотрим настройки более подробно. Запись auth eth0 означает, что интерфейс должен быть автоматически запущен при загрузке операционной системе.
iface eth1 inet static
Означает, что происходит конфигурирование сетевого интерфейса eth1 и что IP-адрес будет задан статическим.
address 192.168.1.11 – непосредственно IP-адрес, присваиваемый сетевому интерфейсу;
netmask 255.255.255.0 – маска сети;
gateway 192.168.1.1 – шлюз, который должен осуществлять маршрутизацию в сети.
Настройка динамического IP адреса
Рассмотрим пример файла /etc/network/interfaces, позволяющий сконфигурировать сетевой интерфейс для получения динамического IP-адреса.
root@cave:~# cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth1
iface eth1 inet dchp
Легко видеть, что строка iface eth1 inet dchp определяет получение сетевого адреса по протоколу DHCP, то есть сетевой интерфейс получит динамический IP-адрес.
Замечание. Для получения динамического адреса в операционной системе GNU/Debian должен быть установлен пакет DHCP-клиента.
root@cave:~# dpkg -l | grep dhcp
ii dhcp3-client 3.0.4-13 DHCP Client
ii dhcp3-common 3.0.4-13 Common files used by all the dhcp3* packages
Замечание. Обычно, для облегчения работы пользователей компьютерной сети системный администратор настраивает DHCP сервер таким образом, чтобы он передавал адреса первичного и вторичного DNS серверов при выдачи динамического адреса. Поэтому для некоторых настройка сети ограничивается записью двух строчек в файл /etc/network/interfaces. Но не лишним будет знать, как все-таки прописать руками доверенные DNS сервера в систему.

Настройка адресов DNS-серверов
Задать адреса DNS-серверов в GNU/Debian можно в файле /etc/resolv.conf, отредактировав его в любимом текстовом редакторе. Например, так
root@cave:~# vim /etc/resolv.conf
Адреса прописываются следующим образом
nameserver 192.168.1.1
nameserver 4.2.2.2
Отметим, что записей nameserver может быть произвольное количество.

Изменение MAC-адреса сетевого интерфейса
Вопрос изменения MAC-адреса волнует, хоть это может показаться странным, многих пользователей. Очень часто провайдер делает привязку MAC-адреса сетевого интерфейса к порту управляемого свитча, чтобы ограничить количество устройств, которые пользователь услуг данного провайдера может использовать. Универсальным решением в такой ситуации для пользователя становится установка собственного активного сетевого оборудования, которое будет предоставлять доступ к ресурсам провайдерам внутренней сети пользователя. Но иногда банально не хочется звонить провайдера лишь по тому, что у пользователя появился на несколько дней, неделю новый лаптоп, с которого необходим доступ к сети. Но этим примером, конечно, не исчерпывается весь список, когда нужно сменить MAC-адрес сетевой карты.
Приведу несколько способов изменения MAC-адреса в GNU/Debian. Если требуется использовать новый MAC достаточно длительный промежуток времени, то его целесообразно задать в файле /etc/network/interfaces. Делается это следующим образом
auto eth0
iface eth0 inet dhcp
hwaddress ether 01:02:03:04:05:06
Конечно, вместо 01:02:03:04:05:06 – необходимо указать нужный Вам MAC. Отметим, что при использовании стационарного IP-адреса MAC-адрес будет прописываться точно также.
Если требуется задать MAC-адрес только для данной сессии (имеется в виду, что после перезагрузки компьютера будет использоваться MAC по умолчанию).
root@cave:~# ifconfig eth0 down
root@cave:~# ifconfig eth0 hw ether 01:02:03:04:05:06
root@cave:~# ifconfig eth0 up

Применение настроек
Чтобы настройки сетевых интерфейсов (касается внесения изменений в конфигурационные файлы resolv.conf и interfaces) вступили в силу в GNU/Debian необходимо выполнить следующую команду
root@cave:~# /etc/init.d/networking restart

Мониторинг настроек и работы сетевых интерфейсов
Для наблюдения за состоянием сетевых интерфейсов мы будем использовать утилиту ip.
root@debian:~# ip addr show
Позволяет вывести на экран сведения о всех сетевых интерфейсах системы. Для вывода информации по конкретному интерфейсу нужно использовать команду
root@debian:~# ip addr show eth0
Чтобы узнать какие используются DNS-сервера в системе, необходимо выполнить команду nslookup.
gurza@hird:~$ nslookup
> server
Default server: 193.232.114.64
Address: 193.232.114.64#53
Default server: 212.192.229.127
Address: 212.192.229.127#53
В приведенном примере на компьютере hird используются два DNS-сервера, с IP-адресами 193.232.114.64 и 212.192.229.127 соответственно. Связь осуществляется по стандартному 53 порту.
В качестве запроса в консоли nslookup можно задавать IP-адреса, чтобы получить в ответ доменное имя
gurza@hird:~$ nslookup
> 4.2.2.2
Server: 193.232.114.64
Address: 193.232.114.64#53

Non-authoritative answer:
2.2.2.4.in-addr.arpa name = vnsc-bak.sys.gtei.net.
а также доменные имена, чтобы получить в ответ IP-адреса.
gurza@hird:~$ nslookup
> gurza.ipib.msu.ru
Server: 193.232.114.64
Address: 193.232.114.64#53

Name: gurza.ipib.msu.ru
Address: 212.192.237.30
Временно перенаправить запрос к другому DNS-серверу можно следующим образом
gurza@hird:~$ nslookup
> server 4.2.2.2
Default server: 4.2.2.2
Address: 4.2.2.2#53
> lab110.imec.msu.ru
Server: 4.2.2.2
Address: 4.2.2.2#53

Non-authoritative answer:
lab110.imec.msu.ru canonical name = hird-u.imec.msu.ru.
Name: hird-u.imec.msu.ru
Address: 193.232.114.5


Читать дальше...