Не всегда отрабатывает NAT

Тема в разделе "Вопросы начинающих", создана пользователем vasilevkirill, 29 апр 2015.

  1. vasilevkirill

    vasilevkirill Участник

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

    routerboard: yes
    model: 2011UAS
    current-firmware: 3.22
    upgrade-firmware: 3.22

    Запустили -> Обновили -> Сбросили(без восстановления дефотной конфигурации) -> Итог голый микротик.
    Адреса
    # ADDRESS NETWORK INTERFACE
    0 172.17.9.1/24 172.17.9.0 bridge-Local
    1 192.168.252.1/24 192.168.252.0 bridge-wifi-guest
    2 10.1.0.9/22 10.1.0.0 ether7
    -----------------------------------------
    NAT всего одно активное правило
    [admin@MT-ROOT-900] /ip firewall nat> pr
    Flags: X - disabled, I - invalid, D - dynamic

    0 chain=srcnat action=masquerade to-addresses=10.1.0.9
    src-address=!172.17.9.0/24 out-interface=ether7 log=no log-prefix=""
    -----------------------------------------
    ether7 - это линк до вышестоящего маршрутизатора, сеть 172.17.9.0/24 должна прийти без NAT, а всё остальное, у всего остального трафика src адрес должен подменяться на 10.1.0.9
    трафик ходит но не весь!
    сразу скажу что пробовал описывать конкретно каждую сеть src-address=192.168.250.0/24
    Также пробовал использовать именно src-nat, а не masquerade.

    Суть да дела, ближе к вопросу
    когда я в фильтрах создаю следующее правило

    Flags: X - disabled, I - invalid, D - dynamic
    0 chain=forward action=log connection-nat-state=!srcnat
    src-address=!172.17.9.0/24 out-interface=ether7 log=no log-prefix=""
    В логах начинаются сыпаться месаджи о трафике.

    Получается, что НАТ отрабатывает частично.
    какую либо закономерность в трафике, я не увидел.

    как пример что я вижу
    apr/29 01:19:44 firewall,info forward: in:bridge-wifi-guest(eo32) out:ether7, src-mac a0:a8:cd:d5:4f:8a, proto TCP (SYN), 192.168.252.206:55104->188.166.28.28:21, len 52
    apr/29 01:19:47 firewall,info forward: in:bridge-wifi-guest(eo32) out:ether7, src-mac a0:a8:cd:d5:4f:8a, proto TCP (SYN), 192.168.252.206:55105->188.166.28.28:21, len 52
    apr/29 01:19:58 firewall,info forward: in:bridge-wifi-guest(eo32) out:ether7, src-mac a0:b4:a5:cb:7c:e6, proto UDP, 192.168.252.235:51487->8.8.8.8:53, len 60

    понятно что TCP так и останется в SYN, так как маршрутизатор за ether7 ожидает только трафик с 10.1.0.9 или 172.17.9.0/24.

    прошивка была 6.25 попробовал все поочередно. ситуация так и не изменилась. сейчас прошивка последняя.
     
    Последнее редактирование: 29 апр 2015
  2. Илья Князев

    Илья Князев Администратор Команда форума

    Кирилл.
    Во первых логично все-таки просто исключить 172.17.9.0/24 из NAT правилом Accept
    Т.е. сверху поставить правило
    chain=src-nat
    dst-address=172.17.9.0/24
    Action=accept
    А уже под ним ставить masquerade.
    В вторых, при большом количестве подключений, может переполнятся Connection Tracker.
    Тогда надо делать две вещи.
    1. Тюнинговать Connection Tracker в отношении времени сессии.
    2. Написать в /ip firewall filter правило
    chain=forward
    connection-state=invalid
    action=drop
    Это не даст пакетам не обработанным Connection Tracker выйти за пределы маршрутизатора.
     
  3. vasilevkirill

    vasilevkirill Участник

    Илья, спасибо.
    Дропать invalid помогло. по крайней мере за интерфейс уже не уходит трафик не прошедший NAT.
    Буду копать дальше
     
  4. Илья Князев

    Илья Князев Администратор Команда форума

    Всегда пожалуйста :)
    Кстати обратите внимание, что в Connection-Tracker видно сколько у него текущих соединений и сколько он может "держать". Пишется снизу окна Connections в файрволле.
    У вас скорее всего заканчиваются или свободные порты, или память.
    Если заканчиваются порты - тюнингуйте время сессий.
    Если память, то поотключайте ненужные Packages в /System Packages и тюнингуй время сессий.
     
  5. vasilevkirill

    vasilevkirill Участник

    Не память, не порты =(
     
  6. Илья Князев

    Илья Князев Администратор Команда форума

    Вот так попробуйте.
    Код:
    /ip firewall nat
    add chain=srcnat src-address=172.17.9.0/24
    add action=masquerade chain=srcnat out-interface=ether7