Страница 1 из 1
ipfw nat & setfib
Добавлено: 2009-11-15 6:50:02
sdeny
Здравствуйте!!!
Имеется роутер 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
В чем может быть проблема???
Кто сталкивался с этим пожалуйста помогите !!!
Re: ipfw nat & setfib
Добавлено: 2009-11-15 12:05:51
Alex Keda
в непрочтении правил форума.
Re: ipfw nat & setfib
Добавлено: 2009-11-15 15:36:05
terminus
Мндя...

Вероятно, что MPD раз в час что-то делает со свое сессией - перезванивает, пересоздает ноду ng0 или еще что-то подобное. Поэтому ссылка на ng0 из ipfw и теряется.
У вас на ng0 и на vr0 постоянные IP или динамические? Какой из каналов используется как defaultroute в таблице маршрутизации 0, а какой в таблице 1?
Почему отказались от deny_in в настройках nat?
Re: ipfw nat & setfib
Добавлено: 2009-11-15 17:16:54
sdeny
на vr0 адрес статический а на ng0 динамический. vro - defaultroute для 0 таблицы и ng0 для 1 соответственно.
Да я про deny_in как то и неподуал!!! А это критично.??? Почему-то нат не отрабатывает, хотя сессия мпд не рвалась

Re: ipfw nat & setfib
Добавлено: 2009-11-15 17:38:07
terminus
небольшой хак. Если на 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
Хотя это вряд ли поможет.
Мне надо подумать... Нопонятно - что же может приводить к такому поведению.
Re: ipfw nat & setfib
Добавлено: 2009-11-15 18:47:59
sdeny
Попробовал!!! Результат действительно нулевой
Причем на 200 правиле счетчики растут, а на 10257 и на 10258 нет
МПД перезапустил заново. Результат не поменялся!
Re: ipfw nat & setfib
Добавлено: 2009-11-15 20:22:54
terminus
Вы можете в следующий раз, когда сново появится эта проблема, показать вывод:
Код: Выделить всё
netstat -rn
setfib 1 netstat -rn
ipfw nat 1000 show
ipfw nat 2000 show
ipfw -d show
Еше вопрос - на какой срок получает IP адрес интефейс 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 ?
Re: ipfw nat & setfib
Добавлено: 2009-11-16 14:31:39
sdeny
Код: Выделить всё
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 это адреса впн.
Re: ipfw nat & setfib
Добавлено: 2009-11-16 15:11:55
terminus
с адресом 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 из статьи?
Re: ipfw nat & setfib
Добавлено: 2009-11-16 15:33:17
sdeny
Ага. Его!!
Хм... так и есть. У обоих 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
Re: ipfw nat & setfib
Добавлено: 2009-11-16 15:38:23
terminus
Каких-нить ошибок в setfib1 случайно нет (может скопировался как-то криво)?
в rc.conf внесли
Код: Выделить всё
setfib1_enable="YES"
setfib1_defaultroute="213.228.1.2"
?
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"
Re: ipfw nat & setfib
Добавлено: 2009-11-16 15:52:55
terminus
Елы-палы, у меня в скрипте ошибка что ли? Я же его проверял...
Поменяйте там
Код: Выделить всё
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

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

Re: ipfw nat & setfib
Добавлено: 2009-11-16 17:22:53
terminus
руками /usr/local/etc/rc.d/setfib1 запустить получается нормально, без ошибок?
при перезагрузке сервака могут быть грабельки что скрипт начнет работать раньше чем поднимиться MPD...
Пришите сюда /usr/local/etc/rc.d/mpd (или как там мпдшный рц файл называется?). Надо знать какие в нем секции
тогда setfib1 можно будет настроить на запуск после MPD
---
да и это - 213.228.1.2 - вам надо знать адрес gateway на той стороне... Его и вгонять в таблицу 1. Не очень понятно почему совпадения с адресом ng0... Или я что-то путаю про то как MPD point-to-point соедининие настраевает, и может так и правильно на самом деле...
Re: ipfw nat & setfib
Добавлено: 2009-11-16 18:04:27
sdeny
Начну по порядку.
мпд у меня генерит как 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 во вторую таблицу все встало на
свои места!!!

И уже два часа работает без проблем!!!
Вот только почему скриптик не фурычит непонятно.
Re: ipfw nat & setfib
Добавлено: 2009-11-16 18:14:36
terminus
Вот только почему скриптик не фурычит непонятно.
"Аналагична"
Надобно мне еще подумать. Дома вечером протестирую его по-разному, может еще что-то забыл/накасячил...
Re: ipfw nat & setfib
Добавлено: 2009-11-16 19:09:49
sdeny
Все таки есть косяк!!
Раз в час падает. Но теперь известно от куда ноги растут.
Хотя мпд сессию не дергало.
Теперь остается либо выяснить куда девается дефаулт со второй таблицы и кто его "девает", или писать скрип который дефаулт подставлять будет!!
Re: ipfw nat & setfib
Добавлено: 2009-11-16 19:14:53
terminus
DHCP предположительно. Я не помню наизусть, но был способ указать в /etc/dchpclient.conf какие опции он должен игнорировать. Задача - запретить ему брать опцию назначающую default gateway
http://www.freebsd.org/cgi/man.cgi?quer ... ormat=html
Re: ipfw nat & setfib
Добавлено: 2009-11-16 19:22:27
sdeny
А у меня DHCP не включен!!

Re: ipfw nat & setfib
Добавлено: 2009-11-16 21:19:00
terminus
Тогда остается MPD ковырять. Я его совсем не знаю.
Мне вот интересно - а вы ничего в нем специально для fib 1 не настраевали (up/down скрипты у него какие-то есть)? Непонятно почему он дергает вторую таблицу, ведь если бы он что-то менял, то дергал бы установки по-умолчанию (fib 0 то есть).
Что еще может вызывать потерю маршрута? Вот если уничтожить или выключить интерфейс через который идет маршрут, он из таблицы маршрутизации наверно тоже пропадет? Может на самом деле MPD при переинициализации DHCP передергивает интерфейс и поэтому маршрут пропадает? Нипанятки...
---
У меня
Код: Выделить всё
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