Вам надо настроить ip rule и route листы к ним. То есть примерно так: Если пакет приходит на адрес из сети 1, то шлюз будет 1, а если на адрес из сети 2, то шлюз = 2.
(man ip rule, man ip route)
Если ACLами не закрыто и на клиентах с интерфейса 1 прописан маршрут до сети клиентов интерфейса 2 ( и наоборот) то пакеты должны ходить искаропки.
sh run в студию
Между свичами и шлюзом порты в trunk. Порты которые смотрят в сторону клиента - access. На шлюзе под каждый vlan отдельный сабинтерфейс и ipfw для разограничения прав.
Если свичи dlink, то trunk = tagged, access = untagged
Если кратко то: Клиент оплачивает определенное время инета, админ ему даёт логин:пасс, клиент подключается к wifi, авторизация по логину и паролю идёт через web.
При одновременно подключении 2х сетей вам передаются маршруты по умолчанию с обеих шлюзов. Поэтому вам в ручную необходимо настраивать маршрутизацию между сетями.
В данном случае вам необходимо удалить маршрут по умолчанию ведущий через wi-fi роутер и прописать маршрут через него только до локальной сети. Интернет будет работать через 3g, локалка через wifi.
Может будет достаточно перевести на SG300 несколько портов в L2, один транковый в Zyxel, другие аццесс. А на zyxel создать вланы с нужными сетями.
Или же использовать loopback под unnumbered.
Тоесть сети будут делиться на самой циске, и все клиенты будут прописаны на ней же и заворачиваться в loopback который в свою очередь будет отправлять на трафик Zyxel