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

На одном из Linux серверов я обнаружил сетевой интерфейс ‘enx b03af2b6059f‘, которого вроде недолжно быть. Расскажу что же это такое.















Предпосылки




Выполнив команду ip addr чтобы посмотреть ip адреса на сервере я заметил подозрительный сетевой интерфейс enxb03af2b6059f:




# ip addr | grep enx
6: enxb03af2b6059f: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000




Вначале подумал что случайно внёс его в конфиг /etc/network/interfaces, и на самом деле он не нужен.




Проверил, относится ли он к какому-нибудь сетевому оборудованию с помощью lspci:




# lshw -c network -businfo | grep pci
pci@0000:43:00.0  enp67s0f0        network        82571EB Gigabit Ethernet Controller
pci@0000:43:00.1  enp67s0f1        network        82571EB Gigabit Ethernet Controller
pci@0000:48:00.0  eno1np0          network        BCM57416 NetXtreme-E 10GBase-T RDMA Ethernet Controller
pci@0000:48:00.1  eno2np1          network        BCM57416 NetXtreme-E 10GBase-T RDMA Ethernet Controller




Из вывода вижу что не связан.




Но после удаления этого интерфейса из конфига /etc/network/interfaces и перезагрузки сервера он появился снова. Пришлось разбираться дальше.




Что же это за интерфейс




Оказалось что это виртуальный сетевой интерфейс enx от материнских плат Supermicro. На материнских платах Supermicro серии X12/H12 с функцией RoT (Root of Trust) в операционной системе появляется дополнительный виртуальный сетевой интерфейс. В Linux имя такого интерфейса — enx+MAC (например, enxb03af2b6059f).




Имена сетевых интерфейсов в Linux можете посмотреть здесь.




Виртуальный сетевой интерфейс предоставляется через RNDIS Ethernet через USB шину и обеспечивает функции связи между операционной системой и BMC. Если вы отключите этот интерфейс, то вы не сможете выполнять обновление прошивки с помощью утилит Linux или Windows (Supermicro Update Manager).




Включить или отключить этот интерфейс можно в IPMI. Для этого перейдите по пунктам меню «Configuration / BMC Settings«, затем переключитесь на вкладку «Host Interface«. Здесь вы можете включать и отключать этот интерфейс:




Supermicro BMC Host Interface - сетевой интерфейс enx
Supermicro BMC Host Interface




Вывод командной строки




Теперь покажу вам с помощью каких утилит можно посмотреть на этот интерфейс.




Так как это USB шина то вместо lspci нужно использовать lsusb:




# lsusb -t
 * * *
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
        |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 1: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 4, If 1, Class=CDC Data, Driver=rndis_host, 480M
        |__ Port 2: Dev 4, If 0, Class=Wireless, Driver=rndis_host, 480M
 * * *




На шине 05 есть устройство 4 — Port 2: Dev 4, If 1, Class=CDC Data, Driver=rndis_host, 480M.




Драйвер этого устройства rndis_host:




# lsmod | grep -i rndis
rndis_host             20480  0
cdc_ether              20480  1 rndis_host
usbnet                 45056  2 rndis_host,cdc_ether




Посмотреть на это устройство внимательнее можете с помощью команды lsusb -s <bus>:<dev> -v:




# lsusb -s 005:004 -v

Bus 005 Device 004: ID 0b1f:03ee Insyde Software Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0b1f Insyde Software Corp.
  idProduct          0x03ee
  bcdDevice            3.18
  iManufacturer           1 Linux 3.18.0 with ast_vhub
  iProduct                2 RNDIS/Ethernet Gadget
  iSerial                 0
  bNumConfigurations      2
   * * * 
Вывод довольно длинный, поэтому я его сократил













Сам источник, который дал мне ответ что-же это за интерфейс доступен по этой ссылке.



2022-01-24T13:04:14
Администрирование Linux