На одном из 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«. Здесь вы можете включать и отключать этот интерфейс:
Вывод командной строки
Теперь покажу вам с помощью каких утилит можно посмотреть на этот интерфейс.
Так как это 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 * * * Вывод довольно длинный, поэтому я его сократил
Сам источник, который дал мне ответ что-же это за интерфейс доступен по этой ссылке.