Ты моего вопроса не понял... Это печально.
Давай так. Я покажу, как решать. Один раз. Дальше - сам.
Связь возможна только по указанной цепочке маршрутизаторов.
Пакет из {192.168.1.0/24} может быть отправлен в {192.168.2.0/24} (на маршрутизатор 192.168.2.2). Решение для первого маршрутизатора - заводим маршрут по умолчанию на 192.168.2.2 через eth1 и в общем-то всё. {1.0/24} и {2.0/24} маршрутизируются по стандартным правилам, {3.0/24} и {4.0/24} доступны через {2.0/24} по дефолтному гейтвею. (как вариант - руками прописать конкретно маршруты на эти сети, без дефолта)
Пакет из {192.168.2.0/24} может быть отправлен в две сети. Задачей не оговаривается маршрутизация в промежуточных сетях, но просто для проформы: возможны два решения задачи. Если принимаем, что для всех сетей (def gw .1), то достаточно будет на первом маршрутизаторе (который объединяет {1.0/24} и {2.0/24}), указать (проверить, что существует) маршрут на {1.0/24} через eth0.
Для второго маршрутизатора прописать маршруты: на {1.0/24} - на 192.168.2.1 через eth0 и на {4.0/24} - на 192.168.3.2 через eth1.
Для третьего решение аналогично первому, маршруты на {2.0/24} и {1.0/24} - на 192.168.3.1 через eth0.
SNAT/MASQUERADE при такой системе нигде не надо использовать - маршруты сквозные.