Ядро Linux — основа большинства программных маршрутизаторов и файрволов, и неудивительно — количество функций сетевого уровня в нем огромно. Тем не менее ряд полез­ных и необыч­ных фун­кций Linux для работы с каналь­ным и физичес­ким уров­нями час­то остаются в тени. Давай попробуем компенсировать этот пробел.
 

Используем ethtool

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

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

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

$ ip link show eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> 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: <NO-CARRIER,BROADCAST,MULTICAST,UP> 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 <interface>. Обычно все, что поддерживается, включено по умолчанию, но убедиться не будет лишним.

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

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


2 комментария

  1. Аватар

    b100s

    23.10.2020 в 21:12

    «В терминологии Ethernet «коммутатор» (switch) и «мост» (bridge) — это синонимы».
    А в какой терминологии это может быть не синонимом?

    • Аватар

      Gordon_freeman

      03.12.2020 в 22:25

      Должен не согласится, различия есть (в основном 3й пункт)
      Difference between switch and bridge:

      S.NO. SWITCH BRIDGE
      1. It is a device which is responsible for channeling the data that is coming into the various input ports to a particular output port which will further take the data to the desired destination. It is basically a device which is responsible for dividing a single network into various network segments.
      2. A switch can have a lot of ports. A bridge can have 2 or 4 ports only.
      3. The switch performs the packet forwarding by using hardware’s such as ASICS hence, it is hardware based. The bridge performs the packet forwarding by using software’s so it is software based.
      4. The switching method in case of a switch can thus be store, forward, fragment free or cut through. The switching method in case of a bridge is store and forward.
      5. The task of error checking is performed by a switch. A bridge cannot perform the error checking.
      6. A switch has buffers. A bridge may not have a buffer.

Оставить мнение