Авторы:
WonderTalik
Кузнецов Константин
[size=7]Настройка сети (ifconfig, route)[/size]
План:
1. Введение
2. Определение состояния сетевых интерфейсов
3. Получаем настройки автоматически
4. Прописываем настройки вручную
5. Добавляем маршруты и шлюз
6. Прописываем DNS
7. Дополнительные адреса на одном интерфейсе
8. Запоминаем сделанные настройки
9. Проверяем соединение с сетью
10. Используемая и рекомендуемая литература
--------------------------------------------------------------------------------
[size=6]1. Введение[/size]
После того как мы разобрались с принципами построения компьютерных сетей и уже даже подвели шнур к нашей сетевой плате, нам необходимо разобраться с тем, как настроить наш компьютер под управлением операционной системы Gnu/Linux для работы в этой сети. В данной статье рассмотрен устаревший, но все еще рабочий способ управления сетевыми настройками в ОС Gnu/Linux.
--------------------------------------------------------------------------------
[size=6]2. Определение состояния сетевых интерфейсов[/size]
В Ubuntu (как и в других linux-системах) имена сетевых устройств принимают вид ethN, где N - число, означающее номер устройства связи в системе. Нумерация устройств начинается с нуля. Если в компьютере две сетевых карты, то они получат имена eth0 и eth1. Если в сетевую карту ethN вставлен сетевой провод, идущий в модем, роутер или свитч, будет написано RUNNING, можно увидеть это в следующем примере на интерфейсе eth1.
Команда ifconfig отображает информацию только об активных сетевых интерфейсах.
Просмотреть информацию по всем интерфейсам можно командой [font=Courier]ifconfig -a[/font], выбрать необходимый из них (eth0, или eth1, или eth0:1) и манипулировать им.
Команда ifconfig -a удобна в тех случаях, когда надо быстро выяснить состояние интерфейсов, в частности, если необходимо узнать их IP-адреса. Помимо сведений о конфигурации сетевых интерфейсов, команда выдает еще много полезной информации, например, количество отправленных и полученных пакетов(параметры RX и TX).
Еще один интересный адрес, который можно увидеть у сетевой карты - параметр HWaddr (Hardware Address, аппаратный адрес). Его еще часто называют MAC - адресом (Media Access Control, управление доступом к среде). Это 48-разрядный серийный номер сетевого адаптера, присваиваемый производителем. Так как lo создан программно, у него не может быть аппаратного адреса.
~$ ifconfig -a
Интерфейс eth0 - это карта Ethernet, к которой можно подключить сетевой кабель. В текущий момент сетевой кабель не подключен, поэтому интерфейс не активен и для него не отображается ip-адрес, широковещательный адрес и маска подсети:
Интерфейс eth1 - вторая карта Ethernet. Сетевой кабель подлючен, интерфейс активен, присвоен ip(10.7.9.6) и маска подсети(255.0.0.0):
Интерфейс lo - интерфейс обратной петли и позволяет компьютеру обращаться к самому себе. Интерфейс имеет ip-адрес 127.0.0.1 и необходим для нормальной работы системы:
--------------------------------------------------------------------------------
[size=6]3. Получаем настройки автоматически[/size]
Если рассматривать самое простое соединение, т.е. компьютер в локальной сети и получает настройки автоматически, то необходимо выполнить команду
~$ sudo dhclient eth0
Команду dhclient, как и любую другую команду, изменяющую настройки сети, надо запускать с правами суперпользователя.
--------------------------------------------------------------------------------
[size=6]4. Прописываем настройки вручную[/size]
Команда ifconfig позволит сконфигурировать сетевой интерфейс. Она имеет широкие возможности; для подробной информации: man ifconfig.
Синтаксис:
~$ sudo ifconfig интерфейс параметры действие
Остановить интерфейс (выключить):
~$ sudo ifconfig eth0 down
Поднять интерфейс (включить):
~$ sudo ifconfig eth0 up
Для изменения только ip-адреса используется следующий формат команды:
~$ sudo ifconfig eth1 10.7.9.6
Маска подсети:
~$ sudo ifconfig eth1 netmask 255.0.0.0
Меняем сразу адрес и маску:
~$ sudo ifconfig eth0 10.7.9.6 netmask 255.255.0.0
Иногда администраторы сетей (в том числе и провайдеры) делают привязку к МАС-адресу сетевой карты. В случае смены сетевой карты или всего системного блока в такой сети обмен данными работать не будет. Можно позвонить и попросить обновить эту информацию, но днем провайдеру можно не дозвониться, а ночью он может спать. В таком случае можно изменить МАС-адрес на тот, что был у предыдущей сетевой карты вручную, но сначала нужно выяснить её мак-адрес при помощи уже знакомой вам команды ifconfig без параметров. После этого дать команду, которая заменит текущий мак-адрес на новый:
~$ sudo ifconfig eth1 hw ether 00:e0:4c:d0:99:28
Все действия можно выполнить одной командой, например так:
~$ sudo ifconfig eth1 down && ifconfig eth1 10.7.9.7 netmask 255.0.0.0 hw ether 00:e0:4c:d0:99:28 up
&& - означает, успешное выполнение предыдущей команды. Т.е. если ifconfig eth1 down будет выполнено, передается на управление следующая команда ifconfig eth1 10.7.9.7 netmask 255.0.0.0 hw ether 00:e0:4c:d0:99:28 up
--------------------------------------------------------------------------------
[size=6]5. Добавляем другие маршруты и шлюз[/size]
Команда route манипулирует таблицами IP-маршрутизации ядра. Его основное применение - настроить статические маршруты для определенных хостов и сетей через интерфейс после того, как последний был настроен, например, через Ifconfig. При использовании опций ADD или DEL команда ROUTE изменяет таблицы маршрутизации. Во всех остальных случаях она выводит их содержимое на экран.
Примеры:
route add -net 127.0.0.0 netmask 255.0.0.0 dev lo
Добавляет обычную запись для петлевого сетевого устройства (предполагается, что устройство lo сконфигурировано)
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
Добавляет маршрут до локальной сети 192.56.76.x через интерфейс eth0
route del default
Удаляет маршрут по умолчанию, обозначаемый "default", что равносильно сети 0.0.0.0
route add default gw 192.168.0.1
Добавляет маршрут по умолчанию.
route add -net 192.57.66.0 netmask 255.255.255.0 gw 10.0.0.4
Добавляет маршрут до сети 192.57.66.0/24 через шлюз 10.0.0.4
route -n
Вывод таблицы маршрутизации
--------------------------------------------------------------------------------
[size=6]6. Прописываем DNS[/size]
Используемые системой DNS-серверы перечислены в файле /etc/resolv.conf в таком виде:
nameserver 4.2.2.2
Сюда же можно написать и домен, которому принадлежит эта машина
search domain.local
Так же можно указывать имена компьютеров вручную в файле /etc/hosts:
192.168.0.1 gate gate.domain.local
192.168.0.2 mailserver mailserver.domain.local
После чего к ним можно обращаться по именам
--------------------------------------------------------------------------------
[size=6]7. Дополнительные адреса на одном интерфейсе[/size]
На одной сетевой карте может быть несколько ip-адресов, это бывает необходимо, если в коммутатор идут два провода от разных сетей и один провод к компьютеру. В этом случае можно настроить на компьютере адреса обоих сетей без использования дополнительной сетевой карты. Для этого неободимо идентифицировать так называемый алиас (alias) к определенному сетевому интерфейсу, и выглядеть это будет так: сетевой_интерфейс:1 или сетевой_интерфейс:2, т.е. eth0:1 или eth1:2. Идентифицировать его можно следующим образом:
~$ ifconfig eth0:1 192.168.0.5 netmask 255.255.255.0 up
Интересно то, что можно настроить основной интерфейс через dhcp (автоматически) dhclient eth0, а алиас eth0:1 в статику, чего я в альтернативных операционных системах не нашел.
--------------------------------------------------------------------------------
[size=6]8. Запоминаем сделанные настройки[/size]
Все эти настройки действительны лишь до перезагрузки системы. При включении компьютер поднимает сетевые интерфейсы командой
$ sudo /etc/init.d/networking start
При этом сетевые интерфейсы стартуют с парамертами, указанными в файле /etc/network/interfaces. Значит нам необходимо внести необходимые изменения именно туда.
Изначально он имеет следующий вид:
auto lo
iface lo inet loopback
Таким образом стартует только интерфейс петли, который мало чем нам может помочь. Добавим информацию о нашей сетевой карте:
# сетевая карта eth1 поднимается автоматически во время загрузки системы.
auto eth1
# iface eth1 inet static - указывает, что интерфейс (iface) сетевой карты (eth1) находится в диапазоне адресов ipv4 (inet) со статическим ip (static).
iface eth1 inet static
# address 10.7.9.6 - статический ip адрес, тут вы должны записать свой.
address 10.7.9.6
# netmask — стандартная маска сети.
netmask 255.0.0.0
# gateway - ip адрес основного шлюза.
gateway 10.0.0.1
Редактирование закончено. Сохраните и закройте файл. Для вступления изменений в силу необходимо перезапустить сетевые интерфейсы командой
$ sudo /etc/init.d/networking restart
Для примера приведу разнообразные варианты настройки сетевых интерфейсов через описанный файл конфигурации
# сетевая карта eth0 получает все настройки автоматически у dhcp-сервера
auto eth0
iface eth0 inet dhcp# для сетевой карты eth2 вручную вбиваем mac-адрес
auto eth2
iface eth1 inet dhcp
hwaddress ether 00:e0:4c:d0:99:28# добавляем алиас на сетевую карту eth0
auto eth0:1
iface eth1 inet static
address 192.168.10.3
netmask 255.255.255.0
Так же можно установить выполнение каких-либо команд перед/после включения и перед/после выключения интерфейса
pre-up command
post-up command
pre-down command
post-down command
Для каждого из вышеупомянутых параметров существует каталог /etc/network/if-<up|down>.d/ , скрипты в которых запускаются (без аргументов) при обработке опции.
--------------------------------------------------------------------------------
[size=6]9. Проверяем соединение с сетью[/size]
Для проверки соединения нашего компьютера с сетью можно просто ввести команду:
$ ping ya.ru
но она не всегда может дать нам правильный ответ. Правильно делать это так:
а) проверяем кабель, горит ли лампочка
б) проверяем, для того ли сетевого устройства мы вводили настройки
в) правильно ли мы указали адрес и маску, для этого можно пробовать пинговать соседние в сети компьютеры, причем желательно именно по адресу, а не по имени
г) указали ли мы шлюз по-умолчанию (default gateway) и доступен ли он через ping
д) проверяем dns, его тоже можно сначала пинговать для проверки
е) и только после этого можем пробовать пинговать ya.ru
P.S. Имейте ввиду, что ping не дает 100% гарантии, что хост недоступен. На удаленном компьютере может быть установлен файервол, блокирующий все icmp соединения!
--------------------------------------------------------------------------------
[size=6]10. Используемая и рекомендуемая литература[/size]