Категория > Новости > Ядерные приколы. Осваиваем необычные фичи канального уровня в Linux - «Новости»

Ядерные приколы. Осваиваем необычные фичи канального уровня в Linux - «Новости»


27-08-2020, 16:03. Автор: Зинаида
Ядро Linux — основа большинства программных маршрутизаторов и файрволов, и неудивительно — количество функций сетевого уровня в нем огромно. Тем не менее в Linux есть ряд полезных и необычных функций для работы с канальным и физическими уровнями, которые часто остаются в тени. Давай попробуем компенсировать этот пробел.

Используем ethtool



Сначала рассмотрим утилиту для общения с сетевыми картами на самых низких уровнях — ethtool.



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



Например, все мы знаем, что MAC-адрес сетевой карты легко поменять.





$ ip link show eth0
2: eth0: mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 00:08:a2:0a:52:cd brd ff:ff:ff:ff:ff:ff



$ sudo ip link set dev eth0 address 00:aa:bb:cc:dd:ee



$ ip link show eth0
2: eth0: mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 00:aa:bb:cc:dd:ee brd ff:ff:ff:ff:ff:ff





С точки зрения ядра, у eth0 теперь новый адрес. Оригинальный адрес остался только в прошивке сетевой карты. В выводе ip его РЅРµ найти, РЅРѕ ethtool способна заглянуть глубже.





$ ethtool --show-permaddr eth0
Permanent address: 00:08:a2:0a:52:cd





Многие сетевые карты поддерживают аппаратное ускорение некоторых функций, например вычисление контрольных сумм пакетов TCP и UDP. Просмотреть полный список функций и их состояние можно командой ethtool --show-features . Обычно все, что поддерживается, включено по умолчанию, но убедиться не будет лишним.



Если ты работаешь без физического доступа к оборудованию, наверняка тебе уже приходилось искать нужный порт. Традиционный метод — потушить порт (sudo ip link set <interface> down) Рё попросить напарника посмотреть, какой РёР· портов потух. РќРѕ РІ СЂСЏРґРµ случаев найти физическое расположение порта можно без ущерба для трафика СЃ помощью команды ethtool --identify <interface>. Она заставляет указанную карту моргать светодиодом, который отвечает за индикацию up/down. Увы, работает не со всеми моделями карт — помни, что бывает и ложноотрицательный результат.



Перейти обратно к новости