Перейти к содержимому
Калькуляторы

Должны ли CPE nat'ить фрагментированные пакеты?

Есть cpe - zyxel keenetic lite, через которую не натятся фрагментированные пакеты(запускаю iperf -c iperf-server -u изнутри, из wan-порта трафик не уходит).

Собственно вопрос в том, существуют ли реальные приложения(кроме iperf'а и netcat -u), которые могут сгенерировать такой(фрагментированный) трафик? Если да, то можно их названия?

 

И ещё вопрос, должны ли CPE'шки подменять IP адрес в команде PORT протокола ftp(активный режим), чтобы абонентам не надо было принудительно устанавливать галочку "пассивный режим"?

Изменено пользователем s.lobanov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Должны.

Фрагментированный пакет от обычного отличается только несколькими полями в IP заголовке.

Единственный вариант, который могу придумать - у вас мту на ван интерфейсе меньше.

В таком случае оно должно собрать весь пакет в памяти (дефрагментировать) а потом заного его фрагментировать с новым, более маленьким мту.

Дефрагментация - затратная операция по памяти, как минимум, не говоря про усилия для написания кода.

Попробуйте сделать так, чтобы через коробку шли фрагментированные пакеты, у которых мту меньше или равен мту ван порта.

(подкрутить мту на сетевухе абонента)

 

Ещё вариант что там где то галочка есть, какая нибудь супер фирменная технология защиты от дос атак.

 

 

Нет такого требования/стандарта.

Собственно ALG в коробках видел только в DFL фаерах, в чём по проще не помню чтобы встречалось, может кто подскажет другие коробки с ALG для фтп :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Должны.

Фрагментированный пакет от обычного отличается только несколькими полями в IP заголовке.

Единственный вариант, который могу придумать - у вас мту на ван интерфейсе меньше.

В таком случае оно должно собрать весь пакет в памяти (дефрагментировать) а потом заного его фрагментировать с новым, более маленьким мту.

Дефрагментация - затратная операция по памяти, как минимум, не говоря про усилия для написания кода.

Попробуйте сделать так, чтобы через коробку шли фрагментированные пакеты, у которых мту меньше или равен мту ван порта.

(подкрутить мту на сетевухе абонента)

Слал фрагментированные пакеты размером 1000 байт, он их всё равно тупо дропает. iperf -u всегда генерит такой трафик, независимо от mtu. Вопрос в том, существуют ли реальные приложения, которые способны породить фрагментированный трафик.

 

Ещё вариант что там где то галочка есть, какая нибудь супер фирменная технология защиты от дос атак.
Тоже так подумал, но нет таких галочек

 

Нет такого требования/стандарта.

Собственно ALG в коробках видел только в DFL фаерах, в чём по проще не помню чтобы встречалось, может кто подскажет другие коробки с ALG для фтп :)

Спросил про ftp в активном режиме, потому что adsl-модем huawei mt880 это умеет делать (подменять содержимое команды PORT и прокидывать related tcp-соединение в inside)

 

Может кто подскажет как добраться до busybox'а? уж очень хочется посмотреть правила iptables

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может кто подскажет как добраться до busybox'а? уж очень хочется посмотреть правила iptables
Его может там не быть, не во всех моделях Linux inside. У некоторых, например, VxWorks.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

marikoda

Он в логах сам пишет, что там busybox, ещё пишет, что подгружает rp-pppoe.so и т.д. и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Судя по всему, Вы делаете NAPT. В этом случае, для того, чтобы сделать трансляцию, маршрутизатор должен собрать пакет. А эта, как было отмечено, операция затратная. Поэтому в большинстве случаев на такие пакеты забивают :)

Мне на ум приходит только одно приложение, которое может порождать фрагментированные пакеты: NFS. Но что-то мне подсказывает, что это не единственная проблема NFS при работе через NAT :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

nnm

Да не нужно собирать пакет целиком, если не делать перефрагментацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

nnm

Да не нужно собирать пакет целиком, если не делать перефрагментацию.

Если я Вас правильно понял, Вы эту префрагментацию как раз делаете:
Слал фрагментированные пакеты размером 1000 байт, он их всё равно тупо дропает. iperf -u всегда генерит такой трафик, независимо от mtu.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос в том, существуют ли реальные приложения, которые способны породить фрагментированный трафик
Нет.

Посмотрите у себя на роутерах с натом статистику, у меня на домашнем роутере с торрентами/на рабочих-офисных обычно по нулям, пока я сам пинги размером больше мту не запускаю.

 

Офисный роутер, аптайм 78 суток:

ip:

99967061 total packets received

3624 bad header checksums

0 with size smaller than minimum

0 with data size < data length

0 with ip length > max ip packet size

0 with header length < data size

0 with data length < header length

0 with bad options

0 with incorrect version number

0 fragments received

0 fragments dropped (dup or out of space)

0 fragments dropped after timeout

0 packets reassembled ok

44873589 packets for this host

0 packets for unknown/unsupported protocol

50302795 packets forwarded (23477368 packets fast forwarded)

78716 packets not forwardable

0 packets received for unknown multicast group

0 redirects sent

58750403 packets sent from this host

0 packets sent with fabricated ip header

536047 output packets dropped due to no bufs, etc.

9 output packets discarded due to no route

47753 output datagrams fragmented

95506 fragments created

3 datagrams that can't be fragmented

0 tunneling packets that can't find gif

0 datagrams with bad address in header

На других ещё меньше или по нулям.

Этот сам пакеты фрагментировал для какого то приложения из за разницы мту на внутреннем и внешнем интерфейсах, возможно там тередо (юдп) включён на компах в локалке, в остальных местах тередо нет/выключен.

Для тсп оно не нужно потому и по нулям почти везде.

Те по моей статистике пользования - пренебречь фрагментированными пакетами можно :)

Но нужно ещё проверить будет ли коробка сама фрагментировать пакеты если мту ван меньше мту лан, но и это не сильно востребовано.

 

Тоже так подумал, но нет таких галочек
Обновить прошивку?

 

 

 

Мне на ум приходит только одно приложение, которое может порождать фрагментированные пакеты: NFS. Но что-то мне подсказывает, что это не единственная проблема NFS при работе через NAT :)
Думаю что тем у кого нфс, в значении отличном от нид фор спид, такие коробки не особо нужны либо они как нибудь сами разберутся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос в том, существуют ли реальные приложения, которые способны породить фрагментированный трафик
Нет.

Посмотрите у себя на роутерах с натом статистику, у меня на домашнем роутере с торрентами/на рабочих-офисных обычно по нулям, пока я сам пинги размером больше мту не запускаю.

 

Спасибо за статистику, но интересно посмотреть её на стороне оператора, а не у абонента. Сами нат не практикуем, поэтому посмотреть негде.

 

nnm

Да не нужно собирать пакет целиком, если не делать перефрагментацию.

Если я Вас правильно понял, Вы эту префрагментацию как раз делаете:
Слал фрагментированные пакеты размером 1000 байт, он их всё равно тупо дропает. iperf -u всегда генерит такой трафик, независимо от mtu.

 

Не делаю я перефрагментацию. iperf просто "спускает" udp-данные большой длины, фрагментацией занимается сетевая подсистема ОС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не делаю я перефрагментацию. iperf просто "спускает" udp-данные большой длины, фрагментацией занимается сетевая подсистема ОС.

C точки зрения маршрутизатора, который делает NAT, нет разницы кто фрагментировал пакеты. Они прилетели к нему фрагментированными и все, чтобы отнатить нужно их собрать. А кто порубил пакет - приложение, ОС или предыдущий транзитный маршрутизатор уже не важно.

Изменено пользователем nnm

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за статистику, но интересно посмотреть её на стороне оператора, а не у абонента. Сами нат не практикуем, поэтому посмотреть негде.
Посмотрите у себя, нат к фрагментации отношения не имеет.

В том смысле, что напрямую он этого не делает.

 

Первый выделенный жирным блок счётчиков во фряхе висит на ip_reass - которую вызывает ip_input / ip_fw, в PF походу есть свой отдельный сборщик учитывая наличие в нём опции и отсутствие вызова ip_reass.

Если мне память не изменяет, то для роутинга/форвадинга она (фряха) пакеты будет пересобирать только если они для неё либо если это прописано в правилах фаервола.

Те для случая с транзитными фрагментированными пакетами и отсутствием фаервола у меня нет 100% уверенности что она пересобирает а потом заново фрагментирует и шлёт дальше.

 

Второй блок - это пакеты которые фрагментировал сам хост в ip_fragment

Это могло быть если:

- пакет форвадится между интерфейсами фастфорвадингом (не фрагментирован, не для этого хоста, мту на выходном интерфейсе меньше)

- пакет в ip_output (там он мог оказать если хост сам сгенерировал траффик, из ip_forward (из ip_input) или (?) из очереди, после дефрагментации в ip_input - тут для меня тёмное место).

- PF дёрнул ip_fragment а потом что то сделал с пакетом

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.