ipfw nat & setfib

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-15 6:50:02

Здравствуйте!!!
Имеется роутер FreeBSD 7.2 плюс два канала выхода в инет через разных провайдеров.
Требуется настроить выход в инет с распределением нагрузки по каналам, используя ipfw.
Делал на примере вот этой статьи http://www.lissyara.su/?id=1967#example_5


Вот конфиг ipfw/

Код: Выделить всё

/sbin/ipfw add 5 prob 0.5 skipto 200 ip from any to any in recv xl0

/sbin/ipfw add 30 allow ip from any to me dst-port 22
/sbin/ipfw add 30 allow ip from me 22 to any

/sbin/ipfw add 50 allow ip from me to 192.168.12.4

/sbin/ipfw add 100 setfib 0 ip from any to any in recv xl0 keep-state
/sbin/ipfw add 150 allow ip from any to any via xl0

/sbin/ipfw add 200 setfib 1 ip from any to any in recv xl0 keep-state
/sbin/ipfw add 250 allow ip from any to any via xl0

/sbin/ipfw nat 1000 config if vr0 log reset
/sbin/ipfw nat 2000 config if ng0 log reset

/sbin/ipfw add 10157 nat 1000 ip from 172.16.0.0/16 to any via vr0
/sbin/ipfw add 10158 nat 1000 ip from any to me via vr0

/sbin/ipfw add 10257 nat 2000 ip from 172.16.0.0/16 to any via ng0
/sbin/ipfw add 10258 nat 2000 ip from any to me via ng0

/sbin/ipfw add 10280 allow ip from any to any via vr0
/sbin/ipfw add 10280 allow ip from any to any via ng0

ipfw add 65500 allow ip from table\(5\) to any in
ipfw add 65510 allow ip from any to table\(5\) out
Где vr0,ng0 -интернет, xl0-локалка.

При запуске все работает, но примерно через час работы правило 10257, 10258 перестают работать (счетчики не меняются).
Каналы в норме.

Код: Выделить всё

setfib -0 ping ya.ru
PING ya.ru (213.180.204.8): 56 data bytes
64 bytes from 213.180.204.8: icmp_seq=0 ttl=60 time=118.335 ms
64 bytes from 213.180.204.8: icmp_seq=1 ttl=60 time=108.765 ms
64 bytes from 213.180.204.8: icmp_seq=2 ttl=60 time=114.289 ms

Код: Выделить всё

setfib -1 ping ya.ru
PING ya.ru (93.158.134.8): 56 data bytes
64 bytes from 93.158.134.8: icmp_seq=0 ttl=57 time=145.154 ms
64 bytes from 93.158.134.8: icmp_seq=1 ttl=57 time=277.922 ms
64 bytes from 93.158.134.8: icmp_seq=2 ttl=57 time=156.399 ms
В чем может быть проблема???
Кто сталкивался с этим пожалуйста помогите !!!
Последний раз редактировалось Alex Keda 2009-11-15 12:05:35, всего редактировалось 1 раз.
Причина: Товарищщи! Цените чужое время, юзайте кнопочку [code]. А то позабаниваю!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35426
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: ipfw nat & setfib

Непрочитанное сообщение Alex Keda » 2009-11-15 12:05:51

в непрочтении правил форума.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-15 15:36:05

Мндя... Изображение
Вероятно, что MPD раз в час что-то делает со свое сессией - перезванивает, пересоздает ноду ng0 или еще что-то подобное. Поэтому ссылка на ng0 из ipfw и теряется.

У вас на ng0 и на vr0 постоянные IP или динамические? Какой из каналов используется как defaultroute в таблице маршрутизации 0, а какой в таблице 1?

Почему отказались от deny_in в настройках nat?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

Re: ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-15 17:16:54

на vr0 адрес статический а на ng0 динамический. vro - defaultroute для 0 таблицы и ng0 для 1 соответственно.
Да я про deny_in как то и неподуал!!! А это критично.??? Почему-то нат не отрабатывает, хотя сессия мпд не рвалась :(

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-15 17:38:07

небольшой хак. Если на vr0 IP 1.2.3.4 то попробуйте так:

Код: Выделить всё

/sbin/ipfw add 5 prob 0.5 skipto 200 ip from any to any in recv xl0

/sbin/ipfw add 30 allow ip from any to me dst-port 22
/sbin/ipfw add 30 allow ip from me 22 to any

/sbin/ipfw add 50 allow ip from me to 192.168.12.4

/sbin/ipfw add 100 setfib 0 ip from any to any in recv xl0 keep-state
/sbin/ipfw add 150 allow ip from any to any via xl0

/sbin/ipfw add 200 setfib 1 ip from any to any in recv xl0 keep-state
/sbin/ipfw add 250 allow ip from any to any via xl0

/sbin/ipfw nat 1000 config if vr0 log reset deny_in
/sbin/ipfw nat 2000 config if ng0 log reset deny_in

/sbin/ipfw add 10157 nat 1000 ip from 172.16.0.0/16 to any via vr0
/sbin/ipfw add 10158 nat 1000 ip from any to 1.2.3.4 via vr0
/sbin/ipfw add 10180 allow ip from any to any via vr0

/sbin/ipfw add 10257 nat 2000 ip from 172.16.0.0/16 to any
/sbin/ipfw add 10258 nat 2000 ip from any to any
/sbin/ipfw add 10280 allow ip from any to any

ipfw add 65500 allow ip from table\(5\) to any in
ipfw add 65510 allow ip from any to table\(5\) out
Хотя это вряд ли поможет.

Мне надо подумать... Нопонятно - что же может приводить к такому поведению.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

Re: ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-15 18:47:59

Попробовал!!! Результат действительно нулевой :( :(
Причем на 200 правиле счетчики растут, а на 10257 и на 10258 нет :(
МПД перезапустил заново. Результат не поменялся!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-15 20:22:54

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

Код: Выделить всё

netstat -rn
setfib 1 netstat -rn
ipfw nat 1000 show
ipfw nat 2000 show
ipfw -d show
Еше вопрос - на какой срок получает IP адрес интефейс ng0?

Код: Выделить всё

cat /var/db/dhclient.leases.ng0
Не на час ли случайно выдается адрес?

Еще один эксперимент. У вас в сети 172.16.0.0/16 есть какой-нибудь комп на котором вы бы могли проводить эксперименты? Предположим, что это 172.16.0.56. Попробуйте такие правила:

Код: Выделить всё

/sbin/ipfw add 4 skipto 200 ip from 172.16.0.56 to any in recv xl0

/sbin/ipfw add 5 prob 0.5 skipto 200 ip from any to any in recv xl0

/sbin/ipfw add 30 allow ip from any to me dst-port 22
/sbin/ipfw add 30 allow ip from me 22 to any

/sbin/ipfw add 50 allow ip from me to 192.168.12.4

/sbin/ipfw add 100 setfib 0 ip from any to any in recv xl0 keep-state
/sbin/ipfw add 150 allow ip from any to any via xl0

/sbin/ipfw add 200 setfib 1 ip from any to any in recv xl0 keep-state
/sbin/ipfw add 250 allow ip from any to any via xl0

/sbin/ipfw nat 1000 config if vr0 log reset deny_in
/sbin/ipfw nat 2000 config if ng0 log reset deny_in

/sbin/ipfw add 10157 nat 1000 ip from 172.16.0.0/16 to any via vr0
/sbin/ipfw add 10158 nat 1000 ip from any to me via vr0

/sbin/ipfw add 10257 nat 2000 ip from 172.16.0.0/16 to any via ng0
/sbin/ipfw add 10258 nat 2000 ip from any to me via ng0

/sbin/ipfw add 10280 allow ip from any to any via vr0
/sbin/ipfw add 10280 allow ip from any to any via ng0

ipfw add 65500 allow ip from table\(5\) to any in
ipfw add 65510 allow ip from any to table\(5\) out
Когда констатируете проблему, будет ли она так же и на 172.16.0.56 ?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

Re: ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-16 14:31:39

Код: Выделить всё

netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            80.237.X.X         UGS         0 84354821    vr0
127.0.0.1          127.0.0.1          UH          0    16638    lo0
172.16.0.7         172.16.0.1         UH          0    71070   ng48

192.168.0.0/16     link#1             UC          0        0    xl0
192.168.0.2        00:02:b3:51:9b:e7  UHLW        1   564587    xl0    515
192.168.0.5        00:17:9a:bb:c2:df  UHLW        1    24397    xl0    997
213.228.X.X        95.188.X.X         UH          0        0    ng0

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::1                               ::1                           UHL         lo0
fe80::%lo0/64                     fe80::1%lo0                   U           lo0
fe80::1%lo0                       link#3                        UHL         lo0
ff01:3::/32                       fe80::1%lo0                   UC          lo0
ff02::%lo0/32                     fe80::1%lo0                   UC          lo0
Внутренние адреса я выкинул

Код: Выделить всё

setfib 1 netstat -rn
Routing tables
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default           80.237.X.X          UGS         0   141021    vr0
80.237.X.X        00:0e:0c:6f:ae:51   UHLW        1        0    vr0    147
80.237.X.X        00:30:71:1a:94:00   UHLW        2        0    vr0   1196
213.228.X.X       95.188.X.X          UH          0        0    ng0

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::1                               ::1                           UHL         lo0
fe80::%lo0/64                     fe80::1%lo0                   U           lo0
fe80::1%lo0                       link#3                        UHL         lo0
ff01:3::/32                       fe80::1%lo0                   UC          lo0
ff02::%lo0/32                     fe80::1%lo0                   UC          lo0
Далее

Код: Выделить всё

ipfw nat 1000 show
nat 1000: icmp=2, udp=7183, tcp=7767, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=14952

ipfw nat 2000 show
nat 2000: icmp=0, udp=0, tcp=2, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=2

Код: Выделить всё

ipfw -d show
00004         0            0 skipto 200 ip from 172.16.0.7 to any in recv xl0
00005  23309570   7197183889 prob 0.500000 skipto 200 ip from any to any in recv xl0
00030     65899      5997286 allow ip from any to me dst-port 22
00030     61330     11722664 allow ip from me 22 to any
00050     99988      9587687 allow ip from me to 192.168.12.4
00100  46131677  26572706565 setfib 0 ip from any to any in recv xl0 keep-state
00150 207167032 116539071045 allow ip from any to any via xl0
00200  60491939  32597241008 setfib 1 ip from any to any in recv xl0 keep-state
00250  60425423  32591244545 allow ip from any to any via xl0
10157 106434853  29212419704 nat 1000 ip from 172.16.0.0/16 to any via vr0
10158 129695703 112980087013 nat 1000 ip from any to me via vr0
10257        62        10551 nat 2000 ip from 172.16.0.0/16 to any via ng0
10258      1127        63123 nat 2000 ip from any to me via ng0
10280 239289476 142362566965 allow ip from any to any via vr0
10280       112        12667 allow ip from any to any via ng0
65500 109705666  29450372460 allow ip from table(5) to any in
65510 129712417 112964486526 allow ip from any to table(5) out
65535     68903      6344863 deny ip from any to any
## Dynamic rules (144):
00200       796        41844 (294s) STATE tcp 192.168.11.13 49300 <-> 192.168.0.33 1723
00100         0            0 (8s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 54590
00200        75         3920 (276s) STATE tcp 192.168.7.11 3992 <-> 192.168.0.33 1723
00100        57         3424 (260s) STATE tcp 192.168.20.8 2438 <-> 192.168.0.33 1723
00100         0            0 (5s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 65067
00100    720521    231729756 (5s) STATE gre 192.168.32.1 0 <-> 192.168.0.33 0
00200        34         2391 (5s) STATE gre 192.168.18.1 0 <-> 192.168.0.33 0
00200        35         3871 (4s) STATE gre 192.168.26.1 0 <-> 192.168.0.33 0
00200         5          484 (3s) STATE gre 192.168.13.1 0 <-> 192.168.0.33 0
00100        38         3211 (3s) STATE gre 192.168.24.1 0 <-> 192.168.0.33 0
00100         1           32 (2s) STATE gre 192.168.23.1 0 <-> 192.168.0.33 0
00100    349649    194414932 (5s) STATE gre 192.168.12.3 0 <-> 192.168.0.33 0
00100       403       155455 (5s) STATE gre 192.168.4.3 0 <-> 192.168.0.33 0
00100    745418    584418317 (5s) STATE gre 192.168.22.3 0 <-> 192.168.0.33 0
00200     32292     22344446 (5s) STATE gre 192.168.24.3 0 <-> 192.168.0.33 0
00200        18         5683 (4s) STATE gre 192.168.32.3 0 <-> 192.168.0.33 0
00100      1364       256182 (5s) STATE gre 192.168.24.2 0 <-> 192.168.0.33 0
00200        84        32167 (5s) STATE gre 192.168.1.2 0 <-> 192.168.0.33 0
00200       772       102394 (5s) STATE gre 192.168.13.5 0 <-> 192.168.0.33 0
00100   7230493   3177730955 (5s) STATE gre 192.168.26.5 0 <-> 192.168.0.33 0
00100    354442    236429289 (5s) STATE gre 192.168.10.5 0 <-> 192.168.0.33 0
00200   3817381   2376432782 (5s) STATE gre 192.168.20.4 0 <-> 192.168.0.33 0
00100    290841    172785429 (5s) STATE gre 192.168.2.4 0 <-> 192.168.0.33 0
00100     85813     66308277 (5s) STATE gre 192.168.17.4 0 <-> 192.168.0.33 0
00200  10955880   3801982973 (5s) STATE gre 192.168.20.7 0 <-> 192.168.0.33 0
00100         0            0 (5s) STATE gre 192.168.21.7 0 <-> 192.168.0.33 0
00200       348        18556 (290s) STATE tcp 192.168.19.6 1466 <-> 192.168.0.33 1723
00200      2605      1031633 (2s) STATE gre 192.168.19.6 0 <-> 192.168.0.33 0
00100     29439      3473279 (5s) STATE gre 192.168.23.9 0 <-> 192.168.0.33 0
00200      2904      1665254 (5s) STATE gre 192.168.20.8 0 <-> 192.168.0.33 0
00200        12          658 (4s) STATE gre 192.168.12.8 0 <-> 192.168.0.33 0
00100     13989     11100468 (5s) STATE gre 192.168.4.11 0 <-> 192.168.0.33 0
00200   1512805    683250262 (5s) STATE gre 192.168.13.11 0 <-> 192.168.0.33 0
00100        12         1562 (5s) STATE gre 192.168.14.11 0 <-> 192.168.0.33 0
00100    805954    518629172 (5s) STATE gre 192.168.1.11 0 <-> 192.168.0.33 0
00100     14683      9560179 (5s) STATE gre 192.168.10.11 0 <-> 192.168.0.33 0
00200       767        51738 (5s) STATE gre 192.168.20.10 0 <-> 192.168.0.33 0
00200         1           32 (2s) STATE gre 192.168.7.10 0 <-> 192.168.0.33 0
00100    190613     90995205 (5s) STATE gre 192.168.20.12 0 <-> 192.168.0.33 0
00200        81         6067 (5s) STATE gre 192.168.7.12 0 <-> 192.168.0.33 0
00100       200        52078 (5s) STATE gre 192.168.11.12 0 <-> 192.168.0.33 0
00200   1185306    540137835 (5s) STATE gre 192.168.13.15 0 <-> 192.168.0.33 0
00200      1778      1196294 (5s) STATE gre 192.168.20.15 0 <-> 192.168.0.33 0
00100         1           32 (2s) STATE gre 192.168.1.15 0 <-> 192.168.0.33 0
00100         2          109 (5s) STATE gre 192.168.20.14 0 <-> 192.168.0.33 0
00200         1           32 (1s) STATE gre 192.168.11.17 0 <-> 192.168.0.33 0
00100        54         3268 (266s) STATE tcp 192.168.2.26 2480 <-> 192.168.0.33 1723
00100      3375       175972 (255s) STATE tcp 192.168.11.12 2726 <-> 192.168.0.33 1723
00200   4917580   3773811790 (5s) STATE gre 192.168.24.16 0 <-> 192.168.0.33 0
00100        41         8384 (3s) STATE gre 192.168.1.16 0 <-> 192.168.0.33 0
00200        15         2926 (5s) STATE gre 192.168.1.18 0 <-> 192.168.0.33 0
00100    458487    294960550 (5s) STATE gre 192.168.1.20 0 <-> 192.168.0.33 0
00200      2020       105492 (281s) STATE tcp 192.168.13.15 49315 <-> 192.168.0.33 1723
00100         5          362 (5s) STATE gre 192.168.2.26 0 <-> 192.168.0.33 0
00100       452       187075 (5s) STATE gre 192.168.2.28 0 <-> 192.168.0.33 0
00200       457        24216 (291s) STATE tcp 192.168.1.18 55753 <-> 192.168.0.33 1723
00200      3197       166716 (252s) STATE tcp 192.168.26.5 2012 <-> 192.168.0.33 1723
00200         0            0 (4s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 50035
00200       247        10800 (216s) STATE tcp 192.168.7.11 3542 <-> 192.168.0.33 1723
00200       468        24796 (262s) STATE tcp 192.168.4.11 1242 <-> 192.168.0.33 1723
00200      1665        87060 (265s) STATE tcp 192.168.20.10 2013 <-> 192.168.0.33 1723
00200        38         2440 (266s) STATE tcp 192.168.7.11 4574 <-> 192.168.0.33 1723
00100       201        10912 (283s) STATE tcp 192.168.1.16 1239 <-> 192.168.0.33 1723
00200        63         3736 (261s) STATE tcp 192.168.24.3 3014 <-> 192.168.0.33 1723
00100         0            0 (7s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 62291
00100         0            0 (8s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 55632
00200       213        11536 (269s) STATE tcp 192.168.12.3 1770 <-> 192.168.0.33 1723
00100        97         5492 (267s) STATE tcp 192.168.11.17 2040 <-> 192.168.0.33 1723
00200         0            0 (4s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 59715
00100      1089        57088 (259s) STATE tcp 192.168.22.3 4847 <-> 192.168.0.33 1723
00200         2          132 (1s) STATE tcp 192.168.0.173 3559 <-> 192.168.0.33 22
00200       432        22924 (298s) STATE tcp 192.168.21.7 3357 <-> 192.168.0.33 1723
00200      2452       127956 (270s) STATE tcp 192.168.24.16 49163 <-> 192.168.0.33 1723
00100       297        15904 (255s) STATE tcp 192.168.1.2 1050 <-> 192.168.0.33 1723
00200       210        11384 (294s) STATE tcp 192.168.1.20 1037 <-> 192.168.0.33 1723
00200      1117        58536 (257s) STATE tcp 192.168.20.15 49169 <-> 192.168.0.33 1723
00200        84         4828 (253s) STATE tcp 192.168.18.2 1052 <-> 192.168.0.33 1723
00200       123         6856 (300s) STATE tcp 192.168.7.7 1051 <-> 192.168.0.33 1723
00200       120         6700 (287s) STATE tcp 192.168.20.14 1042 <-> 192.168.0.33 1723
00100       126         7012 (252s) STATE tcp 192.168.15.3 1054 <-> 192.168.0.33 1723
00100       236        12708 (291s) STATE tcp 192.168.10.5 49175 <-> 192.168.0.33 1723
00100       918        48196 (256s) STATE tcp 192.168.26.1 1043 <-> 192.168.0.33 1723
00200       117         6544 (243s) STATE tcp 192.168.4.3 1041 <-> 192.168.0.33 1723
00100       243        13096 (275s) STATE tcp 192.168.7.10 3609 <-> 192.168.0.33 1723
00200      1634        85420 (281s) STATE tcp 192.168.20.2 1042 <-> 192.168.0.33 1723
00200      1542        80644 (293s) STATE tcp 192.168.20.4 1042 <-> 192.168.0.33 1723
00200       225         9920 (66s) STATE tcp 192.168.7.11 2589 <-> 192.168.0.33 1723
00100      1296        67852 (284s) STATE tcp 192.168.21.6 1036 <-> 192.168.0.33 1723
00100       444        23548 (272s) STATE tcp 192.168.2.28 1046 <-> 192.168.0.33 1723
00100       591        31192 (271s) STATE tcp 192.168.27.6 1036 <-> 192.168.0.33 1723
00100      1710        89368 (283s) STATE tcp 192.168.11.8 55811 <-> 192.168.0.33 1723
00200      1084        56820 (275s) STATE tcp 192.168.17.7 50958 <-> 192.168.0.33 1723
00100       123         6856 (286s) STATE tcp 192.168.14.10 1036 <-> 192.168.0.33 1723
00200       126         7012 (244s) STATE tcp 192.168.10.13 1034 <-> 192.168.0.33 1723
00100      3114       162388 (294s) STATE tcp 192.168.17.4 4097 <-> 192.168.0.33 1723
00200      2046       106852 (273s) STATE tcp 192.168.23.1 3844 <-> 192.168.0.33 1723
00200      1188        62236 (242s) STATE tcp 192.168.13.5 1083 <-> 192.168.0.33 1723
00100        74         4320 (282s) STATE tcp 192.168.32.3 1084 <-> 192.168.0.33 1723
00200       451        23904 (254s) STATE tcp 192.168.32.2 49215 <-> 192.168.0.33 1723
00200      1392        72844 (291s) STATE tcp 192.168.18.1 1075 <-> 192.168.0.33 1723
00200       918        48232 (270s) STATE tcp 192.168.2.4 1078 <-> 192.168.0.33 1723
00100       141         7792 (285s) STATE tcp 192.168.32.1 1074 <-> 192.168.0.33 1723
00200       629        33180 (296s) STATE tcp 192.168.23.9 1086 <-> 192.168.0.33 1723
00100       121         6740 (250s) STATE tcp 192.168.10.11 1056 <-> 192.168.0.33 1723
00100       243        13096 (275s) STATE tcp 192.168.2.13 1829 <-> 192.168.0.33 1723
00200       239        10496 (46s) STATE tcp 192.168.11.7 1071 <-> 192.168.0.33 1723
00100         0            0 (2s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 50565
00200        94         5340 (274s) STATE tcp 192.168.24.5 49196 <-> 192.168.0.33 1723
00100       192        10444 (261s) STATE tcp 192.168.24.2 1067 <-> 192.168.0.33 1723
00100       408        21676 (289s) STATE tcp 192.168.13.6 1066 <-> 192.168.0.33 1723
00200      1089        57088 (268s) STATE tcp 192.168.0.173 4481 <-> 192.168.0.33 1723
00200      1602        83764 (293s) STATE tcp 192.168.7.3 1057 <-> 192.168.0.33 1723
00200       249        10880 (101s) STATE tcp 192.168.7.11 3112 <-> 192.168.0.33 1723
00200        39         2488 (275s) STATE tcp 192.168.1.15 1071 <-> 192.168.0.33 1723
00100         9          928 (288s) STATE tcp 192.168.7.12 1069 <-> 192.168.0.33 1723
00200         0            0 (7s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 61940
00100       481        25464 (264s) STATE tcp 192.168.1.11 56659 <-> 192.168.0.33 1723
00100      2711       141424 (245s) STATE tcp 192.168.13.1 4958 <-> 192.168.0.33 1723
00100       249        10880 (106s) STATE tcp 192.168.7.11 3159 <-> 192.168.0.33 1723
00100       226         9960 (291s) STATE tcp 192.168.7.11 1880 <-> 192.168.0.33 1723
00200       459        24332 (253s) STATE tcp 192.168.10.14 3934 <-> 192.168.0.33 1723
00200        13         1144 (253s) STATE tcp 192.168.12.8 1113 <-> 192.168.0.33 1723
00200       150         8264 (277s) STATE tcp 192.168.26.8 1119 <-> 192.168.0.33 1723
00200      1221        63952 (272s) STATE tcp 192.168.13.11 2370 <-> 192.168.0.33 1723
00100        36         2332 (247s) STATE tcp 192.168.24.1 2892 <-> 192.168.0.33 1723
00100      1098        57560 (299s) STATE tcp 192.168.20.5 1095 <-> 192.168.0.33 1723
00200       426        20020 (126s) STATE tcp 192.168.20.5 2886 <-> 192.168.0.33 1723
00200         0            0 (3s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 52713
00200       110         6192 (246s) STATE tcp 192.168.20.12 1142 <-> 192.168.0.33 1723
00200       102         6996 (297s) STATE tcp 192.168.0.144 3567 <-> 192.168.0.33 1723
00100         0            0 (5s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 52186
00200       651        34312 (258s) STATE tcp 192.168.26.6 1392 <-> 192.168.0.33 1723
00100       726        38212 (244s) STATE tcp 192.168.14.11 1661 <-> 192.168.0.33 1723
00100         0            0 (7s) STATE udp 192.168.7.12 138 <-> 192.168.255.255 138
00100         4          312 (5s) STATE udp 192.168.7.12 137 <-> 192.168.255.255 137
00200         0            0 (3s) STATE udp 192.168.0.2 1813 <-> 192.168.0.33 64960
00200         0            0 (2s) STATE udp 192.168.12.6 1234 <-> 255.255.255.255 1234
00200      3372       175808 (247s) STATE tcp 192.168.20.7 3172 <-> 192.168.0.33 1723
00200         4          312 (3s) STATE udp 192.168.21.5 137 <-> 192.168.255.255 137
00100        20         1560 (10s) STATE udp 192.168.18.1 137 <-> 192.168.255.255 137
00200         0            0 (8s) STATE udp 192.168.13.1 138 <-> 192.168.255.255 138
Время на которое мпд получает адрес мне неизвестно. Зато вот что кажет мпд

Код: Выделить всё

Link state:
	State          : UP
	Session Id     : 8302994-L1
	Peer ident     : 
	Session time   : 67535 seconds
т.е. минимум на сутки.
Ну и самое непонятное что 4-е правило не работает, хотя мой впн-адресс 172.16.0.7 и я с него выхожу в интернет.
А вот так уже есть пакетики, но до 10257 правила они все равно не доходят, идут по 10157 (((
/sbin/ipfw add 4 skipto 200 ip from 192.168.0.173 to any in recv xl0
У меня 172.16.0.0/16 это адреса впн.
Последний раз редактировалось sdeny 2009-11-16 15:14:30, всего редактировалось 1 раз.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-16 15:11:55

с адресом 0.7 пока ладно, но вот это мне интересно:

Код: Выделить всё

netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            80.237.X.X         UGS         0 84354821    vr0

Код: Выделить всё

setfib 1 netstat -rn
Routing tables
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default           80.237.X.X          UGS         0   141021    vr0
Выходит что у вас не настроен default route во второй таблице - тот что должен идти через PPTP провайдера и интерфейс ng0!

Как вы настраеваете вторую таблицу? Используете мой скрипт setfib1 из статьи?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

Re: ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-16 15:33:17

Ага. Его!!
Хм... так и есть. У обоих setfib'в одинаковый gateway.
если я скрип запускаю вручную тогда получается вот что

Код: Выделить всё

./setfib1 start
route: writing to routing socket: Network is unreachable
add net default: gateway 213.228.1.2: Network is unreachable
а если вот так

Код: Выделить всё

/usr/sbin/setfib -1 /sbin/route add default 213.228.1.2
add net default: gateway 213.228.1.2

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-16 15:38:23

Каких-нить ошибок в setfib1 случайно нет (может скопировался как-то криво)?

в rc.conf внесли

Код: Выделить всё

setfib1_enable="YES"
setfib1_defaultroute="213.228.1.2"
?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Гость
проходил мимо

Re: ipfw nat & setfib

Непрочитанное сообщение Гость » 2009-11-16 15:46:37

Код: Выделить всё

setfib1_enable="YES"
setfib1_defaultroute="213.228.1.2"
Ну и сам скрипт

Код: Выделить всё

cat setfib1
#!/bin/sh
# PROVIDE: SETFIB1
# REQUIRE: NETWORKING
# BEFORE: DAEMON
#
# Add the following lines to /etc/rc.conf to enable setfib -1 at startup
# setfib1 (bool): Set to "NO" by default.
#                Set it to "YES" to enable setfib1
# setfib1_defaultroute (str): Set to "" by default
#       Set it to ip address of default gateway for use in fib 1
#http://www.lissyara.su/?id=1967#example_5
. /etc/rc.subr

name="setfib1"
rcvar=`set_rcvar`

load_rc_config $name

[ -z "$setfib1_enable" ] && setfib1_enable="NO"
[ -z "$setfib1_defaultroute" ] && setfib1_defaultroute=""

start_cmd="${name}_start"
stop_cmd="${name}_stop"

setfib1_start()
{
if [ ${setfib1_defaultroute} ]
then
setfib 1 route add -net default ${setfib1_defaultroute}
else
echo "Can't set defaultroute for fib 1 (setfib1_defaultroute is not set)"
fi
}

setfib1_stop()
{
setfib 1 route del -net default
}
run_rc_command "$1"



Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-16 15:52:55

Елы-палы, у меня в скрипте ошибка что ли? Я же его проверял...

Поменяйте там

Код: Выделить всё

if [ ${setfib1_defaultroute} ]
then
setfib 1 route add -net default ${setfib1_defaultroute}
else
echo "Can't set defaultroute for fib 1 (setfib1_defaultroute is not set)"
fi
на

Код: Выделить всё

if [ ${setfib1_defaultroute} ]
then
setfib 1 route add default ${setfib1_defaultroute}
else
echo "Can't set defaultroute for fib 1 (setfib1_defaultroute is not set)"
fi
:oops: :sorry:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Гость
проходил мимо

Re: ipfw nat & setfib

Непрочитанное сообщение Гость » 2009-11-16 16:17:26

перегрузил сервак. Скрип так и не загрузился. Ошибка таже. :(
Зато сделал

Код: Выделить всё

/usr/sbin/setfib -1 /sbin/route add default 213.228.1.2
add net default: gateway 213.228.1.2
И в итоге

Код: Выделить всё

setfib -1 netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            213.228.1.2     UGS         0     2213    ng0

Пока счастье полное!! Все фурычит!!!
Осталось только со скриптом разобраться.
Да вот еще что заметил что адрес ng0 всегда 213.228.1.2 ;-)

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-16 17:22:53

руками /usr/local/etc/rc.d/setfib1 запустить получается нормально, без ошибок?

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

Пришите сюда /usr/local/etc/rc.d/mpd (или как там мпдшный рц файл называется?). Надо знать какие в нем секции

Код: Выделить всё

# PROVIDE:
# REQUIRE:
# BEFORE:
тогда setfib1 можно будет настроить на запуск после MPD ;-)

---

да и это - 213.228.1.2 - вам надо знать адрес gateway на той стороне... Его и вгонять в таблицу 1. Не очень понятно почему совпадения с адресом ng0... Или я что-то путаю про то как MPD point-to-point соедининие настраевает, и может так и правильно на самом деле...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

Re: ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-16 18:04:27

Начну по порядку.
мпд у меня генерит как PPPoE соединение с провайдером так и тунели для пользователей (правда PPTP).
Но интерфес с провадером всегда ng0.
Далее при загрузке сервака в /etc/rc.local я запускаю мпд. ему действительно надо секунд 30-40 чтобы зацепиться к провайдеру.
Может скрипт уже и отработал в это время.
Но скрипт в ручную у меня запустить не получилось :( при гарантированно запущенном ng0

Код: Выделить всё

./setfib1 start
route: writing to routing socket: Network is unreachable
add net default: gateway 213.228.1.2: Network is unreachable
И еще. Вы скорее всего оказались правы. Все заработало но примерно через десять минут пререстало.
В Routing tables для ng0 default был не тот!!! :( Но после /usr/sbin/setfib -1 /sbin/route add default 213.228.1.2 все заработало.
И это случилось примерно в 16-00 по москве. Скорее всего мпд чего-то дергало!!! Как только я добавил default во вторую таблицу все встало на
свои места!!! :smile: И уже два часа работает без проблем!!!
Вот только почему скриптик не фурычит непонятно.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-16 18:14:36

Вот только почему скриптик не фурычит непонятно.
"Аналагична" :"":
Надобно мне еще подумать. Дома вечером протестирую его по-разному, может еще что-то забыл/накасячил...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

Re: ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-16 19:09:49

Все таки есть косяк!! :(
Раз в час падает. Но теперь известно от куда ноги растут.
Хотя мпд сессию не дергало.
Теперь остается либо выяснить куда девается дефаулт со второй таблицы и кто его "девает", или писать скрип который дефаулт подставлять будет!!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-16 19:14:53

DHCP предположительно. Я не помню наизусть, но был способ указать в /etc/dchpclient.conf какие опции он должен игнорировать. Задача - запретить ему брать опцию назначающую default gateway

http://www.freebsd.org/cgi/man.cgi?quer ... ormat=html
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sdeny
рядовой
Сообщения: 10
Зарегистрирован: 2009-11-15 5:49:34

Re: ipfw nat & setfib

Непрочитанное сообщение sdeny » 2009-11-16 19:22:27

А у меня DHCP не включен!! :roll:

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw nat & setfib

Непрочитанное сообщение terminus » 2009-11-16 21:19:00

Тогда остается MPD ковырять. Я его совсем не знаю.

Мне вот интересно - а вы ничего в нем специально для fib 1 не настраевали (up/down скрипты у него какие-то есть)? Непонятно почему он дергает вторую таблицу, ведь если бы он что-то менял, то дергал бы установки по-умолчанию (fib 0 то есть).

Что еще может вызывать потерю маршрута? Вот если уничтожить или выключить интерфейс через который идет маршрут, он из таблицы маршрутизации наверно тоже пропадет? Может на самом деле MPD при переинициализации DHCP передергивает интерфейс и поэтому маршрут пропадает? Нипанятки...

:unknown:

---

У меня

Код: Выделить всё

7.2-STABLE FreeBSD 7.2-STABLE #0: Sat Aug 15 13:49:47 EEST 2009
rc.conf

Код: Выделить всё

setfib1_enable="YES"
setfib1_defaultroute="192.168.1.254"
ifconfig_fxp0="inet 192.168.1.1 netmask 255.255.255.0"
скрипт:

Код: Выделить всё

#!/bin/sh
# PROVIDE: SETFIB1
# REQUIRE: NETWORKING
# BEFORE: DAEMON
#
# Add the following lines to /etc/rc.conf to enable setfib -1 at startup
# setfib1 (bool): Set to "NO" by default.
#                Set it to "YES" to enable setfib1
# setfib1_defaultroute (str): Set to "" by default
#       Set it to ip address of default gateway for use in fib 1

. /etc/rc.subr

name="setfib1"
rcvar=`set_rcvar`

load_rc_config $name

[ -z "$setfib1_enable" ] && setfib1_enable="NO"
[ -z "$setfib1_defaultroute" ] && setfib1_defaultroute=""

start_cmd="${name}_start"
stop_cmd="${name}_stop"

setfib1_start()
{
if [ ${setfib1_defaultroute} ]
then
setfib 1 route add default ${setfib1_defaultroute}
else
echo "Can not set default route for fib 1!"
fi
}

setfib1_stop()
{
setfib 1 route del default
}
run_rc_command "$1"
запуск руками:

Код: Выделить всё

[root@hius /usr/home/terminus]# /usr/local/etc/rc.d/setfib1 start
add net default: gateway 192.168.1.254
[root@hius /usr/home/terminus]# setfib -1 netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.254      UGS         0        0   fxp0
после перезагрузки - автостарт из rc.conf:

Код: Выделить всё

[root@hius /usr/home/terminus]# setfib -1 netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.254      UGS         0        0   fxp0
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.