alibek Posted September 28, 2023 На микротике есть внешний интерфейс 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 Вам надо тех клиентов, которых натить отдельно, в 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 Наверное я неправильно выразился. Я не хочу делать много правил, по одному на каждый адрес. Правило у меня одно и оно в принципе работает. Просто алгоритм трансляции выбирает внешний адрес и порт для трансляции случайным образом. Я бы хотел, чтобы он не использовал разные IP-адреса для одного клиента без необходимости (например использованы все возможные порты). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
fractal Posted September 28, 2023 4 часа назад, alibek сказал: Наверное я неправильно выразился. Я не хочу делать много правил, по одному на каждый адрес. Правило у меня одно и оно в принципе работает. Просто алгоритм трансляции выбирает внешний адрес и порт для трансляции случайным образом. Я бы хотел, чтобы он не использовал разные IP-адреса для одного клиента без необходимости (например использованы все возможные порты). А у клиентов которые натятся одна подсеть? Если разные то создать два адрес листа засунуть их подсети в листы и в правиле нат указать source list Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeLL Posted September 28, 2023 Для решения Вашей задачи есть action=same Почитайте что он делает Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted September 28, 2023 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 В 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 Same или netmap. Мы у себя через netmap делаем. Проблем нет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted October 10, 2023 7 часов назад, Saab95 сказал: Если какому-то абоненту нужно жестко сделать привязку к некому внешнему адресу. Мне не нужна жесткая привязка. Мне нужна динамическая привязка — если какое-то соединение абонента транслировалось по какому-то адресу, то и дальнейшие трансляции нужно делать через этот же адрес. same в общем-то именно это и делает. Равномерное распределение трансляций по всему пулу не требуется, хотя было бы неплохо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeLL Posted October 10, 2023 Цитата Оно делает полную ерунду. Равномерно абонентов по имеющемуся пулу адресов не разделяет. Как обычно пернул в воду. Иди сначала прочитай что делает этот action, а потом уже пиши свои комментарии - это во-первых. А во-вторых, никому и не нужно никакого "равномерного распределения". Нужна привязка всех соединений одного абона к одному внешнему, что данный action успешно и выполняет Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted October 10, 2023 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 Выключите его кто-нибудь, он глючит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeLL Posted October 10, 2023 Цитата Этот 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 Вот это "дроч" вместо одной строчки конфига использовать какие-то самодельные скрипты да еще и с внешним управлением. К тому же в описанной логике через час произойдет смена адреса 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 В 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) Под 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 В 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...