Чтобы пакеты ходили между сетями А=192.168.1.0/24 и Б=192.168.2.0/24 нужен шлюз, подключенный к обеим этим сетям (двумя и нтерфейсами) и имеющий IP-адреса в обеих этих сетях. Например gwА=192.168.1.251 и gwБ=192.168.2.251.
Чтобы сам шлюз знал, к каким сетям подключен, на нём нужны маршруты:
192.168.1.0/24 dev ethX (без шлюза)
192.168.2.0/24 dev ethY (без шлюза)
(обычно они выставляются автоматически при настройке интерйейса, но мало ли что)
Чтобы шлюз знал, как достичь всех остальных сетей (кроме А и Б), на нём нужен маршрут
0.0.0.0/0 via какой-нить шлюз, находящийся в сети А
Чтобы узлы в сети Б видели саму сеть Б, на них нужен маршрут:
192.168.2.0/24 dev ethX (автоматический интерфейсный маршрут)
Чтобы узлы в сети Б видели сеть А, на них нужен маршрут:
либо 192.168.1.0/24 via gwБ (если нужна только сеть А)
либо 0.0.0.0/0 via gwБ (если через сеть А выход в интернеты)
NB: gwБ находится в сети Б и поэтому виден благодаря интерфейсному маршруту.
Чтобы узлы сети А видели сеть Б, на них нужен маршрут:
192.168.2.0/24 via gwА
NB: gwА находится в сети А и поэтому виден благодаря интерфейсному маршруту.