Создайте виртуальный сетевой интерфейс с помощью команды iproute2 "ip link" с поддельным MAC-адресом

Создайте виртуальный сетевой интерфейс с помощью команды iproute2 "ip link" с поддельным MAC-адресом

Как создать виртуальный интерфейс, аналогичный следующей ifconfigкоманде?

$ sudo ifconfig eth1 hw ether 00:01:02:aa:bb:cc  
SIOCSIFHWADDR: No such device  

Это не работает. Я хочу задать MAC-адреса, чтобы проверить конфигурацию моего DHCP-сервера.

Как мне это сделать с помощью iproute2пакета, используя команду ip link?

$ sudo ip link add type veth  

Это работает, но случайным образом назначает MAC-адрес. Это все еще полезно, но я хотел бы протестировать свой dhcpdсервер с некоторыми определенными MAC-адресами, чтобы увидеть, как он обрабатывает классы, которые я настроил.

Моя текущая установка 1 :

$ ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 60:eb:69:1b:a0:88 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.93/24 brd 172.16.0.255 scope global eth0
    inet6 fe80::62eb:69ff:fe1b:a088/64 scope link 
       valid_lft forever preferred_lft forever
7: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
8: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 3a:50:38:2e:24:c4 brd ff:ff:ff:ff:ff:ff

[1]: Обратите внимание, что эта настройка не является результатом выполнения вышеуказанных команд. В частности, это ip link add type vethпривело бы к созданию пары veth1@veth2/, veth2@veth1пронумерованной таким образом, поскольку veth0существует.

решение1

Я хочу настроить MAC-адреса для проверки конфигурации моего DHCP-сервера.

Есть (по крайней мере?) два способа, которыми вы можете этого добиться.

Самый простой и понятный,но очень рискованный способ, заключается в изменениифизического интерфейса. Однако, чтобы сделать этовам придется убрать интерфейстак что это не самый безопасный способ, и, конечно,очень рискованный способ при удаленной работе! Если у вас есть физический доступ к хосту или что-то подобное, это может быть вариантом.

Более безопасный способ — определитьlink на вашем физическом интерфейсе с правильным mac-адресом. Вы всегда можете изменить этот mac-адрес, используя команду, похожую на ту, которую вы использовали бы для изменения mac-адреса вашего физического интерфейса. Это удобно для тестирования нескольких пар IP/MAC без необходимости создания/удаления множества интерфейсов, например.

Я говорю «более безопасно», потому что в зависимости от мер безопасности в вашей сети вы рискуете потерять соединение также и с macvlan-линком, если, например, ваша сеть запрещает использование другого mac-адреса на вашем физическом соединении. В некоторых случаях сетевое устройство, к которому подключен ваш хост, может посчитать, что вы нарушаете правила безопасности, и отключить соединение.

Для следующих команд вам понадобитсяутилиты под linux.

ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ ТЕКСТ ВЫШЕ, ПРЕЖДЕ ЧЕМ ИСПОЛЬЗОВАТЬ СЛЕДУЮЩИЕ КОМАНДЫ НА УДАЛЕННЫХ ХОСТАХ!

Чтобы добавить ссылку macvlan, вы можете использовать:

ip link add link eth0 type macvlan

Интерфейс будет назван так, macvlanXгде Xпервая цифра — это то же самое, что и интерфейс с таким именем, поскольку его не существует.

Вы можете назвать интерфейс ( vif0например, to) при создании, используя что-то вроде

ip link add name vif0 link eth0 type macvlan

иметь интерфейс с именем vif0.

После того, как у вас есть интерфейс, вы можете изменить его mac-адрес ( 00:11:22:33:44:55например, на ), используя:

ip link set address 00:11:22:33:44:55 dev macvlan0

Эту же команду можно использовать для изменения mac-адреса других интерфейсов. Это та, которую вы можете использовать для изменения mac-адреса вашего физического соединения.

Конечно, вы можете добавить ссылку macvlan и задать ее адрес одним движением:

ip link add name vif0 address 00:11:22:33:44:55 link eth0 type macvlan

Не забудьте поднять интерфейс после настройки mac-адреса. С именем интерфейса vif0:

ip link set dev vif0 up

Обратите внимание, что некоторые части этих команд являются опциями и могут быть размещены в разных порядках, другие являются частью синтаксиса и должны быть размещены в правильном месте. Более того, некоторые части могут быть опущены при условии, что это не повлияет на значение 1 . В приведенной выше команде, например, devможет быть опущен.

Тип macvlan по умолчанию — VEPA, который предотвращает прямую связь между физическим и виртуальным интерфейсом. Он должен подходить для этого варианта использования. Доступны и другие режимы, см.глава о macvlan в этой книге RedHat "Введение в интерфейсы Linux для виртуальных сетей".

Надеюсь, это поможет... ...кому-нибудь еще, кто будет здесь проходить.


1: его нельзя пропустить, если у вас возникла (очень) плохая идея дать имя интерфейсу, devнапример.

решение2

Попытался ли ты...

ip link add type veth addr 00:01:02:aa:bb:cc

или

ip link set dev veth0 addr 00:01:02:aa:bb:cc

решение3

Создайте интерфейс VLAN ip link add name ${имя интерфейса VLAN} link ${имя родительского интерфейса} type vlan id ${тег} Примеры: ip link add name eth0.110 link eth0 type vlan id 110

http://baturin.org/docs/iproute2/#Создать%20a%20VLAN%20interface

Связанный контент