Страница 1 из 1

FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-14 23:45:55
Four
Доброго времени суток!
имеем машину на фре 6.0-релиз с тремя интерфейсами.
rl0 - lan
rl1 - к инету со статическим ипом на интерфейсе
rl2 - к провайдеру для доступа к впн серверу
ng1 - впн к инету на динамике.

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

# ifconfig
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        ether 00:80:48:32:b1:34
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 81.30.*.* netmask 0xffffffe0 broadcast 81.30.222.127
        ether 00:50:22:9f:fb:ff
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 10.66.46.70 netmask 0xffffff00 broadcast 10.66.46.255
        ether 00:80:48:3a:cd:4a
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1460
        inet 89.189.145.81 --> 10.8.0.8 netmask 0xffffffff
Дефолт роут идет через ng1.
фаервол - ipfw

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

#generic NAT
ipfw add 50 divert 8778 ip from 192.168.0.0/16 to not 192.168.0.0/16 via ng1
ipfw add 50 divert 8778 ip from any to any in via ng1
#PBR
ipfw add 100 fwd 81.30.222.97  ip from 81.30.222.126 to any

#allow own gate's traffic
ipfw add 500 allow all from any to me
ipfw add 500 allow all from me to any

#LuckyNet <-> JuiceNet
ipfw add 700 allow all from 192.168.0.0/24 to 192.168.1.0/24
ipfw add 700 allow all from 192.168.1.0/24 to 192.168.0.0/24

#Table 1: dest hosts allowed for all
#Table 2: Trusted hosts


#registrar count
#ipfw add 910 count all from plast.virtualufa.ru to any

#allow traffit to trusted hosts
ipfw add 10000 allow all from 192.168.0.0/16 to table\(1\)

#NOD32 Update
ipfw add 15000 allow all from 192.168.0.3 to 89.202.0.0/16
ipfw add 15001 allow all from 192.168.0.3 to 72.32.7.91
#Mail
ipfw add 15100 allow ip from 192.168.0.4 to smtp.mail.ru 25
ipfw add 15400 allow ip from 192.168.0.199 to any 25
ipfw add 15400 deny ip from any to any 25
#WEB Access (fwd to tr. proxy) 
ipfw add 30000 fwd 192.168.0.1,3128 tcp from 192.168.0.0/24 to any 80
#ICQ Users
ipfw add 40001 allow ip from ov to any 5190
ipfw add 40001 allow ip from 192.168.0.195 to any 5190
ipfw add 40001 allow ip from ov to any https
ipfw add 40001 allow ip from 192.168.0.195 to any https
#Computerz wid full access
ipfw add 50000 allow all from table\(2\) to any
#returned traffic
ipfw add 65000 allow ip from any to 192.168.0.0/24
работает все, кроме icmp - не могу пингануть по 81.30..... По вебу/ссх/прочему обращаюсь без проблем. Пробовал отдельно прописать форвард для icmp. Пакеты на правило попадают, но на этом все.
Где затык?

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-15 22:06:39
Four
Хм... странная фича. Видимо, я чего то где то недопонял. Вот что значит проверять узел на доступность пингами.

После удаления форвардинга (правило 100) веб и ссх ВСЕ РАВНО РАБОТАЮТ при обращении на 81.30.222.126. А пинги все равно не идут (сейчас уже не вспомню, но судя по всему я и решил что надо ковырять пбр из за того что не получил доступа пингами).

И где косяк на этот раз?

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-15 22:21:29
f_andrey
Four писал(а):

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

ipfw add 65000 allow ip from any to 192.168.0.0/24
работает все, кроме icmp - не могу пингануть по 81.30..... По вебу/ссх/прочему обращаюсь без проблем. Пробовал отдельно прописать форвард для icmp. Пакеты на правило попадают, но на этом все.
Где затык?
У вас как бы открытый фаервол так что он врядли чему то может мешать, ну если только не заворачивать пакеты когда и куда надо.
Про отсутствие пинга, а с чего вы взяли что он вообще должен быть? у меня например тоже нет, ну и что?

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-15 22:30:51
Four
Потому что если грохнуть впн и дефолт гейтом опять станет 81.30.222.126, то пинг будет. Поднимаю впн, дефолт гейт становится через ng1. Пинги на ип с ng1 идут, на 81.30.222.126 - нет.
Тцпдампом пинги приходят на интерфейс, но не уходят. по всей видимости где то заворачиваются.
Посмотрел тцпдамп на нг1. Пинги уходят через него, не смотря на то, что приходят на rl1.

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-15 22:36:22
Four
по тцпдампу получается (как и предполагалось), что они уходят через ng1, не смотря на форвард (и его отсутствие) и не смотря на то, что пришли на rl1

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-16 8:57:45
zingel
добавь ка касатик

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

add 10 allow log icmp from any to any
add 11 count log icmp from any to any via ng0
и потом сюда выложи что напишет

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-16 9:24:57
Four

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

Apr 16 12:17:42 juicer kernel: ipfw: Accounting cleared.
Apr 16 12:17:42 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.196 in via gif0
Apr 16 12:17:42 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.196 out via ppp0
Apr 16 12:17:42 juicer kernel: ipfw: 9 Count ICMP:8.0 77.79.161.66 89.189.145.81 in via ng1
Apr 16 12:17:42 juicer kernel: ipfw: 10 Accept ICMP:8.0 77.79.161.66 89.189.145.81 in via ng1
Apr 16 12:17:42 juicer kernel: ipfw: 9 Count ICMP:0.0 89.189.145.81 77.79.161.66 out via ng1
Apr 16 12:17:42 juicer kernel: ipfw: 10 Accept ICMP:0.0 89.189.145.81 77.79.161.66 out via ng1
Apr 16 12:17:42 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.197 in via gif0
Apr 16 12:17:42 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.197 out via ppp0
Apr 16 12:17:43 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.198 in via gif0
Apr 16 12:17:43 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.198 out via ppp0
Apr 16 12:17:43 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.199 in via gif0
Apr 16 12:17:43 juicer kernel: ipfw: 10 Accept ICMP:8.0 192.168.1.98 192.168.4.199 out via ppp0
Apr 16 12:17:43 juicer kernel: ipfw: limit 10 reached on entry 10
Apr 16 12:17:50 juicer kernel: ipfw: 9 Count ICMP:3.3 89.189.145.81 77.35.11.86 out via ng1
Apr 16 12:17:57 juicer kernel: ipfw: 9 Count ICMP:3.3 89.189.145.81 58.253.105.66 out via ng1
Apr 16 12:17:58 juicer kernel: ipfw: 9 Count ICMP:3.3 89.189.145.81 58.253.105.66 out via ng1
Apr 16 12:18:05 juicer kernel: ipfw: 9 Count ICMP:3.1 89.209.249.159 89.189.145.81 in via ng1
Apr 16 12:18:05 juicer kernel: ipfw: 9 Count ICMP:0.0 81.30.222.126 172.27.2.151 out via ng1
Apr 16 12:18:07 juicer kernel: ipfw: 9 Count ICMP:11.0 212.3.133.38 89.189.145.81 in via ng1
Apr 16 12:18:10 juicer kernel: ipfw: 9 Count ICMP:0.0 81.30.222.126 172.27.2.151 out via ng1
Apr 16 12:18:13 juicer kernel: ipfw: 9 Count ICMP:3.3 89.189.145.81 85.132.74.25 out via ng1
Apr 16 12:18:13 juicer kernel: ipfw: limit 10 reached on entry 9
отсюда пинговалось: 172.27.2.151
почему то не видно в логах входящих, тока исходящие (но исходящих то без входящих быть не может :shock: )
count 11м номером ничего не считает, по всей видимости потому что после allow пакет выходит из фаера и не доходит до каунта. переставил 9м номером:

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

 ipfw sh 1-20
ipfw: DEPRECATED: 'sh' matched 'show' as a sub-string
00009   149    11999 count log logamount 10 icmp from any to any via ng1
00010  1644   109746 allow log logamount 10 icmp from any to any
00011     0        0 count log logamount 10 icmp from any to any via ng1

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-16 9:41:43
zingel

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

gif0
ppp0
это что?

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-16 9:57:19
Four
это gif-tunnel до другого офиса и туннель до домашней сети.

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

root@juicer# ifconfig ppp0
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1360
        inet 192.168.10.10 --> 192.168.10.1 netmask 0xffffff00
root@juicer# ifconfig gif0
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
        tunnel inet 81.30.222.126 --> 81.30.214.86
        inet 172.16.1.1 --> 172.16.1.2 netmask 0xfffffffc
root@juicer# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            ng1                US          0 14755297    ng1
10.8.0.1           10.66.46.1         UGHS        0 16811659    rl2
10.66.46/24        link#3             UC          0        0    rl2
10.66.46.1         00:1e:58:5e:b8:04  UHLW        2        0    rl2   1148
81.30.214.86       81.30.222.97       UGHS        0 12455679    rl1
81.30.222.96/27    link#2             UC          0        0    rl1
81.30.222.97       00:19:d1:0e:56:55  UHLW        2        1    rl1   1156
81.30.222.126      00:50:22:9f:fb:ff  UHLW        1    35321    lo0
127.0.0.1          127.0.0.1          UH          0   690547    lo0
172.16.1.2         172.16.1.1         UH          1        0   gif0
192.168.0          link#1             UC          0        0    rl0 =>
192.168.0/16       192.168.10.1       UGS         0  2939711   ppp0
192.168.0.1        00:80:48:32:b1:34  UHLW        1        2    lo0
192.168.0.3        00:1a:92:2d:a9:7b  UHLW        1  8225529    rl0   1185
192.168.0.5        00:1a:92:2d:aa:47  UHLW        1     1061    rl0    813
192.168.0.255      ff:ff:ff:ff:ff:ff  UHLWb       1    17604    rl0
192.168.1          172.16.1.2         UGS         0 12324985   gif0
192.168.10.1       192.168.10.10      UH          1       80   ppp0

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-16 10:18:10
zingel
как я понял не может пройти через gif0

Re: FreeBSD 6.0-Release PBR: куда делись ICMP?

Добавлено: 2009-04-16 10:24:51
Four
Он в гиф не должен попадать вообще никоим боком: через гиф только маршрутизация между 192.168.0.0/24 и 192.168.1.0/24
Судя по логам из той подсети кто то пинговал в этот момент. В лог и залезло.