Меню

Debian настройка двух сетевых карт



Работа с сетевыми интерфейсами на Debian

В этой стать будет рассмотрено множество способов по работе с сетевыми интерфейсами.
Все сетевые настройки прописаны в файле /etc/network/interfaces, который и изменяется под нужные сетевые настройки для Вашего компьютера.
В Debian все изменения файла /etc/network/interfaces делаются через команду sudo, так как требуются права супер пользователя на изменение конфигурационных файлов, пример:

Зависит от того, с каким редактором Вам больше нравится работать.

Настройка интерфейсов по DHCP
Рассмотрим, как требуется настраивать сетевой интерфейс. Сетевой интерфейс lo – обратная петля (его IP-адрес 127.0.0.*), использующийся для тестирования сетевой подсистемы, всегда настраивается автоматически и не требуется его настраивать как то по иному.
Для настройки интерфейса lo используются следующие строки в файле /etc/network/interfaces:

Далее настраиваем сетевую карту, если сетевая карта у Вас одна, то она будет называться eth0, если две, то вторая будет идти как eth1, можно также устанавливать на одну сетевую карту по два и более IP адресов, что будет рассмотрено ниже.
Настройка сетевой карты eth0 под автоматическое получения рабочей группы (DHCP):

Строка «auto eth0» указывает системе запускать автоматически этот интерфейс с настройкой при загрузке системы и при перезапуске службы сети.
И наш конфигурационный файл /etc/network/interfaces, теперь выглядит таким образом:

Также можно написать и таким образом:

Теперь можно сделать перезапуск службы сети коммандой:

Например, если у вас IP-адрес 192.168.0.200, маска сети 255.255.255.0, то строка конфигурации будет такой:

Необязательно все прописывать в одну строчку, можно записать так:

Параметр gateway – необязательный. Если сеть без выхода в Интернет, то этот параметр можно не указывать:

Можно использовать необязательные параметры network и broadcast, задающие, соответственно, адрес сети и широковещательный адрес:

Вот пример запуска интерфейса eth0 при условии, что файл /etc/network/local-network-ok существует. Если такой файл не существует, интерфейс eh0 не поднимется:

Но это только теоретический пример, на практике команды pre-up и pre-down используются для более серьезных вещей. Предположим, что у вас есть два сетевых интерфейса – eth0, подключенный к локальной сети и eth1, подключенный к Интернету. Это типичная конфигурация компьютера-шлюза

Перед поднятием этих интерфейсов неплохо бы проверить их MAC-адреса (уникальные аппаратные адреса). Сейчас поясню, для чего. Сегодня у вас есть два интерфейса eth0 с MAC-адресом А и eth1 с MAC-адресом Б. Завтра вы установили новое ядро, использующее иной порядок поиска сетевых интерфейсов и сетевая карта с MAC-адресом Б стала интерфейсом eth0, а плата с MAC-адресом А стала интерфейсом eth1. Сами понимаете, что ваша конфигурация не будет работать. Поэтому нужно проверить MAC-адреса интерфейсов:

Программа check-mac-address.sh – это сценарий, проверяющий MAC-адрес. Его можно найти в каталоге /usr/share/doc/ifupdown/examples, но не нужно этого делать, поскольку сейчас мы опишем более совершенную конфигурацию, идентифицирующую интерфейсы по MAC-адресу, а не по имени интерфейса:

Сценарий get-mac-address.sh можно найти в каталоге /usr/share/doc/ifupdown/examples. Лучше всего скопировать его в каталог /usr/bin и сделать исполнимым:

Если по какой-то причине этого файла у вас нет, то его содержимое приведен ниже.
Файл get-mac-address.sh:

Если есть вопросы, то просим Вас посетить наш форум, на котором Вы сможете попросить бесплатно описание.

Источник

Мой черновик

четверг, 16 января 2014 г.

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

Настройка сети в 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

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

# 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
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.250
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.240

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

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

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

# 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
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.250
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.240

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, например:

# 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
auto eth0
iface eth0 inet dhcp

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.

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

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

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

# 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

Читайте также:  Firefox настройки в отдельном окне

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.250
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.240
up route add -net 10.0.0.0/24 gw 192.168.0.251
up route add -net 10.0.1.0/24 gw 192.168.0.252
up route add -net 10.0.2.0/24 gw 192.168.0.253

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

а) Шлюз по-умолчанию 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:

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

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

# 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
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.250
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 127.0.0.1

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ы устанавливались при перезагрузки — их необходимо прописать в файле

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

# 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
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.250
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 127.0.0.1

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. Проверим их наличие:

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

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

# 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

# Physical interface
#auto eth0
#iface eth0 inet manual

#auto eth1
#iface eth1 inet manual

# The primary network interface
auto br0
iface br0 inet static
bridge_ports eth0 eth1
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.250
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.240

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

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

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

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

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

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

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

Link aggregation (Bonding)

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

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

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

# 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

# Physical interface
#auto eth0
#iface eth0 inet manual

#auto eth1
#iface eth1 inet manual

# The primary network interface
auto bond0
iface bond0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.250
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.240
slaves eth0 eth1
bond_mode round-robin
bond_miimon 100
bond_downdelay 200
bond_updelay 200

Здесь видно, что физические карты не настраиваются — им не присваиваются статические 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-страницах.

Источник

Adblock
detector