Когда я тестирую загрузку на сервер Speedtest, в Mangle появляются нераспознанные пакеты. Внизу — захват в Wireshark пакета ICMP типа 3-4 в Mangle во время теста загрузки Speedtest. Эти пакеты генерируются в этот самый момент. Я могу их зафиксировать в RAW и Filter, но не могу посмотреть на пакеты в этот момент, потому что Sniff там невозможен. Пакеты в Filter тоже по 576 байт, так что это должны быть те же самые. Половина PMUTD работает, и это происходит при загрузке, когда определяется правильный размер пакетов. При загрузке PMTUD не может быть определен, и мне приходится делать это вручную, устанавливая размер MTU в Mangle для TCP-пакетов. Я замечаю это, когда использую подключение IKEv2 и также раньше с соединением L2TP/IPSEC.
Undecoded packets
Undecoded packets, RouterOS
|
29.10.2019 13:24:00
|
|
|
|
|
|
17.11.2019 14:06:00
Я с тобой согласен, однако срок реализации может быть «никогда». Так что нам нужно либо решение без VTI, либо демонстрация того, что такое решение невозможно и что только VTI может быть решением. Можешь подтвердить, что ты используешь назначение connection-mark через mode-config, чтобы RouterOS динамически создавал правило в цепочке src-nat? И если да, не мог бы ты вставить вывод команды /ip firewall nat print chain=srcnat, пока подключение IPsec активно (меня интересует только динамическое правило и действительно ли оно добавляется первым в цепочке src-nat, как я и предполагаю)? В любом случае, должно быть какое-то решение — статическое правило IPsec action=none src-address=0.0.0.0/0 dst-address=the.client’s.subnet, которое помещается перед шаблоном политики, используемым для создания динамической политики с адресом IP, предоставленным ответчиком, в качестве src-address. Это правило action=none будет затенять динамически сгенерированное, так что, хотя пакет ICMP код 3 тип 4, вероятно, будет обработан динамическим правилом src-nat, он не достигнет динамической политики (которая направила бы его в тоннель), так что он доберется до клиента. Клиенту не важен адрес источника, так как для него это не имеет значения, поэтому он должен соответственно скорректировать размер повторно отправленного TCP-пакета и всех последующих. Это интересная информация — я сначала поместил правило только в цепочку output и увидел, что пакет TZSP пришел с ошибкой. Затем я добавил то же правило и в цепочку postrouting, и пакеты TZSP начали приходить парами: первый с ошибкой, второй без. Я использую версию 6.45.7 на hAP ac², можешь протестировать то же самое (оба правила присутствуют) и указать свою версию ПО и модель оборудования? Хорошо, похоже, я наконец-то понимаю, как ты проводишь тест. Так что, как только ты отключаешь правило change-mss, ты нажимаешь Preview и смотришь, удастся ли установить новое HTTPS-соединение или нет. Так что ты действительно можешь видеть повторные передачи при нажатии, а не каждое нажатие клавиши в рабочем соединении для отправки одного ICMP-пакета. Хорошо.
|
|
|
|
|
|
17.11.2019 15:03:00
Я в полном восторге, после месяцев попыток и нескольких запросов в техподдержку вы решили эту надоедливую проблему. Огромное спасибо, Синди!!! Эта строка переместилась выше динамических линий в /ip ipsec policy, и теперь моя строка сниффера показывает Destination unreachable (нужна фрагментация). Никогда прежде не был так рад видеть слово "недоступен". Строка: add action=none dst-address=192.168.88.0/24 src-address=0.0.0.0/0 Заданная динамическая строка добавлена в верхнюю часть экрана NAT: 0 D ;;; ipsec mode-config chain=srcnat action=src-nat to-addresses=xx.x.x.xx connection-mark=NordVPN У меня есть давняя привычка добавлять свою версию аппаратного обеспечения и RouterOS в подпись под всеми моими постами. Я очень рад, что теперь больше не является загадкой, почему пакеты ICMP 3/4 не приходили с клиентом. Я сообщу об этом в Mikrotik, и, возможно, они добавят это в конфигурацию для будущих IKEv2 соединений, таких как NordVPN, или даже будут генерировать это динамически при создании динамической NAT строки для IKEv2, если это еще не предусмотрено. Таким образом, локальный диапазон адресов будет известен, и это может стать проблемой.
|
|
|
|
|
|
17.11.2019 16:11:00
Рад помочь. Однако, поскольку заголовок и оригинальное сообщение в этой теме не раскрывают суть проблемы, с которой вы столкнулись, было бы хорошо, если бы вы нашли свою другую тему, которая более ясно связана с ней, и опубликовали там решение (возможно, с ссылкой на подробное объяснение здесь) — если кто-то другой столкнется с такой же проблемой, вряд ли они найдут эту тему (с содержащее решение) по ключевым словам, не говоря уже о заголовке. В большинстве конфигураций, где вы используете VPN для анонимизации доступа в интернет, можно добавить политику action=none "теневого" отражения для каждого из трех диапазонов RFC1918: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Я не думаю, что их следует добавлять автоматически. Еще одна возможность (хотя и аналогично сложная в настройке, как и с политиками action=none) — установить как address-list, так и connection-mark в строке mode-config и добавить несколько диапазонов адресов, исключая LAN-адрес(а) самого роутера в этот address-list (например, 0.0.0.1-192.168.88.0, 192.168.88.2-255.255.255.255, если адрес роутера 192.168.88.1). Таким образом, динамически создаваемое правило NAT не будет соответствовать пакетам, отправленным самим роутером, поэтому они не станут видимыми для динамически сгенерированной политики, и теневые политики не понадобятся.
|
|
|
|
|
|
17.11.2019 21:28:00
Я отправил ответ в поддержку Mikrotik о том, что ты сегодня узнал, чтобы разгадать эту загадку. Хорошая новость в том, что другие протоколы также обрабатываются с помощью действия IPSEC policy none, и поэтому UDP-пакеты тоже обрабатываются, что не смог сделать Mangle MSS. Я также упомянул, что будет новый запрос в поддержку по поводу странного пакета при использовании TSZP в потоке out/postrouting. Дай знать, хочешь ли ты подать этот запрос, или мне это сделать? Диапазоны адресов клиентов также можно увидеть в /IP Address, а затем конкретно в Bridge master, а если его нет — в Ethernet портах. Я создам новую тему с подходящим заголовком и содержанием, и надеюсь, что к тому времени получу ответ от поддержки Mikrotik. Ещё раз спасибо за помощь в этом, и за то, что ты помогаешь другим, которые сталкиваются со странными проблемами, в то время как другие сайты работают нормально.
|
|
|
|
|
|
18.11.2019 07:32:00
Я обычно придерживаюсь принципа «пострадавший открывает тикет в поддержку». Мужчины попросят supout.rif и так далее, а у меня и так достаточно открытых тикетов. Да, конечно, я имею в виду, что не думаю, что Mikrotik должен динамически генерировать исключения на основе этой информации, потому что существует больше сценариев VPN, чем просто анонимизация интернет-доступа, а именно «настоящие» VPN, когда вы подключаетесь к сети своей компании или связываете несколько ее офисов, и в таких случаях широкая открытость политик тени будет вредна. Поэтому политики тени должны быть настроены под конкретную конфигурацию, и это просто невозможно сделать автоматически. Ах, я думал, что ты уже открывал один ранее, и я просто пропустил это.
|
|
|
|
|
|
18.11.2019 09:05:00
У меня есть несколько тем для монолога, например: Все еще испытываю трудности с MSS/MTU IKEv2, но для меня это скорее заметка или, если MikroTik будет угодно, попасть в Вики. Эти соединения IKEv2 с провайдером VPN должны быть простыми и "защитить от дурака", а также легкими для активации. Это должно быть прозрачно для пользователя, а вся работа должна выполняться в фоновом режиме, как будто всё происходит волшебным образом... хорошим волшебством, как мне кажется. Ситуация с NordVPN, когда они убрали методы подключения, подтолкнула MikroTik успевать за ними, и у нас есть решение, которое работает и было расширено по запросу пользователей с маркировкой соединения. У нас теперь как минимум IKEv2 для провайдеров VPN, что стало значительным улучшением по сравнению с периодом до RouterOS7.
|
|
|
|
|
|
19.11.2019 08:39:00
Я забыл добавить одну строку с исходным адресом: 0 D ;;; ipsec mode-config chain=srcnat action=src-nat to-addresses=188.xx.xx.x src-address-list=VPN dst-address-list=!VPN Прямо под этим у меня есть ловушка для случая, когда IKEv2 все еще запускается, а клиент уже начал отправлять пакеты. 1 ;;; Ловит трафик, когда IKEV неактивен chain=srcnat action=src-nat to-addresses=127.0.0.1 src-address=192.168.88.xx log=no log-prefix="No escaping" Для соединения, отмеченного мной, у меня есть отдельная строка "no escaping".
|
|
|
|
|
|
20.11.2019 13:41:00
Похоже, мне просто повезло, когда пакеты, скопированные с помощью правила постмаршрутизации, не были затронуты этой проблемой на моем hAP ac². В другом сценарии захвата некоторые пакеты, скопированные с тем же самым правилом постмаршрутизации, были затронуты этой ошибкой, а другие — нет. Поэтому я отредактировал один из своих предыдущих постов здесь (который все еще связан с заголовком этой темы) с более полезным способом обхода этой ошибки.
|
|
|
|
|
|
03.12.2019 13:29:00
Пост, который я сделал о том, что MTU не был отправлен клиенту. Дайте знать, если что-то нужно изменить.
|
|
|
|
|
|
03.12.2019 13:42:00
Ну, единственное, что я хотел бы сказать, это то, что я не вижу это как обходной путь, а как окончательное решение, потому что так работают политики. И что меня удивляет, так это то, что порядок политик не имеет значения, потому что представьте себе эти две гипотетические политики: src-address=0.0.0.0/0 dst-address=192.168.1.1 src-address=192.168.2.3 dst-address=0.0.0.0/0 Если бы порядок политик не имел значения, ни одна из этих политик не была бы "правильной" для пакета от 192.168.2.3 до 192.168.1.1, потому что обе соответствуют ему. Либо политики с action=none всегда превосходят политики с action=encrypt, независимо от порядка, либо с сопоставлением политик что-то не так.
|
|
|
|
|
|
16.11.2019 18:20:00
Как ты получил пакет в Wireshark? Это на 99% ICMP-пакет, но значение ethertype 0x0800 отсутствует между поддельным Ethernet-заголовком, состоящим из одних нулей, и началом IP-заголовка. Так что это либо проблема со шнуром (который добавляет поддельные Ethernet-заголовки к простым IP-пакетам), либо ошибка в том, как ты импортировал шестнадцатеричный дамп в Wireshark.
|
|
|
|
|
|
16.11.2019 19:18:00
Пакеты отправляются в Wireshark через snifferline в mangle по UDP порту 37008. Эта строка захватывает только ICMP 3/4, которые в данный момент не обрабатываются.
|
|
|
|
|
|
16.11.2019 19:54:00
Можешь ли ты перехватить другие пакеты таким же образом (action=sniff-tzsp в mangle), чтобы проверить, является ли эта проблема (недостаток слова ethertype 0x800 между поддельным Ethernet заголовком и IP пакетом) системной ошибкой инкапсуляции TZSP или же она затрагивает только эти ICMP пакеты?
|
||||
|
|
|
|||
Читают тему
