Странный kernel-based ipfw NAT

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Странный kernel-based ipfw NAT

Непрочитанное сообщение godlike » 2009-01-04 16:29:27

Очень странный глюк:
при

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

${fwcmd} add nat 1 all from ${intnet} to any
${fwcmd} add nat 1 all from any to ${extip}
${fwcmd} nat 1 config if ${extint} same_ports reset unreg_only
ipfw не шейпт исходящий от сети 192.168.0.0/16 трафик

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

03200      229       19236 pipe 8 ip from table(1) to 192.168.25.6 out via tun0
03300        0           0 pipe 9 ip from 192.168.25.6 to table(1) in via tun0
03400       87        7308 pipe 10 ip from any to 192.168.25.6 out via tun0
03500        0           0 pipe 11 ip from 192.168.25.6 to any in via tun0
причем, tcpdump ловит нормальный трафик на всех интерфейсах (как внутренних так и внешних).

При возврате к

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

${fwcmd} add divert 8668 ip from ${intnet} to any out via ${extint}
${fwcmd} add divert 8668 ip from any to ${extip}
у нас все отлично:

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

03200      258       21384 pipe 8 ip from table(1) to 192.168.25.6 out via tun0
03300      251       21084 pipe 9 ip from 192.168.25.6 to table(1) in via tun0
03400      103        8652 pipe 10 ip from any to 192.168.25.6 out via tun0
03500      103        8652 pipe 11 ip from 192.168.25.6 to any in via tun0
Не подскажете, чем лечить? Заранее спасибо!

З.Ы.

Да,

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

net.inet.ip.fw.one_pass=1
kern.polling.enable=1
net.inet.ip.fastforwarding=1
net.inet.ip.dummynet.io_fast=1
net.inet.ip.dummynet.hash_size=10240
net.inet.ip.dummynet.max_chain_len=32
kern.ipc.somaxconn=4096
io_fast=1 не виноват :smile:, проверял.
Делай, что дожен - и будь, что будет!

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение hizel » 2009-01-04 17:46:45

one_pass учитываете?
зачем натить везде подряд?
достаточно

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

${fwcmd} add nat 1 all from ${intnet} to any out via ${outint}
${fwcmd} add nat 1 all from any to ${extip} in via ${outint}
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение godlike » 2009-01-04 17:55:38

Да, действительно, оптимальнее натить только на ${extint} =), спасибо.

А насчет one_pass, я думал, он относится только к dummynet... Прто что что он учитывает также и NAT, не знал, сейчас попробую...
Делай, что дожен - и будь, что будет!

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение hizel » 2009-01-04 18:09:42

man ipfw :-D
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение godlike » 2009-01-04 18:31:34

О великий кудесник, спасибо тебе!
Ты просветил меня, и с небольшой помощью моих мозгов у меня все заработало!!! :drinks:
Делай, что дожен - и будь, что будет!

wel
сержант
Сообщения: 170
Зарегистрирован: 2007-02-27 11:59:41

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение wel » 2009-03-24 16:32:15

Помогите победить :(
Раньше Я работал со связкой pf(только НАТ), ipfw (dummynet для нарезания скорости пользователей). Но почему-то когда Я установил этот тазик, то pf nat по каким-то причинам забил натить нормально - нельзя было поиграть в любые онлайн игры. Я решил, что правило "работает не трожь" уже не работает :) И решил сократить зоопарк фаерволов.
Откомпилил ядро с ipfw kernel NAT, "настроил", но теперь если нарезаю пользователям скорость, то входящая скорость нормально режется, а вот с исходящей проблемы - на speedtest.net скорость 4-6Кбит/сек, Я захожу на upload.com.ua и начинаю закидывать туда какой-нить файл, через несколько секунд файл начинает загружаться, но скорость нарастает очень медленно и не доходит до требуемой допустим режу до 64Кбайт/сек, а скорость 40-46Кбайт/сек
net.inet.ip.dummynet.io_fast=1 /0 ничего не меняют :)

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

nas1# uname -a
FreeBSD nas1 7.1-RELEASE-p4 FreeBSD 7.1-RELEASE-p4 #12: Tue Mar 24 12:33:03 EET 2009     root@nas1:/usr/obj/usr/src/sys/NAS  amd64

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

ipfw nat 123 config ip 91.203.ХХХ.ХХХ

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

00002  25360   5266430 nat 123 ip from any to 91.203.ХХХ.ХХХ in via vlan20
00003  18461   1704816 deny ip from any to any dst-port 137-141
00011      0         0 pipe 11 ip from not 10.0.0.0/8 to table(11) in
00011      0         0 pipe 11 ip from table(11) to not 10.0.0.0/8 out
00012      0         0 pipe 12 ip from not 10.0.0.0/8 to table(12) in
00012      0         0 pipe 12 ip from table(12) to not 10.0.0.0/8 out
00013      0         0 pipe 13 ip from not 10.0.0.0/8 to table(13) in
00013      0         0 pipe 13 ip from table(13) to not 10.0.0.0/8 out
00014      0         0 pipe 14 ip from not 10.0.0.0/8 to table(14) in
00014      0         0 pipe 14 ip from table(14) to not 10.0.0.0/8 out
00015      0         0 pipe 15 ip from not 10.0.0.0/8 to table(15) in
00015      0         0 pipe 15 ip from table(15) to not 10.0.0.0/8 out
00016      0         0 pipe 16 ip from not 10.0.0.0/8 to table(16) in
00016      0         0 pipe 16 ip from table(16) to not 10.0.0.0/8 out
00017      0         0 pipe 17 ip from not 10.0.0.0/8 to table(17) in
00017      0         0 pipe 17 ip from table(17) to not 10.0.0.0/8 out
00018      0         0 pipe 18 ip from not 10.0.0.0/8 to table(18) in
00018      0         0 pipe 18 ip from table(18) to not 10.0.0.0/8 out
00019      0         0 pipe 19 ip from not 10.0.0.0/8 to table(19) in
00019      0         0 pipe 19 ip from table(19) to not 10.0.0.0/8 out
00020      0         0 pipe 20 ip from not 10.0.0.0/8 to table(20) in
00020      0         0 pipe 20 ip from table(20) to not 10.0.0.0/8 out
00021      0         0 pipe 21 ip from not 10.0.0.0/8 to table(21) in
00021      0         0 pipe 21 ip from table(21) to not 10.0.0.0/8 out
00022      0         0 pipe 22 ip from not 10.0.0.0/8 to table(22) in
00022      0         0 pipe 22 ip from table(22) to not 10.0.0.0/8 out
00023      0         0 pipe 23 ip from not 10.0.0.0/8 to table(23) in
00023      0         0 pipe 23 ip from table(23) to not 10.0.0.0/8 out
00024      0         0 pipe 24 ip from not 10.0.0.0/8 to table(24) in
00024      0         0 pipe 24 ip from table(24) to not 10.0.0.0/8 out
00025      0         0 pipe 25 ip from not 10.0.0.0/8 to table(25) in
00025      0         0 pipe 25 ip from table(25) to not 10.0.0.0/8 out
00026      0         0 pipe 26 ip from not 10.0.0.0/8 to table(26) in
00026      0         0 pipe 26 ip from table(26) to not 10.0.0.0/8 out
00027  23084   6132097 pipe 27 ip from not 10.0.0.0/8 to table(27) in
00027  37761  16607288 pipe 27 ip from table(27) to not 10.0.0.0/8 out
00127   1437    173665 nat 123 ip from table(1) to not 10.0.0.0/8
65535 594474 281978942 allow ip from any to any

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

nas1# pfctl -d
No ALTQ support in kernel
ALTQ related functions disabled
pfctl: pf not enabled

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

nas1# cat /etc/sysctl.conf | grep -v #
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536
net.link.ether.inet.max_age=1200
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
net.inet.icmp.icmplim=10000
net.inet.tcp.msl=7500
kern.ipc.somaxconn=32768
net.inet.ip.ttl=128
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
net.inet.ip.ttl=128
net.inet.icmp.bmcastecho=0
kern.maxfiles=128000
kern.maxfilesperproc=65000
kern.ipc.maxsockets=204800
kern.ipc.nmbclusters=65536
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65534
net.inet.ip.portrange.randomized=0
net.inet.ip.fastforwarding=1
net.inet6.ip6.forwarding=1
net.inet.ip.redirect=1

net.inet.ip.fw.one_pass=0
net.inet.ip.dummynet.io_fast=1
net.inet.ip.dummynet.hash_size=10240
net.inet.ip.dummynet.max_chain_len=32

qwe
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-29 10:40:42
Откуда: Симферополь
Контактная информация:

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение qwe » 2009-05-07 5:34:51

попробуйте оптимизировать правила ipfw так, чтоб каждое правило описывало и интерфейс, для которого это правило в Вашем уме формировалось (редко, когда одним правилом Вы хотите затронуть несколько интерфейсов. Например это правил с pipe касается)

О проблеме, которая у Вас была с pf: Вы смотрели pfctl -si , когда проблема возникала?

wel
сержант
Сообщения: 170
Зарегистрирован: 2007-02-27 11:59:41

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение wel » 2009-05-07 11:06:45

qwe писал(а):попробуйте оптимизировать правила ipfw так, чтоб каждое правило описывало и интерфейс, для которого это правило в Вашем уме формировалось (редко, когда одним правилом Вы хотите затронуть несколько интерфейсов. Например это правил с pipe касается)
Оказалось, что это глюки speedtest + то, что Я в сеть через vpn попадаю.....

qwe писал(а):О проблеме, которая у Вас была с pf: Вы смотрели pfctl -si , когда проблема возникала?
Я всегда хотел избавиться от лишних фаерволов :) тоесть оставить или pf или ipfw...

KES1
проходил мимо

Re: Странный kernel-based ipfw NAT

Непрочитанное сообщение KES1 » 2010-07-24 22:36:24

А как решили проблему опишите пожалуйста!