сетевой интерфейс

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

Примеры сетевых интерфейсов:

  • Физические интерфейсы сетевых карт и телекоммуникационных устройств (коммутаторов, маршрутизаторов и так далее)
  • Петлевые интерфейсы для обмена данными между процессами на одном компьютере или управляемом сетевом устройстве. Для них выделена специальная подсеть 127.0.0.0/8
  • Туннели — для инкапсуляции протокола того же или более низкого уровня в другой протокол
  • Интерфейсы виртуальных сетей (VLAN)

Каждый интерфейс в сети может быть однозначно идентифицирован по его адресу. Разные сетевые протоколы используют разные системы адресации, например MAC-адреса в Ethernet или IP-адреса в IP.

Сетевой интерфейс в Linux

Сетевое взаимодействие Linux-компьютера происходит через сетевые интерфейсы. Любые данные, которые компьютер отправляет в сеть или получает из сети проходят через сетевой интерфейс.

Интерфейс определён реализацией модели TCP/IP для того чтобы скрыть различия в сетевом обеспечении и свести сетевое взаимодействие к обмену данными с абстрактной сущностью.

Для каждого устройства, поддерживаемого ядром, существует сетевой интерфейс. Существует соглашение о наименовании интерфейсов, в соответствии с которым имя интерфейса состоит из префикса, характеризующего его тип, и числа, соответствующего номеру интерфейса данного типа в системе. Так, например, ppp0 соответствует первому интерфейсу PPP, а eth1 соответствует интерфейсу второго сетевого адаптера Ethernet. Обратите внимание на то, что нумерация интерфейсов начинается с 0.

Наименования сетевых интерфейсов в Linux

Начиная с середины 2011 года (Fedora 15) в Linux используется новая схема наименования интерфейсов. Интерфейсы называются em[1234] (для интегрированных) или pci<slot>#<port>_<vf> (для навесных).
  • lo - Интерфейс петли обратной связи.
  • eth - Сетевой интерфейс к карте Ethernet или картам WaveLan (Radio Ethernet).
  • tr - Сетевой интерфейс к карте Token Ring.
  • ppp - Сетевой интерфейс к каналу PPP (Point-to-Point Protocol).
  • sl - Сетевой интерфейс к каналу SLIP (Serial Line IP).
  • plip - Сетевой интерфейс к каналу PLIP (Parallel Line IP). Используется для организации сетевого взаимодействия с использованием параллельного порта.
  • ax - Сетевой интерфейс к устройствам любительского радио AX.25.
  • fddi - Сетевой интерфейс к карте FDDI
  • arc0e, arc0s - Сетевой интерфейс к карте ArcNet. Используется инкапсуляция пакетов в формате Ethernet или RFC 1051.
  • wlan - Сетевой интерфейс wi-fi адаптеров

Интерфейсы создаются автоматически для каждого обнаруженного сетевого устройства при загрузке ядра ОС.

Каждый интерфейс характеризуется определёнными параметрами, необходимыми для обеспечения его нормального функционирования, и в частности для сетевого обмена данными по протоколу IP.

Параметры интерфейса

  • IP-адрес - Адрес IP, соответствующий данному сетевому интерфейсу. Пакеты, отправленные по этому адресу, поступят на соответствующий интерфейс
  • Маска подсети - Битовая маска, необходимая для вычисления маршрута передачи IP-пакета
  • Широковещательный адрес - Адрес, используемый при широковещательной рассылке пакетов через интерфейс.
  • Метрика - Условная характеристика интерфейса соответствующая уровню затрат при передаче информации через него. Используется при маршрутизации пакетов, для выбора оптимального маршрута.
  • MTU - Maximum Transfer Unit. Максимальный размер блока данных обрабатываемого интерфейсом. Наибольшее значение MTU определяется типом интерфейса (например, для Ethernet MTU=1500), но может быть искусственно снижено.
  • MAC-адрес - Аппаратный адрес сетевого устройства, соответствующего интерфейсу (для которых это имеет смысл).

Кроме этих параметров интерфейс характеризуется ещё:

  • Флагами, которые определяют состояния устройства, например такие как: включен ли интерфейс (Up/Down), находится ли он в неразборчивом режиме (promiscuous/nonpromiscuous)
  • Аппаратными характеристиками, такими как адрес памяти, номер IRQ, DMA, порт ввода/вывода;
  • Статистической информацией, характеризующей различные аспекты работы интерфейса. Например, количество переданных/полученных байтов/пакетов, число переполнений, коллизий и др. с момента создания интерфейса.

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