Сетевой интерфейс — физическое или виртуальное устройство, предназначенное для передачи данных между программами через компьютерную сеть.
Примеры сетевых интерфейсов:
Каждый интерфейс в сети может быть однозначно идентифицирован по его адресу. Разные сетевые протоколы используют разные системы адресации, например MAC-адреса в Ethernet или IP-адреса в IP.
Настройка сетевых интерфейсов в UNIX/Linux-системах традиционно выполняется с помощью команды ifconfig, а в Linux ещё и при помощи команды 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.
[править] Параметры интерфейса
Кроме этих параметров интерфейс характеризуется ещё:
Debian. Долговременные настройки хранятся в файле /etc/network/interfaces.
[править] Программа ifconfig
Для управления интерфейсами в ОС Linux используется программа ifconfig. Команда позволяет как получать диагностическую информацию об интерфейсах системы, так и выполнять их настройку.
Формат вызова команды:
ifconfigifconfiginterfaceoptions
Для получения информации, программа ifconfig может вызываться простым пользователем. Файл ifconfig находится в каталоге /sbin, поэтому, чаще всего, при вызове нужно указывать абсолютное путевое имя.
При вызове без параметров, программа выводит на экран информацию обо всех активных (up) интерфейсах. Если указано имя интерфейса, но отсутствуют options, выводится информация только о нем одном.
Формат вывода информации о интерфейсе программой ifconfig:
Характеристики канального уровня Канальный уровень Link encap. Аппаратный MAC-адрес устройства HWaddr Характеристики сетевого уровня IP-адрес интерфейса inet addr; широковещательный адрес интерфейса Bcast; маска подсети интерфейса Mask Флаги, метрика и MTU Список установленных флагов интерфейса: включён UP; принимает широковещательные пакеты BROADCAST; принимает групповые пакеты MULTICAST. Среди списка установленных флагов может присутствовать слово PROMISC, означающее, что интерфейс работает в неразборчивом режиме. Установленный размер максимального блока, передаваемого через интерфейс MTU и метрика интерфейса Metric. Информация о полученных пакетах RX Число пакетов packets, ошибок errors, отброшенных пакетов dropped, переполнений overruns. Такое назначение полей соответствует только сетям Ethernet. В других сетях, смысл может отличаться. Информация об отправленных пакетах Число пакетов packets, ошибок errors, отброшенных пакетов dropped, переполнений overruns, потерь несущей carrier, коллизий collisions ; объем буфера передачи txqueuelen. Такое назначение полей соответствует только сетям Ethernet. В других сетях, смысл может отличаться. Объем переданных данных Количество байтов полученных RX bytes и отправленных TX bytes через интерфейс Аппаратные параметры Номер линии IRQ Interrupt и адрес памяти Base address
Если в командной строке ifconfig указаны options, выполняется настройка интерфейса. В процессе настройки можно изменить режим работы интерфейса, настройки IP-адреса и другие характеристики.
Перед списком опций в командной строке ifconfig следует обязательно указать имя интерфейса, к которому они применяются. В команде может быть указано имя, не больше чем одного интерфейса.
Задаваемые в командной строке options выглядят как набор ключевых слов с дополнительными параметрами. Последовательность ключевых слов в строке не имеет значения, хотя и существует общепринятый порядок.
[править] Аргументы командой строки ifconfig
При изменении IP-адреса интерфейса автоматически изменяются значения его маски и широковещательного адреса. Если параметры netmask и broadcast не указаны явно, соответствующие значения вычисляются исходя из класса IP-адреса. Например, для IP-адреса 200.200.200.200, который относится к диапазону адресов класса C, значения сетевой маски и широковещательного адреса будут соответственно равны 255.255.255.0 и 200.200.200.255, а для адреса 1.2.3.4 (адрес класса A), равны соответственно 255.0.0.0 и 1.255.255.255.
Более тонкую настройку интерфейса можно произвести при помощи утилиты ip
[править] Пример использования ifconfig
Просмотр информации обо всех интерфейсах
Просмотр информации об интерфейсе eth0:
Назначить IP-адрес 10.0.0.1 первой Ethernet-карте:
Интерфейс не включается автоматически. Если необходимо включить интерфейс, в командной строке следует явно указать параметр up:
Значения широковещательного адреса и сетевой маски будут определены автоматически на основе информации о классе адреса. Если необходимо явно задать маску, например, ограничить размер сети 14 хостами (4 бита на хост), нужно использовать команду:
Запретить использование ARP на интерфейсе eth0:
Перевести интерфейс в неразборчивый режим:
[править] Создание сетевого интерфейса
Интерфейс создается ядром автоматически при обнаружении устройства. Для того чтобы устройство было доступно, необходимо включить его драйверную поддержку в состав ядра. Это может быть сделано в момент сборки ядра или при работе системы с использованием механизма загружаемых модулей.
Если устройств, обеспечивающих одинаковый тип интерфейса, несколько, их автоматическое определение не производится.
При использовании нескольких устройств одного типа нужно произвести их ручную настройку, то есть явным образом назначить интерфейс каждому из них. Это необходимо, поскольку при автоматическом определении устройств порядок привязки к интерфейсам непредсказуем, что недопустимо.
Не путайте интерфейсы и устройства системы. Интерфейсам не соответствуют никакие специальные файлы в каталоге /dev
Вновь созданный интерфейс является ненастроенным: он выключен и к нему не привязан никакой IP-адрес. Для того чтобы ввести интерфейс в работу, нужно провести его настройку и включить (поднять) его при помощи команды ifconfig.
При настройке интерфейса обычно настраиваются следующие параметры:
Эти параметры задаются одной командой, которая при этом, как правило, сразу и включает интерфейс.
[править] Настройка интерфейсов при загрузке системы
Настройки интерфейса, выполненные при помощи ifconfig, автоматически пропадают при выключении компьютера. После того как ядро Linux загружено опять, всю настройку нужно выполнять снова. Обычно она производится автоматически специальными скриптами при загрузке компьютера.
Рассмотренная ниже процедура автоматической настройки сетевых интерфейсов при загрузке выглядит так только в RedHat-based системах. В Slackware и Debian сетевые интерфейсы настраиваются несколько иначе.
Настройка интерфейсов производится скриптом /etc/rc.d/init.d/network, который автоматически вызывается при переходе на 2, 3, 4 или 5 уровень выполнения. Скрипт network при вызове с параметром startподнимает интерфейсы, т.е. выполняет настройку и включение всех описанных интерфейсов, после чего настраивает статическую маршрутизацию.
Конфигурационные файлы интерфейсов могут быть созданы вручную или при помощи псевдографических и графических инструментов настройки, таких как netconfig или neat
Параметры интерфейса в файле ifcfg.
DEVICE Имя устройства ONBOOT Нужно ли инициализировать интерфейс при загрузке (yes | no) BOOTPROT При динамической настройке тип протокола, при помощи которого должен быть сконфигурирован интерфейс ( bootp | dhcp ) BOOTP Интерфейс необходимо настроить с использованием протокола удаленной загрузки BOOTP IPADDR IP-адрес, который должен быть присвоен интерфейсу NETMASK Маска подсети IP-адреса интерфейса NETWORK Адрес сети интерфейса BROADCAST Широковещательный адрес интерфейса
Значения NETMASK, NETWORK, BROADCAST могут быть вычислены скриптом ifup автоматически при помощи программы ipcalc, поэтому, если они соответствуют классу IP-адреса, указывать явно их не обязательно
Для настройки интерфейсов во время загрузки компьютера используется скрипт ifup, который принимает в качестве аргумента командной строки имя интерфейса interface.
Он читает конфигурационный файл interface или, если он отсутствует, файл из каталога /etc/sysconfig/networking/default. В крайнем случае, если не найден ни один из этих файлов читается конфигурация из ifcfg-interface. После этого скрипт производит настройку интерфейсов при помощи утилиты ip. Настраиваются не только интерфейсы сами по себе, но и необходимые маршруты для обращения к сетям, непосредственно доступным через интерфейс.
Скрипты ifup и ifdown могут вызываться не только во время загрузки компьютера или при смене уровня выполнения, но и в ходе нормальной работы, когда нужно вручную поднять или опустить интерфейс.
Перезапуск интерфейса eth0:
Файлы ifup и ifdown в каталоге /etc/sysconfig/network-scripts являются символическими ссылками на файлы ifup и ifdown в каталоге /sbin. Поэтому, при вызове вручную можно просто воспользоваться командами ifup и ifdown.
При вызове в ходе начальной загрузки, скрипту ifup передается дополнительный аргумент boot, который сообщает, что интерфейс нужно поднимать только в том случае, если в файле его конфигурации параметр ONBOOT не установлен в no.
[править] Файл конфигурации eth0
Вот пример наиболее распространённой конфигурации Ethernet-интерфейса:
В данном случае файл описывает интерфейс eth0, которому назначен IP-адрес из диапазона рекомендованного для локальных сетей 10.0.0.188. Поскольку адрес принадлежит классу A, а необходимо чтобы под сетевую часть было отведено 24 бита, явным образом задана сетевая маска NETMASK, адрес сети NETWORK и широковещательный адрес BROADCAST.
15 полезных команд «ifconfig» для настройки сетевого интерфейса в Linux
ifconfig это сокращение от “interface configuration” (конфигурация интерфейса), утилита для системного/сетевого администрирования в операционных системах Unix/Linux для конфигурирования, управления и запроса параметров сетевого интерфейса через интерфейс командной строки или в скриптах конфигурации системы.
Команда «ifconfig» используется для отображения текущей информации о конфигурации сети, настройки ip-адреса, маски сети или широковещательного адреса для сетевого интерфейса, создания алиаса для сетевого интерфейса, настройки аппаратного адреса, а также включения или отключения сетевых интерфейсов.
В этой статье мы рассмотрим «15 полезных команд «ifconfig»» с их практическими примерами, которые могут быть очень полезны при управлении и настройке сетевых интерфейсов в системах Linux.
Важно: сетевая команда ifconfig устарела и заменена командой ip в большинстве дистрибутивов Linux.
1. Просмотр всех настроек сетевого интерфейса
Команда «ifconfig» без аргументов отобразит подробную информацию обо всех активных интерфейсах. Команда ifconfig также используется для проверки IP-адреса сервера.
2. Отображение информации обо всех сетевых интерфейсах
Следующая команда ifconfig с аргументом -a отобразит информацию обо всех активных или неактивных сетевых интерфейсах на сервере. Она отображает результаты для eth0, lo, sit0 и tun0.
3. Просмотр сетевых настроек конкретного интерфейса
Using interface name (eth0) as an argument with the “ifconfig” command will display details of the specific network interface.
Использование имени интерфейса (eth0) в качестве аргумента в команде «ifconfig» отобразит подробную информацию о данном сетевом интерфейсе.
4. Как включить сетевой интерфейс
Флаг «up» или «ifup» с именем интерфейса (eth0) активирует сетевой интерфейс, если он не находится в неактивном состоянии и позволяет отправлять и получать информацию. Например, «ifconfig eth0 up» или «ifup eth0» активирует интерфейс eth0.
5. Как отключить сетевой интерфейс
Флаг «down» или «ifdown» с именем интерфейса (eth0) выключает указанный сетевой интерфейс. Например, команда «ifconfig eth0 down» или «ifdown eth0» деактивирует интерфейс eth0, если он находится в активном состоянии.
6. Как назначить IP-адрес сетевому интерфейсу
Чтобы назначить IP-адрес определенному интерфейсу, используйте следующую команду с именем интерфейса (eth0) и ip-адресом, который вы хотите установить. Например, «ifconfig eth0 172.16.25.125» назначит IP-адрес интерфейсу eth0.
7. Как назначить маску сети для сетевого интерфейса?
Использование команды «ifconfig» с аргументом «netmask» и именем интерфейса в виде (eth0) позволяет задать маску сети для данного интерфейса. Например, «ifconfig eth0 netmask 255.255.255.224» установит сетевую маску для данного интерфейса eth0.
8. Как назначить широковещательный адрес на сетевом интерфейсе?
Использование аргумента «broadcast» с именем интерфейса установит широковещательный адрес для данного интерфейса. Например, команда «ifconfig eth0 broadcast 172.16.25.63» устанавливает широковещательный адрес для интерфейса eth0.
9. Как назначить сетевому интерфейсу IP, маску подсети и широковещательный адрес?
Чтобы назначить IP-адрес, адрес подсети и широковещательный адрес одновременно, используйте команду «ifconfig» со всеми аргументами, приведенными ниже.
10. Как изменить MTU для сетевого интерфейса?
Аргумент «mtu» задает максимальный блок передачи для интерфейса. MTU позволяет установить предельный размер пакетов, передаваемых на интерфейсе. MTU способен обрабатывать максимальное количество октетов на интерфейсе за одну операцию.
Например, «ifconfig eth0 mtu 1000» установит максимальную единицу передачи на заданный набор (т.е. 1000). Не все сетевые интерфейсы поддерживают настройки MTU.
11. Как включить режим Promiscuous?
В обычном режиме, когда сетевая карта получает пакет, она проверяет, принадлежит ли он ей, если нет, она пропускает пакет, но в режиме promiscuous используется для приема всех пакетов, проходящих через сетевую карту.
Современные сетевые инструменты используют режим promiscuous для захвата и анализа пакетов, проходящих через сетевой интерфейс. Чтобы установить режим promiscuous, используйте следующую команду.
12. Как отключить режим Promiscuous Mode?
Чтобы отключить режим promiscuous, используйте аргумент «-promisc«, который возвращает сетевой интерфейс в обычный режим.
13. Как добавить алиас в сетевой интерфейс?
The ifconfig utility allows you to configure additional network interfaces using the alias feature. To add the alias network interface of eth0, use the following command. Please note that the alias network address is in the same subnet mask. For example, if your eth0 network ip address is 172.16.25.125, then the alias ip address must be 172.16.25.127.
Утилита ifconfig позволяет настраивать дополнительные сетевые интерфейсы с помощью функции alias. Чтобы добавить alias сетевого интерфейса eth0, используйте следующую команду. Обратите внимание, что сетевой адрес псевдонима находится в той же маске подсети. Например, если ip-адрес сети eth0 — 172.16.25.125, то ip-адрес псевдонима должен быть 172.16.25.127.
Затем проверьте только что созданный alias сетевого интерфейса, используя команду «ifconfig eth0:0«.
14. Как удалить алиас для сетевого интерфейса?
Если вам больше не нужен alias или вы неправильно его настроили, вы можете удалить его с помощью следующей команды.
15. Как изменить MAC-адрес сетевого интерфейса?
Чтобы изменить MAC-адрес (Media Access Control) сетевого интерфейса eth0, используйте следующую команду с аргументом «hw ether«. Пример, см. ниже.
Это наиболее полезные команды для конфигурирования сетевых интерфейсов в Linux, для получения дополнительной информации об использования команды ifconfig используйте manpages, набрав «man ifconfig» в терминале.
Linux abc
На страницах моего блога я постараюсь поделиться полезными приемами работы в различных ОС и не только.
Диагностика сети для начинающих.
Все это можно сделать при помощи одной утилиты.
метрику — числовой показатель, задающий предпочтительность маршрута. Чем меньше число, тем более предпочтителен маршрут (интуитивно представляется как расстояние). Wikipedia Таблица маршрутизации
2.route Как посмотреть таблицу маршрутизации? Как посмотреть шлюз по умолчанию? Таблицу маршрутизации можно посмотреть командой route.
3.ping Самая простая утилита для проверки доступности хоста. Используется протокол ICPM Синтаксис ping [опции] имя хоста или его ip адрес В отличии от аналогичной утилиты в Windows в Lnux-е утилита будет работать до тех пор пока вы явно не прервете. Чтобы прервать выполнение нужно нажать сочетание клавиш Ctrl+c Проверяем доступность шлюза.
Администрирование систем Linux. Настройка сетевых интерфейсов
Оригинал: Interface configuration Автор: Paul Cobbaut Дата публикации: 12 марта 2015 г. Перевод: A. Панин Дата перевода: 1 апреля 2015 г.
Глава 22. Настройка сетевых интерфейсов
22.1. Следует ли использовать для настройки инструменты с графическим интерфейсом
В данной главе рассматриваются исключительно вопросы использования инструментов с интерфейсом командной строки для настройки сетевых интерфейсов системы!
22.2. Настройка сетевых интерфейсов в дистрибутивах Debain/Ubuntu
22.2.1. Файл конфигурации /etc/network/interfaces
Файл /etc/network/interfaces является основным файлом настроек сетевых интерфейсов, соответствующих сетевым картам, в дистрибутивах Debain/Ubuntu.
В примере ниже показано, что наша текущая система Ubuntu 11.04 настроена таким образом, что клиент DHCP используется для сетевого интерфейса eth0 (соответствующего первой сетевой карте).
22.2.2. Утилита /sbin/ifdown
Сетевой интерфейс, который был деактивирован, не может использоваться для соединения с сетью без повторной активации.
22.2.3. Утилита /sbin/ifup
Ниже приведен вывод утилиты ifup при активации сетевого интерфейса eth0 с использованием клиента DHCP. (Обратите внимание на то, что данный вывод был получен в дистрибутиве Ubuntu 10.10, при этом в дистрибутиве Ubuntu 11.04 утилита ifup не генерирует вывода по умолчанию).
22.3. Настройка сетевых интерфейсов в дистрибутивах Red Hat/Fedora
22.3.1. Файл конфигурации /etc/sysconfig/network
Файл /etc/sysconfig/network является глобальным файлом конфигурации (для всех сетевых карт). Он позволяет установить, хотим ли мы использовать сетевое соединение (NETWORKING=yes|no), желаемое имя узла (HOSTNAME=), а также адрес шлюза (GATEWAY=).
Параметры BROADCAST= и NETWORK= из предыдущих версий дистрибутивов RHEL/Fedora являются устаревшими.
22.3.3. Утилиты /sbin/ifup и /sbin/ifdown
Утилиты ifup и ifdown позволяют активировать или деактивировать сетевой интерфейс с использованием описанных выше файлов конфигурации. Данные утилиты ведут себя аналогично соответствующим утилитам из состава дистрибутивов Debian и Ubuntu.
22.4. Утилита ifconfig
При использовании утилиты /sbin/ifconfig без аргументов будет выведен список всех активных сетевых интерфейсов, включая интерфейсы адаптеров беспроводных сетей и петлевой интерфейс. В примере ниже IP-адрес сетевого интерфейса eth0 не установлен.
Также вы можете использовать утилиту ifconfig для получения информации об одной сетевой карте.
22.4.1. Активация и деактивация сетевых интерфейсов
Вы можете использовать утилиту ifconfig также для активации и деактивации сетевых интерфейсов. Главное отличие данной утилиты от утилиты ifup состоит в том, что в случае использования команды ifconfig eth0 up сетевой интерфейс будет повторно активирован с сохранением (текущей) конфигурации, в то время, как в случае использования утилиты ifup будет осуществляться чтение соответствующего файла конфигурации, который содержит (возможно обновленные) значения параметров конфигурации, с последующим использованием прочитанных значений параметров конфигурации в процессе активации сетевого интерфейса.
22.4.2. Установка IP-адреса
22.4.3. Установка MAC-адреса
Кроме того, вы также можете использовать утилиту ifconfig для установки MAC-адреса сетевого интерфейса, отличного от того, который был установлен при изготовлении вашей сетевой карты. В примере ниже показан процесс его установки.
22.4.4. Демон dhclient
22.5. Имя узла
В данном примере показана методика установки имени узла и его проверки с помощью утилиты hostname в случае работы с дистрибутивами Red Hat/Fedora.
В любой системе Linux вы также можете использовать утилиту sysctl для вывода и изменения имени узла.
22.6. Утилита arp
22.7. Утилита route
22.8. Утилита ping
22.9. Дополнительная информация: утилита ethtool
А в данном примере показана методика использования утилиты ethtool с целью перевода сетевой карты с режима работы с пропускной способностью в 1000МБит к режиму работы с пропускной способностью в 100МБит и назад. Учтите, что для возврата сетевой карты в режим работы с пропускной способностью в 1000Мбит потребуется некоторое время.