Здравствуйте Уважаемые коллеги!Система: FreeBSD 6.1-RELEASE-p10
Машина нарезает канал примерно 400м рабочим станциям.
На внутрисетевом интерфейсе висит большое количество alias'ов для логического разделения сети.
Всё работает хорошо, кроме одного момента ip адреса оканчивающиеся на .2 работают не правильно. Тоесть в pipe они попадают но у них пинг в любую точку описанную правилом выше чем у _ВСЕХ_ остальных ip адресов. Для примера у IP XXX.XXX.7.60 пинг на ya.ru 130-160 ms, а в тоже время с IP 7.2 уже 3000-4000 ms!
Уже экспериментировал с параметром queue но результатов не дало.Маскарада на машине нет. Проблемы точно в pipe механизме.
Из системных переменных отмечу net.inet.ip.fw.one_pass=0
Пользовательские правила создаются примерно по такому шаблону:
ipfw add $i_pipe_num pipe $i_pipe_num all from table'($to_from)' to table'($group_count, $tariff_num)' via $ext_if
ipfw pipe $i_pipe_num config mask dst-ip 0x000000ff bw $pipe_i$unitВ dmesg валится постоянно одно и тоже сообщение:
ipfw: ouch!, skip past end of rules, denying packetЧитал, что это проблема в ipfw но нормального ответа на этот вопрос я не нашел.
Сразу извинюсь за может большое количество, может быть лишней, информации но очень хотелось бы получить помощь не только от людей с телепатическими возможностями. :)
Вот кусок правил (те что работают pipe) с комментариями:
# правила отвечающие за раздачу Локальных ресурсов:
# каждое правило это тариф.
# одна (table(1,X)) таблица это клиентские IP адреса, а вторая это точки назначения
# (table(101))
####################################################02033 0 0 pipe 2033 ip from table(101) to table(1,17) via net0
02034 0 0 pipe 2034 ip from table(1,17) to table(101) via net0
02035 0 0 pipe 2035 ip from table(101) to table(1,18) via net0
02036 0 0 pipe 2036 ip from table(1,18) to table(101) via net0
02037 0 0 pipe 2037 ip from table(101) to table(1,19) via net0
02038 0 0 pipe 2038 ip from table(1,19) to table(101) via net0
02039 0 0 pipe 2039 ip from table(101) to table(1,20) via net0
02040 0 0 pipe 2040 ip from table(1,20) to table(101) via net0
02041 434184 553087215 pipe 2041 ip from table(101) to table(1,21) via net0
02042 250478 14832639 pipe 2042 ip from table(1,21) to table(101) via net0
02043 36 3204 pipe 2043 ip from table(101) to table(1,22) via net0
02044 36 3348 pipe 2044 ip from table(1,22) to table(101) via net0
02045 0 0 pipe 2045 ip from table(101) to table(1,23) via net0
02046 0 0 pipe 2046 ip from table(1,23) to table(101) via net0
02047 9548313 11227671590 pipe 2047 ip from table(101) to table(1,24) via net0
02048 4840034 320368683 pipe 2048 ip from table(1,24) to table(101) via net0
02049 0 0 pipe 2049 ip from table(101) to table(1,25) via net0
02050 0 0 pipe 2050 ip from table(1,25) to table(101) via net0
02059 0 0 pipe 2059 ip from table(101) to table(1,30) via net0
02060 0 0 pipe 2060 ip from table(1,30) to table(101) via net0
02069 428 29349 pipe 2069 ip from table(101) to table(1,35) via net0
02070 322 14313 pipe 2070 ip from table(1,35) to table(101) via net0
02079 39 3510 pipe 2079 ip from table(101) to table(1,40) via net0
02080 39 3552 pipe 2080 ip from table(1,40) to table(101) via net0
# общее ограничение (в этом направлении) для пользователей
02499 5090890 335221529 pipe 2499 ip from table(1) to table(101) via net0
02500 9981737 11778936312 pipe 2500 ip from table(101) to table(1) via net0# разрешаем доступ этим адресам по этим направлениям
02533 0 0 allow ip from table(101) to table(1,17) via net0
02534 0 0 allow ip from table(1,17) to table(101) via net0
02535 0 0 allow ip from table(101) to table(1,18) via net0
02536 0 0 allow ip from table(1,18) to table(101) via net0
02537 0 0 allow ip from table(101) to table(1,19) via net0
02538 0 0 allow ip from table(1,19) to table(101) via net0
02539 0 0 allow ip from table(101) to table(1,20) via net0
02540 0 0 allow ip from table(1,20) to table(101) via net0
02541 432962 551284525 allow ip from table(101) to table(1,21) via net0
02542 250478 14832639 allow ip from table(1,21) to table(101) via net0
02543 36 3204 allow ip from table(101) to table(1,22) via net0
02544 36 3348 allow ip from table(1,22) to table(101) via net0
02545 0 0 allow ip from table(101) to table(1,23) via net0
02546 0 0 allow ip from table(1,23) to table(101) via net0
02547 9548304 11227658658 allow ip from table(101) to table(1,24) via net0
02548 4840034 320368683 allow ip from table(1,24) to table(101) via net0
02549 0 0 allow ip from table(101) to table(1,25) via net0
02550 0 0 allow ip from table(1,25) to table(101) via net0
02559 0 0 allow ip from table(101) to table(1,30) via net0
02560 0 0 allow ip from table(1,30) to table(101) via net0
02569 428 29349 allow ip from table(101) to table(1,35) via net0
02570 322 14313 allow ip from table(1,35) to table(101) via net0
02579 39 3510 allow ip from table(101) to table(1,40) via net0
02580 39 3552 allow ip from table(1,40) to table(101) via net0# тут нарезаю/разрешаю доступ для пользователей в городскую сеть
03013 304820 181106920 pipe 3013 ip from table(102) to table(2,7) via net0
03014 390001 385522709 pipe 3014 ip from table(2,7) to table(102) via net0
03015 1045070 415191959 pipe 3015 ip from table(102) to table(2,8) via net0
03016 1640117 724526717 pipe 3016 ip from table(2,8) to table(102) via net0
03017 2091 539430 pipe 3017 ip from table(102) to table(2,9) via net0
03018 2757 399914 pipe 3018 ip from table(2,9) to table(102) via net0
03027 0 0 pipe 3027 ip from table(102) to table(2,14) via net0
03028 0 0 pipe 3028 ip from table(2,14) to table(102) via net0
03029 0 0 pipe 3029 ip from table(102) to table(2,15) via net0
03030 0 0 pipe 3030 ip from table(2,15) to table(102) via net0
03031 0 0 pipe 3031 ip from table(102) to table(2,16) via net0
03032 0 0 pipe 3032 ip from table(2,16) to table(102) via net0
03075 4 624 pipe 3075 ip from table(102) to table(2,38) via net0
03076 6 936 pipe 3076 ip from table(2,38) to table(102) via net0
# общий pipe
03499 2032480 1110248024 pipe 3499 ip from table(2) to table(102) via net0
03500 1351843 596720742 pipe 3500 ip from table(102) to table(2) via net0
# allow'ы
03513 304816 181102363 allow ip from table(102) to table(2,7) via net0
03514 389997 385518348 allow ip from table(2,7) to table(102) via net0
03515 1045070 415191959 allow ip from table(102) to table(2,8) via net0
03516 1639804 724334537 allow ip from table(2,8) to table(102) via net0
03517 2091 539430 allow ip from table(102) to table(2,9) via net0
03518 2757 399914 allow ip from table(2,9) to table(102) via net0
03527 0 0 allow ip from table(102) to table(2,14) via net0
03528 0 0 allow ip from table(2,14) to table(102) via net0
03529 0 0 allow ip from table(102) to table(2,15) via net0
03530 0 0 allow ip from table(2,15) to table(102) via net0
03531 0 0 allow ip from table(102) to table(2,16) via net0
03532 0 0 allow ip from table(2,16) to table(102) via net0
03575 4 624 allow ip from table(102) to table(2,38) via net0
03576 6 936 allow ip from table(2,38) to table(102) via net004019 18277 19944582 pipe 4019 ip from table(103) to table(3,10) via net0
04020 15709 731880 pipe 4020 ip from table(3,10) to table(103) via net0
04021 34570 11026586 pipe 4021 ip from table(103) to table(3,11) via net0
04022 36360 1629496 pipe 4022 ip from table(3,11) to table(103) via net0
04023 77957 16488620 pipe 4023 ip from table(103) to table(3,12) via net0
04024 86950 7427656 pipe 4024 ip from table(3,12) to table(103) via net0
04025 45655 12336825 pipe 4025 ip from table(103) to table(3,13) via net0
04026 72489 4768895 pipe 4026 ip from table(3,13) to table(103) via net0
04061 0 0 pipe 4061 ip from table(103) to table(3,31) via net0
04062 0 0 pipe 4062 ip from table(3,31) to table(103) via net0
04063 0 0 pipe 4063 ip from table(103) to table(3,32) via net0
04064 0 0 pipe 4064 ip from table(3,32) to table(103) via net0
04065 22985 6289907 pipe 4065 ip from table(103) to table(3,33) via net0
04066 25398 1635562 pipe 4066 ip from table(3,33) to table(103) via net0
04067 4776 216641 pipe 4067 ip from table(103) to table(3,34) via net0
04068 8655 8001024 pipe 4068 ip from table(3,34) to table(103) via net0
04071 0 0 pipe 4071 ip from table(103) to table(3,36) via net0
04072 0 0 pipe 4072 ip from table(3,36) to table(103) via net0
# общий pipe
04499 245512 24190940 pipe 4499 ip from table(3) to table(103) via net0
04500 204186 66285946 pipe 4500 ip from table(103) to table(3) via net0
# allow'ы
04519 18274 19940082 allow ip from table(103) to table(3,10) via net0
04520 15709 731880 allow ip from table(3,10) to table(103) via net0
04521 34570 11026586 allow ip from table(103) to table(3,11) via net0
04522 36360 1629496 allow ip from table(3,11) to table(103) via net0
04523 77957 16488620 allow ip from table(103) to table(3,12) via net0
04524 86950 7427656 allow ip from table(3,12) to table(103) via net0
04525 45655 12336825 allow ip from table(103) to table(3,13) via net0
04526 72488 4768836 allow ip from table(3,13) to table(103) via net0
04561 0 0 allow ip from table(103) to table(3,31) via net0
04562 0 0 allow ip from table(3,31) to table(103) via net0
04563 0 0 allow ip from table(103) to table(3,32) via net0
04564 0 0 allow ip from table(3,32) to table(103) via net0
04565 22985 6289907 allow ip from table(103) to table(3,33) via net0
04566 25398 1635562 allow ip from table(3,33) to table(103) via net0
04567 4776 216641 allow ip from table(103) to table(3,34) via net0
04568 8655 8001024 allow ip from table(3,34) to table(103) via net0
04571 0 0 allow ip from table(103) to table(3,36) via net0
04572 0 0 allow ip from table(3,36) to table(103) via net0# в инет
05001 42690 9569367 pipe 5001 ip from any to table(4,1) via net0
05002 53503 2652916 pipe 5002 ip from table(4,1) to any via net0
05003 0 0 pipe 5003 ip from any to table(4,2) via net0
05004 0 0 pipe 5004 ip from table(4,2) to any via net0
05005 0 0 pipe 5005 ip from any to table(4,3) via net0
05006 0 0 pipe 5006 ip from table(4,3) to any via net0
05073 0 0 pipe 5073 ip from any to table(4,37) via net0
05074 0 0 pipe 5074 ip from table(4,37) to any via net0
05077 562 124243 pipe 5077 ip from any to table(4,39) via net0
05078 527 30680 pipe 5078 ip from table(4,39) to any via net0
# общий pipe
05499 54028 2683516 pipe 5499 ip from table(4) to any via net0
05500 43244 9688809 pipe 5500 ip from any to table(4) via net0
# allow'ы
05501 42684 9564733 allow ip from any to table(4,1) via net0
05502 53503 2652916 allow ip from table(4,1) to any via net0
05503 0 0 allow ip from any to table(4,2) via net0
05504 0 0 allow ip from table(4,2) to any via net0
05505 0 0 allow ip from any to table(4,3) via net0
05506 0 0 allow ip from table(4,3) to any via net0
05573 0 0 allow ip from any to table(4,37) via net0
05574 0 0 allow ip from table(4,37) to any via net0
05577 562 124243 allow ip from any to table(4,39) via net0
05578 527 30680 allow ip from table(4,39) to any via net0
06007 644687 529419298 pipe 6007 ip from any to table(5,4) via net0
06008 658705 109312552 pipe 6008 ip from table(5,4) to any via net0
06009 217803 156638988 pipe 6009 ip from any to table(5,5) via net0
06010 230471 105006376 pipe 6010 ip from table(5,5) to any via net0
06011 9335 11383991 pipe 6011 ip from any to table(5,6) via net0
06012 8387 775868 pipe 6012 ip from table(5,6) to any via net0
# общий pipe
06499 883052 206372104 pipe 6499 ip from table(5) to any via net0
06500 861477 690529651 pipe 6500 ip from any to table(5) via net0
# allow'ы
06507 640190 525905927 allow ip from any to table(5,4) via net0
06508 658511 109283173 allow ip from table(5,4) to any via net0
06509 211971 153241253 allow ip from any to table(5,5) via net0
06510 216179 96316765 allow ip from table(5,5) to any via net0
06511 9335 11383991 allow ip from any to table(5,6) via net0
06512 8387 775868 allow ip from table(5,6) to any via net007051 145031 129172034 pipe 7051 ip from any to table(6,26) via net0
07052 153758 26143230 pipe 7052 ip from table(6,26) to any via net0
07053 132921 72372399 pipe 7053 ip from any to table(6,27) via net0
07054 147915 21095737 pipe 7054 ip from table(6,27) to any via net0
07055 342634 273967515 pipe 7055 ip from any to table(6,28) via net0
07056 371688 62612977 pipe 7056 ip from table(6,28) to any via net0
07057 518920 318289036 pipe 7057 ip from any to table(6,29) via net0
07058 594290 138006994 pipe 7058 ip from table(6,29) to any via net0
# общий pipe
07499 1266600 247424217 pipe 7499 ip from table(6) to any via net0
07500 1131357 787842142 pipe 7500 ip from any to table(6) via net0
# allow'ы
07551 140329 125783942 allow ip from any to table(6,26) via net0
07552 153413 25944659 allow ip from table(6,26) to any via net0
07553 132413 71842076 allow ip from any to table(6,27) via net0
07554 147841 21073241 allow ip from table(6,27) to any via net0
07555 340434 272420239 allow ip from any to table(6,28) via net0
07556 371247 62517588 allow ip from table(6,28) to any via net0
07557 518251 317822644 allow ip from any to table(6,29) via net0
07558 594190 137903142 allow ip from table(6,29) to any via net0
65534 12545 1323002 deny ip from any to any
####################################################
Заранее спасибо. С Ув.
Ознакомтесь с этим: http://docs.freebsd.org/mail/archive/2004/freebsd-ipfw/20040...MyHomePage - http://surgutnet.ru
>Ознакомтесь с этим: http://docs.freebsd.org/mail/archive/2004/freebsd-ipfw/20040...
>
>MyHomePage - http://surgutnet.ru
Перевёл one_pass=1, существенно упростив логику правил.Но всё равно! IP .2 - работает с дикими проблемами, а .60 работает идеально...
Хотя находятся в одном и том-же правиле.На пример, машина за этим роутером у 60 пингуется 2-5 ms, а когда я себе ставлю IP .2 то пинг на этуже машину уже 3000-4000 ms! :((
Чтож это такое? :(
>>Ознакомтесь с этим: http://docs.freebsd.org/mail/archive/2004/freebsd-ipfw/20040...
>>
>>MyHomePage - http://surgutnet.ru
>
>
>Перевёл one_pass=1, существенно упростив логику правил.
>
>Но всё равно! IP .2 - работает с дикими проблемами, а .60
>работает идеально...
>Хотя находятся в одном и том-же правиле.
>
>На пример, машина за этим роутером у 60 пингуется 2-5 ms, а
>когда я себе ставлю IP .2 то пинг на этуже машину
>уже 3000-4000 ms! :((
>
>Чтож это такое? :(1. Убедиться в прохождении пингов без firewall-а. :)
2. В пайпах добавить in/out.
3. ВНИМАТЕЛЬНО посмотреть не попадает ли ".2" в ненужные table, проверить маски, диапазоны адресов, если есть.
4. Если ничего не помогает добавить log к каждому правилу и смотреть прохождение пакета построчно :(
>1. Убедиться в прохождении пингов без firewall-а. :)
>2. В пайпах добавить in/out.
>3. ВНИМАТЕЛЬНО посмотреть не попадает ли ".2" в ненужные table, проверить маски,
>диапазоны адресов, если есть.
>4. Если ничего не помогает добавить log к каждому правилу и смотреть
>прохождение пакета построчно :(1. Без правил в firewall'е или если сразу попадает в allow без pipe'ов. То работает нормально.
2. Добавил.
3. Уже пересмотрел всё по 10 раз. 2 IP адреса находятся в одних и тех-же таблицах! Больше их нет не где, не в одной таблице.
Pip'ы конфигурируются вот так:
Для входящих pipов
config mask dst-ip 0x000000ff bw $pipe_i$unit queue 100kДля исходящих pipов
config mask src-ip 0x000000ff bw $pipe_o$unit queue 100kПараметр queue крутил уже по всякому. Но сразу видно проблема не в нём ибо от его значения изменяется "качество" работы для других адресов проходящих через этот pipe. Но для ".2" всё остается по прежнему плохо.
Самое странное, что это наблюдается для всех ".2" адресов. :(
Не уж-то это такой редкий баг в ipfw? или я что не понимаю в его логике... :(
Спасибо за ответы, проблема имхо интересная, буду копать дальше.
Проблема была в параметре mask для моего количество подсетей данная маска не работает.