Debian не видит eth0

Обновлено: 05.07.2024

Настройка сетевого подключения это важнейший шаг при работе с Debian, который может вызвать у новичка много вопросов.

В этой статье вы можете найти ответы на некоторые из них.

Изучить файл с перечнем задействованных интерфейсов можно с помощью команды

Далее настройка зависит от версии Debian, которую Вы используете.

На новых версиях Debian. Например на Debian 9 используется Iproute2

Если Вам нужно настроить сеть на старой версии Debian с помощью утилит ifconfig пролистайте страницу вниз или перейдите по ссылке

Динамический IP c помощью dhclient

Включить автоматическое получение ip

Флаг -r flag explicitly releases the current lease, and once the lease has been released, the client exits.

Например, можно сперва выполнить:

$ sudo dhclient -r

И затем получить свежий IP адрес используя DHCP

Аналогичную операцию можно проделать для какого-то определённоего интерфейса

Например, для eth0

sudo dhclient -r eth0
sudo dhclient eth0

Выключить автоматическое получение ip можно вытащив сетевой шнур и вставив обратно. Говорят, что должно сброситься.

и изучить вывод.

Настройка сети с помощью Iproute2

Актуально для Debian 9 и выше.

Чтобы получить список интерфейсов нужно воспользоваться командой

Названия интерфейсов может отличаться от привычных eth0, eth1 и тому подобных.

Для примера будем считать, что интерфейс отобразился как enp0s25

Iproute2: Задать статический IP

sudo ip addr add 10.0.2.16/24 dev enp0s25

ВКЛЮЧИТЬ интерфейс enp0s25:

ip link set dev enp0s25 up

ВЫКЛЮЧИТЬ интерфейс enp0s25:

ip link set dev enp0s25 down

Gateway

По-русски Gateway называется Сетевой шлюз или просто шлюз

Удалить старый сетевой шлюз

route delete default

Добавление нового сетевого шлюза

route add default gw IP_Address

Если старых шлюзов много, то нужно указать какой конкретно IP с какого интерфейса удалить

route delete default gw 10.0.0.1 eth0

Для создания тоже можно указать конкретные данные

route add default gw 192.168.0.1 eth0

netmask

Узнать свою маску

Настройка сети с помощью ifconfig

ifconfig входит в состав net-tools, поэтому если он недоступен по умолчанию всегда можно установить командой

apt-get install net-tools

Получить информацию об имеющихся интерфейсах на старых версиях Debian можно с помощью команды

Изучите вывод этой команды и посмотрите какой интерфейс Вам доступен. Обычно это eth0.

Если нужно получать ip автоматически

iface eth0 inet dhcp

Если нужно задать статический ip

iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

Чтобы изменения пришли в силу нужно выполнить

ifconfig wlan0 down

При установке нужно было запомнить какие сетевые интерфейсы вам предлагает сконфигурировать Debian. Это сделать очень просто, они называются eth0, eth1 и так далее.

Поэтому для включения сетевого интерфейса, в приведённой выше команде нужно менять 0 на 1 и т.д.

Однако, если вы будете устанавливать другие Unix-подобные дистрибутивы, например OpenBSD то сетевые интерфейсы будут называться более разнообразно (msk0, sk0 и др.)

Для того, чтобы с этим не возникало сложностей - полезно записывать то, что предлагается сконфигурировать при установке дистрибутива.

Внимание! Статья несколько устарела. Она была справедлива для версий старше Debian 9. В Debian 9 многое изменилось в настройке и диагностике сети.
Во-первых, в Debian 9 изменилась система именования сетевых интерфейсов. Если раньше, например для Ethernet, имена интерфейсов были следующими: eth0, eth1, eth2 и т. д. То сейчас используются номера интерфейсов в BIOS, а также номера слотов PCI. Это называется stateless persistent network interface names (имена постоянных сетевых интерфейсов без отслеживания состояния) Т. е. имя может быть enp0s3, или ens30, или wlp3s0 для wi fi. При желании можно переименовать сетевые интерфейсы, вернуться к прежней системе, но это материал для отдельной статьи.
Во-вторых, раньше для настройки и диагностики сети использовались утилиты из пакета net-tools. При установке Debian этот пакет устанавливался по умолчанию вместе с системой. Теперь он просто присутствует в репозиториях, а вместо него по умолчанию устанавливается пакет iproute2. При желании можно установить старый пакет (net-tools) и пользоваться прежними утилитами. И настроить всё по этой статье.
В-третьих, изменилась система инициализации – Debian перешёл на systemd. Это значит, что сервисы надо перезапускать по-другому.
Новая статья находится здесь. Айтишник РУ

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

Установка сетевой карты

В параметре команды grep мы написали eth. В Linux ядро определяет сетевые интерфейсы как eth0, eth1 и так далее. Так же можно вывести список устройств с помощью следующей команды:

Настройка статического IP-адреса

И так, наше оборудование функционирует нормально. Нам нужно настроить статический IP-адрес со следующими параметрами: IP-адрес 192.168.123.254, маска подсети 255.255.255.0, основной шлюз 192.168.123.1.
Сначала посмотрим вывод команды ifconfig:

$ sudo 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)

В первой строке мы видим тип подключения и 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)

А то и не увидим никакой информации. В общих случаях, для проверки или устранения неисправностей можно настроить сетевые интерфейсы с помощью команд ifconfig и route. Об этом будет написано ниже в этой же статье. А пока приступим редактированию файлов конфигураций. Вообще, перед редактированием конфигурационных файлов для сети следует остановить сетевой интерфейс. Делается это следующим образом:

interface eth0 not configured

Тогда, для начала, проверяем существование файла /etc/network/interfaces. Если он не существует, то создаём его, если существует, то редактируем текстовым редактором:

Для сервера с одним сетевым интерфейсом у нас должно получиться следующее:

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

Теперь нужно активировать сетевой интерфейс:

И перезапустить сетевые службы:

Проверяем что у нас получилось:

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)

Проверяем работу сети. Сначала проверяем локальный интерфейс (параметр -с 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

И какой-нибудь удалённый хост по имени:

На этом настройка статического IP-адреса для сервера с одним сетевым интерфейсом закончена.

Команды ifconfig и route

В случаях поиска неисправностей, для отладки и т.д. сетевые интерфейсы можно настроить с помощью команд ifconfig и route. Настроим сначала локальный интерфейс, если он не настроен, тем более что его нужно настроить в любом случае. Он используется для связи программ IP-клиентов с IP-серверами, запущенными на этой же машине :

В параметрах команды не указываем маску подсети, т. к. по умолчанию устанавливается маска подсети 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

Для нашего сетевого интерфейса даём команду:

$ 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

Перед тем, как добавить маршруты посмотрим таблицу маршрутизации:

Для локального интерфейса выполняем команду:

А для сетевого интерфейса выполняем сначала:

А затем добавим основной шлюз:

Посмотрим опять таблицу маршрутизации:

Kernel IP routing table

Destination

Gateway

Genmask

Flags

Metric

Ref

Use

Iface

localnet

255.255.255.0

U

0

0

0

eth0

loopback

255.0.0.0

U

0

0

0

lo

default

192.168.123.1

0.0.0.0

UG

0

0

0

eth0

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

Настройка динамического IP-адреса

В некоторых случаях сервер может получать динамический IP-адрес. Чаще всего это зарезервированный адрес или псевдодинамический. Т. е. на DHCP-сервере производится привязка определённого mac-адреса к определённому ip-адресу (об этом читайте в статье «Настройка DHCP в Debian»). Такая ситуация может встретиться и в локальной сети, но чаще всего она встречается тогда, когда провайдер выдает ip-адреса динамически. В этом случае файл /etc/network/interfaces выглядит следующим образом:

Вот и всё!
В следующей статье мы рассмотрим настройку беспроводной карты в Debian

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

У меня проблемы с подключением компьютера с Ubuntu 10.04 (Sony Vaio VGN-SR490) к Интернету через кабель Ethernet, подключенный непосредственно к маршрутизатору.

Я могу подключиться к Интернету с помощью того же кабеля с помощью компьютера с Windows, поэтому что-то не так с настройкой Linux.

Как мне понять, в чем проблема и решить ее?

Вот мои настройки сети в Linux:

Вот мои настройки сети в Windows (Vista):

Я подверг цензуре свой IP-адрес из этих результатов. Если эта информация нужна, просто дайте мне знать.

Вот содержание /etc/network/interfaces :

После добавления auto eth0 вот последние результаты:

Вот результаты запуска modprobe:

Я удалил Linux с моего компьютера и установил Windows XP по просьбе некоторых людей, комментирующих этот вопрос. Я установил и запустил программу, чтобы узнать подробности о сетевой карте. Вот эта информация:

Похоже, список сетевых адаптеров пуст. Теперь я установлю двойную загрузку Windows XP и Ubuntu Linux. Я до сих пор не могу получить доступ к Интернету, даже через Windows. Интересно, это может быть аппаратная проблема с компьютером или проблема с самим роутером. Другие компьютеры могут подключаться к этому же маршрутизатору и нормально работать. (Вот так я и публикую это!)

Спасибо, что остались со мной. Я постарался немного укоротить ваш пост, чтобы нам было понятнее (вы также можете удалить несколько комментариев, если хотите). Похоже, что ваша ошибка очень распространена в Ubuntu и VMware. Вы на самом деле работаете Ubuntu себя в качестве виртуальной машины? Или на компьютере установлена ​​Ubuntu? Поисковый запрос SIOCSIFADDR в Интернете: ни одно такое устройство не вызывает никаких проблем , но, похоже, оно связано с Ubuntu как виртуальной машиной. Не могли бы вы опубликовать результаты dmesg | grep eth, а также посмотрите, перечислены ли какие-либо сетевые интерфейсы с помощью lspci @slhck Нет, Ubuntu не работает как виртуальная машина. Я установил Ubuntu в качестве операционной системы на моем компьютере. VMware установлен, но в данный момент не работает. Интересно, что я только что загрузил свой компьютер с Ubuntu LiveCD, и у меня точно такая же проблема, даже после того, как вы следовали инструкциям на LiveCD. Я начинаю сильно подозревать, что это аппаратная проблема. @ Linker3000 Результаты запуска dmesg | grep eth были пустыми, и я не вижу никаких сетевых интерфейсов, перечисленных с использованием lspci Можете ли вы опубликовать mke / модель машины или, если это DIY, производитель и модель материнской платы ИЛИ если вы можете загрузить Windows, посмотрите, какой сетевой интерфейс указан в диспетчере устройств

Прежде всего, ваш Ethernet не управляется Ubuntu. Попробуйте ifconfig -a вместо просто ifconfig , чтобы вы могли видеть все ваши сетевые устройства, управляемые или нет. Если вы делаете см ethX в ifconfig -a списке, то решение должно быть простым, и вы , казалось, получили половину. Следующее должно войти в ваш /etc/network/interfaces файл:

Первая строка «активирует» управление интерфейсом, а вторая строка устанавливает для него DHCP и IP.

Однако, если вы даже не видите никаких интерфейсов ethX ifconfig -a , это проблема с драйверами (Ubuntu даже не видит интерфейс). Чтобы решить эту проблему, либо проверить из диспетчера устройств Windows' для PCI Vendor ID и Device ID вашей сетевой карты, которую вы можете Перекрестная ссылка здесь и посмотреть , если вы можете найти драйвер для этого (Vendor ID является производителем, Device ID это точная модель сетевой карты). Альтернативный способ in-linux сделать это через lspci .

В Windows 7 получение идентификаторов поставщиков / устройств осуществляется через диспетчер устройств - откройте узел «Сетевые интерфейсы», дважды щелкните свою сетевую карту, нажмите «Сведения» и выберите «Идентификаторы оборудования» в раскрывающемся списке. Идентификатор поставщика - это 4 шестнадцатеричные цифры после VEN_ префикса, а идентификатор устройства - это 4 шестнадцатеричные цифры после &DEV_ сразу после поставщика.

Настройка сети в Linux Debian. Топик призван стать памяткой для системного администратора "как управлять сетью в Debian". В нем рассказываются основные принципы и действия по управлению сетевыми настройками этого семейства операционных систем.


Сетевые интерфейсы

Debian называет сетевые карты по имени eth и номеру. Виртуальные интерфейсы (loopback, vpn и т.п.) Debian именует отдельно, так-же по имени (например, tun, tap) и номеру за ним.

Например, если у Вас в компьютере 2 сетевых карты, то называться они будут по-умолчанию eth0 и eth1.

Следует учесть, что эта операционная система перманентно привязывает MAC-адрес физического сетевого интерфейса (сетевой карты) к номеру ethX. Так, если у Вас была сетевая карта в компьютере с именем eth0 и Вы ее поменяли, то, загрузившись после замены Вы не увидите ожидаемого eth0, а увидите уже eth1.

Как частный, но показательный случай: сервер с двумя сетевыми интерфейсами eth0 и eth1. Одна из сетевых карт сгорает и администратору приходится ее поменять. Запустив сервер он так и не дожидается ответа на пинг этого сетевого интерфейса. Зайдя под консолью - что он видит? Он видит старую вторую сетевую карту с именем eth1 и новую, но не с именем eth0, как ожидал, а с названием eth2! А это потому, что Debian закрепил за интерфейсом eth0 конкретный интерфейс с конкретным MAC-адресом.

Посмотреть закрепленные карты и их MAC можно по пути:

Отредактировав этот файл Вы можете удалить старые сетевые карты из списка Debian.

Долговременные настройки хранятся в файле /etc/network/interfaces

Вот пример файла:

auto lo
iface lo inet loopback

В этом файле определен IPv4 адрес 192.168.0.1 на сетевой карте eth0. Так-же определен шлюз по-умолчанию 192.168.0.250. Опция dns-nameservers оставлена на случай отсутствия в файле /etc/resolv.conf информации о DNS-серверах.

Следует учесть, что современный Debian не нуждается в строках network и broadcast, прекрасно вычисляя их самостоятельно из IP-адреса и маски. Однако если Вы хотите перезадать эти значения - указать такие опции придется.

А вот пример этого файла для 2х сетевых карт:

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255

На ходу значения IP адресов можно менять утилитой ifconfig:

Эта команда поменяет у сетевой карты eth0 IPv4 адрес на 192.168.0.33 с маской /24.


Если сетевые реквизиты требуется получать по DHCP - указываем в файле interfaces, например:

Указание DNS-сервера

DNS-серверы указываются (не более трех) в файле:

Например, вот пример такого файла:

Поменяв в файле значения они сразу начинают действовать.


Имя машины и домен

Посмотреть или поменять на ходу имя машины можно командой hostname:

Домен указывается в файле:

например, вот как пример файла resolv.conf:

Перманентно имя машины можно поменять в файле:

Но помните, что после этого необходимо поменять так-же имя хоста в файле

Чтобы значения в нем соответствовали новому имени хоста (там прописаны такие вещи, как 127.0.0.1, например).


Маршрутизация

Схема статической маршрутизации в Debian традиционная: статические маршруты и шлюз по-умолчанию.

На-лету маршрутизацией можно управлять через утилиту route:

Эта команда добавит маршрут к сети 10.0.3.0:255.255.255.0 на роутер с адресом 192.168.0.251.

А эта команда наоборот, удалит маршрут 10.0.3.0/24.

Роутер по-умолчанию указывается как 0.0.0.0/32 или default, например:

Эта команда добавит шлюз по-умолчанию 192.168.0.250.

Посмотреть текущие маршруты можно командой:

Перманентно статические маршруты указываются в файле

Например, возьмем вот такой файл:

auto lo
iface lo inet loopback

В этом файле видно, что:

а) Шлюз по-умолчанию 192.168.0.250

б) При поднятии интерфейса будут добавлены маршруты к сетям 10.0.0.0/24, 10.0.1.0/24 и 10.0.2.0/24 через, соответственно, 192.168.0.251, 192.168.0.252 и 192.168.0.253.


Маршрутизатор

По-умолчанию система не выполняет маршрутизацию проходящих пакетов. Чтобы ее включить (превратить наш сервер в маршрутизатор) необходимо установить переменную ядра

Чтобы это значение сохранилось после перезагрузки - добавим его в файл

Вот такой строчкой:

Сетевые алиасы (несколько IP-адресов на одном интерфейсе)

Нередко можно встретить ситуацию, когда одной сетевой карте (или просто одному сетевому интерфейсу) необходимо назначить не один, а несколько IP-адресов. В таком случае:

а) Обязательно присваивается основной адрес интерфейсу ethX
б) Алиасы (добавочные IP-адреса) присваиваются как ethX:Y, где Y - номер алиаса

Например, вот так мы присвоим еще 2 IP-адреса интерфейсу eth0:

Перманентно эти интерфейсы указываются в том же файл, что и все остальные:

Давайте приведем пример такого файла:

auto eth0:1
iface eth0:1 inet static
address 10.0.1.2
netmask 255.255.255.0
network 10.0.1.0
broadcast 10.0.1.255

auto eth0:2
iface eth0:2 inet static
address 10.100.10.3
netmask 255.255.255.0
network 10.100.10.0
broadcast 10.100.10.255

auto eth0:3
iface eth0:3 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Тут видно, что мы указали один основной адрес и 3 алиаса. Следует заметить, что к алиасам нельзя применять опции gateway или dns-nameservers.

Для начала, убедитесь, что у Вас установлен пакет vlan:

Если нет, то устанавливаем:

Для того, чтобы VLANы устанавливались при перезагрузки - их необходимо прописать в файле

Например, вот пример такого файла:

auto vlan333
iface vlan333 inet static
address 10.0.1.2
netmask 255.255.255.0
vlan_raw_device eth0

auto eth0.999
iface eth0.999 inet static
address 10.100.10.3
netmask 255.255.255.0
vlan_raw_device eth0

auto eth0.100
iface eth0.100 inet static
address 192.168.1.1
netmask 255.255.255.0
vlan_raw_device eth0

Здесь видно объявление 3х VLANов. Причем и запись vlan333, и записи вида eth0.999 верны. Отличие будет лишь в их название в виде интерфейсов. Я предпочитаю вид eth.XXX, что дает мне сразу информацию о том - на каком интерфейсе влан лежит.

Так-же добавилась опция vlan_raw_device, указывающая системе - на какой сетевой карте этот VLAN будет таггироваться.

В процессе работы VLANами можно управлять через утилиту vconfig. Например:

Эта команда добавит VLAN=777 к интерфейсу eth0.

А эта команда - удалить VLAN vlan777.


Сетевые мосты

Что это такое - почитать можно в интернете. Для организации нам потребуются установленные bridge-utils. Проверим их наличие:

Если нет - ставим:

Мосты прописываются в файле

Тут видно, что мы не настраиваем сетевые карты (не прописываем им IP адрес, не даем получить реквизиты по DHCP). Это необходимо так и делать!

Сетевой мост мы называем br0. Уже на нем прописываем все необходимые реквизиты и указываем опцию bridge_ports, которая показывает - какие сетевые интерфейсы включать в этот мост.

На ходу мосты управляются утилитой brctl. Например, таким образом можно создать сетевой мост из 2х сетевых карт (карты не должны быть настроены и должны находиться в состоянии down):

Эта последовательность команд:
а) Создаст виртуальный коммутатор br0
б) Добавит в него сетевые интерфейсы eth0 и eth1
в) "Поднимет" мост (up), т.е. включит его

После этого мосту можно дать сетевые реквизиты (а можно и не давать - в таком случае эти сетевые карты будут работать как неуправляемый коммутатор, из-вне к ним через эти соединений подключиться будет нельзя).

Эта команда удалит из виртуального коммутатора (моста) интерфейс eth1.

А эта команда удалит мост br0 совсем.


Link aggregation (Bonding)

Агрегация интерфейсов - способ поднять скорость передачи данных и/или обеспечить отказоустойчивость путем использования двух или более физических сетевых карт. Работает это так, что несколько сетевых карт выступают в роли одной виртуальной (не путать с мостом!), при этом, в зависимости от режима работы, эти сетевые карты или увеличивают пропускную способность (в то количество раз - сколько объединено сетевых карт), или дают отказоустойчивость (т.е. работает одна карта, если она сдыхает - начинает работать вторая), или и то, и другое.

Для работы требуется установленный пакет ifenslave-2.6. Если не установлен - ставим:

Конфигурация прописывается в файле

Здесь видно, что физические карты не настраиваются - им не присваиваются статические IP адреса и не позволяется использовать DHCP для получения реквизитов. Вместо этого они участвуют в создании bond0 интерфейса, который уже и получает сетевые реквизиты.

ВНИМАНИЕ! На другой стороне сетевых кабелей необходимо, чтобы сетевые карты были настроены один-в-один так-же (т.е. работали в том же режиме). Если это аппаратные коммутаторы или маршрутизаторы - придется подбирать режим работы - какой поддерживается "железкой" на той стороне. Если это сервер - то лучше всего использовать:

а) такие-же сетевые карты (если это возможно)
б) такую-же ОС (это снизит вероятность сбоев в работе агрегатирования)


Автозапуск скриптов при поднятии/выключении интерфейса

Для этого служат 4 директории:

/etc/network/if-pre-up.d
/etc/network/if-up.d
/etc/network/if-down.d
/etc/network/if-post-down.d

Соответственно, в директории if-pre-up.d располагаются скрипты, которые запускается перед поднятием интерфейса; в if-up.d - скрипты, которые запускаются после поднятия интерфейса; в if-down.d - перед выключением интерфейса, а в if-post-down.d - после выключения.

Среди прочего, вызываемые скрипты могут использовать специальные переменные из окружения вызывающего процесса, например $IFACE (называние интерфейса) или $MODE (операция). Подробнее - в man-страницах.

Читайте также: