Часть 13: Физические интерфейсы - github2wiki/SPBSUT_KURS GitHub Wiki
В операционной системе физический интерфейс - это интефейс, созданный модулем ядра, отвечающий за сетевую карту.
Утилита ip
ip - Это утилита, включенная в комплект всех дистрибутивов Linux. Она объединяет в себе возможности таких утилит, как ifconfig, arp, route. Её можно использовать для настройки сети в Linux. С помощью ip можно не только смотреть свойства сетевого подключения, устанавливать ip адрес и смотреть arp-таблицу, но и настраивать политики маршрутизации, управлять arp таблицами, а также настраивать специфичные параметры стека TCP/IP, например, ширину окна. Конечно, учитывая такое количество функций, она сложна в освоении.
Синтаксис
ip [опции] объект команда [параметры]
опции - это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.
объект - объект или устройство, с которым будем работать или о котором будем узнавать информацию.
команды - какое-либо действие с объектом.
параметры - само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.
Опции
Поддерживаются такие опции для настройки сети в lInux:
-v - только вывод информации об утилите и ее версии
-s - включает вывод статистической информации
-f - позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция f должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link - означает отсутствие протокола.
-o - выводить каждую запись с новой строки
-r - выполнять резолвинг и выводить символические имена хостов
Все остальные опции - ярлыки опции -f:
-4 - ярлык для -f inet
-6 - -f inet6
-B - -f bridge
-0 - -f link
Объекты
Теперь давайте рассмотрим самые важные объекты.
address - сетевой адрес на устройстве
link- физическое сетевое устройство
monitor - мониторинг состояния устройств
neigh - ARP
route - управление маршрутизацией
rule - правила маршрутизации
tunnel - настройка туннелирования
Конечно, это не все объекты которые поддерживает команда ip linux, но на первое время вам хватит. Во время ввода имя объекта может быть сокращено до одной буквы. При неоднозначности используется алфавитный порядок. Например, ip a show, расшифровывается как ip address show. Тогда как в ip r show, r - означает route.
Команды
Теперь рассмотрим доступные команды, с помощью которых может быть выполнена настройка сети linux. Вот они: add, change, del или delete, flush, get, list или show, monitor, replace, restore, save, set, и update.
Если команда не задана, по умолчанию используется show (показать).
Здесь тоже поддерживается сокращение и в большинстве случаев для выполнения нужного действия достаточно нескольких символов. Но алфавитный порядок соблюдается не всегда. Например, ip a s, означает ip address show, а не ip address set.
Параметры
Параметры зависят от объекта и указанной команды. Рассмотрим самые основные:
dev имя_устройства - сетевое устройство
up - включить
down - выключить
llarrr - MAC - адрес
initcwnd - размер окна перегрузки TCP при инициализации
window - размер окна TCP
cwnd - размер окна перегрузки TCP
type - тип
via - подключиться к роутеру
default - маршрут по умолчанию
blackhole - маршрут "черная дыра" - отбрасывать пакеты и не посылать ICMP сообщения о недоступности
prohibit - маршрут "запрета" - отбрасывать пакеты и возвращать ICMP сообщения о запрете доступа
unreachable - маршрут "недостижимый" - отбрасывать пакеты и посылать ICMP пакеты о недостижимости узла.
Например, чтобы посмотреть информацию о доступных физических интерфейсах, набираем ip a
. Далее попробуем установить IP адрес у интерфейса eth0 и удалить его, а также выключим интерфейс, и включим.
- Добавляем IP-адрес
sudo ip a add 1.1.1.10/24 dev eth0
- Удаляем IP-адрес
sudo ip a del 1.1.1.10/24 dev eth0
- Выключаем eth0
sudo ip l set eth0 down
- Включаем eth0
sudo ip l set eth0 up
Далее давайте посмотрим на файлы настроек сети.
Настройка физических интерфейсов через файлы настроек сети
Файлы настроек сети находятся в каталоге /etc/sysconfig/network-scripts
. Там же находятся некоторые программы для работы с интерфейсами, например, ifdown - программа для выключения файла конфигурации из текущей настройки сети. Нас интересует файл ifcfg-eth0
- конфигурация сетевого интерфейса eth0.
Давайте откроем его в редакторе vi, и посмотрим, что он из себя представляет.
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Опишу основные параметры:
- TYPE - Тип сетевого интерфейса
- NAME - Имя интерфейса
- DEVICE - Устройство, которое интерфейс использует
- BOOTPROTO - если этот параметр static, то интерфейс не будет получать по dchp адрес, маску и другие параметры подклчения. Соответственно, может быть также dhcp.
- ONBOOT - вклчать ли интерфейс при загрузке.
- IPADDR - IP-адрес
- DNS1 - DNS, через который обращаться к доменам. Можно указать несколько параметров: DNS1, DNS2...
- PREFIX - длинна префикса, определяется по маске сети
- GATEWAY - шлюз
Другие параметры мы узнаем похже, когда будем рассматривать другие типы инттерфейсов более подробно.
Приведу пример конфигурации:
TYPE=Ethernet
NAME=eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=172.17.1.233
PREFIX=24
GATEWAY=172.17.1.1
DNS1=172.17.1.1
ONBOOT=yes