Macvlans не створені для роботи над бездротовими інтерфейсами. Причина полягає в тому, що всі AP-файли будуть відхиляти кадри, що походять з MAC-адреси, яка не автентифікується з ними, тоді як вся суть macvlans полягає саме в наданні нових підінтерфейсів із власною MAC-адресою, відмінною від фізичної інтерфейсу. Таким чином, не дивно, що при спробі включити шлюз за замовчуванням в інтерфейсі macvlan, який автоматично руйнує оригінальний шлюз в інтерфейсі wlan0 (пам’ятайте правило:) one default gateway per routing table only
, ви залишаєтесь без з'єднання.
Щоб обійти цю проблему, вам слід скористатися ipvlan , який використовує mac-адресу фізичного інтерфейсу. Тут ви знайдете докладний приклад того, як його налаштувати, приклад, на який я думаю, підійде вам просто чудово.
Ви використовуєте його наступним чином, припускаючи, що ваш інтерфейс Wi-Fi називається wlan0 :
ip link add link wlan0 ipvl0 type ipvlan mode l2
ip link set dev ipvl0 up
ip addr add 192.168.73.201/24 dev ipvl0
(моя локальна мережа 192.168.73.0/24, змінити, якщо потрібно, щоб адаптувати її до вашого випадку), а також ви можете змінити шлюз за замовчуванням, щоб бути доступним у новому віртуальному інтерфейсі замість старого фізичного:
ip route del default
ip route add default via 192.168.73.1 dev ipvl0 src 192.168.73.201 metric 1
Єдиний примітний коментар - це те, що я використовував режим L2 : ipvlans має три режими роботи, L2, L3, L3S (неважливо, як правило, вони мають два режими, є також L3S, який схожий на L3, але дозволяє працювати з IPTables / трасувальника ). Різниця між L2 і L3, що дозволяє L2 віртуальний інтерфейс , щоб бути містком з фізичним інтерфейсом, який означає , що він може мати адресу в тій же підмережі, що і фізичний інтерфейс і трафіку L2 правильно передається. Режим L3 замість робить НЕретрансляцію трафіку L2 і потребує конфігурації як маршрутизатор IPv4: різні підмережі, необхідність налаштування маршрутів тощо. Більше клопоту, ніж варто, більшість разів.
Між іншим, наявність базового бездротового інтерфейсу - це майже єдиний розумний випадок використання ipvlans замість macvlans . У всіх інших випадках просто дотримуйтесь маквлани .