Прежде всего, вы активируете rp_filter
, а не деактивировать его (чтобы деактивировать, вам нужно установить его на ноль).
Информация о фильтрации обратного пути.
На один вопрос можно легко ответить: без маскировки маршрутизатор назначения видит исходный IP-адрес B, но не имеет правильного маршрута для отправки ответа. Из-за этого и фильтрации обратного пути пакет отбрасывается.
Во-вторых, вы должны различать брандмауэр и брандмауэр переадресации. Один предназначен для пакетов, у которых один из интерфейсных IP-адресов имеет вид dst / src ip (что означает исходящий от / идущий к устройству!), а другой предназначен для пакетов, которые просто проходят через устройство.
Так что же происходит? Ваша CentOS видит пакет с IP-адресом источника B, IP-адресом назначения A и пытается его переслать. Для этого он просматривает свою таблицу маршрутизации — маршрут активен, все пакеты, предназначенные для пункта назначения А, должны проходить через маршрутизатор Z.
Теперь вступает в силу маскировка - IP-адрес источника B заменяется на Y, и пакет пересылается на Z - все еще с IP-адресом назначения A!
Я могу только догадываться, что делает брандмауэр - вам нужно опубликовать полный набор правил брандмауэра для полной картины - но я предполагаю, что вы путаете «маршрутизацию через Z» с «пунктом назначения Z». Последний, вероятно, будет сброшен, первый - нет.
Пожалуйста, опубликуйте полный набор правил брандмауэра для получения окончательного ответа!