LINUX.ORG.RU

iptables

 ,


0

1

Добрый день! Имеются следующие правила:

*nat
:POSTROUTING ACCEPT [593203:42362533]
-A PREROUTING -d x.x.x.x/32 -i enp3s0f1 -j NETMAP --to y.y.y.y/32
-A POSTROUTING -o enp3s0f1 -m set --match-set myips src -m set ! --match-set binat src -j SNAT --to-source z.z.z.z
-A POSTROUTING -s y.y.y.y/32 -o enp3s0f1 -j NETMAP --to x.x.x.x/32
COMMIT

проблема заключается в том, что клиенты у которых NETMAP правила - видят друг друга (по обоим адресам - x.x.x.x и y.y.y.y), а те что просто натируются через SNAT - не видят клиентов с правилами NETMAP (видят их только с адресом y.y.y.y, а x.x.x.x не пингуется) - пакеты улетают по дефолтовому маршруту, а обратно не летят (есть подозрение что вышестоящий маршрутизатор косячит, к которому нет доступа), как вот сделать например, что пакеты улетающие адресом NAT z.z.z.z не улетали по дефолтовому маршруту а улетали на правила NETMAP

★★★

пакеты улетают по дефолтовому маршруту, а обратно не летят

так посмотри адрес источника такого пакета tcpdump-ом. Если он не роутится через тебя или он из твоей локалки и не маскарадится, то почему он должен возвращаться ?

видят их только с адресом y.y.y.y, а x.x.x.x не пингуется

Если получается ассиметричный роутинг где обратные пакеты идут мимо роутера (выполнившего nat), то оно не будет работать.

улетающие адресом NAT z.z.z.z не улетали по дефолтовому маршруту а улетали на правила NETMAP

в смысле «дефолтовому маршруту»? Правила допиши и будет тебе счастье. Но учти, что в одной цепочке можно сделать nat для соединения только 1 раз.

vel ★★★★★ ()
Ответ на: комментарий от vel

так посмотри адрес источника такого пакета tcpdump-ом. Если он не роутится через тебя или он из твоей локалки и не маскарадится, то почему он должен возвращаться ?

фича в том что этот пакет натируется вполне нормально и вылетает он с адресом указанным в правиле SNAT, дальше он должен уйти в дефолтовый маршрут (который указан на этом нате - вышестоящий маршрутник), у него прописана сеть к которой относится адрес x.x.x.x. Но по каким-то причинам вышестоящий маршрутизатор не отправляет этот пакет мне назад.

init_ ★★★ ()
Ответ на: комментарий от init_

Я правильно понял, что ты передаешь роутеру пакет с адресом назначения x.x.x.x , а у роутера есть маршрут для него, который указывает на тебя?

vel ★★★★★ ()
Ответ на: комментарий от vel

причину мы разобрали... оказывается все было печально из-за того что SNAT был на адресе, который физически висел на интерфейсе. Решили так - взяли другой адрес из сети, который был просто смаршрутизирован на эту машину и сделали ему SNAT

init_ ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.