Подскажите,есть
FreeBSD NAT.local 7.1-RELEASE FreeBSD 7.1-RELEASE #4: Mon Apr 13 13:13:25 MSD 2009 lin@NAT.local:/usr/obj/usr/src/sys/NAT i386
на
CPU: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz (2002.99-MHz 686-class CPU)довольно быстро увеличивается kern.polling.lost_polls,
и при загрузке раза в потора - 1-2% потерь.NAT# date && sysctl -a | grep kern.polling.lost_polls
Mon Apr 13 17:16:38 MSD 2009
kern.polling.lost_polls: 59263
NAT# date && sysctl -a | grep kern.polling.lost_polls
Mon Apr 13 17:16:50 MSD 2009
kern.polling.lost_polls: 59326на машинке работает только pf как нат,
NAT# cat /etc/pf.conf | wc -l
121
NAT# pfctl -ss | wc -l
53976
NAT# netstat -I em1 -w 1
input (em1) output
packets errs bytes packets errs bytes colls
21339 0 12959348 21011 0 15596015 0
22055 0 13660871 21458 0 15864442 0
21531 0 13527641 20876 0 15296246 0
(ошибки если и бывают, то очень редко)last pid: 1574; load averages: 0.00, 0.00, 0.00 up 0+03:39:24 17:18:58
72 processes: 3 running, 53 sleeping, 16 waiting
CPU: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
Mem: 9664K Active, 7076K Inact, 54M Wired, 88K Cache, 13M Buf, 1923M Free
Swap: 8192M Total, 8192M FreePID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
11 root 1 171 ki31 0K 8K CPU1 1 217:31 100.00% idle: cpu1
12 root 1 171 ki31 0K 8K RUN 0 173:52 100.00% idle: cpu0NAT# vmstat -i
interrupt total rate
irq1: atkbd0 784 0
irq14: ata0 58 0
irq20: atapci1 3382 0
cpu0: timer 19639914 1493
cpu1: timer 19639758 1493
Total 39283896 2988в ядре
ident NAT
device pf
device pflog
device pfsync
options DEVICE_POLLING
options HZ=1500
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
#makeoptions DEBUG=-gкарточки
em0: flags=9843<UP,BROADCAST,RUNNING,SIMPLEX,LINK0,MULTICAST> metric 0 mtu 1500
em1: flags=9843<UP,BROADCAST,RUNNING,SIMPLEX,LINK0,MULTICAST> metric 0 mtu 1500em0@pci0:5:0:0: class=0x020000 card=0x34848086 chip=0x10968086 rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'PRO/1000 EB Network Connection'
class = network
subclass = ethernetNAT# cat /etc/sysctl.conf | grep =
#security.bsd.see_other_uids=0
kern.polling.enable=1
net.isr.direct=0
kern.polling.each_burst=150
kern.polling.burst_max=1000
#net.inet.ip.intr_queue_maxlen=100
net.inet.ip.intr_queue_maxlen=256
#net.inet.ip.intr_queue_maxlen=5000
kern.ipc.maxsockbuf=8388608
#net.inet.tcp.sendspace=3217968
#net.inet.tcp.recvspace=3217968
net.inet.tcp.rfc1323=1
net.inet.tcp.sendspace=131072
net.inet.tcp.recvspace=131072
net.inet.icmp.icmplim=2000
net.inet.ip.fastforwarding=1
kern.ipc.somaxconn=10240
net.inet.udp.blackhole=1
net.inet.ip.redirect=1
kern.ipc.nmbclusters=32000подскажите, как можно улучшить работу ната?
>[оверквотинг удален]
>net.inet.tcp.sendspace=131072
>net.inet.tcp.recvspace=131072
>net.inet.icmp.icmplim=2000
>net.inet.ip.fastforwarding=1
>kern.ipc.somaxconn=10240
>net.inet.udp.blackhole=1
>net.inet.ip.redirect=1
>kern.ipc.nmbclusters=32000
>
>подскажите, как можно улучшить работу ната?У меня ядерный нат, сетевые такие же, а вот поллинг в sysctl.conf закоменчен, включен в rc.conf
# cat /etc/sysctl.conf | grep =
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
kern.ipc.maxsockbuf=524288
kern.ipc.shmmax=67108864
kern.ipc.somaxconn=1024
net.inet.ip.ttl=255
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.check_interface=1
#net.inet.tcp.recvspace=65535
#net.inet.tcp.sendspace=65535
net.inet.tcp.drop_synfin=1
net.inet.tcp.syncookies=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
net.inet.icmp.icmplim=100
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet.icmp.maskrepl=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
kern.fallback_elf_brand=3
#kern.polling.enable=1
#kern.polling.user_frac=50options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_NAT
options LIBALIAS
options IPDIVERT
options DUMMYNET
options DEVICE_POLLING
options HZ=1000# date && sysctl -a | grep kern.polling.lost_polls
понедельник, 13 апреля 2009 г. 22:23:46
kern.polling.lost_polls: 37227# date && sysctl -a | grep kern.polling.lost_polls
понедельник, 13 апреля 2009 г. 22:35:10
kern.polling.lost_polls: 37240em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM>em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM># cat /etc/rc.conf | grep em
ifconfig_em0="inet 192.168.77.1 netmask 255.255.255.0 polling"
ifconfig_em1="inet 192.168.48.1 netmask 255.255.255.252 polling"
>[оверквотинг удален]
>
>em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> options=db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM>
>
>em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> options=db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM>
>
># cat /etc/rc.conf | grep em
>ifconfig_em0="inet 192.168.77.1 netmask 255.255.255.0 polling"
>ifconfig_em1="inet 192.168.48.1 netmask 255.255.255.252 polling"2модератор: уберите из форума оффтопик, сообщения, а так же сообщения на древне-украинском.
>>[оверквотинг удален]
>2модератор: уберите из форума оффтопик, сообщения, а так же сообщения на древне-украинском.
>а что тебе не нравиться?
>>>[оверквотинг удален]
>>2модератор: уберите из форума оффтопик, сообщения, а так же сообщения на древне-украинском.
>>
>
>а что тебе не нравиться?мне не нравится почему в конференции по сетевому оборудованию кто-то создает темы соверешенно не относящиеся как к сетевым технологиям так и к ИТ в частности...
>>>>[оверквотинг удален]
>мне не нравится почему в конференции по сетевому оборудованию кто-то создает темы
>соверешенно не относящиеся как к сетевым технологиям так и к ИТ
>в частности...умный? Найди тему лучше для такого вопроса, а потом пиши...
не уж то заняться больше нечем?
>>>>>[оверквотинг удален]
>>мне не нравится почему в конференции по сетевому оборудованию кто-то создает темы
>>соверешенно не относящиеся как к сетевым технологиям так и к ИТ
>>в частности...
>
>умный? Найди тему лучше для такого вопроса, а потом пиши...
>не уж то заняться больше нечем?я не задавал вопросов, я лишь констатировал факт.
>>>>>>[оверквотинг удален]
>я не задавал вопросов, я лишь констатировал факт.твой факт не верен в корне, и попрошу тебя не мешать обсуждениям,
лучше бы подсказал что по теме....
>[оверквотинг удален]
>net.inet.tcp.sendspace=131072
>net.inet.tcp.recvspace=131072
>net.inet.icmp.icmplim=2000
>net.inet.ip.fastforwarding=1
>kern.ipc.somaxconn=10240
>net.inet.udp.blackhole=1
>net.inet.ip.redirect=1
>kern.ipc.nmbclusters=32000
>
>подскажите, как можно улучшить работу ната?Может
options HZ=1500
Очень жирно?
У меня на 1000 работает.
Помогите пожалуйста разобраться, заранее извиняюсь, что чуть не в тему.Не получается при включенном pf выходить в инет сервера(шлюз,на котором pf), еще на этом компе запущен апач, так вот опять же при включенном фаерволе не удается к нему подключиться (как будто не запущен). Дело в правилах, подскажите пожалуйста как мне их подправить. Необходимо чтобы апач был доступен на обоих интерфейсах - внешнем и внутреннем. Стоит добавить, что в данный момент пускает по фтп (21 порт) и ссш (22 порт), т.е. видимо эти правила корректно заданы.
Привожу свой pf.conf#------------------------------
# Макросы
#------------------------------int_if="vr0"
ext_if="xl0"
int_ip="192.168.130.139"
ext_ip="10.0.39.36"
lannet = "192.168.130.0/24"
private_nets= "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4
bsd = "192.168.130.139/24"
# Порты
client_ports = "{ 21, 22, 25, 110, 123, 80, 443, 3128, 3129, 3389,8080, >=49151 }"
admin_ports = "{ 5190, 33330:33340 }"
pbx_udp = "{ 2727, 4520, 4569, 5036, 5060, 10000:20000 }"
pbx_tcp = "{ 5060 }"
#------------------------------
# Нормализация
#------------------------------# Определяем политику при блокировке пакетов
set block-policy return
# Поведение пакетного фильтра при использовании таблицы состояний
set state-policy floating
# Логируемый интерфейс
set loginterface $ext_if
# Максимальное количество записей в пуле отвечающем за нормализацию трафика (scrub)
# Максимальное количество вхождений в пул отвечающий за состояние таблицы состояний соединений (keep state)
set limit { frags 100000, states 100000 }
# Устанавливаем тип оптимизации
set optimization normal
# Игнорируем фильтрацию на кольцевом интерфейсе
set skip on lo0
# Нормализация всего входящего трафика на всех интерфейсах
scrub in all#------------------------------
# NAT & RDR
#------------------------------# NAT для локалки
nat on $ext_if inet from $lannet to any -> $ext_ip
# Отправляем локальных интернетчиков на squid.
rdr on $int_if proto tcp from $lannet to any port www -> 127.0.0.1 port 3129
# Пробрасываем порты на web сервер снаружи
rdr on $ext_if proto tcp from any to $ext_ip port www -> 127.0.0.1 port 80
# Пробрасываем порты на web сервер изнутри
rdr on $int_if proto tcp from $lannet to $int_ip port www -> 127.0.0.1 port 80
# Пробрасываем SSH
rdr on $ext_if proto tcp from any to $ext_ip port 33330 -> 127.0.0.1 port 22
# Пробрасываем FTP
rdr on $ext_if proto tcp from any to $ext_ip port 21 -> 127.0.0.1 port 21#------------------------------
# Правила фильтрации
#------------------------------# Защита от спуфинга
antispoof quick for { lo0, $int_if, $ext_if }
# Блокируем всё
block log all
# Блокируем тех, кто лезет на внешний интерфейс с частными адресами
block drop in quick on $ext_if from $private_nets to any
# Разрешаем icmp
pass inet proto icmp icmp-type echoreq
# Разрешаем DNS для локалки
pass in on $int_if proto udp from $lannet to $bsd port domain
# Тестовый полный выход для отладки
pass in on $int_if from $lannet to any
# Выпускаем клиентске сервисы
pass in on $int_if proto tcp from $lannet to any port $client_ports
# Разрешаем нашему шлюзу полный выход с обоих интерфейсов
pass out on $ext_if proto tcp from any to any
pass out on $ext_if proto udp from any to any keep state
pass out on $int_if proto tcp from any to any
pass out on $int_if proto udp from any to any keep state#------------------------------
# Icoming #
#------------------------------# Разрешаем входящий ssh
pass in log on $ext_if proto tcp from any to $ext_ip port 2200 flags S/SA synproxy state
# Разрешаем входящий www
pass in on $ext_if proto tcp from any to $ext_ip port 80 flags S/SA synproxy state
pass in on $int_if proto tcp from any to $int_ip port 80 flags S/SA synproxy state
# Разрешаем входящий https
pass in on $ext_if proto tcp from any to $ext_ip port https flags S/SA synproxy state
# Разрешаем входящий ftp
pass in on $ext_if proto tcp from any to $ext_ip port 21 flags S/SA synproxy state
Вообщем перепахал конфиг заново. Теперь на веб сервер пускает, но почему-то перестал пускать на фтп.На вусякий случай скажу, что фтп и веб сервер - это один комп, на котором и стоит pf, имеет 2 сетевые карты xl0 - в мир, vr0 - в свою сетку. Помогите разобраться почему не пускает по фтп из внутренней сетки? Из внешней не пробовал пока.
Привожу обновленный конфиг pf.conf#------------------------------
# Макросы
#------------------------------int_if="vr0"
ext_if="xl0"
int_ip="192.168.130.139"
ext_ip="10.0.39.36"
lannet = "192.168.130.0/24"
private_nets= "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4# Порты
client_ports = "{ 21, 22, 25, 110, 123, 80, 443, 3128, 3129, 3389,8080, >=49151 }"
admin_ports = "{ 5190, 33330:33340 }"#------------------------------
# Нормализация
#------------------------------# Определяем политику при блокировке пакетов
set block-policy drop
# Поведение пакетного фильтра при использовании таблицы состояний
set state-policy floating
# Логируемый интерфейс
set loginterface $ext_if
# Максимальное количество записей в пуле отвечающем за нормализацию трафика (scrub)
# Максимальное количество вхождений в пул отвечающий за состояние таблицы состояний соединений (keep state)
set limit { frags 100000, states 100000 }
# Устанавливаем тип оптимизации
set optimization normal
# Игнорируем фильтрацию на кольцевом интерфейсе
set skip on lo0
# Нормализация всего входящего трафика на всех интерфейсах
scrub in all
#------------------------------
# NAT & RDR
#------------------------------# NAT для локалки
nat on $ext_if inet from $lannet to any -> $ext_ip
rdr on $ext_if proto tcp from any to $ext_ip port 2200 -> $int_ip port 22
rdr on $ext_if proto tcp from any to $ext_ip port 21 -> $int_ip port 21
rdr on $ext_if proto tcp from any to $ext_ip port 80 -> $int_ip port 80
rdr proto {tcp, udp} from any to any port 21 -> $int_ip port 21
#------------------------------
# Правила фильтрации
#------------------------------# Блокируем всё
block all
# Блокируем тех, кто лезет на внешний интерфейс с частными адресами
block drop in quick on $ext_if from $private_nets to any
# Разрешаем icmp
pass inet proto icmp icmp-type echoreq
# Разрешаем DNS для локалки
pass in on $int_if proto udp from $lannet to $int_ip port domain
# Выпускаем админские сервисы
pass in on $int_if proto tcp from $int_ip to any port $admin_ports
pass out on $int_if proto tcp from $int_ip to any port $admin_ports
# Выпускаем клиентске сервисы
pass in on $int_if proto tcp from $lannet to any port $client_ports
pass out on $int_if proto tcp from $lannet to any port $client_ports
# Разрешаем нашему шлюзу полный выход с обоих интерфейсов
pass out on $ext_if proto tcp from any to any
pass out on $ext_if proto udp from any to any keep state
pass out on $int_if proto tcp from any to any
pass out on $int_if proto udp from any to any keep state
#------------------------------
# Icoming #
#------------------------------
# Разрешаем входящий ssh
pass in log on $ext_if proto tcp from any to $ext_ip port 2200 flags S/SA synproxy state
pass in log on $int_if proto tcp from any to $int_ip port 22 flags S/SA synproxy state
# Разрешаем входящий https
pass in on $ext_if proto tcp from any to $ext_ip port https flags S/SA synproxy state
# Разрешаем входящий www
pass in on $ext_if proto tcp from any to $ext_ip port www flags S/SA synproxy state
pass in on $int_if proto tcp from any to $int_ip port www flags S/SA synproxy state
# Разрешаем входящий ftp
anchor "ftp-proxy/*"#pass in on $ext_if proto tcp from any to $ext_ip port 21
#pass out on $ext_if proto tcp from any to $ext_ip port 21
#pass in on $int_if proto tcp from any to $int_ip port 21
#pass out on $int_if proto tcp from any to $int_ip port 21