Настройка сети в Debian

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.848
Реакции
1.952
Баллы
113
В этой статье описывается простая настройка сети для сервера под управлением ОС Debian 5 (Lenny). Всё, что здесь описано, так же может быть использовано и для настройки сети в Debian 6 (Squeeze). Изначально рассматривалась настройка сервера с одной сетевой картой, но со временем было решено написать цикл статей по Debian, в которых более подробно описывается установка и настройка коммуникационного сервера класса SOHO. Теперь эту статью можно рассматривать как руководство по настройке сети как для сервера с одной сетевой картой, так и для внешнего интерфейса коммуникационного сервера. Настройка сети так же подразумевает первичную настройку системы разрешения имён. В этой статье мы коснёмся этой темы вскользь. Подробнее об этом будет написано в другой статье. Итак, начнём. Обычно первичная настройка сети происходит ещё на этапе установки. Об этом можно прочесть в статье «Установка Debian на сервер». Если по какой-то причине это не было сделано при установке, то мы с вами попытаемся решить проблемы с сетью и настроить наш сервер.
Автор сей статьи Золкин А. Н.
 
Последнее редактирование:

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.848
Реакции
1.952
Баллы
113
Установка сетевой карты
В первую очередь нужно убедиться, что сетевые карты установлены, а если они интегрированы в материнскую плату, то включены в BIOSе, а так же подключены сетевые кабели. Проверим видит ли система наши сетевые карты (интерфейсы). Для этого смотрим сообщения ядра, которые выдавались при загрузке:
Код:
dmesg | grep eth
В параметре команды grep мы написали eth. В Linux ядро определяет сетевые интерфейсы как eth0, eth1 и так далее. Так же можно вывести список устройств с помощью следующей команды:
Код:
lspci | grep Ether
Убеждаемся что, система видит сетевые интерфейсы. Если на этом этапе вы получаете пустые строки или сообщения об ошибках, значит оборудование: либо не подключено, либо не исправно, либо не совместимо. Подразумевается, что при установке Debian 6 (Squeeze) использовался специальный набор проприетарных драйверов. В первом случае ещё раз проверяем правильность включения сетевой карты, поддержку BIOS и т. д. Во втором и третьем случае производим замену оборудования. Если проблема возникла после сборки своего ядра — проверяем ядро. Данная информация выходит за рамки этой статьи, но в последующих статьях мы с вами рассмотрим сборку, проверку и настройку ядра.
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.848
Реакции
1.952
Баллы
113
Настройка статического IP-адреса
И так, наше оборудование функционирует нормально. Нам нужно настроить статический IP-адрес со следующими параметрами: IP-адрес 192.168.123.254, маска подсети 255.255.255.0, основной шлюз 192.168.123.1.
Сначала посмотрим вывод команды ifconfig:
Код:
[B]# [/B]ifconfig
или
Код:
sudo ifconfig
Второй вариант команды указан для тех, кто при установке запретил вход суперпользователя. Далее в статье я не буду дублировать команды, просто запомните: если в начале кода есть значок #, значит команда выполняется от имени суперпользователя. Те, кто запретил вход суперпользователя в систему выполняют её с помощью sudo.
Если всё было настроено правильно ещё при установке системы, мы увидим следующее:
Код:
eth0
Link encap:Ethernet HWaddr 08:00:27:f1:d9:29
inet addr:192.168.123.254 Bcast:192.168.123.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef1:d929/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:720 (720.0 B) TX bytes:852 (852.0 B)
Interrupt:10 Base address:0xd020
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
В первой строке мы видим тип подключения и mac-адрес (по другому — физический адрес). Во второй строке ip-адрес, широковещательный адрес и маску подсети. Третья строка относится к шестой версии стека протоколов TCP/IP, но об этом разговор пойдёт в одной из следующих статей. Когда мы видим RUNNING в четвертой строке это означает, что сетевой кабель подключен. Далее следует статистическая информация. Если настройка сети не удалась при установке, то в лучшем случае мы увидим настроенным только локальный интерфейс:
Код:
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.848
Реакции
1.952
Баллы
113
А то и не увидим никакой информации. В общих случаях, для проверки или устранения неисправностей можно настроить сетевые интерфейсы с помощью команд ifconfig и route. Об этом будет написано ниже в этой же статье. А пока приступим редактированию файлов конфигураций. Вообще, перед редактированием конфигурационных файлов для сети следует остановить сетевой интерфейс. Делается это следующим образом:
Код:
# ifdown eth0
Но в нашем случае интерфейс eth0 ещё не сконфигурирован и мы получим сообщение об ошибке:
Код:
interface eth0 not configured
Тогда, для начала, проверяем существование файла /etc/network/interfaces. Если он не существует, то создаём его, если существует, то редактируем текстовым редактором:
Код:
# vim /etc/network/interfaces
Для сервера с одним сетевым интерфейсом у нас должно получиться следующее:
Код:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.123.254
netmask 255.255.255.0
network 192.168.123.0
broadcast 192.168.123.255
gateway 192.168.123.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 213.177.96.1 213.177.97.1
dns-search aitishnik
auto eth0
В комментариях к файлу написано, что этот файл описывает доступные системе сетевые интерфейсы и как их активировать. Для получения большей информации следует посмотреть руководство interfaces(5). В предпоследней строке идёт перечисление через пробел dns-серверов, у вас там, естественно должны быть адреса dns-серверов вашего провайдера или вашей сети. В последней строке указывается ваша рабочая группа или домен. В моём примере это aitishnik.
Затем редактируем файл /etc/resolv.conf:
Код:
search aitishnik
nameserver 213.177.96.1
nameserver 213.177.97.1
В первой строке указываем название своей рабочей группы или домена после слова search. Во второй и третьей строках после слов nameserver пишем ip-адреса DNS-серверов вашей сети или вашего провайдера в зависимости от конфигурации вашей сети. Если DNS-сервер один, то третью строку не пишем. Например, если наш сервер стоит за интернет-шлюзом (о настройке сети для интернет-шлюза речь идёт в одноимённой статье) и он же является DNS-сервером, то файл /etc/resolv.conf будет выглядеть так:
Код:
search aitishnik
nameserver 192.168.123.1
Теперь нужно активировать сетевой интерфейс:
Код:
# ifup eth0
И перезапустить сетевые службы:
Код:
# /etc/init.d/networking restart
Проверяем что у нас получилось:
Код:
# ifconfig
eth0
Link encap:Ethernet HWaddr 08:00:27:f1:d9:29
inet addr:192.168.123.254 Bcast:192.168.123.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef1:d929/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:720 (720.0 B) TX bytes:852 (852.0 B)
Interrupt:10 Base address:0xd020
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.848
Реакции
1.952
Баллы
113
Проверяем работу сети. Сначала проверяем локальный интерфейс (параметр -с 4 подразумевает отправку четырех пакетов):
Код:
$ ping 127.0.0.1 -с 4
Получаем:
Код:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.245 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.501 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.140 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.041 ms
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 0.041/0.231/0.501/0.172 ms
Затем проверяем сетевой интерфейс («пингуем» сами себя):
Код:
$ ping 192.168.123.254 -с 4
Получаем:
Код:
PING 192.168.123.254 (192.168.123.254) 56(84) bytes of data
64 bytes from 192.168.123.254: icmp_seq=1 ttl=64 time=0.135 ms
64 bytes from 192.168.123.254: icmp_seq=2 ttl=64 time=0.319 ms
64 bytes from 192.168.123.254: icmp_seq=3 ttl=64 time=0.170 ms
64 bytes from 192.168.123.254: icmp_seq=4 ttl=64 time=0.323 ms
--- 192.168.123.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.135/0.236/0.323/0.087 ms
Теперь основной шлюз:
Код:
$ ping 192.168.123.1 -с 4
Получаем:
Код:
PING 192.168.123.1 (192.168.123.1) 56(84) bytes of data
64 bytes from 192.168.123.1: icmp_seq=1 ttl=255 time=1.85 ms
64 bytes from 192.168.123.1: icmp_seq=2 ttl=255 time=2.02 ms
64 bytes from 192.168.123.1: icmp_seq=3 ttl=255 time=1.51 ms
64 bytes from 192.168.123.1: icmp_seq=4 ttl=255 time=3.12 ms
--- 192.168.123.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3016ms
rtt min/avg/max/mdev = 1.514/2.128/3.123/0.605 ms
И какой-нибудь удалённый хост по имени:
Код:
$ ping www.aitishnik.ru
Результат:
Код:
PING www.aitishnik.ru (195.208.0.15) 56(84) bytes of data
64 bytes from 195.208.0.15: icmp_seq=1 ttl=56 time=119 ms
64 bytes from 195.208.0.15: icmp_seq=2 ttl=56 time=112 ms
64 bytes from 195.208.0.15: icmp_seq=3 ttl=56 time=113 ms
64 bytes from 195.208.0.15: icmp_seq=4 ttl=56 time=114 ms
--- www.aitishnik.ru ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3030ms
rtt min/avg/max/mdev = 112.818/114.989/119.785/2.821 ms
На этом настройка статического IP-адреса для сервера с одним сетевым интерфейсом закончена.
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.848
Реакции
1.952
Баллы
113
Команды ifconfig и route
В случаях поиска неисправностей, для отладки и т.д. сетевые интерфейсы можно настроить с помощью команд ifconfig и route. Настроим сначала локальный интерфейс, если он не настроен, тем более что его нужно настроить в любом случае. Он используется для связи программ IP-клиентов с IP-серверами, запущенными на этой же машине:
Код:
# ifconfig lo 127.0.0.1
В параметрах команды не указываем маску подсети, т. к. по умолчанию устанавливается маска подсети 255.0.0.0
Проверяем:
Код:
$ ping 127.0.0.1 -с 3
Ответ:
Код:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.128 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.115 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.276 ms
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2014ms
rtt min/avg/max/mdev = 0.115/0.173/0.276/0.073 ms
Для нашего сетевого интерфейса даём команду:
Код:
# ifconfig eth0 192.168.123.254 netmask 255.255.255.0 broadcast 192.168.123.255 up
Проверяем
Код:
$ ping 192.186.123.254 -c 3
Ответ машины:
Код:
PING 192.168.123.254 (192.168.123.254) 56(84) bytes of data.
64 bytes from 192.168.123.254: icmp_seq=1 ttl=64 time=0.312 ms
64 bytes from 192.168.123.254: icmp_seq=2 ttl=64 time=2.16 ms
64 bytes from 192.168.123.254: icmp_seq=3 ttl=64 time=0.248 ms
--- 192.168.123.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2025ms
rtt min/avg/max/mdev = 0.248/0.909/2.169/0.891 ms
Перед тем, как добавить маршруты посмотрим таблицу маршрутизации:
Код:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface

Для локального интерфейса выполняем команду:
Код:
# route add -net 127.0.0.0 netmask 255.0.0.0 lo
А для сетевого интерфейса выполняем сначала:
Код:
# route add -net 192.168.0.0 netmask 255.255.255.0 eth0
А затем добавим основной шлюз:
Код:
# route add default gw 192.168.123.1 eth0
Посмотрим опять таблицу маршрутизации:
Код:
# route
Видим:

Проверяем работоспособность сети так же, как в предыдущем разделе.
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.848
Реакции
1.952
Баллы
113
Настройка динамического IP-адреса
В некоторых случаях сервер может получать динамический IP-адрес. Чаще всего это зарезервированный адрес или псевдодинамический. Т. е. на DHCP-сервере производится привязка определённого mac-адреса к определённому ip-адресу (об этом вы прочтете в статье «Настройка DHCP в Debian»). Такая ситуация может встретиться и в локальной сети, но чаще всего она встречается тогда, когда провайдер выдает ip-адреса динамически. В этом случае файл /etc/network/interfaces выглядит следующим образом:
Код:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5)
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Вот и всё!
 
Последнее редактирование:
Сверху Снизу