PDA

Bekijk de volledige versie : Новая прошивка 1.9.2.7-d/-rtn от энтузиастов и Олега



Pages : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

theMIROn
08-06-2009, 10:42
Да ладно вам ребята разбираться. Не пристало это разработчикам. Решение для ZTE, Onda, Huawei найдено и слава богу. Можно забыть.

кстати, на многих забугровых советуют использовать ozerocdoff вместо usb_modeswitch. по размеру он выходит меньше, кстати
выкладывал в теме про ZTE 626, отзывов не дождался. Но, это было связано с патчем игнора, как выяснилось.

sorine проверишь?

lly
08-06-2009, 11:12
кстати, на многих забугровых советуют использовать ozerocdoff вместо usb_modeswitch. по размеру он выходит меньше, кстати
Дай ссылочку на инфу чем он лучше. Конфига у него нет, т.е. универсальность меньше...

sorine
08-06-2009, 11:42
кстати, на многих забугровых советуют использовать ozerocdoff вместо usb_modeswitch.
sorine проверишь?
Не работает. Ни если ставишь Vendor ID, ни если подсовываешь файл конфига от usb_modeswitch.
Не работает наверное потому что он для udev:( судя по сырцам.

theMIROn
08-06-2009, 11:54
Дай ссылочку на инфу чем он лучше. Конфига у него нет, т.е. универсальность меньше...
универсальности у него меньше не потому что конфига нет (это задается через параметры), а то что он ориентирован на option и иже с ними девайсы.
у usb_modeswitch в конфиге прописывается одно конкретное устройство. не много всех сразу.

theMIROn
08-06-2009, 11:56
Не работает. Ни если ставишь Vendor ID, ни если подсовываешь файл конфига от usb_modeswitch.
Не работает наверное потому что он для udev:( судя по сырцам.
та udev не причем, он вызывается из udev. ничто не мешает вручную... но будем считать, что test failed и останавливаемся на usb_modeswitch



usb-modeswitch seems to have inspired Option when developping ozerocdoff
(actually, some parts of use-modeswitch were even added to ozerocdoff).

ozerocdoff is stated as "replacing rezero and usb_modeswitch" on
pharscape.org, but usb-modeswitch might also do the job.

I have never tried usb-modeswitch as ozerocdoff is recommended by Option
and works perfectly.

I see that usb-modeswitch is packaged without udev rules, which
ozerocdoff ships upstream.

Wolfgun
08-06-2009, 15:09
универсальности у него меньше не потому что конфига нет (это задается через параметры), а то что он ориентирован на option и иже с ними девайсы.
у usb_modeswitch в конфиге прописывается одно конкретное устройство. не много всех сразу.

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

usb_modeswitch если запустить с ключиком -n то ищет устройства в конфиге. и переключает

ozerocdoff у меня тоже не запустился и описания я что то не нашел ( правда плохо искал)

Wolfgun
08-06-2009, 15:24
Давайте лучше что-нибудь полезное сделаем для народа.
.

А можно последнию прошику скомпелить под wl500gp V1 ???? Плз. что по нормальному проверить usb_modemswitch

Я тут на досуги просматривал решения по резервированию канала, все проверяют через пинг мне это не нравится есть предложения как еще можно проверять не упал канал ???

lly
08-06-2009, 17:22
но будем считать, что test failed и останавливаемся на usb_modeswitch
Итого: usb_modeswitch + libusb 0.1.12
Включаем?


А можно последнию прошику скомпелить под wl500gp V1 ???? Плз. что по нормальному проверить usb_modemswitch
Можно, постараюсь завтра. Но наиболее эффективный способ, если ты всё таки прочтешь инструкцию (на русском!), и настроишь сборку у себя.

theMIROn
08-06-2009, 17:45
Итого: usb_modeswitch + libusb 0.1.12
Включаем?
у меня это давно готово, не коммитил только, завязку на config/Config не делал

lly
08-06-2009, 18:01
у меня это давно готово, не коммитил только, завязку на config/Config не делал
Тогда ждем твой вариант. libusb наверное имеет смысл в /usr/lib положить? или в /lib ?
Почему я хотел-бы с динамической библиотекой, да потому что много софта на нее подвязано - NUT, например, и т.д.

lly
08-06-2009, 19:06
Вот например обновленный драйвер модемов option.
Добавлены модемы ZTE 638, AC8710, 6535-Z; C-Motech CDU-680, CGU-626; Novatel MC990D.
Вот готовый патч.
А проверить-то забыл или поленился? :confused:
Исправил очепятку в r324

theMIROn
08-06-2009, 19:18
Тогда ждем твой вариант. libusb наверное имеет смысл в /usr/lib положить? или в /lib ?
планировалось в /lib, не проверял с /usr/lib, хотя почему бы и нет.

Почему я хотел-бы с динамической библиотекой, да потому что много софта на нее подвязано - NUT, например, и т.д.
Согласен, поэтому щас продумываю как лучше в менюконфиге зависимости прописать и собирать и устанавливать libusb только по необходимости.
Или это не нужно, и собирать как libbcmcrypto всегда?

lly
08-06-2009, 19:21
планировалось в /lib, не проверял с /usr/lib, хотя почему бы и нет.
Сам не знаю как лучше, а для сборки вся разница в -rpath

Согласен, поэтому щас продумываю как лучше в менюконфиге зависимости прописать и собирать и устанавливать libusb только по необходимости.
Или это не нужно, и собирать как libbcmcrypto всегда?
IMHO всегда. Хотя, можно сделать отдельный CONFIG_LIBUSB ...

theMIROn
08-06-2009, 22:54
Сам не знаю как лучше, а для сборки вся разница в -rpathв /lib пишется самое необходимое.
положил вообщем в /usr/lib, вроде работает.
в Makefile и Makefile.diff установку usb_modeswitch.conf закомментил пока, оно дает порядка 8 кб прироста к прошивке.
Разница после добавления libusb и usb_modeswitch ~ 16 к trx файлу, если вложить option.o, то получается еще +8 кб, итого выходит 3688Кб (3 776 512 байт).
Чувствую скоро придется tcpdump выкидывать или проверять все подряд на стрипы и оптимизацию.


IMHO всегда. Хотя, можно сделать отдельный CONFIG_LIBUSB ...сделал, для usb_modeswitch в том числе + некоторые зависимости.

Dao_Dezi
09-06-2009, 03:47
Начал тесты с ntfs-3g

Итак. по производительности.

Дано:
Винт Самсунг 80Гб
Два раздела. Первый - ext3. Второй - ntfs, сделанный под WinXPSP3.
Файл размером 733890560 байт лежит на разделе ntfs

Делаем:
time mv /tmp/mnt/ntfs/file /tmp/mnt/disc0_1
real 9m 6.90s
user 0m 3.05s
sys 1m 25.54s

минутный load average в районе 2.35

загрузка процессора 85-90%

Итого 1341909б/с -> ~1.3Мб/с

Dao_Dezi
09-06-2009, 04:11
То же самое, только ext3->ntfs

real 12m 16.82s
user 0m 3.20s
sys 0m 49.53s

минутный load average 1.70

загрузка процессора 98-99%

Итого 996024б/с -> ~973кб/с

AlexeyS
09-06-2009, 07:05
Чувствую скоро придется tcpdump выкидывать или проверять все подряд на стрипы и оптимизацию.

tcpdump выкидывать не стоит - очень удобная штука для решения сетевых проблем.

theMIROn
09-06-2009, 07:12
tcpdump выкидывать не стоит - очень удобная штука для решения сетевых проблем.
если приедтся выбирать между удобной штукой для решения сетевых проблем и необходимыми штуками для организации сети - выбор очевиден.

lly
09-06-2009, 07:26
Начал тесты с ntfs-3g
Итак. по производительности.
То что с производительностью будет ЖОПА, это было ясно с самого начала, FUSE и должно кушать процессор.
Больше интересует стабильность, и не рушит ли оно ntfs-ные разделы при записи.


tcpdump выкидывать не стоит - очень удобная штука для решения сетевых проблем.
Будем держаться до последнего, но штатный функционал важнее для большинства, а те кто умеют пользоваться tcpdump'ом, смогут воткнуть флэшку. Плюс я надеюсь мы найдем время, для разделения состава .trx для 4Mb и 8Mb роутеров (всего-то перепахать Makefile).

theMIROn
09-06-2009, 07:28
Будем держаться до последнего, но штатный функционал важнее для большинства, а те кто умеют пользоваться tcpdump'ом, смогут воткнуть флэшку. Плюс я надеюсь мы найдем время, для разделения состава .trx для 4Mb и 8Mb роутеров (всего-то перепахать Makefile).
даже можно без флешки во flashfs запихать.
Надеюсь, да, найдем время, бест чойс.

AlexeyS
09-06-2009, 07:29
если приедтся выбирать между удобной штукой для решения сетевых проблем и необходимыми штуками для организации сети - выбор очевиден.

Есть только одно замечание - необходимые штуки для организации сети у каждого тоже свои, у кого-то модемов и близко нет, а полной универсальности увы не добиться :( Видимо, придется тогда деклать конфигурацию под себя...

theMIROn
09-06-2009, 07:34
у кого-то модемов и близко нет
я думаю, у кого то и сетевых проблем нет. и мне кажется, таких на порядки больше ;)

Dao_Dezi
09-06-2009, 12:01
В общем засунул в паку test видеофайл на 700 метров и содержимое /usr/share/doc от убунты (>8тыс мелких файлов на 54 метра).

Ну и гонял это ext3<->ntfs по винту весь день с помощью mv.

Сбоев не видел. Отмонтировалось нормально. Смонтировалось на убунте тоже (а там ntfs-3g болезненно относится к "нечисто" отмонтированным разделам). В общем выглядит очень хорошо. В продакшене использовать вряд-ли буду - дома везде линуксы.

lly
09-06-2009, 12:41
Dao_Dezi
Спасибо. Значит ntfs-3g работоспособен на нашей платформе As Is, в следующий билд выложим для всех.

Ant32
10-06-2009, 03:37
Будем держаться до последнего, но штатный функционал важнее для большинства, а те кто умеют пользоваться tcpdump'ом, смогут воткнуть флэшку. Плюс я надеюсь мы найдем время, для разделения состава .trx для 4Mb и 8Mb роутеров (всего-то перепахать Makefile).
Спасибо.
Флешка конечно поможет, но в "базе" оно как-то спокойнее :)
В гипотетической ситуации, когда "все плохо" и срочно нужен инет, не хотелось бы разбираться еще и с тем, что флешка вдруг перестала монтироваться.

У меня сейчас r316, собирал сам под Дебианом в vmware, работает без заметных проблем.
Правда HDD нет, но pptp, wifi, локальная сетка, графики на rrd - почти неделю полет нормальный.

Кстати, кто плотно с линуксами работает, может поможете собрать минимальный образ со всем необходимым для сборки прошивки под vmware? У меня сейчас почти 2,5 гига получилось, но я с линуксом впервые столкнулся, все в основном с BSD.
Такой образ, если его дать в ощий доступ, очень поможет многим, кого отпугивает мысль о конфигурировании системы под сборку прошивки.
VMware Player официально даром тут http://www.vmware.com/download/player/

satch
10-06-2009, 03:52
Спасибо.
Кстати, кто плотно с линуксами работает, может поможете собрать минимальный образ со всем необходимым для сборки прошивки под vmware? У меня сейчас почти 2,5 гига получилось, но я с линуксом впервые столкнулся, все в основном с BSD.
Такой образ, если его дать в ощий доступ, очень поможет многим, кого отпугивает мысль о конфигурировании системы под сборку прошивки.
VMware Player официально даром тут http://www.vmware.com/download/player/
я только ЗА! готов помочь чем смогу, хотя предпочитаю больше virtualbox

AlexeyS
10-06-2009, 07:09
А русский WIKI на googlecode поломали... "Page "CompilingCustomFirmware" Not Found"

theMIROn
10-06-2009, 07:43
А русский WIKI на googlecode поломали... "Page "CompilingCustomFirmware" Not Found"
нужно подождать, чтобы гуглокод заново проиндексировал изменения.

lly
10-06-2009, 07:44
А русский WIKI на googlecode поломали... "Page "CompilingCustomFirmware" Not Found"

Это фигня какая-то с Locale на googlecode, в понедельник сделал по их инструкции - всё сломалось. Откатил - до вчера работало, а сегодня вот ....
Выбери Locale "en" - должно показывать...

angel_il
10-06-2009, 17:24
я только ЗА! готов помочь чем смогу, хотя предпочитаю больше virtualbox

я там писал про использование colinux, на порядок шустрее все работает чем вмварь и иже с ними.

angel_il
10-06-2009, 17:28
балин
http://code.google.com/p/wl500g/wiki/colinux похерилась :( как то у меня и копий то нет...

lly
10-06-2009, 18:01
балин
http://code.google.com/p/wl500g/wiki/colinux похерилась :( как то у меня и копий то нет...

всё на месте - можешь проверить в svn, но линки с локалью ru ведут в никуда :confused: хотя в гугловской доке написано, что при отсутствии трансляции идет fallback на язык по умолчанию :(

Видимо виноват я, тем что создал каталоги en и ru под разноску переводов по подкаталогам. Но потом, обнаружив убогую реализацию, убил их нафиг, а дрянь осталась :mad:

Updated:
Вернул подкаталоги, сделал как по доке http://code.google.com/p/support/wiki/WikiSyntax#Localizing_Wiki_Content и страничка colinux появилась, а CompilingCustomFirmware - хрен :mad:

Goletsa
11-06-2009, 03:25
Все таки VMWare кажется куда переносимее.
Поставил плеер, ткнул в vmx файл и радуешься жизни.
На днях посмотрю что получится в плане размеров...

satch
11-06-2009, 03:36
я там писал про использование colinux, на порядок шустрее все работает чем вмварь и иже с ними.
у меня итак линукс ;)


Все таки VMWare кажется куда переносимее.
Поставил плеер, ткнул в vmx файл и радуешься жизни.
На днях посмотрю что получится в плане размеров..
давайте не будем устраивать холивар на пустом месте, все равно каждый останется при своем мнении

sorine
12-06-2009, 11:23
Драйвер acm тоже стоит добавить. Он мобильники поддерживает многие. Проверял.

lly
12-06-2009, 11:25
Драйвер acm тоже стоит добавить. Он мобильники поддерживает многие. Проверял.
А ты выкладываешь где-нибудь свои изменения к прошивке? патчи, файлы?

theMIROn
12-06-2009, 11:40
Драйвер acm тоже стоит добавить. Он мобильники поддерживает многие. Проверял.
да, надо бы, +5КБ к trx

theMIROn
12-06-2009, 11:43
балин
http://code.google.com/p/wl500g/wiki/colinux похерилась :( как то у меня и копий то нет...
да все на месте, даже локализованное.
можешь http://code.google.com/p/wl500g/wiki/colinux?wl=en на английском переписать?

sorine
12-06-2009, 11:44
А ты выкладываешь где-нибудь свои изменения к прошивке? патчи, файлы?
Так ты уже все изменения включил в прошивку текущую. Осталось только включить в ядре DEVPATCH, драйвер acm
А сам скрипт подключения модемов вот:

sorine
12-06-2009, 11:47
modem скрипт

lly
12-06-2009, 11:48
Так ты уже все изменения включил в прошивку текущую. Осталось только включить в ядре DEVPATH, драйвер acm
А сам скрипт подключения модемов вот:
А веб-страничка, который ты хвастался? Или еще не доделал?

sorine
12-06-2009, 11:51
А веб-страничка, который ты хвастался? Или еще не доделал?
Еще не доделал.

lly
12-06-2009, 12:09
А сам скрипт подключения модемов вот:
скрипт можно немного подрихтовать, гляну ...
А имена переменных wan_usb_XXXX ты из каких соображений выбирал? почему не wan_3g_ или wan_modem_ ?

sorine
12-06-2009, 12:43
скрипт можно немного подрихтовать, гляну ...
А имена переменных wan_usb_XXXX ты из каких соображений выбирал? почему не wan_3g_ или wan_modem_ ?
Ну с переменными как корабль назовешь....
В прошивке есть переменные usb вот я так и решил

theMIROn
12-06-2009, 13:10
кстати, в чем великий смысл патча devpath, кроме как отображения принтеров и модемов (из acm/usbserial) в /proc/bus/usb/devpath?

UPD: Для возможности обращения к модему по конкретному usb порту.
Так может эту же фичу заюзать и для usb_storage?

lly
12-06-2009, 14:40
кстати, в чем великий смысл патча devpath, кроме как отображения принтеров и модемов (из acm/usbserial) в /proc/bus/usb/devpath?

UPD: Для возможности обращения к модему по конкретному usb порту.
Так может эту же фичу заюзать и для usb_storage?
поясни, как ты эту фичу собираешься заюзать для usb_storage

2 sorine: я скриптец малость подрихтовал, приаттачил. Еще бы поджал, но есть вопросики:

почему бы pppd не убивать "kilall -9 pppd"?
для mtu/mru значения по умолчанию стандартные или?
покажи пример строки wan_usb_zerocd

Dimcho
12-06-2009, 15:24
минимизация кода - "грамотно" ;), да уж, ничего не скажешь.
А как долго ждать прошивку с usb_modeswitch ? Хочется уже потестить её, есть три модема которые хочется замучить :D

sorine
12-06-2009, 16:22
поясни, как ты эту фичу собираешься заюзать для usb_storage

2 sorine: я скриптец малость подрихтовал, приаттачил. Еще бы поджал, но есть вопросики:

почему бы pppd не убивать "kilall -9 pppd"?
для mtu/mru значения по умолчанию стандартные или?
покажи пример строки wan_usb_zerocd

Вот например инициализация ZTE MF626
-v 0x19d2 -p 0x2000 -M 55534243123456782000000080000c85010101180101010101 000000000000
Конечно можно и kilall -9 pppd. Ту брал от чехов.
Ну если не ввести mru и mtu то будут стандартные.

lly
12-06-2009, 17:35
А как долго ждать прошивку с usb_modeswitch ? Хочется уже потестить её, есть три модема которые хочется замучить :D
Пока есть некоторое количество багов, которые хотелось извести до релиза. Поэтому IMHO быстрее таки будет собрать самому...

sorine
понял, спасибо

angel_il
12-06-2009, 18:47
да все на месте, даже локализованное.
можешь http://code.google.com/p/wl500g/wiki/colinux?wl=en на английском переписать?

попробовать можно, если потом поправите :)

theMIROn
12-06-2009, 22:43
поясни, как ты эту фичу собираешься заюзать для usb_storageпримерно вот так:


[admin@router root]$ cat /proc/bus/usb/devpath
Device : Location : Info
/dev/scsi/host0/bus0/target0/lun0 : 1.0 : Manufacturer="" : Product="USB Flash Drive" : SerialNumber = "1982010415D8"
/dev/usb/tts/0 : 2.0 : Manufacturer="AnyDATA Corporation" : Product="AnyDATA CDMA Products"
/dev/usb/tts/1 : 2.1 : Manufacturer="AnyDATA Corporation" : Product="AnyDATA CDMA Products"


попробовать можно, если потом поправите :)
ok

Pavia
12-06-2009, 23:01
Стояла прошивка от Олега 1.9.2.7-10 так как мучался с USB принтером приходилось перезапускать роутер. посоветовали поставить 1.9.2.7-d-r308 теперь появилась проблема роутер переодически сам перезапускается что вызывает проблемы так как связь с ноутом по вай-фай рвется. Смотрел логи они показывают что роутер сам перезапускается как после ресета - поэтому в логах ничего не сохраняется.

Роутер WL500gpv2.

sorine
13-06-2009, 07:49
lly, после обновления патча 051-include-backports.patch
заработал реконнект на модемах при USB 2.0. Это гуд.

theMIROn
13-06-2009, 08:16
lly, после обновления патча 051-include-backports.patch
заработал реконнект на модемах при USB 2.0. Это гуд.
С принтерами, возможно, тоже должно помочь.

angel_il
13-06-2009, 20:13
немного попереводил (джамшут эдишен)
http://code.google.com/p/wl500g/wiki/colinux?wl=en

Partos
15-06-2009, 22:13
Что-то не получается перепрошить через веб с 1.9.2.7-d-r273 на 1.9.2.7-d-r308. После нажатия Upload некоторое раздумье (ждал минут 5) и ... ничего. Перезагружаю, а в вебе видна та же версия прошивки 1.9.2.7-d-r273. Что-то изменилось в порядке перепрошивки? Может какие процессы мешают?

P.S. opt смонтирован на флешку, на втором USB сидит ext3-HDD.

Partos
15-06-2009, 22:28
попробовал предварительно выполнять pre-shutdown, а затем прошивать через веб:


$ pre-shutdown
Stopping web server: lighttpd
Shutting down MySQL SUCCESS!
(re)starting service saslauthd
sh: bad pid 'Pidof'
sh: bad pid 'phpM'
mount: mounting /dev/discs/disc1/part1 on /opt failed: Device or resource busy
mount: mounting /dev/discs/disc1/part1 on /opt failed: Device or resource busy
swapoff: /etc/fstab: No such file or directory
и в логе

Jun 16 01:19:20 rc.unslung: stop service /opt/etc/init.d/S80lighttpd
Jun 16 01:19:21 rc.unslung: stop service /opt/etc/init.d/S70mysqld
Jun 16 01:19:46 rc.unslung: stop service /opt/etc/init.d/S52saslauthd
Jun 16 01:19:46 saslauthd[242]: detach_tty : could not lock pid file /opt/var/state/saslauthd/saslauthd.pid: Resource temporarily unavailable
Jun 16 01:19:46 saslauthd[241]: detach_tty : Cannot start saslauthd
Jun 16 01:19:46 saslauthd[241]: detach_tty : Another instance of saslauthd is currently running
Jun 16 01:19:46 rc.unslung: stop service /opt/etc/init.d/S45php
Jun 16 01:19:46 rc.unslung: stop service /opt/etc/init.d/S10cron

Результат тот же - версия прошивки не меняется.

oleg71
16-06-2009, 05:31
lly, после обновления патча 051-include-backports.patch
заработал реконнект на модемах при USB 2.0. Это гуд.

Может хоть бетку подбросите - нету возможности
собирать разбирать...

http://files.myopera.com/Creat0R/Opera_AC/Icons/sun_hot_cool.gif

Partos
16-06-2009, 08:22
Что-то никак не могу найти, ткните носом: а как перепрошить командной строкой? По dropbear/ssh/putty это возможно?

Wolfgun
16-06-2009, 08:54
Что-то никак не могу найти, ткните носом: а как перепрошить командной строкой? По dropbear/ssh/putty это возможно?

FAQ Часто задаваемые вопросы (http://wl500g.info/showpost.php?p=33445)

theMIROn
16-06-2009, 09:06
Что-то никак не могу найти, ткните носом: а как перепрошить командной строкой? По dropbear/ssh/putty это возможно?
можно.
выкладываем прошивку куданибудь на внешний ресурс (http/ftp)
а дальше:


[admin@router root]$ cd /tmp
[admin@router /tmp]$ wget http://filehost/firmware.trx
[admin@router /tmp]$ write /tmp/firmware.trx /dev/mtd/1 -r

вместо скачивания образа прошивки wget'ом - можно положить ее в /tmp как еще угодно, через ftp или scp, лишь бы файл был в роутере

theMIROn
16-06-2009, 09:29
Может хоть бетку подбросите - нету возможности
собирать разбирать...
http://files.myopera.com/Creat0R/Opera_AC/Icons/sun_hot_cool.gif
как это нету?
http://code.google.com/p/wl500g/wiki/colinux

oleg71
16-06-2009, 12:20
как это нету?
http://code.google.com/p/wl500g/wiki/colinux

Не точно выразился, - у меня нету (~) (надеюсь пока) :rolleyes:
до покупки роутера Linux'ом только пользовался :)

Partos
16-06-2009, 12:35
[admin@router /tmp]$ write /tmp/firmware.trx /dev/mtd/1 -r


Мирон, спасибо огромное! /dev/mtd/1: CRC OK

theMIROn
17-06-2009, 20:42
Мирон, спасибо огромное! /dev/mtd/1: CRC OK
!опасносте!: в /dev/mtd/0 лежит загрузчик, если начать прошивать в туда (ошибившись), то будет большой ой, заканчивающийся выпаиванием микросхем

theMIROn
18-06-2009, 06:31
Только что заметил, на DIR-320 c r378:


Jan 1 05:00:03 kernel: usb.c: registered new driver usbdevfs
Jan 1 05:00:03 kernel: usb.c: registered new driver hub
Jan 1 05:00:04 kernel: usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6
Jan 1 05:00:04 kernel: usb-ohci.c: usb-00:03.0, PCI device 14e4:471a
Jan 1 05:00:04 kernel: usb.c: new USB bus registered, assigned bus number 1
Jan 1 05:00:04 kernel: hub.c: USB hub found
Jan 1 05:00:04 kernel: hub.c: 2 ports detected
Jan 1 05:00:04 kernel: ehci_hcd 00:03.1: PCI device 14e4:471a
Jan 1 05:00:04 kernel: ehci_hcd 00:03.1: irq 6, pci mem b8003800
Jan 1 05:00:04 kernel: usb.c: new USB bus registered, assigned bus number 2
Jan 1 05:00:04 kernel: ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 10 Dec 2004/2.4
Jan 1 05:00:04 kernel: hub.c: USB hub found
Jan 1 05:00:04 kernel: hub.c: 2 ports detected

Там должно быть USB 2.0 enabled, у всех так?

vigera
18-06-2009, 08:52
у меня на DIR-320 с r377 тоже самое
Jan 1 02:00:03 kernel: ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 10 Dec 2004/2.4

theMIROn
18-06-2009, 21:34
у меня на DIR-320 с r377 тоже самое
Jan 1 02:00:03 kernel: ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 10 Dec 2004/2.4
надо глянуть, возможно чисто визуально бага.

msevm
19-06-2009, 05:18
Уважаемые, не могли бы Вы добавить во встроенный vsftpd патч конвертации символов из http://vsftpd.devnet.ru/rus/ ?

ftagir
19-06-2009, 08:28
Господа, меня интересует возможность создания прошивки или модернизации имеющихся под собственные требования.
Хотелось бы пообщаться о стоимости и временных рамках.
С уважением к сообществу, Тагир

kodmis
20-06-2009, 12:21
Уважаемые, не могли бы Вы добавить во встроенный vsftpd патч конвертации символов из http://vsftpd.devnet.ru/rus/ ?

http://wl500g.info/showthread.php?t=17136&page=74

Ставьте в /opt и не парьтесь...

md5sum
20-06-2009, 16:38
При обновлении прошивки через WEB периодически наблюдаю "зависание" процесса rmmod usb-ohci, соответственно stopservice ждет выгрузки модуля и не запускается запись firmware.

dmesg в этом случае показывает:
Jun 20 19:21:53 kernel: usb.c: deregistering driver usb-storage
Jun 20 19:21:53 kernel: usb.c: deregistering driver usblp
Jun 20 19:21:53 kernel: ehci_hcd 00:03.1: remove state 1
Jun 20 19:21:53 kernel: usb.c: USB disconnect on device 00:03.1-0 address 1
Jun 20 19:21:53 kernel: usb.c: USB disconnect on device 00:03.1-1 address 2
Jun 20 19:21:53 kernel: usb.c: USB bus 2 deregistered
Jun 20 19:21:53 kernel: usb.c: USB disconnect on device 00:03.0-0 address 1
Jun 20 19:21:54 kernel: hub.c: new USB device 00:03.0-1, assigned address 2

hub переподключил устройство?

lsmod:
usb-ohci 19412 0 (deleted)
usbcore 76016 0 [usb-ohci]

Так и висит, до killall -9 stopservice

theMIROn
20-06-2009, 19:22
с какой ревизии обновление?

md5sum
20-06-2009, 19:36
с ревизии 334

theMIROn
20-06-2009, 21:39
после были изменения по части usb, попробуй с 378 обновляться

md5sum
20-06-2009, 21:52
Предисловие (кратко):
есть WL500gpv2 подключённый к корбине, за ним linksys spa942.
При обрыве l2tp (причину не знаю - происходит иногда ночью) и последующем восстановлении linksys "теряет" регистрацию на сервере.

Разбор полетов показал, что в ip_conntrack есть запись для этих пакетов с приватным IP корбины (что логично), но при поднятии PPP0 эти записи не удаляются и не заменяются на новые (что не есть хорошо) - т.к. по таймауту они не удаляются из-за того, что linksys постоянно перепосылает пакеты. Лечилось только перезагрузкой linksys-а.

Предлагаю patch, который чистит всю таблицу conntrack при получении PPP0 ip адреса.

У себя протестировал - полет отличный....
4965

PS: думаю над тем как реализовать очистку только тех записей, которые касаются только нового IP для ppp0 (похоже надо при NETDEV_UP читать таблицу раутинга и искать записи в conntrack не соответствующие текущему раутингу) . Требуются идеи!
PPS: если есть необходимость - могу "прикрутить" такую очистку к SNAT

theMIROn
20-06-2009, 22:25
все это было в ядре, и в 2.6, и в 2.4, в 2004 году откатили
http://lists.netfilter.org/pipermail/netfilter-devel/2004-November/017426.html
в вашем слуачае я бы поигрался с /proc/sys/net/ipv4/ip_dynaddr


Предлагаю patch, который чистит всю таблицу conntrack при получении PPP0 ip адреса.
для очистки conntrack в 1.9.2.7-d достаточно выполнить


echo 1 > /proc/sys/net/ipv4/ip_conntrack_clear

только вот локальные соединения тоже "полетят".


PPS: если есть необходимость - могу "прикрутить" такую очистку к SNATSNAT не чистит таблицу соединений, это официально документировано и ожидаемо. более того, очистка приведет к "разрывам" у пользователей с постоянным адресом по dhcp

p.s не стоит оно того, в теме про 1.9.2.7-10а это немного обсуждалось

Nickey
23-06-2009, 13:26
При попытке загрузить модуль bnep.o из комплекта идущего с прошивкой WL500W-1.9.2.7-d-r381 получается вот такая ошибка:



[admin@WL500W root]$ insmod /tmp/mnt/disc0_1/opt/tmp/modules/bnep.o
insmod: unresolved symbol crc32_be


Используется роутер WL500W с прошивкой WL500W-1.9.2.7-d-r381. На прошлой прошивке(308) было тоже самое, кажется. Модуль из комплетка прошивки WL500W-1.9.2.7-10 грузится корректно.

lly
23-06-2009, 13:34
Nickey
Поиск или modprobe не пробовали заюзать?

P.S. insmod crc32.o спасет цивилизацию

sorine
23-06-2009, 16:02
lly, добавил в драйвер option более десятка новых модемов.
Исходник модуля в архиве.
Для роутера Dlink DIR-320 ассоциировал WAN c VLAN1 по стандарту как у всех остальных роутеров вместо VLAN2.
Готовый патч в архиве.
Оба изменения проверил у себя.

lly
23-06-2009, 17:03
sorine
Залил.
JFYI: в 001-common.patch была опечатка

Wolfgun
23-06-2009, 17:13
ntfs-3g в D-381 не вошел ????

lly
23-06-2009, 17:22
ntfs-3g в D-381 не вошел ????
А в Downloads на googlecode посмотреть было слабо?
А еще подумать, и понять, что для большинства роутеров в 4Mb флэш ЭТО не влезет?

Wolfgun
23-06-2009, 17:54
А в Downloads на googlecode посмотреть было слабо?
А еще подумать, и понять, что для большинства роутеров в 4Mb флэш ЭТО не влезет?

Не подумал ...... lly...... мне так голову засрали на работе .... что мозги не варят

oleg71
24-06-2009, 05:43
lly, добавил в драйвер option более десятка новых модемов.
Исходник модуля в архиве.
Для роутера Dlink DIR-320 ассоциировал WAN c VLAN1 по стандарту как у всех остальных роутеров вместо VLAN2.

Подскажи пожалуйста, там ZTE MF626 точно есть?
У меня - option прошивки 381 - модем виснет.
usbserial 381 с параметрами - работает вторые сутки.

Dimcho
24-06-2009, 06:02
oleg71 option в 382М работает чуть лучше. На шнурке соединение "заводится" через раз, правда щас останавливается всё на

May 14 10:36:20 dnsmasq[70]: using nameserver 217.8.235.82#53
May 14 10:36:20 dnsmasq[70]: using nameserver 217.8.235.194#53
и инета нет :confused:
Вот эта строчка выходит через раз

Jan 1 08:01:42 Automatic IP: connected to ISP:confused:
На прямую в разъеме роутера врое бы нормально (из 7 попыток соединений 7 удачных :D).
Вот этих строчек больше нет

Jan 1 06:00:29 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep4in: not idle
Jan 1 06:00:29 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep4in: not idle
Jan 1 06:00:29 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep4in: not idle

oleg71
24-06-2009, 06:17
oleg71 option в 382М работает чуть лучше. На шнурке соединение "заводится" через раз, правда щас останавливается всё на

May 14 10:36:20 dnsmasq[70]: using nameserver 217.8.235.82#53
May 14 10:36:20 dnsmasq[70]: using nameserver 217.8.235.194#53
и инета нет :confused:
Вот эта строчка выходит через раз

Jan 1 08:01:42 Automatic IP: connected to ISP:confused:
На прямую в разъеме роутера врое бы нормально (из 7 попыток соединений 7 удачных :D).
Вот этих строчек больше нет

Jan 1 06:00:29 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep4in: not idle
Jan 1 06:00:29 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep4in: not idle
Jan 1 06:00:29 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep4in: not idle

1000% аналогичная ситуация! У меня еще к тому же
вообще бывает что dnsmasq не стартует и DNSов НЕТ!
срочно шьюсь на 382М, спасибо!
потестим 382М...

sorine
29-06-2009, 16:45
Начальный Backport драйвера option из ядра 2.6.30.
Обем кода резко уменьшился.
Скорость интернета возросла на 7 %.
Проверял на ZTE MF626 и C-MOTECH CDU-680.
Исходник драйвера.

lly
29-06-2009, 17:27
Начальный Backport драйвера option из ядра 2.6.30.
Обем кода резко уменьшился.
И потерян интерфейс ioctl (а экспорта вызовов tiocmget/tiocmset в 2.4 нет), и в случае вызова из user-space option_write() будет падать. Других существенных изменения не вижу.

Скорость интернета возросла на 7 %.
За счет чего???

theMIROn
29-06-2009, 17:39
за счет отсутствия ioctl возможно возросла (отсутствие записи/чтения состояний, ожидания модема), но оч похоже на плацебо



@@ -1228,9 +1143,6 @@ static int option_send_setup(struct usb_

dbg("%s: port %d", __FUNCTION__, port->number);

- if (port->number != 0)
- return 0;
-
if (port->tty) {
int val = 0;
if (portdata->dtr_state)

а вот это вполне адекватно, если интерфейс не на 0-м порту

плюс удаление дубля


@@ -335,7 +333,6 @@ static int option_send_setup(struct usb
#define ZTE_PRODUCT_CDMA_TECH6 0xfff8
#define ZTE_PRODUCT_CDMA_TECH7 0xfff7
#define ZTE_PRODUCT_CDMA_TECH8 0xfff6
-#define ZTE_PRODUCT_CDMA_TECH9 0xfff7

#define BENQ_VENDOR_ID 0x04a5
#define BENQ_PRODUCT_H10 0x4068
@@ -584,7 +581,6 @@ static struct usb_device_id option_ids[]
{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH6) },
{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH7) },
{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH8) },
- { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH9) },
{ USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
{ USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
{ USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */

sorine
29-06-2009, 18:56
за счет отсутствия ioctl возможно возросла (отсутствие записи/чтения состояний, ожидания модема), но оч похоже на плацебо

Не не не. Скорость возросла после изменения WRITE как в 2.6.30
где выкинули постоянную проверку на целостность копирования

if (from_user) {
if (copy_from_user(this_urb->transfer_buffer, buf, todo))
return -EFAULT;
}
else {
memcpy(this_urb->transfer_buffer, buf, todo);
}

Ну а насчет ioctl я сомневаюсь что кто-либо будет вызывать снаружи опрос состояния виртуального порта драйвера интернета. Был бы там кабель какой специфичный или программа например mpcs через его порт работала тогда да пиши читай опрашивай. поэтому и предложил выкинуть. Лишний код.

Модем проработал сутки без единого сбоя на этом драйвере.

lly
30-06-2009, 08:08
Не не не. Скорость возросла после изменения WRITE как в 2.6.30
где выкинули постоянную проверку на целостность копирования

if (from_user) {
if (copy_from_user(this_urb->transfer_buffer, buf, todo))
return -EFAULT;
}
else {
memcpy(this_urb->transfer_buffer, buf, todo);
}

Ну во-первых в 2.6 это реализовано совсем по-другому, если ты не заметил, там даже аргумента from_user нет.
Во-вторых, я не верю что загрузка процессора при обмене с модемом близка хотя-бы к 60%, а overhead copy_from_user() мизерный.
В третьих, радиоканал вне лаборатории по определению нестабилен, поэтому 6% очень спорная цифра.

Я скорее склоняюсь к мнению theMIROn, что либо ioctl реализовано не совсем корректно для данного модема, либо в самом модеме есть проблемы с контролем потока (flow control).

Ну а насчет ioctl я сомневаюсь что кто-либо будет вызывать снаружи опрос состояния виртуального порта драйвера интернета. Был бы там кабель какой специфичный или программа например mpcs через его порт работала тогда да пиши читай опрашивай. поэтому и предложил выкинуть. Лишний код.
Так можно половину ядра выкинуть...

evgklg
03-07-2009, 09:23
Помогите пожалуйста разобраться с dyndns на прошивке Dlink-DIR-320-1.9.2.7-d-382-3g-mpcs. В юсб воткунут модем скайлинк, но вот почему-то не работает динднс. Посмотрите лог плиз может подскажите как это исправить ?


Jan 1 00:00:02 kernel: hub.c: USB hub found
Jan 1 00:00:02 kernel: hub.c: 2 ports detected
Jan 1 00:00:03 kernel: ehci_hcd 00:03.1: PCI device 14e4:471a
Jan 1 00:00:03 kernel: ehci_hcd 00:03.1: irq 6, pci mem b8003800
Jan 1 00:00:03 kernel: usb.c: new USB bus registered, assigned bus number 2
Jan 1 00:00:03 kernel: ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 10 Dec 2004/2.4
Jan 1 00:00:03 kernel: hub.c: USB hub found
Jan 1 00:00:03 kernel: hub.c: 2 ports detected
Jan 1 00:00:03 kernel: usb.c: registered new driver usblp
Jan 1 00:00:03 kernel: printer.c: v0.13: USB Printer Device Class driver
Jan 1 00:00:04 kernel: hub.c: new USB device 00:03.0-1, assigned address 2
Jan 1 00:00:04 kernel: usb.c: USB device 2 (vend/prod 0x1011/0x3198) is not claimed by any active driver.
Jan 1 00:00:04 kernel: usb.c: registered new driver audio
Jan 1 00:00:04 kernel: audio.c: v1.0.1:USB Audio Class driver
Jan 1 00:00:04 kernel: Linux video capture interface: v1.00
Jan 1 00:00:05 kernel: SCSI subsystem driver Revision: 1.00
Jan 1 00:00:05 kernel: Initializing USB Mass Storage driver...
Jan 1 00:00:05 kernel: usb.c: registered new driver usb-storage
Jan 1 00:00:05 kernel: USB Mass Storage support registered.
Jan 1 00:00:05 kernel: vlan1: Setting MAC address to 00 90 4c c0 00 00.
Jan 1 00:00:05 kernel: VLAN (vlan1): Underlying device (eth0) has same MAC, not checking promiscious mode.
Jan 1 00:00:06 dnsmasq[73]: read /etc/hosts - 2 addresses
Jan 1 00:00:06 dhcp client: deconfig: lease is lost
Jan 1 00:00:06 kernel: usb.c: registered new driver serial
Jan 1 00:00:06 kernel: usbserial.c: USB Serial support registered for Generic
Jan 1 00:00:06 kernel: usbserial.c: Generic converter detected
Jan 1 00:00:06 kernel: usbserial.c: Generic converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
Jan 1 00:00:06 kernel: usbserial.c: Generic converter detected
Jan 1 00:00:06 kernel: usbserial.c: Generic converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
Jan 1 00:00:06 kernel: usbserial.c: USB Serial Driver core v1.4
Jan 1 00:00:16 pppd[116]: pppd 2.4.5 started by admin, uid 0
Jan 1 00:00:17 ddns update: could not open config file "/etc/ddns.conf": No such file or directory
Jan 1 00:00:17 ddns update: error parsing config file "/etc/ddns.conf"
Jan 1 00:00:18 pppd[116]: Serial connection established.
Jan 1 00:00:19 pppd[116]: Using interface ppp0
Jan 1 00:00:19 pppd[116]: Connect: ppp0 <--> /dev/usb/tts/0
Jan 1 00:00:22 pppd[116]: CHAP authentication succeeded
Jan 1 00:00:22 pppd[116]: CHAP authentication succeeded
Jan 1 00:00:22 pppd[116]: MPPC compression enabled
Jan 1 00:00:22 pppd[116]: local IP address 89.253.26.211
Jan 1 00:00:22 pppd[116]: remote IP address 89.253.1.45
Jan 1 00:00:22 pppd[116]: primary DNS address 212.129.96.13
Jan 1 00:00:22 pppd[116]: secondary DNS address 212.129.101.1
Jan 1 00:00:22 dnsmasq[73]: read /etc/hosts - 2 addresses
Jan 1 00:00:22 dnsmasq[73]: using nameserver 212.129.101.1#53
Jan 1 00:00:22 dnsmasq[73]: using nameserver 212.129.96.13#53
Jan 1 00:00:23 ddns update: ez-ipupdate Version 3.0.11b7, Copyright (C) 1998-2001 Angus Mackay.
Jan 1 00:00:23 ddns update: ez-ipupdate started for interface vlan1 host *.dyndns.org using server members.dyndns.org and service dyndns
Jan 1 00:00:23 ddns update: (*.dyndns.org) unable to resolve interface vlan1
Jan 1 00:00:23 Automatic IP: connected to ISP
Jul 3 07:59:32 ntp client: Synchronizing time with time.nist.gov ...
Jul 3 08:00:18 pppd[116]: System time change detected.

Wolfgun
03-07-2009, 09:50
Помогите пожалуйста разобраться с dyndns на прошивке Dlink-DIR-320-1.9.2.7-d-382-3g-mpcs. В юсб воткунут модем скайлинк, но вот почему-то не работает динднс. Посмотрите лог плиз может подскажите как это исправить ?



Jan 1 00:00:23 ddns update: ez-ipupdate started for interface vlan1 host *.dyndns.org using server members.dyndns.org and service dyndns
Jan 1 00:00:23 ddns update: (*.dyndns.org) unable to resolve interface vlan1
Jan 1 00:00:23 Automatic IP: connected to ISP



У тебя IP белый ???? или из серой сети ??
Если серый зайди на свой аккаунт в DynDNS и проверь какой прописан IP

theMIROn
03-07-2009, 10:11
Помогите пожалуйста разобраться с dyndns на прошивке Dlink-DIR-320-1.9.2.7-d-382-3g-mpcs. В юсб воткунут модем скайлинк, но вот почему-то не работает динднс. Посмотрите лог плиз может подскажите как это исправить?
отписался в оригинальной теме http://wl500g.info/showthread.php?t=20282

mk93
05-07-2009, 11:07
Хочу просуммировать список задач, за которые народ брался, но так и не выполнил :(

Было замечание, что якобы не работает форвардинг маркированных пакетов в случае с несколькими WAN'ами(ключик --set-mark у iptables, fwmark у ip). Однако корректный тестовый пример (например, рабочий на ББ) автор не смог привести...


похоже, что таки не работает...
Я могу сам накосячить, конечно, но отмаркированый пкет не рутится, такое впечатление

Изложение проблемы тут: http://wl500g.info/showthread.php?p=151657&posted=1#post151657

lly
06-07-2009, 09:47
похоже, что таки не работает...
Я могу сам накосячить, конечно, но отмаркированый пкет не рутится, такое впечатление

Изложение проблемы тут: http://wl500g.info/showthread.php?p=151657&posted=1#post151657
По твоим выкладкам выходит, что пакеты успешно маркируются, но вот с роутингом засада. Увы, с наскоку вопроизвести проблему не удалось (у меня один реальный провайдер), будем пытаться разобраться дальше.

mk93
06-07-2009, 09:59
Добавлю, что если убрать default route из таблицы main, то в syslog вообще ничего не попадает...

lll123lll
07-07-2009, 14:41
> с наскоку вопроизвести проблему не удалось (у меня один реальный провайдер)

У одного реального прова как правило есть разделение на локалку(ethX) и инет(pppX)
сабж легко проверить на этом разделении например завернув 80-й порт в локалку - инет странички будут недоступны,а локальные ресурсы доступны
вариант 2
подключить к wan2 комп с любой службой (ftp,http и тп...) и дать ему статический адрес типа 192.168.9.1
например второй роутер или модем какой нибудь
заворачиваем 80-й порт на wan1 - страничка второго роутера недоступна
заворачиваем 80-й порт на wan2 - страничка второго роутера доступна зато недоступны сайты http в инет(wan1)
в настоящее время все будет уходить по главной таблице наплевав на "ip rule add fwmark XX table YY"


PS единственное что нашел на эту тему это то, что iptables по умолчанию понимает номер метки в 10-чном формате , а ip в 16-ричном , но ни явное указание через 0x ни использование метки 3 (одинакова для любого представления) ни к чему не привело...
Сейчас назначаю на компе два адреса и через сабж(ip rule add fwmark 3 table 3) разруливаю по разным IP,
а на роутере делаю маршрутизацию по источнику (ip rule add from 192.168.1.7 table 3), которая там работает.

PSPS самое неприятное, что указанный баг не позволяет сделать полноценную сессионную балансировку между каналами

lly
07-07-2009, 14:56
У одного реального прова как правило есть разделение на локалку(ethX) и инет(pppX)

У моего провайдера нет VPN, и это положительно сказывается на скорости :D

lll123lll
07-07-2009, 15:03
вариант 2 чем не подходит?

lly
07-07-2009, 15:07
вариант 2 чем не подходит?
Отсутствием второго компа или 3G модема, а второй роутер еще не успел перенастроить.

md5sum
07-07-2009, 18:17
сабж легко проверить на этом разделении например завернув 80-й порт в локалку

Проверил на ASUS WL-500GPV2 firmware 1.9.2.7-d
все работает!

iptables -t mangle -I PREROUTING -s 172.16.7.51 -p tcp --dport 80 -j MARK --set-mark 0x2e
ip rule add fwmark 0x2e table 20
ip route add default via 10.69.57.1 table 20

Пакеты маркируются сразу после ввода команд, а routing начинает работать ТОЛЬКО после очистки conntrack по таймауту или "ручками" (это не относится к: WEB почте и т.д. где sport каждый раз разный)

PS: на рабочей машине в офисе так-же пришлось очищать conntrack при переходе на backup маршрут (при падении основного маршрута ethernet остается в UP и conntrack не очистится при постоянных запросаx: например SIP REGISTER)

lly
07-07-2009, 18:29
Проверил на ASUS WL-500GPV2 firmware 1.9.2.7-d
все работает!

Спасибо за геройское тестирование! :cool:

P.S. А то у меня последние две недели просто задница со временем :(

mk93
07-07-2009, 18:58
Проверил на ASUS WL-500GPV2 firmware 1.9.2.7-d
все работает!

iptables -t mangle -I PREROUTING -s 172.16.7.51 -p tcp --dport 80 -j MARK --set-mark 0x2e
ip rule add fwmark 0x2e table 20
ip route add default via 10.69.57.1 table 20

Пакеты маркируются сразу после ввода команд, а routing начинает работать ТОЛЬКО после очистки conntrack по таймауту или "ручками" (это не относится к: WEB почте и т.д. где sport каждый раз разный)

PS: на рабочей машине в офисе так-же пришлось очищать conntrack при переходе на backup маршрут (при падении основного маршрута ethernet остается в UP и conntrack не очистится при постоянных запросаx: например SIP REGISTER)

Спасибо! А не подскажете идиоту, допустимо ли чистить conntrack командой типа
echo '' >> /proc/net/ip_conntrack
или надо изгаляться круче? :)

Кстати, если его не чистить, то можно заметить пакеты, прошедшие через правило маркировки iptables с атрибутом mark=0 в conntrack.

theMIROn
07-07-2009, 19:04
Спасибо! А не подскажете идиоту, допустимо ли чистить conntrack командой типа
echo '' >> /proc/net/ip_conntrack
или надо изгаляться круче? :)

нет, возможность очистки есть в 1.9.2.7-d и в чеховской 1.9.2.7-10-USB


echo 0 > /proc/sys/net/ipv4/ip_conntrack_clear

mk93
07-07-2009, 19:36
нет, возможность очистки есть в 1.9.2.7-d и в чеховской 1.9.2.7-10-USB


echo 0 > /proc/sys/net/ipv4/ip_conntrack_clear

Спасибо большое!

Nightman
07-07-2009, 20:50
помогите пожалуйста решить проблему: не работает расписание отключения/вкл wi-fi. Asus WL500GPv2 FW 1.9.27-D M388 не работало и на 380.

md5sum
07-07-2009, 20:54
то можно заметить пакеты, прошедшие через правило маркировки iptables с атрибутом mark=0 в conntrack.

Тут поможет -j CONNMARK в правилах iptables :rolleyes:

md5sum
07-07-2009, 21:04
Тут поможет -j CONNMARK в правилах iptables :rolleyes:

Только iproute2 вроде его не анализирует....

mk93
08-07-2009, 08:45
Тут поможет -j CONNMARK в правилах iptables :rolleyes:
Я это написал к тому, что в ситуации, когда conntrack не очищен, маркированный iptables пакет виден как попытка (неудачная) установить соединение в conntrack. При этом, поле mark у этого соединения равно 0.

ЗЫ: Доигрался с перепрошивками... Рутер не входит в состояние восстановления (Power не зажигается). Это 9-я нога?

LnrMn
08-07-2009, 12:51
ЗЫ: Доигрался с перепрошивками... Рутер не входит в состояние восстановления (Power не зажигается). Это 9-я нога?

В лучшем случае да. ;)
Как делать знаете?

mk93
08-07-2009, 12:59
В лучшем случае да. ;)
Как делать знаете?
Только в теории.

lly
09-07-2009, 07:15
помогите пожалуйста решить проблему: не работает расписание отключения/вкл wi-fi. Asus WL500GPv2 FW 1.9.27-D M388 не работало и на 380.
А на стабильных прошивках Олега работает? Если нет - похоже ошибка у вас.

mk93
09-07-2009, 08:03
В лучшем случае да. ;)
Как делать знаете?

Теперь знаю! :)

LnrMn
09-07-2009, 08:40
Теперь знаю! :)

Ну надеюсь все получилось ;)

mk93
09-07-2009, 11:02
Ну надеюсь все получилось ;)
Да, к счастью. :):) Сегодня вечером попробую сделать задуманное, используя очистку conntrack

mk93
10-07-2009, 18:23
проблема, не знаю, куда написать...

Короче, вот trace пакетов по 25 порту (я этот трафик и перенаправляю)
От меня - туда:

Jul 10 20:57:28 kernel: q mangle PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=50080 DF PROTO=TCP SPT=1825 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 10 20:57:28 kernel: q nat PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=50080 DF PROTO=TCP SPT=1825 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 10 20:57:28 kernel: q mangle FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=50080 DF PROTO=TCP SPT=1825 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 10 20:57:28 kernel: q filter FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=50080 DF PROTO=TCP SPT=1825 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 10 20:57:28 kernel: q mangle POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=50080 DF PROTO=TCP SPT=1825 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0

Оттуда - мне:


Jul 10 21:02:27 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:0 0:00:28 SRC=217.16.16.82 DST=192.168.10.2 LEN=40 TOS=0x00 PREC=0x00 TTL=254 ID=65259 PROTO=TCP SPT=25 DPT=1825 WINDOW=65535 RES=0x00 RST URGP=0
Jul 10 21:02:27 kernel: a nat PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:0 0:00:28 SRC=217.16.16.82 DST=192.168.10.2 LEN=40 TOS=0x00 PREC=0x00 TTL=254 ID=65259 PROTO=TCP SPT=25 DPT=1825 WINDOW=65535 RES=0x00 RST URGP=0


На этом - все. соединение не поднимается. То есть, ответ не доходит даже до этапа принятия решения о маршрутизации...

iptables -t nat -I POSTROUTING 1 -o vlan2 ! -s 192.168.10.2 -j MASQUERADE

прописано, если что...

Power
10-07-2009, 18:56
Оттуда - мне:


Jul 10 21:02:27 kernel: a mangle PREROUTING:IN=vlan2 ... PROTO=TCP ... RST URGP=0
Jul 10 21:02:27 kernel: a nat PREROUTING:IN=vlan2 ... PROTO=TCP ... RST URGP=0


На этом - все. соединение не поднимается. То есть, ответ не доходит даже до этапа принятия решения о маршрутизации...


Догадываетесь?

mk93
10-07-2009, 18:57
Догадываетесь?
Догадываюсь, что рутер не знает, что ему делать с этим пакетом.
И не очень понимаю что будет правильно делать. MASQUERADE не достаточно?

mk93
10-07-2009, 19:18
Догадываетесь?
Судя по подписи, Вы не догадываетесь, а знаете. Может подскажете? Я не вижу правила, которое сбросило бы пакет.
mangle

$ iptables -nvL -t mangle
Chain PREROUTING (policy ACCEPT 1016K packets, 174M bytes)
pkts bytes target prot opt in out source destination
24 1248 MARK tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 MARK set 0x3
24 1248 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q mangle PREROUTING:'
49 2488 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a mangle PREROUTING:'

Chain INPUT (policy ACCEPT 112K packets, 11M bytes)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a mangle INPUT:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q mangle INPUT:'

Chain FORWARD (policy ACCEPT 48639 packets, 15M bytes)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a mangle FORWARD:'
24 1248 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q mangle FORWARD:'

Chain OUTPUT (policy ACCEPT 70466 packets, 6751K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q mangle OUTPUT:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a mangle OUTPUT:'

Chain POSTROUTING (policy ACCEPT 119K packets, 21M bytes)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a mangle POSTROUTING:'
24 1248 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q mangle POSTROUTING:'

nat

$ iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 897K packets, 153M bytes)
pkts bytes target prot opt in out source destination
1 40 VSERVER all -- * * 0.0.0.0/0 192.168.10.2
8 416 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q nat PREROUTING:'
5 200 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a nat PREROUTING:'

Chain POSTROUTING (policy ACCEPT 6605 packets, 396K bytes)
pkts bytes target prot opt in out source destination
5 260 MASQUERADE all -- * vlan2 !192.168.10.2 0.0.0.0/0
1145 62783 MASQUERADE all -- * vlan1 !10.20.208.55 0.0.0.0/0
0 0 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1
2 104 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q nat POSTROUTING:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a nat POSTROUTING:'

Chain OUTPUT (policy ACCEPT 6603 packets, 396K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q nat OUTPUT:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a nat OUTPUT:'

Chain VSERVER (2 references)
pkts bytes target prot opt in out source destination

forward

$ iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
66006 6099K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
6590 395K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW
20 1508 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 flags:0x17/0x02
40303 4071K DROP all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q filter INPUT:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a filter INPUT:'

Chain FORWARD (policy ACCEPT 1194 packets, 65373 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
47951 15M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- !br0 vlan1 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate DNAT
0 0 DROP all -- * br0 0.0.0.0/0 0.0.0.0/0
12 624 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q filter FORWARD:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a filter FORWARD:'

Chain OUTPUT (policy ACCEPT 70668 packets, 6774K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q filter OUTPUT:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a filter OUTPUT:'

Chain BRUTE (0 references)
pkts bytes target prot opt in out source destination

Chain MACS (0 references)
pkts bytes target prot opt in out source destination

Chain SECURITY (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 1/sec burst 5
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logaccept (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `ACCEPT '
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `DROP '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Power
10-07-2009, 19:24
Догадываюсь, что рутер не знает, что ему делать с этим пакетом.
И не очень понимаю что будет правильно делать. MASQUERADE не достаточно?

Имеет смысл поместить логгирующие правила в начало каждой из цепочек, а не в конец. Думаю, что ответный пакет не доходит до конца цепочки FORWARD. А через остальные цепочки он не проходит, т.к. по факту не является первым пакетом соединения. А само соединение не устанавливается, потому что от сервера приходит RST (то, что я выделил в предыдущем сообщении), т.е. сервер не желает открывать соединение.

mk93
10-07-2009, 19:43
Ответный пакет доходит до mangle PREROUTING и все.
Про цепочку forward даже речи не идет. Вот такой пакет:

Jul 10 22:31:23 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=81.195.221.190 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=54 ID=0 DF PROTO=TCP SPT=25 DPT=2432 WINDOW=5840 RES=0x00 ACK SYN URG


Нам отвечают, а мы молчим, естественно, через время приходит RST.

Такое впечатление, что рутер "забывает", что он маскарадил пакет для vlan2 (192.168.10.2).

md5sum
10-07-2009, 20:02
Нам отвечают, а мы молчим, естественно, через время приходит RST.

Такое впечатление, что рутер "забывает", что он маскарадил пакет для vlan2 (192.168.10.2).

-j LOG первой строкой в nat prerouting!
После mangle идет nat prerouting а потом (если дойдет :) ) - forward

PS: cat /proc/net/ip_conntrack | grep 217.16.16.82 покажи

PSS: К модераторам: Может в отдельную тему "iproute2" перекинуть ?

mk93
10-07-2009, 20:36
-j LOG первой строкой в nat prerouting!
После mangle идет nat prerouting а потом (если дойдет :) ) - forward

Стоит первым.



PS: cat /proc/net/ip_conntrack | grep 217.16.16.82 покажи


$ cat /proc/net/ip_conntrack | grep "217.16.16.82"
tcp 6 48 SYN_RECV src=192.168.1.55 dst=217.16.16.82 sport=2775 dport=25 src=217.16.16.82 dst=192.168.10.2 sport=25 dport=2775 use=1 mark=0


Ответ получили, но не на тот адрес.

md5sum
10-07-2009, 21:07
Стоит первым.
всетаки вторым
Chain PREROUTING (policy ACCEPT 897K packets, 153M bytes)
pkts bytes target prot opt in out source destination
1 40 VSERVER all -- * * 0.0.0.0/0 192.168.10.2

SORRY! пропустил сообщение про "переместил"



$ cat /proc/net/ip_conntrack | grep "217.16.16.82"
tcp 6 48 SYN_RECV src=192.168.1.55 dst=217.16.16.82 sport=2775 dport=25 src=217.16.16.82 dst=192.168.10.2 sport=25 dport=2775 use=1 mark=0


Ответ получили, но не на тот адрес.

Разве 192.168.10.2 не есть адрес vlan2 ?
Если да, то и ответ правильный (что видно из conntrack)

iptables -t nat -I PREROUTING -i vlan2 -p tcp --sport 25 -j ACCEPT

попробуй

mk93
10-07-2009, 21:22
С тех пор переставить успел.



Разве 192.168.10.2 не есть адрес vlan2 ?
Если да, то и ответ правильный (что видно из conntrack)

Ответ правильный, я не так выразился. Разве адрес отправителя в инициирующем пакете не должен был пронатиться? А он остался 192.168.1.55. Т.е. впечатление, что не маскарадит он маркированные пакеты.

iptables -t nat -I PREROUTING -i vlan2 -p tcp --sport 25 -j ACCEPT

Счас попробую.

mk93
10-07-2009, 21:28
От меня:

Jul 11 00:14:22 kernel: q mangle PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=47471 DF PROTO=TCP SPT=4712 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 00:14:22 kernel: q nat PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=47471 DF PROTO=TCP SPT=4712 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 00:14:22 kernel: q mangle FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=47471 DF PROTO=TCP SPT=4712 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 00:14:22 kernel: q filter FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=47471 DF PROTO=TCP SPT=4712 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 00:14:22 kernel: q mangle POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=47471 DF PROTO=TCP SPT=4712 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 00:14:22 kernel: q nat POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=47471 DF PROTO=TCP SPT=4712 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0


Ко мне:

Jul 11 00:14:22 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=35240 DF PROTO=TCP SPT=25 DPT=4712 WINDOW=65535 RES=0x00 ACK SYN

NAT

Chain PREROUTING (policy ACCEPT 1049K packets, 178M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- vlan2 * 0.0.0.0/0 0.0.0.0/0 tcp spt:25
7 364 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q nat PREROUTING:'
6 240 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a nat PREROUTING:'
0 0 VSERVER all -- * * 0.0.0.0/0 10.20.205.55
8 320 VSERVER all -- * * 0.0.0.0/0 192.168.10.2

Chain POSTROUTING (policy ACCEPT 7390 packets, 444K bytes)
pkts bytes target prot opt in out source destination
7 364 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q nat POSTROUTING:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a nat POSTROUTING:'
12 624 MASQUERADE all -- * vlan2 !192.168.10.2 0.0.0.0/0
3413 183K MASQUERADE all -- * vlan1 !10.20.208.55 0.0.0.0/0
0 0 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1

Chain OUTPUT (policy ACCEPT 7388 packets, 443K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 LOG flags 0 level 4 prefix `q nat OUTPUT:'
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25 LOG flags 0 level 4 prefix `a nat OUTPUT:'

Chain VSERVER (2 references)
pkts bytes target prot opt in out source destination

CONNTRACK

tcp 6 59 SYN_RECV src=192.168.1.55 dst=217.16.16.82 sport=4737 dport=25 src=217.16.16.82 dst=192.168.10.2 sport=25 dport=4737 use=1 mark=0

PS Сейчас попробую на других маркированных пакетах сравнить trace через разные vlan. (порт 25 у одного из провов закрыт).

Power
10-07-2009, 21:45
$ cat /proc/net/ip_conntrack | grep "217.16.16.82"
tcp 6 48 SYN_RECV src=192.168.1.55 dst=217.16.16.82 sport=2775 dport=25 src=217.16.16.82 dst=192.168.10.2 sport=25 dport=2775 use=1 mark=0


Ответ получили, но не на тот адрес.

Да вроде всё правильно. SYN_RECV - значит, ответный пакет получен и распознан. Дело в том, что первые 4 поля [src, dst, sport, dport] берутся из пакета, начавшего соединение, а вторые 4 [src, dst, sport, dport] - это те значения, которые ожидаются в ответном пакете.

Для эксперимента я тут проверил прохождение пакетов на своём роутере и вот что получилось:
1) первый пакет проходит все цепочки:


mangle PREROUTING d: IN=br0 OUT= MAC=... SRC=192.168.1.3 DST=87.249.28.34 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=37367 DF PROTO=TCP SPT=34936 DPT=8181 SEQ=953093884 ACK=0 WINDOW=5840 RES=0x00 SYN URGP=0
nat PREROUTING d: IN=br0 OUT= MAC=... SRC=192.168.1.3 DST=87.249.28.34 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=37367 DF PROTO=TCP SPT=34936 DPT=8181 SEQ=953093884 ACK=0 WINDOW=5840 RES=0x00 SYN URGP=0
mangle FORWARD d: IN=br0 OUT=ppp0 SRC=192.168.1.3 DST=87.249.28.34 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=37367 DF PROTO=TCP SPT=34936 DPT=8181 SEQ=953093884 ACK=0 WINDOW=5840 RES=0x00 SYN URGP=0
filter FORWARD d: IN=br0 OUT=ppp0 SRC=192.168.1.3 DST=87.249.28.34 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=37367 DF PROTO=TCP SPT=34936 DPT=8181 SEQ=953093884 ACK=0 WINDOW=5840 RES=0x00 SYN URGP=0
mangle POSTROUTING d: IN= OUT=ppp0 SRC=192.168.1.3 DST=87.249.28.34 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=37367 DF PROTO=TCP SPT=34936 DPT=8181 SEQ=953093884 ACK=0 WINDOW=5840 RES=0x00 SYN URGP=0
nat POSTROUTING d: IN= OUT=ppp0 SRC=192.168.1.3 DST=87.249.28.34 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=37367 DF PROTO=TCP SPT=34936 DPT=8181 SEQ=953093884 ACK=0 WINDOW=5840 RES=0x00 SYN URGP=0

2) остальные пакеты (начиная со второго) проходят то же, но без nat:


mangle PREROUTING s: IN=ppp0 OUT= MAC= SRC=87.249.28.34 DST=77.51.181.223 LEN=60 TOS=0x00 PREC=0x00 TTL=58 ID=16691 DF PROTO=TCP SPT=8181 DPT=34936 SEQ=3376888007 ACK=953093885 WINDOW=65535 RES=0x00 ACK SYN URGP=0
mangle FORWARD s: IN=ppp0 OUT=br0 SRC=87.249.28.34 DST=192.168.1.3 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=16691 DF PROTO=TCP SPT=8181 DPT=34936 SEQ=3376888007 ACK=953093885 WINDOW=65535 RES=0x00 ACK SYN URGP=0
filter FORWARD s: IN=ppp0 OUT=br0 SRC=87.249.28.34 DST=192.168.1.3 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=16691 DF PROTO=TCP SPT=8181 DPT=34936 SEQ=3376888007 ACK=953093885 WINDOW=65535 RES=0x00 ACK SYN URGP=0
mangle POSTROUTING s: IN= OUT=br0 SRC=87.249.28.34 DST=192.168.1.3 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=16691 DF PROTO=TCP SPT=8181 DPT=34936 SEQ=3376888007 ACK=953093885 WINDOW=65535 RES=0x00 ACK SYN URGP=0


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

mk93
10-07-2009, 21:49
Итого, трассировал icmp.
Маркируется icmp и маркированные пакетотсылаются через vlan1:

Jul 11 00:34:23 kernel: mangle PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=57390 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: nat PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=57390 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: mangle FORWARD:IN=br0 OUT=vlan1 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=57390 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: filter FORWARD:IN=br0 OUT=vlan1 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=57390 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: mangle POSTROUTING:IN= OUT=vlan1 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=57390 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: nat POSTROUTING:IN= OUT=vlan1 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=57390 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: mangle PREROUTING:IN=vlan1 OUT= MAC=00:22:15:5d:1e:2a:00:17:a4:ff:54:80:08:00:45:0 0:00:3c SRC=93.158.134.8 DST=10.20.208.55 LEN=60 TOS=0x00 PREC=0x00 TTL=55 ID=36419 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: mangle FORWARD:IN=vlan1 OUT=br0 SRC=93.158.134.8 DST=192.168.1.55 LEN=60 TOS=0x00 PREC=0x00 TTL=54 ID=36419 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: filter FORWARD:IN=vlan1 OUT=br0 SRC=93.158.134.8 DST=192.168.1.55 LEN=60 TOS=0x00 PREC=0x00 TTL=54 ID=36419 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=512
Jul 11 00:34:23 kernel: mangle POSTROUTING:IN= OUT=br0 SRC=93.158.134.8 DST=192.168.1.55 LEN=60 TOS=0x00 PREC=0x00 TTL=54 ID=36419 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=512


То же самое, но маркированные пакеты отсылаются через vlan2:

Jul 11 00:38:49 kernel: mangle PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=59589 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=768
Jul 11 00:38:49 kernel: nat PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=59589 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=768
Jul 11 00:38:49 kernel: mangle FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=59589 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=768
Jul 11 00:38:49 kernel: filter FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=59589 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=768
Jul 11 00:38:49 kernel: mangle POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=59589 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=768
Jul 11 00:38:49 kernel: nat POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=93.158.134.8 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=59589 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=768

CONNTRACK пуст, естественно

md5sum
10-07-2009, 21:50
Ответ правильный, я не так выразился. Разве адрес отправителя в инициирующем пакете не должен был пронатиться? А он остался 192.168.1.55. Т.е. впечатление, что не маскарадит он маркированные пакеты.

Все пронатилось: запись из conntrack правильная (с точки зрения нат) и на syn был получен ответ..

tcpdump подтверждает потерю пакетов?

mk93
10-07-2009, 21:54
Скажите, а у вас сейчас роутинг обычный или "advanced" настроен? А то такое ощущение, что ответный пакет доходит как раз до решения о маршрутизации и где-то там теряется.

Ощущение у меня ровно такое же.
Рутер стоит в режиме Home Gateway, если имелось в виду это. В остальных режимах NAT disabled.
Как настроить advanced routing?

mk93
10-07-2009, 22:00
Все пронатилось: запись из conntrack правильная (с точки зрения нат) и на syn был получен ответ..

tcpdump подтверждает потерю пакетов?

Мне стыдно, но что надо сказать tcpdump, чтобы он не рисовал мне пакеты ssh? за ними ничего не видно.

md5sum
10-07-2009, 22:09
tcpdump -i any "port 25"

mk93
10-07-2009, 22:19
tcpdump -i any "port 25"

-i any не сработало


]$ tcpdump -i vlan2 "port 25"
tcpdump: WARNING: can't create rx ring on packet socket 3: 99-Protocol not available
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vlan2, link-type EN10MB (Ethernet), capture size 68 bytes
01:08:58.652740 IP 192.168.10.2.1089 > smtp1.masterhost.ru.smtp: Flags [S], seq 3025720219, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0
01:08:58.669369 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0
01:09:01.565368 IP 192.168.10.2.1089 > smtp1.masterhost.ru.smtp: Flags [S], seq 3025720219, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0
01:09:01.581104 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0
01:09:04.595493 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0
01:09:07.581137 IP 192.168.10.2.1089 > smtp1.masterhost.ru.smtp: Flags [S], seq 3025720219, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0
01:09:07.597810 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0
01:09:10.612770 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0
01:09:16.643486 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0
01:09:28.704213 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0

10 packets captured
10 packets received by filter
0 packets dropped by kernel



$ tcpdump -i br0 "port 25"
tcpdump: WARNING: can't create rx ring on packet socket 3: 99-Protocol not available
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br0, link-type EN10MB (Ethernet), capture size 68 bytes
01:11:27.148341 IP 192.168.1.55.1113 > smtp1.masterhost.ru.smtp: Flags [S], seq 3220936314, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0
01:11:30.143043 IP 192.168.1.55.1113 > smtp1.masterhost.ru.smtp: Flags [S], seq 3220936314, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0
01:11:36.174421 IP 192.168.1.55.1113 > smtp1.masterhost.ru.smtp: Flags [S], seq 3220936314, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0

3 packets captured
26 packets received by filter
0 packets dropped by kernel

md5sum
10-07-2009, 22:20
в посте http://wl500g.info/showpost.php?p=152345&postcount=1454

нестыковка

Jul 11 00:14:22 kernel: q nat POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=47471 DF PROTO=TCP SPT=4712 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 00:14:22 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=35240 DF PROTO=TCP SPT=25 DPT=4712 WINDOW=65535 RES=0x00 ACK SYN
conntack:
tcp 6 59 SYN_RECV src=192.168.1.55 dst=217.16.16.82 sport=4737 dport=25 src=217.16.16.82 dst=192.168.10.2 sport=25 dport=4737 use=1 mark=0

давай еще раз с "чистого" роутера (после ребута) посмотрим.

md5sum
10-07-2009, 22:23
01:09:01.565368 IP 192.168.10.2.1089 > smtp1.masterhost.ru.smtp: Flags [S], seq 3025720219, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0
01:09:01.581104 IP smtp1.masterhost.ru.smtp > 192.168.10.2.1089: Flags [S.], seq 1037942609, ack 3025720220, win 65535, options [mss 1452,nop,wscale 3,sackOK,eol], length 0


Пакет вернулся, но роутер незнает что с ним делать...
И где пакет от источника трафика?

Power
10-07-2009, 22:28
Ощущение у меня ровно такое же.
Рутер стоит в режиме Home Gateway, если имелось в виду это. В остальных режимах NAT disabled.
Как настроить advanced routing?

Под advanced routing я понимаю iproute2, что-то вроде того, что вы использовали тут (http://wl500g.info/showthread.php?t=20296) (команда ip).

mk93
10-07-2009, 22:52
Conntrack

tcp 6 57 SYN_RECV src=192.168.1.55 dst=217.16.16.82 sport=1309 dport=25 src=217.16.16.82 dst=192.168.10.2 sport=25 dport=1309 use=1 mark=0

ЛОГ OUT:

Jul 11 01:40:33 kernel: q mangle PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=25592 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:33 kernel: q nat PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=25592 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:33 kernel: q mangle FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=25592 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:33 kernel: q filter FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=25592 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:33 kernel: q mangle POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=25592 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:36 kernel: q mangle PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=25595 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:36 kernel: q mangle FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=25595 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:36 kernel: q mangle POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=25595 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:42 kernel: q mangle PREROUTING:IN=br0 OUT= MAC=00:22:15:5d:1e:2a:00:30:1b:bc:9d:6f:08:00 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=25603 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:42 kernel: q mangle FORWARD:IN=br0 OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=25603 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Jul 11 01:40:42 kernel: q mangle POSTROUTING:IN= OUT=vlan2 SRC=192.168.1.55 DST=217.16.16.82 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=25603 DF PROTO=TCP SPT=1309 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0


ЛОГ IN:

Jul 11 01:40:33 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=21794 DF PROTO=TCP SPT=25 DPT=1309 WINDOW=65535 RES=0x00 ACK SYN
Jul 11 01:40:36 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=28465 DF PROTO=TCP SPT=25 DPT=1309 WINDOW=65535 RES=0x00 ACK SYN
Jul 11 01:40:39 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=34349 DF PROTO=TCP SPT=25 DPT=1309 WINDOW=65535 RES=0x00 ACK SYN
Jul 11 01:40:42 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=41278 DF PROTO=TCP SPT=25 DPT=1309 WINDOW=65535 RES=0x00 ACK SYN
Jul 11 01:40:45 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=47955 DF PROTO=TCP SPT=25 DPT=1309 WINDOW=65535 RES=0x00 ACK SYN
Jul 11 01:40:51 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=59372 DF PROTO=TCP SPT=25 DPT=1309 WINDOW=65535 RES=0x00 ACK SYN
Jul 11 01:41:03 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=217.16.16.82 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=57 ID=18070 DF PROTO=TCP SPT=25 DPT=1309 WINDOW=65535 RES=0x00 ACK SYN


Спасибо за заботу и Спокойной ночи!

mk93
11-07-2009, 18:25
Есть смысл попробовать! На днях ковырял milti ssid, так там похожее творилось - создан vlan (wl0.1). WIFI сеть появлялась, но пакеты через нее не бегали пока я не добавил wl0.1 в br1. Соответственно в iptables все правила переделываются на br1 а не wl0.1. Но при этом traffic control все равно необходимо "привязывать" к wl0.1 а не br1
Я правильно понял, что "правила iptables" - это firewall, а traffic control - таблицы маршрутизации? Или наоборот?

Пошел честь репу на тему "как создать мост".

md5sum
11-07-2009, 20:10
brctl addbr br1
brctl addif vlan2

traffic control - управление полосой пропускания. Это я для примера привел, что в некоторых случаях надо использовать BR, а в некоторых физический интерфейс....

PS: IP адрес надо будет назначать интерфейсу BR, а не vlan

mk93
11-07-2009, 22:18
brctl addbr br1
brctl addif vlan2

traffic control - управление полосой пропускания. Это я для примера привел, что в некоторых случаях надо использовать BR, а в некоторых физический интерфейс....

PS: IP адрес надо будет назначать интерфейсу BR, а не vlan
Спасибо. Не помогло.

mk93
20-07-2009, 21:53
он же - метод "научного тыка", привел к следующему результату:

При прочих равных задание
ip route add default nexthop via 1.2.3.4 dev vlan1 weight 1 /
nexthop via 5.6.7.8 dev vlan2 weight 2
приводит к тому, что все работает как задумано. К сожалению, мне это не подходит, т.к. на vlan2 надо отдавать только определенный трафик, а не 1/100 всего...

При

ip route add default via 1.2.3.4 dev vlan1

не работает. Пакет уходит через vlan2, как и положено, ответный пакет приходит на vlan2, как и положено, но рутер не знает что с ним делать (судя по логам iptables) (см. все настройки выше), он доходит до точки принятия решения о маршрутизации (nat PREROUTING) и... не может его принять.

Какова разница в состоянии ядра (переменных, отвечающих за маршрутизацию) в этих двух случаях (multipath default route и простой default)?

MrGalaxy
21-07-2009, 18:36
Вечер добрый, господа разработчики!

У меня возникло желание попользоваться результатами вашего труда.:D
1) Какая версия прошивки сейчас самая стабильная, без глюков?
2) Как лучше всего мне перепрошиться? Сейчас у меня последняя прошивка Олега, настроен vlan2, прикручен диск, установлены разные пакеты и т.д.
Как это всё безболезненно сохранить, чтобы не переустанавливать после перепрошивки?

theMIROn
21-07-2009, 18:46
Вечер добрый, господа разработчики!

У меня возникло желание попользоваться результатами вашего труда.:D
1) Какая версия прошивки сейчас самая стабильная, без глюков?
2) Как лучше всего мне перепрошиться? Сейчас у меня последняя прошивка Олега, настроен vlan2, прикручен диск, установлены разные пакеты и т.д.
Как это всё безболезненно сохранить, чтобы не переустанавливать после перепрошивки?
1. 1.9.2.7-d-r396.
2. через web интерфейс, после выполнить flashfs enable
сохранять как обычно - через web интерфейс и cfg и flashfs

MrGalaxy
21-07-2009, 18:48
Спасибо.
Перед перепрошивкой обязательно сбрасывать в заводские настройки?

theMIROn
21-07-2009, 18:51
Спасибо.
Перед перепрошивкой обязательно сбрасывать в заводские настройки?
не обязательно, но желательно.
совместимость на 99%, без сброса не встанут значения по дефолту
потом пройдетесь по вэбморде, как минимум timezone поправить

mk93
21-07-2009, 19:35
Сменил прошивку на последнюю в надежде...

ситуация не изменилась.
Jul 21 22:34:01 kernel: a mangle PREROUTING:IN=vlan2 OUT= MAC=00:22:15:5d:1e:2a:00:13:49:e1:fb:ed:08:00:45:2 0:00:34 SRC=81.195.221.190 DST=192.168.10.2 LEN=52 TOS=0x00 PREC=0x20 TTL=54 ID=0 DF PROTO=TCP SPT=25 DPT=2955 WINDOW=5840 RES=0x00 ACK SYN URG

Это последнее место, где проходит ответный пакет... Решения о маршрутизации так и не принимается.

mk93
22-07-2009, 19:28
Кратко напомню проблему: Есть 2 провайдера и надо было сделать, чтобы smtp трафик ходил через одного, а все остальное - через другого.

Решалась по этой (http://lartc.org/howto/lartc.rpdb.multiple-links.html#AEN268) "шпаргалке". Более того, моя задача оказалась описана в точности в этой же "шпаргалке" чуть далее: http://lartc.org/howto/lartc.netfilter.html. Предупреждение в конце я тоже прочитал, но не сразу понял, тем более, что ссылка там мертвая.

Описанной в литературе настройки таблиц маршрутизации и iptables оказалось недостаточно.

Проблема заключалась в том, что кернель по умолчанию блокирует "марсианцев", а они получаются, когда правило fwmark перенаправляет пакет на иной от умолчального интерфейс, не меняя при этом адреса отправителя.

Решение: Выключить фильтрацию на интерфейсе, куда направляем трафик по fwmark (в моем случае vlan2).
echo 0 > /proc/sys/net/ipv4/conf/vlan2/rp_filter

Подробно тут тут (https://lists.netfilter.org/pipermail/netfilter/2005-February/058593.html).

Благодарю всех, принявших участи и проявивших сочувствие :)

FiXXXeR_wl500gP
24-07-2009, 15:37
Здравствуйте! На машинке WL-500gP со 128 мегабайтами памяти и прошивкой с http://code.google.com/p/wl500g/ столкнулся с проблемой недостаточного максимального количества открытых файлов на процесс. Выражается это в нехватке файловых дескрипторов для запущенного rtorrent с разнообразными проявлениями этой нехватки, в зависимости от того, на что не хватило - разрывы соединений, отваливание веб-морды (отдельное СПАСИБО Novik за веб-интерфейс, великолепное творение!) и прочие подобные неприятности.

По умолчанию ulimit -n говорит циферку 1024. И я никак не могу придумать, как можно увеличить ее для rtorrent'а. Rtorrent выполняется от непривилегированного пользователя p2p, переход под которого происходит в стартовом скрипте. Соответственно, сам пользователь p2p сделать ulimit -n 8192 не может. Пользователь с uid=0 изменить значение может, но оно не наследуется при переходе под пользователя p2p (что в общем, тоже логично). Ничего похожего на /etc/security/limits.conf, как во взрослых linux на glibc, я не обнаружил (попытки положить limits.conf в /etc/security и /opt/etc/security успехом не увенчались).

После всех попыток вопрос остается открытым - каким образом глобально для всех пользователей или для конкретного непривилегированного пользователя (это предпочтительней) можно задать ulimit -n?

theMIROn
24-07-2009, 19:14
для конкретного непривилегированного пользователя (это предпочтительней) можно задать ulimit -n?
можно попробовать как то так:


/ # su -pc "ulimit -a" - admin
time(seconds) unlimited
file(blocks) unlimited
data(kb) unlimited
stack(kb) 8192
coredump(blocks) 0
memory(kb) unlimited
locked memory(kb) unlimited
process 256
nofiles 1024
vmemory(kb) unlimited
locks unlimited

FiXXXeR_wl500gP
24-07-2009, 19:44
можно попробовать как то так:


/ # su -pc "ulimit -a" - admin

Лимиты все-таки не переменные окружения, и с ними такой фокус не проходит, к сожалению... Вот иллюстрация проделанного эксперимента:


[alex@gw alex]$ id && ulimit -a && su -pc "id && ulimit -n 8192 && ulimit -a" - root && id && ulimit -a
uid=1000(alex) gid=500(users) groups=500(users),0(root),14(uucp),501(smbusers),1 002(sendsms)
time(seconds) unlimited
file(blocks) unlimited
data(kb) unlimited
stack(kb) 8192
coredump(blocks) 0
memory(kb) unlimited
locked memory(kb) unlimited
process 1024
nofiles 1024
vmemory(kb) unlimited
locks unlimited
Password: #запрос пароля от su
uid=0(root) gid=0(root) groups=0(root),1002(sendsms)
time(seconds) unlimited
file(blocks) unlimited
data(kb) unlimited
stack(kb) 8192
coredump(blocks) 0
memory(kb) unlimited
locked memory(kb) unlimited
process 1024
nofiles 8192
vmemory(kb) unlimited
locks unlimited
uid=1000(alex) gid=500(users) groups=500(users),0(root),14(uucp),501(smbusers),1 002(sendsms)
time(seconds) unlimited
file(blocks) unlimited
data(kb) unlimited
stack(kb) 8192
coredump(blocks) 0
memory(kb) unlimited
locked memory(kb) unlimited
process 1024
nofiles 1024
vmemory(kb) unlimited
locks unlimited

su ... изменило лимит открытых файлов, но для пользователя root, под которым и выполнялся ulimit... Для непривилегрованного пользователя alex облегчения не наступило....

А откуда вообще у нас берется это 1024? Не зашито ли оно в одном из заголовочных файлов uClibc? Может, попробовать это глобально поменять пересборкой uClibc, раз внешние рычаги воздействия отсутствуют?...

lly
24-07-2009, 20:31
А откуда вообще у нас берется это 1024? Не зашито ли оно в одном из заголовочных файлов uClibc? Может, попробовать это глобально поменять пересборкой uClibc, раз внешние рычаги воздействия отсутствуют?...
Во-первых, вы забыли про /etc/profile
Во-вторых, к libc лимиты имеют весьма посредственное отношение - это механизмы ядра. Значение 1024 по умолчанию находится опять-же в ядре - константа INR_OPEN, все изменения делаются через syscall в текущем контексте.

FiXXXeR_wl500gP
24-07-2009, 21:07
Во-первых, вы забыли про /etc/profile

Не забыл. :) Это было второе, что я попробовал (после разнообразных вариантов с limits.conf). Вариант с ulimit -n 8192 в /etc/profile также отрабатывает только для пользователя с uid=0, для всех остальных получаем

-sh: ulimit: error setting limit (Operation not permitted)
, что опять же вполне логично - /etc/profile выполняется в контексте текущего пользователя, текущий пользователь непривилегированный, с чего б ему лимиты себе устанавливать...



Во-вторых, к libc лимиты имеют весьма посредственное отношение - это механизмы ядра. Значение 1024 по умолчанию находится опять-же в ядре - константа INR_OPEN, все изменения делаются через syscall в текущем контексте.
Наверное, мне может помочь только сборка собственной прошивки на базе вашей с измененным в большую сторону INR_OPEN, так как механизма, подобного обработке файла /etc/security/limits.conf у нас не обнаруживается....

PS Может быть я еще что забыл или не заметил, а? Так хочется надеяться... :)

theMIROn
24-07-2009, 21:16
limit.conf не отрабатывает, потому что pam не используется.
можно найти или собрать prctl, утилиту которая может менять от рута значения лимитов любых прочих процессов.

lly
25-07-2009, 13:21
Наверное, мне может помочь только сборка собственной прошивки на базе вашей с измененным в большую сторону INR_OPEN, так как механизма, подобного обработке файла /etc/security/limits.conf у нас не обнаруживается....
Можно проще, по хорошему, limits.conf должен обрабатываться в родителе всех процессов - init. А у нас им выступает ASUS'овский rc. Ну и вставьте вызов setrlimit в sysinit() из rc.c.

P.S. Да, поддержка limits.conf это хорошо, но мы очень ограничены в размере прошивки для большинства устройств :(

MrGalaxy
31-07-2009, 18:33
Господа, может моя инфа поможет при разработке.

Была у меня последняя стабильная прошивка Олега. Сейчас залил 1.9.2.7-d-r396. Интернет теперь стал подниматься при загрузке/перезагрузке через раз. Соединение l2tp, wl500gp-1. Сообщение: too many retransmissions, или как-то так.

Учтите там при разработках в дальнейшем.

divergens
06-08-2009, 12:06
Доброго времени суток!
Являюсь обладателем ASUS WL-520GU. В родной прошивке отсутствует возможность воткнуть в USB внешний хард, только принтер. Кроме того идет ограничение пропускной способности по портам. Порылся в этом форуме и вычитал, что в прошивках от Олега серии 1.9.2.7 все это вроде как пофиксино. Соответственно, в обсуждаемой здесь прошивке все это тоже должно быть. Но вот точно описания всех возможностей этих прошивок нигде не нашел...
Помогите, пожалуйста, найти описание вашей и Олеговой прошивок.
В чем основные отличия от родных асусовских? Действительно ли есть возможность подключать к USB хард?
А так же было бы неплохо объяснить, в чем разница между обсуждаемой здесь прошивкой и Олеговой. Какую лучше ставить?

Заранее огромное спасибо!

P.S. Если пост оффтоп, извините. Буду признателен, если направите в нужном направлении (не на три буквы :))

FiXXXeR_wl500gP
07-08-2009, 05:22
Здравствуйте!

В связи с предстоящим появлением ограниченного по скорости канала в интернет вместе с неограниченной по скорости локальной сетью провайдера озадачился написанием шейпера. возник следующий вопрос - есть ли у нас в прошивке поддержка устройств IMQ? Цель IMQ для iptables у нас есть, а вот самих устройств imq, как и модуля imq обнаружить не могу. :) Если поддержка устройств IMQ все-таки есть, подскажите пожалуйста, как и откуда их достать.

Заранее спасибо.

lly
12-08-2009, 09:09
Господа, может моя инфа поможет при разработке.

Была у меня последняя стабильная прошивка Олега. Сейчас залил 1.9.2.7-d-r396. Интернет теперь стал подниматься при загрузке/перезагрузке через раз. Соединение l2tp, wl500gp-1. Сообщение: too many retransmissions, или как-то так.

Учтите там при разработках в дальнейшем.
Нужны логи, т.к. в части l2tp нами практически ничего не менялось. Какой провайдер?



В связи с предстоящим появлением ограниченного по скорости канала в интернет вместе с неограниченной по скорости локальной сетью провайдера озадачился написанием шейпера. возник следующий вопрос - есть ли у нас в прошивке поддержка устройств IMQ? Цель IMQ для iptables у нас есть, а вот самих устройств imq, как и модуля imq обнаружить не могу. :) Если поддержка устройств IMQ все-таки есть, подскажите пожалуйста, как и откуда их достать.
модуль ipt_IMQ валяется аж в самой прошивке, libipt_IMQ собран. Забыли загрузить модуль? Что именно не работает?

FiXXXeR_wl500gP
12-08-2009, 10:18
модуль ipt_IMQ валяется аж в самой прошивке, libipt_IMQ собран. Забыли загрузить модуль? Что именно не работает?

Не могу найти, где взять само устройство imq0, чтобы повесить на него htb. Вот что делаю:



[root@gw ~]$ ip l l
1: lo: <LOOPBACK,MULTICAST,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
4: vlan0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
5: vlan1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc htb
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
8: ppp2: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3
link/ppp
9: ppp3: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3
link/ppp
17: tun0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 10
link/[65534]

Устройств imqX нет.



[root@gw ~]$ modprobe imq
modprobe: Module imq not found.
[root@gw ~]$ find /lib/modules /opt/lib/modules -type f -print | grep -i imq
/lib/modules/2.4.37.2/ipt_IMQ.o
/opt/lib/modules/2.4.37.2/kernel/net/ipv4/netfilter/ipt_IMQ.o


Модулей imq тоже нет.



[root@gw ~]$ ip l set dev imq0 up
SIOCGIFFLAGS: No such device
[root@gw ~]$ tc qdisc add dev imq0 root handle 1: htb default 199
Cannot find device "imq0"

От безысходности - чуда не произошло - реакция логичная - устрйств-то нет...

Модуль для цели iptables есть, загружается, -j IMQ добавляет правило, но дисциплину повесить некуда, так как собственно устройства нет.

PS Или я совсем куда-то не туда смотрю?

theMIROn
12-08-2009, 10:31
...
С возвращением из отпуска

PS Или я совсем куда-то не туда смотрю?
insmod ipt_IMQ или modprobe ipt_IMQ, если модули в /opt

lly
12-08-2009, 10:40
Не могу найти, где взять само устройство imq0, чтобы повесить на него htb.
Вот теперь всё ясно - не включен драйвер CONFIG_IMQ в ядре, т.к. никто не просил и не тестировал...
Сами осилите включение и сборку?


С возвращением из отпуска
Спасибо, смотрю ты тоже уже в строю :)

FiXXXeR_wl500gP
12-08-2009, 10:42
insmod ipt_IMQ или modprobe ipt_IMQ, если модули в /opt

:)

Хорошо, тогда так. :)


[root@gw ~]$ modprobe ipt_IMQ
[root@gw ~]$ insmod ipt_IMQ
insmod: a module named ipt_IMQ already exists
[root@gw ~]$ ip l set dev imq0 up
SIOCGIFFLAGS: No such device
[root@gw ~]$ tc qdisc add dev imq0 root handle 1: htb default 199
Cannot find device "imq0"
[root@gw ~]$ lsmod
Tainted: P
xfs 561288 2
reiserfs 206288 1
pl2303 16592 1
usbserial 24196 0 [pl2303]
tun 4648 3
ipt_IMQ 792 0
ipt_length 472 1
ipt_multiport 968 3
usb-storage 62968 8
sd_mod 12660 16
scsi_mod 72624 2 [usb-storage sd_mod]
printer 13060 0 (unused)
ehci-hcd 28196 0 (unused)
usb-uhci 27380 0 (unused)
usbcore 78456 1 [pl2303 usbserial usb-storage printer ehci-hcd usb-uhci]
ipt_recent 8424 2
ip_nat_ftp 3136 0 (unused)
ip_conntrack_ftp 4584 1
wl 897336 0 (unused)
et 29088 0 (unused)
[root@gw ~]$ ip l l
1: lo: <LOOPBACK,MULTICAST,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
4: vlan0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
5: vlan1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc htb
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
link/ether 00:22:15:02:ef:c3 brd ff:ff:ff:ff:ff:ff
8: ppp2: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3
link/ppp
9: ppp3: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3
link/ppp
17: tun0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 10
link/[65534]


Я не говорю про отсутствие ЦЕЛИ iptables. Я говорю об отсутствии самого устройства imq0, на которое как раз бы и должна перенаправить трафик цель iptables под названием IMQ (которая обеспечивается модулем ipt_IMQ и userspace-библиотекой libipt_IMQ), и на которое надо вешать egress qdisc.

Ну не появляется йстройство imqX после загрузки ipt_IMQ. :)

FiXXXeR_wl500gP
12-08-2009, 10:46
Вот теперь всё ясно - не включен драйвер CONFIG_IMQ в ядре, т.к. никто не просил и не тестировал...
Сами осилите включение и сборку?

Постараюсь попробовать на этой неделе, если время позволит.

PS На мой взгляд, без CONFIG_IMQ=[ym] в конфиге ядра сборка модулей iptables для цели IMQ смысла не имеет и только место кушает...

lly
12-08-2009, 11:30
Постараюсь попробовать на этой неделе, если время позволит.

PS На мой взгляд, без CONFIG_IMQ=[ym] в конфиге ядра сборка модулей iptables для цели IMQ смысла не имеет и только место кушает...
В r415 я уже всё включил. Если будут трудности со сборкой - в личку мне или theMIROn. Главное, это протестировать корректность работы.

thefree
12-08-2009, 11:32
с чем вызван переход на Kernel 2.4.37.4 ?

FiXXXeR_wl500gP
12-08-2009, 11:36
В r415 я уже всё включил. Если будут трудности со сборкой - в личку мне или theMIROn. Главное, это протестировать корректность работы.

Спасибо большое! Уже качаю исходники, надеюсь сегодня-завтра соберу и залью к себе в роутер. Корректность работы протестирую торрентами. :)

lly
12-08-2009, 11:38
с чем вызван переход на Kernel 2.4.37.4 ?
Достаточно почитать ChangeLog: (http://kernel.org/pub/linux/kernel/v2.4/ChangeLog-2.4.37.4)
Tomasz Lemiech (1):
tulip: Fix for MTU problems with 802.1q tagged frames

Willy Tarreau (6):
lib: memcmp must be exported without module versioning
lib: fix again memcmp export issues in the arch ksyms only
usb-storage: fix "READ CAPACITY failed" errors with USB flash drives
md/raid5: silent out the "switching cache buffer size" messages
personality: clear MMAP_PAGE_ZERO on exec if mmap_min_addr is set
Change VERSION to 2.4.37.4

Zhang Rui (1):
kernel/resource.c: fix sign extension in reserve_setup()

lly
14-08-2009, 18:14
Скоро должен появиться в продаже RT-N13U, ниже его характеристики не опубликованные на официальном сайте:

CPU: Ralink 3052 384Mhz (MIPS 24K V4.12 255.48 BogoMIPS)
RAM: 32Mb
flash: 4Mb
OS: Linux version 2.6.21
Насколько я понимаю, это замена бюджетной серии WL520g.

Добавил фотки внутренностей (http://wl500g.info/showthread.php?p=156311#post156311).

mvb
14-08-2009, 23:21
Скоро должен появиться в продаже RT-N13U, ниже его характеристики не опубликованные на официальном сайте:

CPU: Ralink 3052 384Mhz (MIPS 24K V4.12 255.48 BogoMIPS)
RAM: 32Mb
flash: 4Mb
OS: Linux version 2.6.21
Насколько я понимаю, это замена бюджетной серии WL520g.
Выглядит прикольно! Ядро 2.6 это вообще здорово! Жаль что USB только один...

theMIROn
16-08-2009, 20:35
в прошивке, начиная с r426 включен accel-pptp (http://sourceforge.net/projects/accel-pptp/) - реализация клиента pptp модулем ядра.
просьба протестировать работоспособность и устойчивость, мой провайдер КАБiNET (www.telenet.ru) обладает на редкость кривыми vpn серверами с мегапотерями после 10 минут подключения.
Техническая информация:
1. добавляем в /tmp/ppp/options.wan0 строки

plugin pptp.so
pptp_server xxx.xxx.xxx.xxx
remotename pptp
linkname pptp
name pptp

2. убираем из /tmp/ppp/options.wan0 строки

lock
connect true
sync pty ...
3. создаем файлы /tmp/ppp/pap-secrets и /tmp/ppp/chap-secrets
4. убиваем штатный pptp c помощью killall pppd
5. запускаем accel-pptp c помошью pppd file /tmp/ppp/options.wan0

любые комментарии, поправки, дополнения приветствуются

Nexor
17-08-2009, 05:35
в прошивке, начиная с r426 включен accel-pptp (http://sourceforge.net/projects/accel-pptp/) - реализация клиента pptp модулем ядра.
просьба протестировать работоспособность и устойчивость, мой провайдер КАБiNET (www.telenet.ru) обладает на редкость кривыми vpn серверами с мегапотерями после 10 минут подключения.

....

Тоже сижу на Кабинете, но на VPN просидел не долго. Поставил на роутер линуксовый авторизатор - там меньше проблем с локалкой и с ip-адресами.

theMIROn
17-08-2009, 07:07
Тоже сижу на Кабинете, но на VPN просидел не долго. Поставил на роутер линуксовый авторизатор - там меньше проблем с локалкой и с ip-адресами.

Могу поделиться авторизатором, которому не нужно openssl + нормальный лог.
Размер бинарника 24092 байт

p.s А на впн переключился для тестов. Как мне руском и годлен нравились... Ээх...

Nexor
17-08-2009, 07:17
Могу поделиться авторизатором, которому не нужно openssl + нормальный лог.
Размер бинарника 24092 байт


буду премного благодарен :-)
P.S. Лучше с исходниками

theMIROn
17-08-2009, 07:24
буду премного благодарен :-)
P.S. Лучше с исходниками

вечером, напиши мне контакты в почту

Nexor
17-08-2009, 09:47
Товарищи, подскажите из-за чего могут падать сообщения в dmesg типа


__alloc_pages: 0-order allocation failed (gfp=0x20/0)
...
__alloc_pages: 0-order allocation failed (gfp=0x20/1)


изредка падает


vlan: failed to unshare skbuff


Просто роутер на этой прошивке живет всего пару дней и потом повисает. Или может подскажете куда копать

theMIROn
17-08-2009, 09:54
Товарищи, подскажите из-за чего могут падать сообщения в dmesg типа
изредка падает
Просто роутер на этой прошивке живет всего пару дней и потом повисает. Или может подскажете куда копать
Какая ревизия? Какое ядро?
В любом случае, нужно сделать echo "1" > /proc/sys/vm/vm_gpf_debug и ждать более подробного лога.
Возможно просто закончилась память, которую что то отожрало всю.

FiXXXeR_wl500gP
17-08-2009, 10:39
Спасибо большое! Уже качаю исходники, надеюсь сегодня-завтра соберу и залью к себе в роутер. Корректность работы протестирую торрентами. :)

Здравствуйте!

Собственно отчитываюсь о результатах тестирования. Роутер Wl500gP, 128Мб RAM, 300MHz. Самостоятельно собранная прошивка 1.9.2.7-d-r419. К прошивке применены 2 самописных патча - патч на rc (установка лимита открытых файлов в 16384 вместо 1024) и патч на tc (для корректного отображения статистики по qdisc). Прошивка была залита в пятницу утром, роутер работал 3 суток бе перезагрузки. Использовалось одно устройство imq0 для шейпинга входящего трафика, исходящий трафик шейпился на vlan1. Шейпинг производился с помощью htb. За время тестирования интерфейс принял 108 Гб и передал 142 Гб трафика. Шейпинг работает, как и должен - торрент не забивает весь канал, общее впечатление от веб-серфинга - все плавнее, без затыков. Нагрузка на процессор роутера возросла на 5-9% по сравнению с отсутствием htb на интерфейсах (pfifo_fast). Ошибок/предупреждений в логах, так же как зависаний/тормозов/... не наблюдалось. Из этого делаю вывод о достаточной стабильности ядра с imq-патчем и прошу таки включить модуль imq в основную прошивку, так как он может быть полезен и без использования внешнего жесткого диска. Размер модуля 5304 байта.

Спасибо за огромную и очень полезную работу по написанию и отладке прошивки!

theMIROn
17-08-2009, 10:45
К прошивке применены 2 самописных патча - патч на rc (установка лимита открытых файлов в 16384 вместо 1024) и патч на tc (для корректного отображения статистики по qdisc).
с rc более все понятно, хотя это баг нужно решать не в лимитах.
а вот что такое магическое 36 и чем оно отличается от sizeof(struct tc_stats)?


Из этого делаю вывод о достаточной стабильности ядра с imq-патчем и прошу таки включить модуль imq в основную прошивку, так как он может быть полезен и без использования внешнего жесткого диска. Размер модуля 5304 байта.
5кб не много, от tcpdump уже принято решение отказаться.
Леонид, что скажешь?

FiXXXeR_wl500gP
17-08-2009, 11:03
с rc более все понятно, хотя это баг нужно решать не в лимитах.

Это вообще не баг, это для rtorrent было сделано, чтоб ему побольше файлов открывать можно было, так как других способов поменять лимиты для пользователя с uid!=0 не обнаружилось.


а вот что такое магическое 36 и чем оно отличается от sizeof(struct tc_stats)?

https://forum.openwrt.org/viewtopic.php?id=428
http://mailman.ds9a.nl/pipermail/lartc/2003q1/006681.html
Как я понял, проблемы там из-за выравниваний структур по границам слов, и на нашей платформе RTA_PAYLOAD(tb[TCA_STATS]) оказывается меньше, чем sizeof(struct tc_stats) (36 и 40 соответственно). Патч, упоминаемый по ссылке http://cpan.cybercomm.nl/pub/gentoo-portage/sys-apps/iproute2/files/2.6.7.20040608-misc-deb-fixes.patch, к сожалению раскопать в интернете не удалось.


5кб не много, от tcpdump уже принято решение отказаться.
Леонид, что скажешь?
Жалко tcpdump... :( Очень полезная утилита для решения проблем с сетью...

lly
17-08-2009, 11:41
Это вообще не баг, это для rtorrent было сделано, чтоб ему побольше файлов открывать можно было, так как других способов поменять лимиты для пользователя с uid!=0 не обнаружилось.
Нужен супер-компактный заменитель /etc/limits.conf но пока есть баги поважнее, вот если бы кто патчик сделал :)

https://forum.openwrt.org/viewtopic.php?id=428
http://mailman.ds9a.nl/pipermail/lartc/2003q1/006681.html
Как я понял, проблемы там из-за выравниваний структур по границам слов, и на нашей платформе RTA_PAYLOAD(tb[TCA_STATS]) оказывается меньше, чем sizeof(struct tc_stats) (36 и 40 соответственно). Патч, упоминаемый по ссылке http://cpan.cybercomm.nl/pub/gentoo-portage/sys-apps/iproute2/files/2.6.7.20040608-misc-deb-fixes.patch, к сожалению раскопать в интернете не удалось.
Вариант патча с константой мне совсем не нравиться, значит придётся изобретать что-то еще. Спасибо за тестирование!

Кстати, начиная с версии iproute2-2.6.9-ss040831, эта проверка выкинута вообще!

Жалко tcpdump... :( Очень полезная утилита для решения проблем с сетью...
Она и останется, только станет внешней. Увы, регулярный функционал (с учетом будущего wimax, 3g, cdma) уже не помещается в роутеры с 4M flash никак :(


IMQ 5кб не много
Леонид, что скажешь?
Ну раз народ жаждет ;) попробовать можно. В конце концов выкинуть всегда можно будет...

FiXXXeR_wl500gP
17-08-2009, 12:48
Нужен супер-компактный заменитель /etc/limits.conf но пока есть баги поважнее, вот если бы кто патчик сделал :)

Так во "взрослых системах обработкой занимается pam_limits.so, а у нас PAMа совсем нет, и по-моему оно просто не влезет в 4Мб. Или имеется ввиду парсер /etc/limits.conf где-нибудь в rc, который при старте лимиты установит?


Вариант патча с константой мне совсем не нравиться, значит придётся изобретать что-то еще. Спасибо за тестирование!
Кстати, начиная с версии iproute2-2.6.9-ss040831, эта проверка выкинута вообще!

Я совсем выкинуть не решился, но может, это и есть искомый простой и правильный вариант? :)


Она и останется, только станет внешней. Увы, регулярный функционал (с учетом будущего wimax, 3g, cdma) уже не помещается в роутеры с 4M flash никак :(

Все равно жаль... Я подумал про ситуацию, когда в роутер только залита новая прошивка, и по каким-то причинам нет инета и диска/флешки, соответственно взять этот внешний tcpdump неоткуда. А он здорово помогает в диагностике проблем. Хотя, на мой взгляд, 99% пользователей его вообще никогда в жизни не запустят. :)


Ну раз народ жаждет ;) попробовать можно. В конце концов выкинуть всегда можно будет...
Спасибо! Оно действительно помогает шейпить входящий трафик. :)

lly
17-08-2009, 12:57
Или имеется ввиду парсер /etc/limits.conf где-нибудь в rc, который при старте лимиты установит?
Именно! Причем развесистая клюква не нужна, только самый минимум.


Все равно жаль... Я подумал про ситуацию, когда в роутер только залита новая прошивка, и по каким-то причинам нет инета и диска/флешки, соответственно взять этот внешний tcpdump неоткуда. А он здорово помогает в диагностике проблем. Хотя, на мой взгляд, 99% пользователей его вообще никогда в жизни не запустят. :)
Так прошивку ведь надо скачать с инета? tcpdump лежит там же. А руководство для чайников по tcpdump еще никто не написал ;)

theMIROn
17-08-2009, 13:09
Так во "взрослых системах обработкой занимается pam_limits.so, а у нас PAMа совсем нет, и по-моему оно просто не влезет в 4Мб. Или имеется ввиду парсер /etc/limits.conf где-нибудь в rc, который при старте лимиты установит?

Именно! Причем развесистая клюква не нужна, только самый минимум.
по идее нужно, чтобы rc'шный init читал файл. но в этот момент flashfs еще не развернуто.
поэтому если и делать - то через nvram


Все равно жаль... Я подумал про ситуацию, когда в роутер только залита новая прошивка, и по каким-то причинам нет инета и диска/флешки, соответственно взять этот внешний tcpdump неоткуда. А он здорово помогает в диагностике проблем. Хотя, на мой взгляд, 99% пользователей его вообще никогда в жизни не запустят. :)cd /tmp && wget http://wl500g.googlecode.com/.../tcpdump
гм... а если инета нет... sftp-server нужно бы включить.


Спасибо! Оно действительно помогает шейпить входящий трафик. :)Спасибо за тестирование

lly
17-08-2009, 13:18
по идее нужно, чтобы rc'шный init читал файл. но в этот момент flashfs еще не развернуто.
поэтому если и делать - то через nvram
Это надо подумать как лучше сделать, т.к. flashfs разворачивается в том же sysinit() в rc.c. Т.е. на уровне pre-boot уже всё должно присутствовать. Но вариант с файлом мне пока больше нравится.

theMIROn
17-08-2009, 13:23
вот щас приду домой, добавлю в rc код использования accel-pptp и поковыряю лимиты
кстати, хочу сохранить пока возможность использования юзер-левел pptp, как предложите переключение сделать?
доп параметром в additional pptp options или через nvram?

lly
17-08-2009, 14:20
кстати, хочу сохранить пока возможность использования юзер-левел pptp, как предложите переключение сделать?
доп параметром в additional pptp options или через nvram?
Ты имел в виду переключение через web-GUI или ручками?
IMHO проще через параметр в nvram

Добавлено:

вот щас приду домой, добавлю в rc код использования accel-pptp и поковыряю лимиты

Кстати по лимитам:
time(seconds) unlimited
file(blocks) unlimited
data(kb) unlimited
stack(kb) 8192
coredump(blocks) 0
memory(kb) unlimited
locked memory(kb) unlimited
process 256
nofiles 1024
vmemory(kb) unlimited
locks unlimited
А имеет ли смысл в sysinit обрабатывать весь список? Или достаточно process(RLIMIT_NPROC) и nofiles(RLIMIT_NOFILE) ?

Less
18-08-2009, 02:12
Соберите пожалуйста модули для текущей версии прошивки (WL500gp-1.9.2.7-d-r396).

sch_htb
sch_sfq
cls_fw
cls_u32
cls_route

theMIROn
18-08-2009, 04:49
IMHO проще через параметр в nvram
Временно будет использоваться параметр <wan_prefix>_pptp_kernel
в общем случае, для использования accel-pptp нужно выполнить

nvram set wan0_pptp_kernel=1
после этого - Disconnect и Connect через web интерфейс
Сохранять nvram не стоит пока, вдруг оно чо. Чтобы при перезапуске опять использовался юзерлевел


А имеет ли смысл в sysinit обрабатывать весь список? Или достаточно process(RLIMIT_NPROC) и nofiles(RLIMIT_NOFILE) ?
А может просто увеличить hard_limit, в этом случае прочие юзеры могут воспользоваться ulimit, меняя soft_limit максимум до hard_limit

theMIROn
18-08-2009, 04:59
Вести с полей:
Не напрягаясь получил 34 mbit/s по pptp без шифрования с загрузкой cpu ~50%

ghost_ufa
18-08-2009, 06:56
Всем добрый день.

В процессе портирования прошивки на другую архитектуру наступил на неприятную багу, не проявляющуюся на МИПСе, но ИМХО потенциально опасную:

патч 603-netfilter_nat_pptp.patch меняет ядерные унионы ip_conntrack_manip_proto, ip_conntrack_manip и ip_conntrack_tuple в файле ip_conntrack_tuple.h, в то время как юзерлевел утилиты iptables пользуются заголовочными файлами nf_conntrack_tuple.h и nf_nat.h из собственного каталога include, которые остаются неизменными. Результат - 4 байта разницы в размере структур и invalid argument при любой попытке работы с таблицей NAT.

lly
18-08-2009, 07:44
А может просто увеличить hard_limit, в этом случае прочие юзеры могут воспользоваться ulimit, меняя soft_limit максимум до hard_limit
Это не всегда удобно. В качестве компромисса предлагаю завести новую переменную в nvram, например ulimit_nofiles_max. И если она установлена - делать setrlimit в sysinit(). И на парсере /etc/limits.conf сэкономим, и 90% пользователей удовлетворим...


Вести с полей:
Не напрягаясь получил 34 mbit/s по pptp без шифрования с загрузкой cpu ~50%
Еще раз поздравляю! :cool:

P.S. Пора делать FAQ в Wiki на googlecode, а лениво ;)

lly
18-08-2009, 08:10
патч 603-netfilter_nat_pptp.patch меняет ядерные унионы ip_conntrack_manip_proto, ip_conntrack_manip и ip_conntrack_tuple в файле ip_conntrack_tuple.h, в то время как юзерлевел утилиты iptables пользуются заголовочными файлами nf_conntrack_tuple.h и nf_nat.h из собственного каталога include, которые остаются неизменными. Результат - 4 байта разницы в размере структур и invalid argument при любой попытке работы с таблицей NAT.
Посмотрим, тестовые примерчики не приведешь? Т.к. очень странно, что никто не жаловался до тебя...

P.S. nf_nat.h не менять не нужно

theMIROn
18-08-2009, 08:46
Это не всегда удобно.например?


В качестве компромисса предлагаю завести новую переменную в nvram, например ulimit_nofiles_max. И если она установлена - делать setrlimit в sysinit(). И на парсере /etc/limits.conf сэкономим, и 90% пользователей удовлетворим...ага, я тоже об этом писал выше.
но еще проще будет пропатчить hard_limit 1 раз

p.s а что если прописать ulimit в pre-boot? Оно ж как раз для init и выставится

FiXXXeR_wl500gP
18-08-2009, 09:16
ага, я тоже об этом писал выше.
но еще проще будет пропатчить hard_limit 1 раз

Мне вариант с hard_limits кажется очень привлекательным. Вот будет ли оно работать? На данный момент, с пропатченым на предмет soft=hard nofiles до 8192 init получается следующее:


[alex@gw alex]$ id
uid=1000(alex) gid=500(users) groups=500(users),0(root),14(uucp),501(smbusers),1 002(sendsms)
[alex@gw alex]$ ulimit -n
8192
[alex@gw alex]$ ulimit -n 2048
[alex@gw alex]$ ulimit -n
2048
[alex@gw alex]$ ulimit -n 4096
-sh: ulimit: error setting limit (Operation not permitted)
[alex@gw alex]$ ulimit -n
2048
[alex@gw alex]$ ulimit -n 1024
[alex@gw alex]$ ulimit -n
1024
[alex@gw alex]$ ulimit -n 2048
-sh: ulimit: error setting limit (Operation not permitted)
[alex@gw alex]$ ulimit -n
1024

То есть уменьшать - пожалуйста, а вот увеличить - ни-ни. Если hard будет 8192, а soft 1024, то увеличить от uid!=0 все равно не получится...


p.s а что если прописать ulimit в pre-boot? Оно ж как раз для init и выставится
Не для init оно выставится, а для /bin/sh, который скрипт выполняет. init и все его потомки останутся при своих лимитах.

PS Огромное СПАСИБО за вашу работу! Вижу, что и IMQ в SVN уже есть, и tc пропатчили правильным образом. :)

lly
18-08-2009, 09:21
но еще проще будет пропатчить hard_limit 1 раз
Если soft_limit оставить прежним, а увеличить _только_ hard_limit, то пожалуй ты прав. В своей фразе "Это не всегда удобно" я имел в виду, что возможность поменять лимит в меньшую сторону для всех процессов (если мы поставим слишком много по дефолту), очень полезна.


p.s а что если прописать ulimit в pre-boot? Оно ж как раз для init и выставится
pre-boot стартует fork-ом, т.е. не в контексте процесса с pid=1 (и это правильно), но что и мешает выставить лимиты всем будущим процессам



То есть уменьшать - пожалуйста, а вот увеличить - ни-ни. Если hard будет 8192, а soft 1024, то увеличить от uid!=0 все равно не получится...
А с ключиком -S не пробовал? Я смогу проверить на роутере только вечером.

theMIROn
18-08-2009, 09:26
Етить, ладно, поехал я 1ской заниматься у клиента.
Тестируйте accel-pptp уже, вечером буду глядеть.
Лёня, будет время и желание погляди насчет поддержки persist в accel-pptp

theMIROn
18-08-2009, 09:29
То есть уменьшать - пожалуйста, а вот увеличить - ни-ни. Если hard будет 8192, а soft 1024, то увеличить от uid!=0 все равно не получится...

А с ключиком -S не пробовал? Я смогу проверить на роутере только вечером.

цитата из мана:
if neither `-H' nor `-S' is supplied, both the hard and soft limits are set.

FiXXXeR_wl500gP
18-08-2009, 09:33
А с ключиком -S не пробовал? Я смогу проверить на роутере только вечером.
Да, что-то забыл я про -S. :) С -S все работает.


[alex@gw alex]$ id
uid=1000(alex) gid=500(users) groups=500(users),0(root),14(uucp),501(smbusers),1 002(sendsms)
[alex@gw alex]$ ulimit -n
8192
[alex@gw alex]$ ulimit -S -n 1024
[alex@gw alex]$ ulimit -n
1024
[alex@gw alex]$ ulimit -S -n 2048
[alex@gw alex]$ ulimit -n
2048
[alex@gw alex]$ ulimit -S -n 8192
[alex@gw alex]$ ulimit -n
8192

Прошу прощения за дезинформацию.

theMIROn
18-08-2009, 09:34
Да, что-то забыл я про -S. :) С -S все работает.
Прошу прощения за дезинформацию.
а выше хардлимита проставится?

mvb
18-08-2009, 09:37
Все равно жаль... Я подумал про ситуацию, когда в роутер только залита новая прошивка, и по каким-то причинам нет инета и диска/флешки, соответственно взять этот внешний tcpdump неоткуда. А он здорово помогает в диагностике проблем. Хотя, на мой взгляд, 99% пользователей его вообще никогда в жизни не запустят. :)


В этой ситуации можно залить бинарник tcpdump в /usr/local/sbin.
Только бинарник под рукой иметь нужно.
Можно его туда заранее залить и закомитить. При прошивке сохранится он там.

FiXXXeR_wl500gP
18-08-2009, 09:40
а выше хардлимита проставится?
Нет, как и ожидалось, просто не включил это в вывод.


[alex@gw alex]$ ulimit -n
8192
[alex@gw alex]$ ulimit -S -n 8200
-sh: ulimit: error setting limit (Invalid argument)
[alex@gw alex]$ ulimit -n
8192
[alex@gw alex]$ ulimit -S -n 2048
[alex@gw alex]$ ulimit -n
2048
[alex@gw alex]$ ulimit -S -n 8200
-sh: ulimit: error setting limit (Invalid argument)
[alex@gw alex]$ ulimit -n
2048
[alex@gw alex]$ ulimit -S -n 8192
[alex@gw alex]$ ulimit -n
8192

theMIROn
18-08-2009, 09:45
ну значит просто увеличиваем хардлимит до unlimited?

lly
18-08-2009, 09:46
ну значит просто увеличиваем хардлимит до unlimited?
Я бы не стал, цифра в 16384 файлов для наших роутеров мне кажется очень реальной. А что скажут гуру торрентов?

theMIROn
18-08-2009, 09:47
Я бы не стал, цифра в 16384 файлов для наших роутеров мне кажется очень реальной. А что скажут гуру торрентов?
лично я - согласен.
заодно и другие дефолтные хардлимиты тоже можно обдумать

FiXXXeR_wl500gP
18-08-2009, 09:48
В этой ситуации можно залить бинарник tcpdump в /usr/local/sbin.
Только бинарник под рукой иметь нужно.
Можно его туда заранее залить и закомитить. При прошивке сохранится он там.
Все это правильно, только на роутерах с 4Мб флешем оно просто не влезет... Размер flashfs там 64К, а бинарник tcpdump весит 350К. bzip2 сжимает его до 140К, так что во flashfs оно точно не поместится. К тому же flashfs после распаковки живет в RAM, в отличие от squashfs в прошивке.

theMIROn
18-08-2009, 09:54
Все это правильно, только на роутерах с 4Мб флешем оно просто не влезет... Размер flashfs там 64К, а бинарник tcpdump весит 350К. bzip2 сжимает его до 140К, так что во flashfs оно точно не поместится. К тому же flashfs после распаковки живет в RAM, в отличие от squashfs в прошивке.

зачем flashfs? для тестов его можно залить тупо в /tmp (оно в памяти), запустить, поглядеть

FiXXXeR_wl500gP
18-08-2009, 09:56
Я бы не стал, цифра в 16384 файлов для наших роутеров мне кажется очень реальной. А что скажут гуру торрентов?
По моему опыту


[alex@gw alex]$ ls rtorrent/torrents/session/*.torrent | wc -l
173

хватает и 8192. Для некоторого запаса в самый раз будет 16384.

ghost_ufa
18-08-2009, 09:58
Посмотрим, тестовые примерчики не приведешь? Т.к. очень странно, что никто не жаловался до тебя...

P.S. nf_nat.h не менять не нужно

Дык вряд ли кто пытался собрать эту прошивку для процессора другой архитектуры :))

Выглядит сейчас (с включеной отладкой) так

iptc_commit: counter for chain-index 0: NORMAL_MAP => mappos 0
iptc_commit: counter for chain-index 2: NORMAL_MAP => mappos 3
iptc_commit: counter for index 1: NORMAL_MAP => mappos 2
iptc_commit: counter for chain-index 3: NORMAL_MAP => mappos 4
iptc_commit: setsockopt SO_SET_ADD_COUNTERS 134872920
iptables: Invalid argument
[root@router 1]#


До того валилось на "setsockopt(sockfd, TC_IPPROTO, SO_SET_REPLACE..."

при проверке в ядре передаваемых параметров - например для SNAT в файле ip_nat_rule.c, функция ipt_snat_checkentry, строки

if (targinfosize < sizeof(struct ip_nat_multi_range)) {
DEBUGP("SNAT: Target size %u too small - wants %u\n", targinfosize,sizeof(struct ip_nat_multi_range)
return 0;
}

FiXXXeR_wl500gP
18-08-2009, 10:01
зачем flashfs? для тестов его можно залить тупо в /tmp (оно в памяти), запустить, поглядеть
Мы о ситуации, когда локально (на компьютере) бинарника нет, и инета нет после перепрошивки по каким-либо причинам. То есть чтобы после загрузки роутера там уже был готовый к использованию tcpdump без дополнительных телодвижений.

PS Думаю, что тему с tcpdump можно заканчивать. Размер у него не маленький, новичку с диагностикой он не поможет из-за отсутствия дружетсвенного интерфейса :) а продвинутые пользователи что-нибудь почитают и заранее заготовят себе бинарник для заливки в /tmp по необходимости. :) Так что есть смысл просто поскорбить о его уходе из основной прошивки, и продолжать развивать ее дальше. :)

lly
18-08-2009, 10:07
Дык вряд ли кто пытался собрать эту прошивку для процессора другой архитектуры :))
Ну патч то я сделал, а проверять-то как??? Именно это я и пытаюсь от тебя добиться!

ghost_ufa
18-08-2009, 10:35
Ну патч то я сделал, а проверять-то как??? Именно это я и пытаюсь от тебя добиться!

Аааа! Благодарствую. Минуточку, щас проверю.

upd.

Посмотрел. Ну... это-то я первым делом сделал, оно очевидно - но именно после этого патча и осталась ошибка при добавлении счетчиков. Сейчас добавил туда отладку и пересобираю...

mvb
18-08-2009, 10:47
...а продвинутые пользователи что-нибудь почитают и заранее заготовят себе бинарник для заливки в /tmp по необходимости. :) ...
... а скачают они tcpdump вот отсюда http://code.google.com/p/wl500g/downloads/list

P.S. Ухожу, ухожу... :) Это я для удобства будующих поколений продвинутых пользователей.

lly
18-08-2009, 11:22
Посмотрел. Ну... это-то я первым делом сделал, оно очевидно - но именно после этого патча и осталась ошибка при добавлении счетчиков. Сейчас добавил туда отладку и пересобираю...
Ну тогда без тестового примера я не знаю, что еще сделать. В 603-netfilter_nat_pptp.patch более никакие структуры размер не меняют. Может у тебя проблемы, аналогичные tc, поправленные в r441 (http://code.google.com/p/wl500g/source/detail?r=441) ?


P.S. Ухожу, ухожу... :) Это я для удобства будующих поколений продвинутых пользователей.
Для них нужно будет соорудить FAQ на googlecode ;)

oleg71
18-08-2009, 11:35
C последнего релиза прошивки - месяц прошел ;)

Разработчики, выложите пожалуйста, (r446 или уже может выше)
Или еще не готова r446-я до публичного (тестирования) доступа?

ghost_ufa
18-08-2009, 11:42
Ну тогда без тестового примера я не знаю, что еще сделать. В 603-netfilter_nat_pptp.patch более никакие структуры размер не меняют.

Я тоже пока не знаю, а пересборка дело долгое. Причем после этого патча все вроде как работает - правила создаются и отрабатываются нормально, проблема только в счетчиках статистики. Что удивительно, ибо описание их структуры берется напрямую из ядерных заголовков, да и изменений в нем не было. И хотя они и 8-байтовые, но выравнивание на них сказаться ИМХО не должно.
Буду дальше ковырять...

lly
18-08-2009, 11:42
Разработчики, выложите пожалуйста, (r446 или уже может выше)
Или еще не готова r446-я до публичного (тестирования) доступа?
Уже скоро ;) Пофиксим пару ньансов с accel-pptp и usbdevfs(UHCI) (http://wl500g.info/showpost.php?p=155919&postcount=235) и выложим.

oleg71
18-08-2009, 11:55
Уже скоро ;) Пофиксим пару ньансов с accel-pptp и usbdevfs(UHCI) (http://wl500g.info/showpost.php?p=155919&postcount=235) и выложим.

Спасибо!

Удачи всем причастным :)

lly
18-08-2009, 12:52
Соберите пожалуйста модули для текущей версии прошивки (WL500gp-1.9.2.7-d-r396).
А посмотреть в текущем конфиге ядра слабо было? :confused:
уже вкомпилено в ядро:

sch_htb
sch_sfq
cls_fw
cls_u32
cls_route - включим отдельный модуль в следующую сборку

Less
18-08-2009, 14:08
Спасибо! Буду ждать :)

theMIROn
18-08-2009, 16:16
Для них нужно будет соорудить FAQ на googlecode ;)
Пора приглашать контрибуторов )


C последнего релиза прошивки - месяц прошел ;)
Разработчики, выложите пожалуйста, (r446 или уже может выше)
Или еще не готова r446-я до публичного (тестирования) доступа?
могу выдать в личку, есть r446

lly
18-08-2009, 17:08
Ну тогда без тестового примера я не знаю, что еще сделать. В 603-netfilter_nat_pptp.patch более никакие структуры размер не меняют.Я тоже пока не знаю, а пересборка дело долгое. Причем после этого патча все вроде как работает - правила создаются и отрабатываются нормально, проблема только в счетчиках статистики.
И все таки, приведи краткий пример, как проверяешь именно ты! Может у кого идеи появятся...



Лёня, будет время и желание погляди насчет поддержки persist в accel-pptp
Расплююсь с UHCI и попробую посмотреть. Основная проблема - мой провайдер PPTP это локальный poptop :rolleyes:

theMIROn
18-08-2009, 17:21
Расплююсь с UHCI и попробую посмотреть. Основная проблема - мой провайдер PPTP это локальный poptop :rolleyes:
Зато скорость не режет.

ghost_ufa
19-08-2009, 06:30
И все таки, приведи краткий пример, как проверяешь именно ты! Может у кого идеи появятся...

Какой пример привести, если любая попытка манипуляции с таблицей nat приводила к лаконичному сообщению об ошибке "invalid argument"?

Все, вопрос закрыт, патч можно протестить на МИПСе и в продакшн, причина была в функции do_add_counters файла ip_tables.c, в неинициализированной переменной "ret"... Заменил на "int ret=0;" и все прошло.

lly
19-08-2009, 07:17
Какой пример привести, если любая попытка манипуляции с таблицей nat приводила к лаконичному сообщению об ошибке "invalid argument"?
На нашем MIPS'е "любая" - работает. Но, во избежании разночтений, я и просил привести твой вариант команды. Тебе жалко одной минуты привести пример?

Все, вопрос закрыт, патч можно протестить на МИПСе и в продакшн, причина была в функции do_add_counters файла ip_tables.c, в неинициализированной переменной "ret"... Заменил на "int ret=0;" и все прошло.
Очень странно, ret в do_add_counters() должна инициализироваться при вызове ipt_find_table_lock(), а эта функция, в свою очередь, устанавливает *error в find_inlist_lock_noload() в самом начале, при вызове down_interruptible()

ghost_ufa
19-08-2009, 08:05
На нашем MIPS'е "любая" - работает. Но, во избежании разночтений, я и просил привести твой вариант команды. Тебе жалко одной минуты привести пример?


Вот я с того и начал! Что на МИПСе - работает, а у мну - нет. И какой смысл в примерах, если 1) у вас другая архитектура 2) я в соседнем окне на роутере их проверяю - работают?

Ну да ладно, мне не жалко - проверял я на командах

iptables -t nat -vv -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -vv -A OUTPUT -o eth0 -j SNAT --to-source 192.168.79.250
iptables -t nat -vv -D POSTROUTING 1
iptables -t nat -vv -D OUTPUT 1

И чем же это может помочь? :confused:


Очень странно

Ага. Сейчас пересобираю с выключенной отладкой - может я что-то зацепил по дороге...

lly
19-08-2009, 08:14
И какой смысл в примерах, если 1) у вас другая архитектура 2) я в соседнем окне на роутере их проверяю - работают?
Исключительно для проверки самого себя, что мы говорим об одном и том же.

Ага. Сейчас пересобираю с выключенной отладкой - может я что-то зацепил по дороге...
Отладка - страшная вещь! При включении одного printk в EHCI ошибка в Issue 23 (http://code.google.com/p/wl500g/issues/detail?id=23) исчезает! А без данных именно в этой контрольной точке я пока не могу понять где причина...

sorine
19-08-2009, 15:41
lly, в патче 150-rlimit.patch ошибка. Он применяется к уже патченому, а не родному rc.
Вот исправленная рабочая версия.

theMIROn
19-08-2009, 16:01
lly, в патче 150-rlimit.patch ошибка. Он применяется к уже патченому, а не родному rc.
Вот исправленная рабочая версия.

Спасибо что заметил. Дело не в патченом или родном, а в путях к файлам.

ghost_ufa
20-08-2009, 06:17
Патч 305-accel-pptp.patch добавляет зависимости от параметров конфигурирования для файла if_pppox.h, но они явно не инклудятся, поэтому обламывается сборка некоторых посторонних пакетов. Предлагается
--- linux/include/linux/if_pppox.h.x 2009-08-20 10:28:52 +0600
+++ linux/include/linux/if_pppox.h 2009-08-20 10:29:00 +0600
@@ -20,6 +20,7 @@
#include <asm/types.h>
#include <asm/byteorder.h>
#include <linux/version.h>
+#include <linux/config.h>

#ifdef __KERNEL__
#include <linux/in.h>

theMIROn
20-08-2009, 06:35
Патч 305-accel-pptp.patch добавляет зависимости от параметров конфигурирования для файла if_pppox.h, но они явно не инклудятся, поэтому обламывается сборка некоторых посторонних пакетов.Нужен пример этих пакетов

lly
20-08-2009, 07:21
Патч 305-accel-pptp.patch добавляет зависимости от параметров конфигурирования для файла if_pppox.h, но они явно не инклудятся, поэтому обламывается сборка некоторых посторонних пакетов.

Нужен пример этих пакетов
Примеры, однозначно нужны, но с точки зрения стандартных include-файлов ядра, исправление правильное. Но только, скорее всего, это должно быть обрамлено

#ifdef __KERNEL__
#endif

Updated: был неправ, т.к. sockaddr_pppox используется на user уровне, экранировать __KERNEL__ нельзя

ghost_ufa
21-08-2009, 06:14
Не получается что-то с pptp-accel :( Пишет
Aug 21 11:05:22 Aug 21 11:05:22 router pppd: Plugin pptp.so loaded.
Aug 21 11:05:22 router pppd: PPTP plugin version 0.8.3 compiled for pppd-2.4.5, linux-2.4.37.4
Aug 21 11:05:22 router pptptunnel: pppd startup succeeded
Aug 21 11:05:22 router pptp[12150]: pppd 2.4.5 started by root, uid 0
PPTP: failed to create PPTP socket (Address family not supported by protocol)
Aug 21 11:05:22 router pptp[12150]: Exit.

theMIROn
21-08-2009, 07:02
Не получается что-то с pptp-accel :( Пишет
Aug 21 11:05:22 Aug 21 11:05:22 router pppd: Plugin pptp.so loaded.
Aug 21 11:05:22 router pppd: PPTP plugin version 0.8.3 compiled for pppd-2.4.5, linux-2.4.37.4
Aug 21 11:05:22 router pptptunnel: pppd startup succeeded
Aug 21 11:05:22 router pptp[12150]: pppd 2.4.5 started by root, uid 0
PPTP: failed to create PPTP socket (Address family not supported by protocol)
Aug 21 11:05:22 router pptp[12150]: Exit.

во первых нужен полный лог, во вторых сетевые настройки, в третьих содержимое /tmp/ppp/options.wan0,

ghost_ufa
21-08-2009, 07:32
во первых нужен полный лог, во вторых сетевые настройки, в третьих содержимое /tmp/ppp/options.wan0,


это и был полный лог - от запуска до завершения.

файл параметров:

debug

name makar2
remotename PPTP

#remotename pptp
linkname pptp


pptp_server 10.2.2.2
mtu 1400

persist

ipparam office


noipdefault
noauth

plugin pptp.so



Юзерспейсовый вариант ессно работает.

theMIROn
21-08-2009, 07:49
это и был полный лог - от запуска до завершения.
файл параметров:...
Юзерспейсовый вариант ессно работает.

Он, что, вручную создан? оО
Файл параметров для accel-pptp генерируется автоматически при установке соединения, если wan0_pptp_kernel=1
debug можно добавить и в additional pptp options



PPTP: failed to create PPTP socket (Address family not supported by protocol)

прошивку сами компилировали? похоже еще на проблему с заголовками if_pppox.h, такого быть не должно

ghost_ufa
21-08-2009, 09:24
Он, что, вручную создан?
ессно



Он, что, вручную создан?
Файл параметров для accel-pptp генерируется


бинарник rc выкорчеван за ненадобностью.




прошивку сами компилировали?


:D



такого быть не должно


Я догадываюсь :cool: Сейчас отладку включу и пересоберу...

theMIROn
21-08-2009, 09:36
Типичный пример /tmp/ppp/options.wan0, генерируемый автоматически для accel-pptp


noauth refuse-eap
user 'xxx'
password 'xxx'
plugin pptp.so
pptp_server 10.19.0.1
nomppe-stateful mtu 1400
maxfail 0
persist
ipcp-accept-remote ipcp-accept-local noipdefault
ktune
default-asyncmap nopcomp noaccomp
novj nobsdcomp nodeflate
lcp-echo-interval 10
lcp-echo-failure 6
unit 0

ghost_ufa
21-08-2009, 12:11
Типичный пример /tmp/ppp/options.wan0

отредактировал, ничего не изменилось. Оно где-то в самом начале валится, ибо даже с kdebug 9 и включением всего что можно - в лог попадает только эта фраза про протокол. Причем в коде акселератора (pptp.c) нет упоминания EAFNOSUPPORT :confused:

theMIROn
21-08-2009, 12:41
отредактировал, ничего не изменилось. Оно где-то в самом начале валится, ибо даже с kdebug 9 и включением всего что можно - в лог попадает только эта фраза про протокол. Причем в коде акселератора (pptp.c) нет упоминания EAFNOSUPPORT :confused:

либо используешь не те заголовки if_xxxxx.h ядра, либо не патченный if_pppox.h от accel-pptp

ghost_ufa
21-08-2009, 13:01
либо используешь не те заголовки if_xxxxx.h ядра, либо не патченный if_pppox.h от accel-pptp

Да вроде бы тут ничего не меняд, только до компиляции добавил вышеупомянутую строчку в оный if_pppox.h. И даже для вящей пущности после "make kernel" хидеры копируются в /usr/include (ибо не все пакеты в комплекте имеют ключ nostdinc).

Сейчас собираю "начисто", в понедельник видно будет че получилось...

karter
23-08-2009, 17:05
Энтузиасты-разработчики прошивки, обратите пожалуйста внимание на это сообщение (http://wl500g.info/showthread.php?p=157178#post157178).

lly
24-08-2009, 07:34
Энтузиасты-разработчики прошивки, обратите пожалуйста внимание на [QUOTE=karter;157178]Значит проблема была в iptables. Почитал тут (http://code.google.com/p/wl500g/wiki/NEWS) историю изменений прошивок и заметил что с 308 версии iptables был заменён/изменён. Решил откатиться назад. 273 не подходит так как на ней не работала моя вебкамера, откатился на 240 и всё работает уже которые сутки.
Вот правило которым перехватывается траффик

iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Давайте выражаться точнее: сами iptables НЕ БЫЛИ "заменёны/изменёны"! Были добавлены и исправлены некоторые модули, к которым ваше правило не должно иметь никакого отношения.
Безусловно, в где-то могла вкрасться ошибка, которая приводит к указанному эффекту. Но по информации из письма, невозможно определить место ошибки, без повторения полностью аналогичного стенда. Если есть желание действительно помочь, а не пофлудить, то надо максимально точно локализовать сборку, в которой появилась проблема. И попытаться понять, через какое время отваливается форвардинг, не связано ли это с каким-либо событием, и т.д.

ghost_ufa
24-08-2009, 07:56
Сейчас собираю "начисто", в понедельник видно будет че получилось...

Собрал, запустил - без изменений. Такая же ошибка:
[root@router log]# pppd file /etc/ppp/peers/office nodetach
Plugin pptp.so loaded.
PPTP plugin version 0.8.3 compiled for pppd-2.4.5, linux-2.4.37.4
Plugin pptp.so loaded.
PPTP plugin version 0.8.3 compiled for pppd-2.4.5, linux-2.4.37.4
route_add: not adding existing route
PPTP: failed to create PPTP socket (Address family not supported by protocol)

2bars
24-08-2009, 15:37
хммм.... у меня /etc/mtab пропал и mount ругается

$ mount
mount: no /etc/mtab

прошивка 1.9.2.7-d-r473

theMIROn
24-08-2009, 16:14
PPTP: failed to create PPTP socket (Address family not supported by protocol)вообщем очень все странно. а ядерный драйвер pptp.o загружен? он соответствует версии pppd плагина?

theMIROn
24-08-2009, 16:16
хммм.... у меня /etc/mtab пропал и mount ругается

$ mount
mount: no /etc/mtab

прошивка 1.9.2.7-d-r473
mtab'а по дефолту и нет в прошивке. создаваться он может только из .files во flashfs, а последняя при обновлении может быть заблокирована, если статус flashfs был enable.
для "вечного" разрешения flashfs нужно выставить статус в enabled.
т.е:
flashfs enable - блокируем flashfs при смене версии прошивки
flashfs enabled - не блокируем flashfs при смене версии прошивки

ghost_ufa
24-08-2009, 18:23
а ядерный драйвер pptp.o загружен?

Бинго!
insmod pptp
Using /lib/modules/2.4.37.4/kernel/drivers/net/pptp.o
/lib/modules/2.4.37.4/kernel/drivers/net/pptp.o: /lib/modules/2.4.37.4/kernel/drivers/net/pptp.o: unresolved symbol register_pppox_proto
/lib/modules/2.4.37.4/kernel/drivers/net/pptp.o: /lib/modules/2.4.37.4/kernel/drivers/net/pptp.o: unresolved symbol pppox_unbind_sock
/lib/modules/2.4.37.4/kernel/drivers/net/pptp.o: /lib/modules/2.4.37.4/kernel/drivers/net/pptp.o: unresolved symbol unregister_pppox_proto


Причина теперь понятна. Непонятна причина причины :confused:

upd: и это понятно - insmod pppox до того. ЗАРАБОТАЛО!!!

Да... а как сервер оно работать может - вместе с PPTPD?

theMIROn
24-08-2009, 18:38
Причина теперь понятна. Непонятна причина причины :confused:Ну емае, insmod/modprobe pppox.o и все что с этим связано. в .config для ядра что вообще проставлено?