ZaLinux.ru

Почему при смене MAC-адреса в VirtualBox пропадает подключение (РЕШЕНО)

Виртуальная машина, после смены MAC-адреса eth0 не работает подключение. При смене лишь трёх последних октетов ситуация такая же. Перезагрузка модема результатов не даёт, фильтрации по MAC-адресам нет. Почему это происходит и как это исправить?

VirtualBox не поддерживает изменение MAC-адреса внутри гостевой виртуальной машины.

«Официальный» метод работы — изменить адрес в настройках виртуальной машины, когда гостевой компьютер полностью выключен.

Информация о гостевых MAC-адресах генерируется физическим оборудованием, и в данном случае это сетевой адаптер VirtualBox.

Если после этого гостевая машина не ведёт себя должным образом, вам просто нужно удалить файл "/etc/udev/rules.d/70-persistent-net.rules" и перезагрузиться, чтобы гость мог сгенерировать его снова, или, если хотите, отредактируйте его (это по-прежнему требует перезагрузки).

VirtualBox использует оборудование на хосте и предоставляет MAC-адрес для гостя, как если бы он был в металле. Но возникает резонный вопрос, ведь на физическом компьютере MAC-адрес точно также жёстко прошит в сетевой карте и на ней невозможно его изменить, но при этом Linux поддерживает смену MAC-адреса на произвольные и сеть работает нормально, почему такая разница?

И, между прочим, смена MAC-адреса в виртуальной машине обрывает Интернет-подключение только для проводного интерфейса. Для беспроводных сетевых интерфейсов Wi-Fi (подключённых по USB) смена MAC-адреса не ведёт ни к каким проблемам, они работают нормально, подключение к сети присутствует.

Возможных причин такого поведения две:

1. Какой бы MAC-адрес не был прошит в сетевой карте, конечное решение, принимать или не принимать пакет, делает ядро операционной системы. Это в случае физического компьютера. В случае виртуального компьютера, это решение за программой VirtualBox, которая может быть не в курсе, что именно происходит в виртуальной машине и что она поменяла MAC-адрес. Поэтому VirtualBox не знает о новом MAC-адресе и не пересылает на него Ethernet кадры.

2. Отличия проводных и беспроводных сетей очевидны: в беспроводных сетях радиоволны распространяются свободно и каждое устройство в пределах досягаемости имеет доступ к абсолютно всем передаваемым кадрам. Что касается проводной сети, то отправитель пересылает Ethernet кадры на определённый порт (в смысле на сетевой порт устройства). То есть возможно, что данные просто не отсылаются отправителем на новый MAC-адрес, поскольку он ничего не знает о нём.

Тем не менее некоторые пользователи написали, что им удалось заставить работать проводной интерфейс в виртуальной машине после смены MAC-адреса — для этого они перевели его в неразборчивый режим. У меня этот способ не сработал (сеть по-прежнему недоступна), но вы можете попробовать самостоятельно (замените имя интерфейса eth0 на своё):

sudo macchanger -s eth0 # проверяем текущий MAC-адрес
sudo macchanger -r eth0 # меняем MAC-адрес на случайный
sudo ip link set dev eth0 promisc on # переводим сетевой интерфейс в неразборчивый режим
ping 8.8.8.8 # проверяем, работает ли сеть
# sudo macchanger -p eth0 # возвращаем старый MAC-адрес если сеть не работает

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

Команды для смены MAC-адреса Wi-Fi карты (замените имя интерфейса wlan0 на своё):

sudo ip link set dev wlan0 down # это обязательно
sudo macchanger -s wlan0 # проверяем текущий MAC-адрес
sudo macchanger -r wlan0 # меняем MAC-адрес на случайный
sudo ip link set dev wlan0 up # это обязательно
# sudo macchanger -p wlan0 # если нужно, возвращаем старый MAC-адрес

Смотрите также статью «Как поменять MAC-адрес в Linux, как включить и отключить автоматическую смену (спуфинг) MAC в Linux».

Рекомендуемые статьи:

1 Комментарий

  1. Vladimir

    Блин столько времени мучался, пока не прочем Вашу статью, как же я Вам БЛАГОДАРЕН

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *