Изменение MAC-адреса интерфейса без его отключения

357
user8070445

Все примеры, которые я вижу в интернете для изменения mac-адреса интерфейса в linux, сначала отключают интерфейс, а затем обновляют mac-адрес и, наконец, поднимают интерфейс. Но я вижу, что mac можно менять, не отключая интерфейс. Это правильный способ сделать, не выключая интерфейс. Это может вызвать некоторые проблемы?

0
Как именно вы видите, что MAC-адрес может быть изменен без отключения I? Пожалуйста, объясните это в своем вопросе. C0deDaedalus 6 лет назад 0
@ C0deDaedalus Во всех примерах я вижу что-то вроде этого: «ifconfig eth0 down», затем «ifconfig eth0 hw ether 00: 80: 48: BA: d1: 30» и, наконец, «ifconfig eth0 up». Но если я даю «ifconfig eth0 hw ether 00: 80: 48: BA: d1: 30» без каких-либо операций ifconfig, то это работает. Итак, я был обеспокоен, могу ли я использовать эту команду напрямую, или мне нужно сделать ifconfig вниз и вверх для интерфейса. user8070445 6 лет назад 0
@ user8070445 Что вы на самом деле пытаетесь сделать, что включает в себя изменение MAC-адреса? Alex 6 лет назад 0
@ Алекс - это виртуальный интерфейс KNI dpdk, мне нужно установить mac этого интерфейса KNI таким же, как и для порта, который выбран в качестве туннельного порта. Поскольку туннельный порт можно динамически менять, следовательно, мне нужно соответствующим образом изменить макинтош этого интерфейса KNI. user8070445 6 лет назад 0
@ user8070445, я попробовал эту Команду, и она говорит: ** SIOCSIFHWADDR: устройство или ресурс занят ** - [вам может потребоваться отключить интерфейс] (https://imgur.com/a/lsn14) C0deDaedalus 6 лет назад 0
@ C0deDaedalus Я не получаю эту ошибку. Любая идея, почему эта ошибка выбрасывается? user8070445 6 лет назад 0

1 ответ на вопрос

0
Alex

Вы уверены, что вам нужно изменить MAC-адрес? Документация для того, что вы пытаетесь сделать гласит:

MAC-адрес может быть реальным MAC-адресом NIC или случайным.

Для решения, над которым я работаю, требуется, чтобы он был того же Mac, что и реальный порт nic, выбранный в качестве туннельного порта. user8070445 6 лет назад 0
@ user8070445 Звучит так, будто он не будет портативным, так что это не имеет смысла. Уверены ли вы? Я предлагаю почистить документацию немного больше, поскольку она, похоже, не согласна с вами. Alex 6 лет назад 0
Как это отвечает на вопрос (ы)? Kamil Maciorowski 6 лет назад 2
@KamilMaciorowski Единственное, что лучше, чем рассказывать, как сделать что-то, что звучит как хак, - это узнать, что вам на самом деле не нужно это делать; документация предполагает, что это действительно так, отсюда и мое предложение. Alex 6 лет назад 0
@ Алекс Предположим, у меня есть сервер ISC DHCP, работающий в пространстве Linux, который прослушивает виртуальный интерфейс KNI dpdk для назначения IP-адреса клиентам за туннелем. Следовательно, мне нужен тот же MAC-адрес на моем туннельном порту и интерфейс KNI для разрешения ARP между клиентом за туннелем и сервером dhcp, слушающим на интерфейсе KNI. user8070445 6 лет назад 0
@ user8070445 Даже если вы [связываете это] (http://dpdk.org/doc/guides/linux_gsg/linux_drivers.html#linux-gsg-binding-kernel)? Alex 6 лет назад 0
@Alex KNI виден как обычный интерфейс linux, а реальные никель-порты привязаны к пространству dpdk. user8070445 6 лет назад 0