Macvlans не созданы для работы на беспроводных интерфейсах. Причина в том, что все точки доступа будут отклонять кадры, исходящие от 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/conntrack). Разница между L2 и L3, что позволяет L2 виртуальный интерфейс , чтобы быть устранен с физическим интерфейсом, который означает , что он может иметь адрес в той же подсети, что и физический интерфейс и трафик L2 правильно передается. Вместо этого режим L3 не ретранслирует трафик L2 и требует настройки в качестве маршрутизатора IPv4: разные подсети, необходимо настроить маршруты и т.д. В большинстве случаев больше хлопот, чем стоит.
Между прочим, наличие базового беспроводного интерфейса является почти единственным разумным вариантом использования ipvlans вместо macvlans. Во всех остальных случаях просто придерживайтесь macvlans.