====== сетевой интерфейс ====== Сетевой интерфейс — физическое или виртуальное устройство, предназначенное для передачи данных между программами через компьютерную сеть. Примеры сетевых интерфейсов: * Физические интерфейсы сетевых карт и телекоммуникационных устройств (коммутаторов, маршрутизаторов и так далее) * Петлевые интерфейсы для обмена данными между процессами на одном компьютере или управляемом сетевом устройстве. Для них выделена специальная подсеть 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#_'' (для навесных). * 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.