Метрика интерфейса что это

от admin

Что такое Метрика сети или маршрута

В локальный сетях есть такое понятие Метрика сетевого интерфейса или Метрика Сети — это специальное цифровое значение, означающее число переходов (так называемых «хопов» или «прыжков»), которое влияет на выбор маршрута в сети. В таблице маршрутизации из двух одинаковых предпочтительным является тот маршрут, у которого лучшая метрика маршрута.

метрика маршрута сети

На сегодняшний день в операционных системах Windows, Linux, MAC OSX, Android, iOS по умолчанию используется автоматическое назначение метрики сетевого интерфейса. В Windows 10 эту опцию можно отключить или включить в Дополнительных параметрах протокола TCP/IP v4.

windows 10 автоматическое назначение метрики

Посмотреть текущие значения этого параметра для каждого динамического маршрута можно через командную строку, введя команду route print. Пример вывода директивы Вы можете видеть ниже:

метрика сетевого интерфейса

При использовании статической маршрутизации возможно прописать значения параметра вручную при указании статического маршрута.

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

Метрика сети может выставляться не только исходя из числа переходов, но и на основе информации о скорости соединения сетевых интерфейсов.

У самого медленного интерфейса будет самое большое значение параметра и низший приоритет, а у самого быстрого — наименьшее и высший приоритет.

Скорость интерфейса Значение метрики сети
Менее 500 Кбит/с 50
от 500 Кбит/с до 4 Мбит/с 40
от 4 Мбит/с до 20 Мбит/с 30
от 20 Мбит/с до 80 Мбит/с 25
от 80 Мбит/с до 200 Мбит/с 20
от 200 Мбит/с до 2 Гбит/с 10
от 2 Гбит/с и выше 5

Кстати, надо учитывать что в операционных семействах на основе UNIX (Linux, Android и т.п.) метрика сети используется только для протоколов динамической маршрутизации и особо замарачиваться не стоит, так как при выборе маршрута ядро Линукса игнорирует этот параметр.

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как в Windows выбрать подключение, используемое для Интернета

Оглавление

Если у вас Linux, то смотрите статью «Практика настройки сетевых маршрутов: выбор подключения, используемое для Интернета; одновременное использование нескольких подключений для разных целей». В ней же вы найдёте дополнительные трюки для манипуляции сетевыми маршрутами, которые будут работать, в том числе, и на Windows.

Выбор подключения к Интернету

Компьютер может быть подключён сразу к нескольким сетям: например, к проводной сети и к беспроводной; или к двум Wi-Fi сетям; или использовать телефон в качестве модема через Bluetooth и при этом быть подключённым к проводной и Wi-Fi сети; или быть подключённым к четырём Wi-Fi сетям – да что угодно!

Если вы выходите в Интернет, как операционная система выбирает, какое именно из нескольких подключений использовать? Система действует очень мудро – она не пренебрегает ни одним из подключений. И в случае потери связи с одним из них – использует другое.

Но ведь ей в любом случае нужно выбрать, какое подключение использовать в данный момент! И система опять поступает мудро – она использует лучшее подключение. Чтобы узнать, какое подключение является лучшим, для каждого из них вычисляется так называемая Метрика – условное значение, которое учитывает сразу несколько параметров – скорость сети, потери пакетов и другое.

Рассмотрим реальный пример. Мой компьютер подключён к двум Wi-Fi сетям. Чтобы узнать характеристики маршрутов, откроем командную строку Windows, для этого нажмите Win+x, и выберите Windows PowerShell (Администратор). В открывшемся окне командной строки наберите команду

Особое внимание обратите на строки:

Сетевой адрес 0.0.0.0 и маска сети 0.0.0.0 это обозначение маршрута по умолчанию (default route). Это тот маршрут, куда отправляется трафик, для которого явно не прописан другой маршрут.

Например, там же мы можем увидеть строку

В ней есть сетевой адрес 192.168.56.0 с маской подсети 255.255.255.0 – то есть это любые IP адреса в диапазоне 192.168.56.0-192.168.56.255. Так вот, для этих адресов явно прописан маршрут – они будут отправлены в 192.168.56.1.

Но если будет запрошен любой другой IP, который отсутствует в таблице (т.е. для которого не указан конкретный маршрут), то он будет отправлен по маршруту по умолчанию – это то, что указано для сети 0.0.0.0 с маской 0.0.0.0. Самым типичным трафиком, отправляемым по default route является Интернет-трафик (а также трафик в другие локальные сети, к которым ваш компьютер непосредственно не подключён – но для домашних сетей это редкая ситуация).

Для выбора Интернет-подключения по умолчанию нужно изменить маршрут по умолчанию.

Изменение маршрута по умолчанию в Windows

Вернёмся к ранее полученным данным о маршруте по умолчанию:

Из него следует, что у одного из моих интерфейсов IP адрес 192.168.0.49 и у него метрика равна 55, у другого сетевого интерфейса IP 192.168.1.43 и метрика равна 70. Выигрывает тот маршрут, у которого значение метрики меньше (чем меньше метрика, тем лучше подключение).

Таким образом, если я будут выходить в Интернет, то будет использоваться сетевой интерфейс 192.168.0.49.

Убедимся в этом сразу несколькими способами. Запомним наши IP адреса, как их видят внешний сервисы. Для этого перехожу на https://suip.biz/ru/?act=myip:

Я получил, что мой IP 109.126.249.183, а мой локальный IP 192.168.0.49. В командной строке Windows делаю трассировку:

Как можно увидеть по первой строке, я действительно выхожу в интернет через шлюз 192.168.0.1.

Итак, способов изменить маршрут по умолчанию сразу несколько. Например, можно изменить значение метрики так, чтобы приоритетным стал другой маршрут. Второй вариант – удалить другие маршруты, оставив только один.

Как установить метрику для сетевых подключений в Windows

Чтобы было понятно, покажу на конкретном примере. У меня два сетевых интерфейса с IP адресами:

  • 192.168.0.49 (имеет шлюз 192.168.0.1) – используется по умолчанию
  • 192.168.1.43 (имеет шлюз 192.168.1.1) – хочу чтобы он использовался по умолчанию

Для этого удаляю все маршруты по умолчанию:

Теперь добавляю тот, который я хочу сделать маршрутом по умолчанию, командой вида:

В ней ШЛЮЗ нужно заменить на IP адрес шлюза (роутера) того интерфейса, через который вы хотите выходить в Интернет. Для меня это:

На данном этапе уже вернулось Интернет-подключение и если вам достаточного одного подключения, то можно не продолжать.

Тем не менее, я хочу чтобы в качестве резервного у меня было активно и второе подключение, но чтобы оно по умолчанию не использовалось.

Для его добавления используется команда следующего вида:

Обратите внимание, что вместо ШЛЮЗ нужно вписать IP адрес шлюза «резервного» интерфейса. Также значение является не абсолютным, а относительным. Помните об этом, что указанная величина ДОБАВЛЯЕТСЯ к тому значению метрики, которое рассчитывает операционная система. Значение 100 можно поменять на другое (например, 50). Но выбирайте его так, чтобы значение в сумме с рассчитанной метрикой было больше, чем метрика подключения, которое мы хотим использовать по умолчанию.

Как видим, в маршрутах по умолчанию по-прежнему доступно два сетевых интерфейса. Но теперь интерфейс 192.168.0.49 имеет очень большое значение метрики, поэтому по умолчанию будет применяться сетевой интерфейс 192.168.1.43.

Как видим, поменялся и внешний IP (был 109.126.249.183, а стал 213.167.219.207) и локальный (был 192.168.0.49, а стал 192.168.1.43).

В командной строке Windows делаю трассировку:

Как можно увидеть по первой строке, я действительно выхожу в интернет через шлюз 192.168.1.1.

Особенности применения команды route CHANGE в Windows

Необходимо отметить пару моментов в поведении команды route, которые является контринтуитивными (мы ждём одного результата, а получаем другой, неожиданный результат).

Маршруты, в том числе маршрут по умолчанию, можно не удалять/добавлять, а изменять с помощью команды route CHANGE. Но помните об особенности этой команды, если у вас установлено два или более маршрута по умолчанию: она удалит ВСЕ маршруты и впишет один новый, который указан с этой командой! На первый взгляд это неочевидно, но если подумать, то становится понятно, почему она действует именно таким образом.

Хотя об этом уже было сказано выше, значение метрики является ОТНОСИТЕЛЬНЫМ! То значение, которое вы устанавливаете для метрики, добавляется к рассчитываемому системой значению. При этом оно постоянно плавает: то есть система регулярно пересчитывает значения метрики, но к каждому полученному числу добавляет то, которое вы указали с командой route ADD.

Создание постоянных маршрутов, сохраняющихся после перезагрузки

По умолчанию, все прописанные маршруты, в том числе значения метрик, будут сброшены при перезагрузке компьютера.

С помощью ключа -p можно создавать постоянный маршруты, которые будут сохранены после перезагрузке.

Пример команды добавления постоянного маршрута:

Часть if <interface_ID> является опциональной для всех команд.

Номера интерфейсов можно посмотреть командой route print (в самом верху вывода):

Номера интерфейсов идут в первом столбике – перед MAC-адресами.

Кроме опции -p, команда route имеет ещё несколько опций, рассмотрим их.

Заметки об IT и PC

7. В окне «Дополнительные параметры TCP/IP», точнее в нижней его части мы видим рамку «Автоматическое назначение метрики», где снимаем галочку и вводим нужное значение метрики по правилу «Чем больше значение, тем ниже приритет интерфейса».

В приведённом скриншоте значение «1» означает наивысший приоритет данного интерфейса.
8. Нажимаем «ОК», затем ещё раз «ОК», затем ещё раз «ОК», либо «Закрыть».
9. Повторяем пп. 1-8 для второго интерфейса, назначив ему другое значение метрики интерфейса, то есть большую цифру (например «2») и так далее с каждым сетевым интерфейсом в порядке убывания приоритета использования.
10. После того, как всем интерфейсам назначена метрика, перезагружаем ПК
11. Всё настроено.
Повторюсь, что данные настройки имеют смысл на ПК с 2-мя и более сетевыми интерфейсами.

Сетевые интерфейсы

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

eth — сетевой интерфейс к карте Ethernet или картам WaveLan (Radio Ethernet).

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

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

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

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

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

Конфигурационные файлы и настройка IPv4

Debian/Ubuntu

Настройки сетевого интерфейса указываются в конфигурационном файле /etc/network/interfaces :

Ubuntu 16.04 LTS

Директивы сетевого интерфейса записываются в файл /etc/network/interfaces . В отличие от Debian и Ubuntu более ранних версий, интерфейсы именуются с префиксом ens , например — ens3 :

Ubuntu 18.04 LTS

В этой версии ОС сеть может задаваться не с помощью networking, а с помощью утилиты netplan.

Конфигурационный файл сетевого интерфейса расположен в каталоге: /etc/netplan/50-cloud-init.yaml . Описание интерфейса выглядит следующим образом:

Для применения изменений необходимо выполнить команду netplan apply. Она проверяет конфигурационный файл на наличие ошибок, применяет изменения и автоматически перезагружает интерфейс.

Redhat/Fedora/CentOS

В Redhat, Fedora или CentOS директория, отвечающая за присвоение постоянных IP-адресов — это /etc/sysconfig/network-scripts . В данной директории необходимо создать файл, соответствующий вашему новому виртуальному интерфейсу. Например, на наших боксах подобный файл будет называться ifcfg-eth0:0 .

/etc/sysconfig/network-scripts — каталог, содержащий конфигурационные файлы интерфейсов и скрипты, выполняющие их инициализацию.
/etc/sysconfig/network-scripts/ifup — скрипт, который выполняет настройку и активацию интерфейса.
/etc/sysconfig/network-scripts/ifdown — скрипт, который выполняет деактивацию интерфейса.
/etc/sysconfig/network-scripts/ifcfg-* — конфигурационные файлы, описывающие интерфейсы системы.
/etc/init.d/network — скрипт, выполняющий настройку сетевых интерфейсов и маршрутизации при загрузке.
/etc/sysconfig/network — конфигурационный файл, содержащий имя хоста, IP-адрес основного шлюза и IP-адреса основного и вспомогательного DNS-серверов:

Адрес можно добавить на тот же интерфейс, что и IPv4, новый создавать не нужно.

На нашей площадке используется универсальный шлюз fe80::1 .

CentOS

Для работы с IPv6 необходимо добавить следующие директивы в конфигурационный файл /etc/sysconfig/network :

  • NETWORKING_IPV6 — включаем поддержку IPV6.
  • IPV6_DEFAULTDEV — интерфейс по умолчанию.
  • IPV6_DEFAULTGW — gateway по умолчанию.

IP-адрес назначается в конфигурационном файле /etc/sysconfig/network-scripts/ifcfg-* :

Debian/Ubuntu

IP-адрес добавляется на интерфейс в файле /etc/network/interfaces :

Ubuntu 16.04 LTS

От других систем семейства отличается имя интерфейса, вместо eth0 – ens3.

Ubuntu 18.04 LTS

В файл /etc/netplan/50-cloud-init.yaml нужно добавить:

И применить изменения командой netplan apply.

Несколько IP-адресов

Чтобы назначить дополнительные IPv4-адреса на тот же самый интерфейс, необходимо создать виртуальный интерфейс в виде имя_интерфейса:номер, например eth0:0 .

В остальном интерфейс настраивается аналогично физическому.

CentOS

Debian/Ubuntu

Ubuntu 16.04 LTS

Для данной ОС не требуется создавать виртуальный интерфейс, достаточно добавить второй IP-адрес на уже существующий, например:

Ubuntu 18.04 LTS с netplan

В интерфейсе описываются необходимые адреса, роутинг происходит через директиву routes .

Несколько IPv6-адресов можно назначать на один интерфейс без создания виртуального. При этом gateway указывается только один раз. Например:

CentOS

Debian/Ubuntu

Ubuntu 16.04 LTS

Nameservers

Необходимые директивы для nameservers добавляются в конфигурационный файл. Указать можно столько DNS-серверов, сколько необходимо.

CentOS

Ubuntu/Debian

Настройка приватной сети

Для создания приватной сети между боксами необходимо настроить новый интерфейс — он уже добавлен, увидеть его можно в выводе утилиты ip

У боксов без приватной сети только два интерфейса: lo и eth/ens . У боксов с приватной сетью есть ещё один интерфейс eth/ens , изначально он выключен. Чтобы его включить, надо:

Ubuntu 18.04 LTS и старше

Добавить в файл /etc/netplan/50-cloud-init.yaml :

Важно соблюдать количество пробелов как в остальном файле.

Debian

Добавить в файл /etc/network/interfaces.d/50-cloud-init :

CentOS

Создать файл /etc/sysconfig/network-scripts/ifcfg-eth1 :

Вы можете использовать любые IP-адреса из диапазона приватных. Там же можно узнать, какие маски для каких диапазонов лучше использовать.

Проверить работу приватной сети можно с помощью ssh, ping или любых других подходящих утилит:

Настройка mtu на интерфейсе

Параметр mtu нужно менять, если вы пользуетесь индивидуальной защитой от DDoS. В стандарте Ethernet TCP-пакеты разбиты на кадры объемом 1500 байт, но при передаче через GRE-тоннель маршрутизаторы дописывают к кадрам свои 24 байта. Принимающая система оказывается не готова к кадру размером 1524 байт, поэтому мы изменим параметр mtu на интерфейсе, уменьшив его до 1476 байт, чтобы принимающая система спокойно восприняла итоговый кадр в 1500 байт.

Ubuntu 18.04+

Дописываем mtu в конфигурационный файл /etc/netplan/50-cloud-init.yaml сразу после имени интерфейса, например:

Важно соблюдать количество пробелов как в остальном файле.

После чего перезагружаем сетевую службу командой netplan apply.

Debian

Редактируем файл /etc/network/interfaces, добавляя параметр вслед за описанием интерфейса:

Перезагружаем сеть командой systemctl restart networking.

CentOS

Вносим в файл /etc/sysconfig/network строку:

И перезагружаем сетевую службу: systemctl restart network.

ifconfig

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

Формат вызова команды:

Для получения информации, программа ifconfig может вызываться простым пользователем. Файл ifconfig находится в каталоге /sbin , чаще всего при вызове нужно указывать абсолютное путевое имя.

Без параметров программа выводит на экран информацию обо всех активных (находящих в состоянии up ) интерфейсах. Если указано имя интерфейса и отсутствуют опции, выводится информация только о нем.

Просмотр информации об интерфейсе eth0

Формат вывода информации о интерфейсе программой 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.

Назначение IP-адреса 10.0.0.1 первой Ethernet-карте

Назначение IP-адреса 10.0.0.1 первой Ethernet-карте выполняется командой:

Включение интерфейса

Включение добавленного интерфейса выполняется командой:

Маршрутизация (route)

route — утилита для настройки таблицы маршрутизации.

Просмотр таблицы маршрутизации

Вывод совпадает с выводом netstat -r :

Добавление шлюза по умолчанию

Добавление маршрута в локальную сеть

Добавление маршрута в удаленную сеть

Удаление маршрута

Утилита ip

Утилита ip совмещает в себе другие сетевые утилиты и позволяет производить те же самые операции, что и ifconfig, route и arp вместе взятые.

Подробную информацию об утилите можно получить с помощью help :

Разберем вывод команды подробнее.

Блок «Usage» содержит синтаксис утилиты:

В блоке «OBJECT» указаны все доступные объекты:

Часто используемые объекты:

  • address — сетевой адрес на устройстве
  • link— физическое сетевое устройство
  • monitor — мониторинг состояния устройств
  • neigh — ARP
  • route — управление маршрутизацией
  • rule — правила маршрутизации
  • tunnel — настройка туннелирования

«OPTIONS» содержит список доступных опций:

Часто используемые опции:

  • -v — вывод информации об утилите и ее версии
  • -s — включает вывод статистической информации
  • -f — указывает протокол для работы. Если протокол не указан, берется на основе параметров команды. Принимает одно из значений:
    • bridge — . Аналогично опции -B
    • dnet —
    • inet — . Аналогично опции -4
    • inet6 — . Аналогично опции -6
    • ipx —
    • link — означает отсутствие протокола. Аналогично опции -0

    Также при работе с утилитой ip используются различные команды и параметры.

    Команды:

    Если команда не указана, выполняется show .

    Параметры:

    • dev имя_устройства — сетевое устройство.
    • up — включить.
    • down — выключить.
    • llarrr — MAC — адрес.
    • initcwnd — размер окна перегрузки TCP при инициализации.
    • window — размер окна TCP.
    • cwnd — размер окна перегрузки TCP.
    • type — тип.
    • via — подключиться к роутеру.
    • default — маршрут по умолчанию.
    • blackhole — маршрут «черная дыра» — отбрасывать пакеты и не посылать ICMP сообщения о недоступности.
    • prohibit — маршрут «запрета» — отбрасывать пакеты и возвращать ICMP сообщения о запрете доступа.
    • unreachable — маршрут «недостижимый» — отбрасывать пакеты и посылать ICMP пакеты о недостижимости узла.

    Не все команды и параметры доступны при работе с различными объектами. Подробную информацию также можно получить применив «help».

    При выводе help для объекта address блок «Usage» содержит синтаксис различных комбинаций команд и параметров:

    Примеры

    Показать все соединения

    Сокращенный вывод ifconfig без параметров:

    Отображение информации об интерфейсе eth0

    Включение интерфейса eth1

    Вывод всех интерфейсов и IP-адресов

    Установка/удаление IP-адреса для интерфейса eth1

    Отображение маршрута к указанной сети

    Отображение маршрута к указанной сети от указанного интерфейса

    Создание/удаление маршрута

    Создание маршрута по умолчанию

    Создание маршрута к указанной сети

    Как и для утилиты route, команды можно сокращать. Например, ip l тоже самое, что и ip link show .

    Перезапуск сетевых сервисов

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

    Название самого сервиса будет отличаться в зависимости от выбранного дистрибутива, для Ubuntu/Debian это networking, для CentOS — network.

Related Posts