Jump to content

FreeBSD: PF NAT против IPFW NAT. Какой быстрее?


Recommended Posts

А у меня вот что с ipfw происходит:

 

 

last pid: 75717; load averages: 4.07, 3.83, 3.86 up 13+07:28:16 20:42:47

394 processes: 8 running, 363 sleeping, 20 waiting, 3 lock

CPU 0: 1.2% user, 0.0% nice, 6.7% system, 42.1% interrupt, 50.0% idle

CPU 1: 0.0% user, 0.0% nice, 14.6% system, 43.7% interrupt, 41.7% idle

CPU 2: 0.0% user, 0.0% nice, 9.1% system, 49.6% interrupt, 41.3% idle

CPU 3: 0.0% user, 0.0% nice, 6.7% system, 75.6% interrupt, 17.7% idle

Mem: 62M Active, 640M Inact, 754M Wired, 72K Cache, 417M Buf, 2475M Free

Swap: 4096M Total, 4096M Free

А что за процессор?

Link to post
Share on other sites
  • Replies 50
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

На одноядровом процессоре да.

Posted Images

Читал его заметки, кое-что себе взял. Но что можно крутить в моём случае

 

hw.bce.rx_ticks: 18

hw.bce.rx_ticks_int: 18

hw.bce.rx_quick_cons_trip: 6

hw.bce.rx_quick_cons_trip_int: 6

hw.bce.tx_ticks: 80

hw.bce.tx_ticks_int: 80

hw.bce.tx_quick_cons_trip: 20

hw.bce.tx_quick_cons_trip_int: 20

hw.bce.loose_rx_mtu: 0

hw.bce.hdr_split: 1

hw.bce.tx_pages: 2

hw.bce.rx_pages: 2

hw.bce.msi_enable: 1

hw.bce.tso_enable: 1

hw.bce.verbose: 1

 

По прерыванием выставлял стандартно:

 

net.isr.numthreads: 4

net.isr.maxprot: 16

net.isr.defaultqlimit: 4096

net.isr.maxqlimit: 10240

net.isr.bindthreads: 0

net.isr.maxthreads: 4

net.isr.direct: 0

net.isr.direct_force: 0

net.isr.dispatch: deferred

 

Процессор:

 

hw.machine: amd64

hw.model: Intel® Xeon® CPU 5140 @ 2.33GHz

hw.ncpu: 4

hw.machine_arch: amd64

Link to post
Share on other sites
load averages: 4.07, 3.83, 3.86

 

Такие показатели нормальные считаются?

 

Нет конечно, о чём и пишу. Сервер практически работает в холостую, а нагрузка большая. Как только убираю нат - всё хорошо. Из-за ipfw nat получается большое кол-во прерываний и net.isr не успевает их разгрести и система уходит в перезагрузку.

 

В ipfw правила только для ната:

 

nat 11 ip from 172.16.200.0/24 to any out

nat 11 ip from any to 1.1.1.1 in

ipfw nat 11 config ip 1.1.1.1 same_ports reset

Link to post
Share on other sites

Кстати да, "-rxcsum -txcsum -tso" практически объязательны на данный момент. libalias их очень не любит.

Вот за проверку контрольных сумм как-то подзабыл, эти опции по умолчанию включены

options=c01bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE> и hw.bce.tso_enable: 1

Ночью буду пробывать.

 

Но подниму еще вопрос - ddos nat со стороны пользователя - возможен? 40-50 интерфейсов и мизер трафика а NAS уходил в перезагрузку. Сейчас около недели всё тихо.

Link to post
Share on other sites
Но подниму еще вопрос - ddos nat со стороны пользователя - возможен? 40-50 интерфейсов и мизер трафика а NAS уходил в перезагрузку. Сейчас около недели всё тихо.

Не должно быть.

По сути NAT далеко не настолько трудоемкая задача. Максимум, что там может кончиться это доступная ядру память. Смотрим в vmstat и если что крутим KVA_PAGES, vm.kmem_size и соответственно буфера. К сожелению статистика ipfw nat show очень скудная, но если вы не видите там шестизначных цифр - все должно быть вполне нормально, даже по дефолту.

 

При невырубленных чексумах и ТСО у нас в свое время просто захлопывались физические сетевухи и не подымались до down/up. Уход в ребут уже недобрый симптом намекающий на извечные проблемы с тунельными соединениями и сколько помниться крутившийся какраз вокруг isr и flowtables и mpd. Точнее ничего не скажу - с pppoe/pptp не работаем очень давно.

Link to post
Share on other sites

Думав переходити на ipfw kernel nat з pf, але:

1. round-robin nat не настільки просто реалізувати як в pf

2. не дружить з апаратним tos

Link to post
Share on other sites

Господа, а кто знает вариант нормального не дорогого аппаратного NATа?

Жевать нужно 500Мбит на 1000 клиентов с пакетами до 30Мбит.

 

(Намучились с Микротиками и софтовыми решениями) :(

Link to post
Share on other sites

Требования не совместимы - аппаратный, нормальный, недорогой.

Чем тазик с линуксом не устраивает для этих целей? Соберите нормальный сервер - любой 4ех ядерник, серверную мать, ECC память и двухголовую сетевку на 82576 - один раз настроите и забудете о нем пока в гигабит не упретесь, чем там мучаться?

Link to post
Share on other sites

Intel Quad-Core Xeon E3-1220 3.1GHz/8MB/5GT (BX80623E31220) s1155 BOX + Asus P8B-C/4L (s1155, Intel C202, PCI-E x16) + ECC DDR3

 

дают такие показания по нагрузке и, судя даже по графику процессора, по устойчивости, при 500 абонентов на 200Мбит во фре 8 64bit

 

post-21481-0-83611000-1353485703_thumb.jpg

 

post-21481-0-32519900-1353485720_thumb.jpg

 

А несовместимые слова - нужно совместить. Иначе не было-бы смысла в вопросе ))))))))

Link to post
Share on other sites

Значит нужно что-то менять в софте, у вас судя по загрузке NAT где-то в user space крутится. Ядерный при таком трафике должен давать от силы 5% загрузку, вот я и предлагаю linux+iptables для этого.

А по аппаратным - вам нужна железка уровня cisco ASA 5550 или что-то из ACE, но недорогими их назвать язык не поворачивается..

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...