Как определить логический тип сетевого устройства linux

с логическим я имею в виду все законные в команде ip link как, например:

 ip link add link dum0 name dum0.200 type vlan protocol 802.1Q id 200 

где логическим типом будет «vlan». Все допустимые типы – это цитата из справочной страницы:

vlan | veth | vcan | манекен | ifb | macvlan | macvtap | может | мост | ipoib | ip6tnl | ipip | сидеть | vxlan | gre | gretap | ip6gre | ip6gretap | ВТИ

Обратите внимание, что это явно не физический тип устройства (например, ethernet, wifi, ppp и т. Д.), Заданный в этом вопросе , который содержит драгоценный камень ссылки на физический тип, который заставил меня проверить его:

 find /sys/class/net ! -type d | xargs --max-args=1 realpath | while read d; do b=$(basename $d) ; n=$(find $d -name type) ; echo -n $b' ' ; cat $n; done dum0.200 1 dum0.201 1 dum1.300 1 dum1.301 1 dummy0 1 ens36 1 ens33 1 lo 772 dum0 1 dum1 1 wlan0 1 

Но, по-видимому, он считает, что оба фиктивных, vlan и wlan устройства имеют тип ARPHRD_ETHER.

Знает ли кто-нибудь больше? Заранее спасибо.

  • Сеть действует безумно ... Как я могу узнать, есть ли это аппаратное обеспечение?
  • Ошибка «ссылка не готова», исчезающие сетевые интерфейсы
  • Fedora, альтернативная команде post-up
  • как использовать shell-скрипт с snmpwalk с OID, чтобы иметь идентификатор vlan, имя vlan, порт принадлежит vlans в таблице Excel
  • Тестирование диапазона DHCP; несколько адресов на интерфейс
  • Как найти активный сетевой интерфейс из пользовательского пространства?
  • Медленный пинг еще быстрее, если удаленное устройство работает одновременно (по локальной сети)
  • Не удается подключить интерфейсы wifi на Kali Linux
  • One Solution collect form web for “Как определить логический тип сетевого устройства linux”

    Существует способ обхода всех доступных типов и отображение всех интерфейсов для каждого типа (используя ip link show type <type> ). Из этого можно собрать интерфейсы для всех типов, а затем проанализировать интерфейс, о котором нужно знать. Это не изящно, но работает:

    Использование bash:

     #!/bin/bash # Arguments: $1: Interface ('grep'-regexp). # Static list of types (from `ip link help`): TYPES=(bond bond_slave bridge dummy gre gretap ifb ip6gre ip6gretap ip6tnl ipip ipoib ipvlan macvlan macvtap nlmon sit vcan veth vlan vti vxlan) iface="$1" for type in "${TYPES[@]}"; do ip link show type "${type}" | grep -E '^[0-9]+:' | cut -d ':' -f 2 | sed 's|^[[:space:]]*||' | while read _if; do echo "${_if}:${type}" done | grep "^${iface}" done 

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

    Для примера dum0.200 beeing типа vlan по ссылке eth0 (созданный с помощью ip link add link eth0 name dum0.200 type vlan protocol 802.1Q id 200 ), выход будет dum0.200@eth0:vlan , что указывает на то, что это тип vlan . Обратите внимание, что @eth0 происходит из ip link show и может быть проанализирован, если хотите.

    Поскольку аргумент для этого скрипта интерпретируется как grep -regexp, указание ничего не отображает все, что ip link show type <type> , или указывает только префикс, перечисляет некоторые и т. Д.

    Interesting Posts

    Проблема Garted Linux Mint 18.1

    Найдите, где используются индексные дескрипторы

    1: 1 NAT с несколькими идентичными локальными сетями

    Как правильно отображать китайские символы на удаленной машине Red Hat?

    Как использовать дизассемблер AIX?

    Требует ли CentOS 5.9 Grub для работы на аппаратном RAID?

    Почему я не могу импортировать пул ZFS без разделения диска данных на fdisk?

    введите значение $ LINE вместо «$ LINE»

    Настройка туннеля SSH в существующем соединении из сценария

    systemd-timesyncd.service неактивен в Arch на VMWare

    Как я могу сделать так, чтобы у всех новых пользователей, созданных в будущем, был скопирован определенный файл?

    Постоянно отображать строку состояния меньше

    таинственный скрипт awk соединяет строки

    Сделать пользователя администратором группы без редактирования вручную / etc / gshadow

    Как вернуть несколько записей DNS A в определенном порядке с помощью bind9?

    Linux и Unix - лучшая ОС в мире.