alibek Posted September 28, 2023 · Report post На микротике есть внешний интерфейс A.A.A.101/25. Если настроить srcnat через этот интерфейс, то все работает. Но я хочу натить клиентов через A.A.A.224/28. Сделал так. Задал в правиле action=src-nat to-addresses=A.A.A.224/28. Прописал на внешнем интерфейсе дополнительно A.A.A.224/28. На бордере прописал маршрут A.A.A.224/28 через A.A.A.101. Вроде бы все работает. Но у одного и того же клиента при открытии какой-нибудь интернет-странице в списке трансляций могут быть разные IP-адреса. Например одна сессия натится через A.A.A.236:1355, и тут же другая натится через A.A.A.239:1365. Как-то это нехорошо. Можно как-то сделать так, чтобы для одного клиента трансляции группировались в одном внешнем IP? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted September 28, 2023 · Report post Вам надо тех клиентов, которых натить отдельно, в FW- MANGLE засунуть в прероутинг с маркировкой, и в IP-ROUTE сделать правило 0.0.0.0/0 для этой марки с шлюзом выбранной подсети. Не забывайте также, что порядок правил в NAT важен. Лучше всего жестко делить клиентов по признакам interface/address list в правилах SRC-NAT, тогда не в свое правило они просто не будут попадать Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted September 28, 2023 · Report post Наверное я неправильно выразился. Я не хочу делать много правил, по одному на каждый адрес. Правило у меня одно и оно в принципе работает. Просто алгоритм трансляции выбирает внешний адрес и порт для трансляции случайным образом. Я бы хотел, чтобы он не использовал разные IP-адреса для одного клиента без необходимости (например использованы все возможные порты). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
fractal Posted September 28, 2023 · Report post 4 часа назад, alibek сказал: Наверное я неправильно выразился. Я не хочу делать много правил, по одному на каждый адрес. Правило у меня одно и оно в принципе работает. Просто алгоритм трансляции выбирает внешний адрес и порт для трансляции случайным образом. Я бы хотел, чтобы он не использовал разные IP-адреса для одного клиента без необходимости (например использованы все возможные порты). А у клиентов которые натятся одна подсеть? Если разные то создать два адрес листа засунуть их подсети в листы и в правиле нат указать source list Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeLL Posted September 28, 2023 · Report post Для решения Вашей задачи есть action=same Почитайте что он делает Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted September 28, 2023 · Report post 1 час назад, fractal сказал: и в правиле нат указать source list Да не в этом проблема. А в том, что у клиента может меняться внешний IP. 49 минут назад, DeLL сказал: Для решения Вашей задачи есть action=same Да, похоже на то. Спасибо, почитаю. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted October 9, 2023 · Report post В 28.09.2023 в 18:52, DeLL сказал: Для решения Вашей задачи есть action=same Почитайте что он делает Оно делает полную ерунду. Равномерно абонентов по имеющемуся пулу адресов не разделяет. Если какому-то абоненту нужно жестко сделать привязку к некому внешнему адресу. То достаточно сделать для него уникальное правило НАТ и разместить выше основного. Если же IP адреса не на логических интерфейсах, то прописать дополнительно маршрут с метрикой и промаркировать трафик с серых адресов этого абонента. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AKim Posted October 9, 2023 · Report post Same или netmap. Мы у себя через netmap делаем. Проблем нет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted October 10, 2023 · Report post 7 часов назад, Saab95 сказал: Если какому-то абоненту нужно жестко сделать привязку к некому внешнему адресу. Мне не нужна жесткая привязка. Мне нужна динамическая привязка — если какое-то соединение абонента транслировалось по какому-то адресу, то и дальнейшие трансляции нужно делать через этот же адрес. same в общем-то именно это и делает. Равномерное распределение трансляций по всему пулу не требуется, хотя было бы неплохо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeLL Posted October 10, 2023 · Report post Цитата Оно делает полную ерунду. Равномерно абонентов по имеющемуся пулу адресов не разделяет. Как обычно пернул в воду. Иди сначала прочитай что делает этот action, а потом уже пиши свои комментарии - это во-первых. А во-вторых, никому и не нужно никакого "равномерного распределения". Нужна привязка всех соединений одного абона к одному внешнему, что данный action успешно и выполняет Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted October 10, 2023 · Report post 5 часов назад, DeLL сказал: Нужна привязка всех соединений одного абона к одному внешнему, что данный action успешно и выполняет Можно уточнить каким же образом? Вы сами тестировали досконально его работу? Допустим есть 10 адресов и 10 абонентов. Да, чего простого - на каждый адрес по абоненту и все работает. Теперь представьте варианты, те же 10 адресов, но сейчас абонентов 500, через час 900, еще через час 200, а потом сразу 1000. Это активных, а сами абоненты могут как оставаться активными, так и выключаться, то есть ранжирование из общей массы, например 2000. Этот same равномерно и постоянно привязку не делает. У абонентов изменяются внешние IP адреса. 5 часов назад, alibek сказал: Мне нужна динамическая привязка — если какое-то соединение абонента транслировалось по какому-то адресу, то и дальнейшие трансляции нужно делать через этот же адрес. У нас НАТ на каждый адрес привязан через SRC-NAT. Каждый абонентский IP через PPC попадает в свой адрес лист, далее в нем и находится. После все время этот абонент и работает с указанного адреса. Например есть стандартный механизм этого PPC - при появлении IP адреса абонента добавить его в свой адрес лист на некоторое время, например 1 час. А можно поставить и сутки, и больше. Кроме всего, не забывайте и про внешнее управление. Когда через SSH периодически запрашивать все списки адресов, смотреть есть ли перекосы по количеству абонентов, и отключать из работы правила по добавлению в те списки, где много абонентов. Тогда новые активные абоненты в эти списки попадать не будут. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted October 10, 2023 · Report post Выключите его кто-нибудь, он глючит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeLL Posted October 10, 2023 · Report post Цитата Этот same равномерно и постоянно привязку не делает. У абонентов изменяются внешние IP адреса. А теперь еще раз - иди читай сначала! для тугих могу дать ссылку https://help.mikrotik.com/docs/display/ROS/NAT и если лень искать - процитирую: Цитата same - gives a particular client the same source/destination IP address from a supplied range for each connection. This is most frequently used for services that expect the same client address for multiple connections from the same client Думаю переводчиком все умеют пользоваться. А если из личного опыта - последний октет IP он оставляет неизменным после НАТа, если такой доступен в пуле Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vurd Posted October 12, 2023 · Report post Вот это "дроч" вместо одной строчки конфига использовать какие-то самодельные скрипты да еще и с внешним управлением. К тому же в описанной логике через час произойдет смена адреса 100%. Бред полный, используйте same, это аналог, а скорее прямая функция из iptables -j SNAT --persistent Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted October 12, 2023 · Report post В 10.10.2023 в 21:20, DeLL сказал: А если из личного опыта - последний октет IP он оставляет неизменным после НАТа, если такой доступен в пуле А если пул, 32 или 64 адреса, как будет? Еще раз напишу, same равномерно адреса не распределяет, постоянную привязку не делает, у абонентов изменяются внешние IP адреса. Мониторинга или отладки никакой нет, т.к. если идет 10000 разных адресов на НАТ, вообще не ясно кто куда и как идет. При разделении по адрес листам всегда видно где абонент находится. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AKim Posted October 20, 2023 (edited) · Report post Под 20т абонентов используется /24 сетка через netmap. На несколих натах она порезана на /27. Можешь сколько угодно рассуждать и что-то доказывать , работает все, обращений никаких , смены частой ip тоже нет. Смены ip в пределах одной сессии вообще нет. Edited October 20, 2023 by AKim Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted October 23, 2023 · Report post В 20.10.2023 в 06:40, AKim сказал: Под 20т абонентов используется /24 сетка через netmap. Разве netmap и same одно и то же? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...