URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88477
[ Назад ]

Исходное сообщение
"Странный глюк ipfw"

Отправлено Septima , 21-Мрт-10 01:03 
# uname -a
FreeBSD xxxxx 7.3-PRERELEASE FreeBSD 7.3-PRERELEASE #3: Fri Mar 12
15:49:47 EET 2010 root@xxxxxxx:/usr/obj/usr/src/sys/KACHA  i386

В ipfw используется такая конструкция:
pipe tablearg ip from table(11) to any

# ipfw table 11 list
10.5.0.17/32 1008
10.5.0.147/32 1004

# ipfw pipe list
01004:   1.000 Mbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 udp       10.5.0.147/137        10.5.0.255/137      2      156  0    0   0
00001: unlimited    0 ms   50 sl. 0 queues (1 buckets) droptail
01008:   1.000 Mbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 tcp        10.5.0.17/56457 147.102.222.211/21     332    15936  0    0   0

Но клиент на деле не работал - трафик где-то затыкался. Несколько дней промучился с проверками разных гипотез, наконец, стал проверять по-очереди прохождение пакетов через правила и натолкнулся на следующее явление:
Mar 20 20:18:20 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:23 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:26 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:29 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:35 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1
Mar 20 20:18:48 ipfw: 5400 Pipe 65535 TCP 10.5.0.17:59098 141.41.9.9:21 in via fxp1

Попробовал на другой машинке простую конфигурацию:
# uname -a
FreeBSD yyyyyy 7.3-PRERELEASE FreeBSD 7.3-PRERELEASE #0: Thu Mar  4
16:11:15 EET 2010 root@yyyyyy:/usr/obj/usr/src/sys/HU  i386

# ipfw list
00100 pipe tablearg log ip from me to table(10)
01000 allow ip from any to any
65535 deny ip from any to any
# ipfw table 10 list
130.208.16.26/32 1004
130.208.16.31/32 1004
134.76.12.3/32 1008
141.41.9.9/32 1008
147.91.8.38/32 1004
147.102.222.211/32 1008
188.40.113.17/32 1004
193.6.210.44/32 1004
212.242.42.40/32 1008
213.206.121.69/32 1008

# ipfw pipe list
01004: 128.000 Kbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 tcp        10.5.0.17/60575   188.40.113.17/80       5      240  0    0   0
00001: unlimited    0 ms   50 sl. 0 queues (1 buckets) droptail
01008:   1.000 Mbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 tcp        10.5.0.17/57729   212.242.42.40/80      27     1296  0    0   0

В логе - такая же ....:
Mar 20 22:21:15 hu kernel: ipfw: 100 Pipe 65535 TCP 10.5.0.17:57729 212.242.42.40:80 out via rl0
Mar 20 22:21:31 hu kernel: ipfw: 100 Pipe 65535 TCP 10.5.0.17:58866 141.41.9.9:21 out via rl0
Mar 20 22:22:47 hu kernel: ipfw: 100 Pipe 65535 TCP 10.5.0.17:64185 134.76.12.3:21 out via rl0
Mar 20 22:24:02 hu kernel: ipfw: 100 Pipe 65535 TCP 10.5.0.17:60575 188.40.113.17:80 out via rl0

Конфиг ядра:
cpu             I686_CPU
ident           Hu
options         SCHED_ULE
options         PREEMPTION
options         INET
options         FFS
options         SOFTUPDATES
options         NFSCLIENT
options         NFSSERVER
options         NFSLOCKD
options         NFS_ROOT
options         MSDOSFS
options         CD9660
options         PROCFS
options         PSEUDOFS
options         COMPAT_43TTY
options         COMPAT_FREEBSD4
options         COMPAT_FREEBSD5
options         COMPAT_FREEBSD6
options         KTRACE
options         STACK
options         SYSVSHM
options         SYSVMSG
options         SYSVSEM
options         P1003_1B_SEMAPHORES
options         _KPOSIX_PRIORITY_SCHEDULING
options         KBD_INSTALL_CDEV
options         ADAPTIVE_GIANT
options         STOP_NMI
options         AUDIT
options         INCLUDE_CONFIG_FILE
device          cpufreq
device          pci
device          ata
device          atadisk
device          atapicd
options         ATA_STATIC_ID
device          scbus
device          ch
device          da
device          atkbdc
device          atkbd
device          psm
device          kbdmux
device          vga
device          agp
device          splash
device          sc
device          pmtimer
device          loop
device          random
device          ether
device          vlan
device          ppp
device          tun
device          pty
device          md
device          firmware
device          bpf

## kldstat
Id Refs Address    Size     Name
1   13 0xc0400000 3fba84   kernel
2    4 0xc07fc000 ec4c     ipfw.ko
3    1 0xc080b000 738c     if_rl.ko
4    2 0xc0813000 25110    miibus.ko
5    1 0xc0839000 466c     ipdivert.ko
6    1 0xc083e000 3e40     ipfw_nat.ko
7    2 0xc0842000 9ccc     libalias.ko
8    1 0xc084c000 998c     dummynet.ko

Я чего-то недоделал или это, таки, глюк системы? :(


Содержание

Сообщения в этом обсуждении
"Странный глюк ipfw"
Отправлено mitiok , 21-Мрт-10 17:07 
sysctl net.inet.ip.fw.one_pass может?