Перейти к содержимому
Калькуляторы

И снова о производительности FreeBSD FreeBSD NAT, профилирование, прерывания, вот это всё

Тоже готов скинуться, а ещё лучше мини-дистр сделать - чтоб работало почти из коробки. В идеале подобие LEAF, чтоб в рамдиске работал.

Изменено пользователем SyJet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

DVM-Avgoor, а с каким сапом на 6500 шасси PBR получалось сделать не софтово?

 

С любым. Не вставляйте в acl deny и будет вам счастье.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С любым. Не вставляйте в acl deny и будет вам счастье.

 

 

+1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для самообразования - есть платформа где работает с deny в route-map (или их аналоге) - возможет?

не только cisco конечно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для самообразования - есть платформа где работает с deny в route-map (или их аналоге) - возможет?

 

 

На софтороутерах работает. Вопрос в другом? Зачем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Например PBR на балансировщик всего порта 80, кроме некоторых сетей

Софтроутеры, к моему сожалению, все задачи стабильно не переварят. Все таки роутинг для почти полностью 48-и забитых портов лучше делать на свитче

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Например PBR на балансировщик всего порта 80, кроме некоторых сетей

Софтроутеры, к моему сожалению, все задачи стабильно не переварят. Все таки роутинг для почти полностью 48-и забитых портов лучше делать на свитче

 

ну это же элементарно делается и без deny в ACL

 

на пример хуавея (мне у них больше всего нравятся policy ибо абсолютно прозрачны)

 

traff class C1
if-match acl ACL1
traff class C2
if-match acl ACL2
traff class C3
if-match acl ACL3

traff beh B1
 redirect ip-hexthop NH1
 statistics enable
traff beh B2
 statistics enable

traff pol P1
 class C1 beh B1
 class C2 beh B2
 class C3 beh B1

 

потом применяете P1 куда надо

 

в кратце, идея очень простая - разбить ACL на 3 части, сделать все пермит, а потом, то что логически должно было быть deny просто пропустить прозрачно (B2), а для остальных сетей - поменять NH

 

если у вас ACL был вида

deny ...
permit...
permit...

 

то будет всего 2 класса, а не 3 как в моем примере

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну т.е. смысл в том, чтобы не указывать set ip next-hop, я правильно понимаю?

Тогда просто правило обрабатывается (соответствует ACL) но никаких действий не применяется. Попробую на циске.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну т.е. смысл в том, чтобы не указывать set ip next-hop, я правильно понимаю?

Тогда просто правило обрабатывается (соответствует ACL) но никаких действий не применяется. Попробую на циске.

 

Может корректней использовать set ip default next-hop ? При set ip default next-hop, на next-hop летит все то, чего нет в глобальной таблице маршрутизации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Может корректней использовать set ip default next-hop ? При set ip default next-hop, на next-hop летит все то, чего нет в глобальной таблице маршрутизации.

 

В чем тогда смысл организации PBR? В большинстве случаем это именно разворот в другую сторону трафика, у которого итак есть next-hop.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В чем тогда смысл организации PBR?

 

Для заворота юзеров в шейп\нат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну т.е. смысл в том, чтобы не указывать set ip next-hop, я правильно понимаю?

Тогда просто правило обрабатывается (соответствует ACL) но никаких действий не применяется. Попробую на циске.

 

Да, смысл именно в этом. Все ACL-и - permit. Просто те правила, которые были deny превращаются в permit, а в самом route-map с ними ничего не делается(statistics enable - для удобства tshoot'а), т.е. этот трафик передаётся по таблице маршрутизации

 

Если какой-то трафик надо удалить, то удалять его средствами самого route-map (действием)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

День добрый коллеги. Мы тут собираемся переводить наши PPPoE c Linux на FreeBSD + IPoE. И вот хотелось бы получить небольшой ликбез.

 

Из задач всё стандартно: по ~700 пользователей на машину, vlan, nat, forwarding, shaping, (ng_netflow + ng_tee).

 

grep -i cpu /var/run/dmesg.boot

CPU: Intel(R) Xeon(R) CPU X5560  @ 2.80GHz (2800.16-MHz K8-class CPU)
FreeBSD/SMP: Multiprocessor System Detected: 16 CPUs
cpu0 (BSP): APIC ID:  0
cpu1 (AP): APIC ID:  1
cpu2 (AP): APIC ID:  2
cpu3 (AP): APIC ID:  3
cpu4 (AP): APIC ID:  4
cpu5 (AP): APIC ID:  5
cpu6 (AP): APIC ID:  6
cpu7 (AP): APIC ID:  7
cpu8 (AP): APIC ID: 16
cpu9 (AP): APIC ID: 17
cpu10 (AP): APIC ID: 18
cpu11 (AP): APIC ID: 19
cpu12 (AP): APIC ID: 20
cpu13 (AP): APIC ID: 21
cpu14 (AP): APIC ID: 22
cpu15 (AP): APIC ID: 23
 

 

pciconf -lv | grep -i device | grep -i network

device     = '82567LF-2 Gigabit Network Connection'
device     = '82574L Gigabit Network Connection'
 

 

pciconf -lv | grep -i device | grep -i network

device     = '82576 Gigabit Network Connection'
device     = '82576 Gigabit Network Connection'
 

 

grep -w CPU: /var/run/dmesg.boot

CPU: Intel(R) Xeon(R) CPU E5606  @ 2.13GHz (2133.45-MHz K8-class CPU)
 

 

lspci

01:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
 

 

cat /proc/cpuinfo

Intel(R) Xeon(R) CPU L5520  @ 2.27GHz
 

 

grep processor /proc/cpuinfo

 

processor       : 0
processor       : 1
processor       : 2
processor       : 3
processor       : 4
processor       : 5
processor       : 6
processor       : 7
 

 

cat /proc/cpuinfo

Intel(R) Xeon(R) CPU E5506  @ 2.13GHz
 

 

grep processor /proc/cpuinfo

processor       : 0
processor       : 1
processor       : 2
processor       : 3
 

 

cat /proc/cpuinfo

Intel(R) Xeon(R) CPU E5504  @ 2.00GHz
 

 

grep processor /proc/cpuinfo

processor       : 0
processor       : 1
processor       : 2
processor       : 3
 

 

1) В какой сейчас ветке работа с данных железом будет более производительна и стабильна 9.3 или 10.1 ?

 

2) Здесь было прочитано множество форумов по производительности FreeBSD в которых все рекомендации в итоге сводились к уходу от pf, так как сейчас обстоят дела с pf (однопоточность) или лучше сразу натить через ipfw ?

 

3) На 9.3 очереди при загрузки прибиваются к ядру, нужно ли сейчас шаманить с прибиванием ядер и очередей ?

 

grep queue /var/run/dmesg.boot

igb0: Bound queue 0 to cpu 0
igb0: Bound queue 1 to cpu 1
igb0: Bound queue 2 to cpu 2
igb1: Bound queue 0 to cpu 3
igb1: Bound queue 1 to cpu 0
igb1: Bound queue 2 to cpu 1
 

 

Будет ли достаточно указать hw.igb.num_queues=3 net.isr.maxthreads=4 or 8 net.isr.bindthreads=1 ?

 

4) Есть ли смысл делать агрегацию lagg между сетевухами и вышестоящим коммутатором? (Juniper) Фигурирует тема с ошибками на интерфейсах - http://forum.nag.ru/forum/index.php?showtopic=84027&st=40 Забыл сказать, есть еще гигабитные сетевушки на Broadcom чипсете BCM5720 вот думаем делать ли агрегацию lagg0 lagg1 с интелом и bge. Когда поднимали lagg на 9.0 и 9.1 были проблемы с драйверами bge...

 

5) Ну и конечно же актуальный вопрос шейпинга. Опять же dummynet к 0 ядру или netgraph ng_car ?

Изменено пользователем hsvt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5) dummynet

2) ipfw + много инстансов. ipfw nat параллелится только через кол-во инстансов, т.е. кол-во экземпляров ната прямопропорционально зависит от того, как оно по системе нагрузку разбрасывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5) dummynet

2) ipfw + много инстансов. ipfw nat параллелится только через кол-во инстансов, т.е. кол-во экземпляров ната прямопропорционально зависит от того, как оно по системе нагрузку разбрасывать.

 

dymmynet не загнётся от такого количества клиентов ? Клиенты с одинаковым тарифном планом будем объединять в группы по таблицам. Натиться как серые адреса в общий пул так и серые в отдельные реальные ип. Их все надо будет шейпить.

 

Примерно по такой схеме?

ipfw pipe 2 config bw 1024Kbit/s mask dst-ip 0xffffffff red 0.1/10/60/0.95 burst 10M queue 800KB
ipfw pipe 1 config bw 1024Kbit/s mask src-ip 0xffffffff red 0.1/10/60/0.95 burst 10M queue 800KB

ipfw table 1 add 192.168.100.100 1
ipfw table 2 add 192.168.100.100 2

ipfw add 1 pipe tablearg ip from "table(1)" to not "table(123)" in recv igb1.9
ipfw add 2 pipe tablearg ip from not "table(123)" to "table(2)" out xmit igb1.9

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

через tablearg всё будет ок.

Если в ipfw не будет сильно дохуя много правил - то тоже всё ок будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

через tablearg всё будет ок.

Если в ipfw не будет сильно дохуя много правил - то тоже всё ок будет.

 

А много это сколько ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Примерно пару десятков тыс, +- тыс.

Изменено пользователем Megas

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

через tablearg всё будет ок.

Если в ipfw не будет сильно дохуя много правил - то тоже всё ок будет.

 

А много это сколько ?

Ну фаервол же софтовый, кол-во правил влияет не линейно на производительность.

Разнородные констркции с via\xmit\recv + in\out очень сильно снижают общую нагрузку.

 

Правил много когда их уже 1000+, потому что есть замечательные конструкции с tablearg, которые очень сильно упрощают и внешний вид (читабельность) и производительность.

Обычно для роутера с шейпом и натом на фре достаточно десятка, может 20 правил. Если конечно на доступе уже всё срезано лишнее, в том числе нежелательный SMTP\NTP\etc.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, смысл именно в этом. Все ACL-и - permit. Просто те правила, которые были deny превращаются в permit, а в самом route-map с ними ничего не делается(statistics enable - для удобства tshoot'а), т.е. этот трафик передаётся по таблице маршрутизации

 

Если какой-то трафик надо удалить, то удалять его средствами самого route-map (действием)

Вобщем фокус не прошел, CPU уходит в полку, если не установлен set (равно так же если в route-map deny или в ACL есть deny)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, смысл именно в этом. Все ACL-и - permit. Просто те правила, которые были deny превращаются в permit, а в самом route-map с ними ничего не делается(statistics enable - для удобства tshoot'а), т.е. этот трафик передаётся по таблице маршрутизации

 

Если какой-то трафик надо удалить, то удалять его средствами самого route-map (действием)

Вобщем фокус не прошел, CPU уходит в полку, если не установлен set (равно так же если в route-map deny или в ACL есть deny)

 

У вас используется DSCP? Можно сделать что-нибудь левое типа set ip dscp ...

 

На хуавее прокатывает пермит без действия

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Судя по документации 4500 платформа вообще аппаратно в роутмапе ничего кроме set ip next-hop не умеет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я очень сильно сомневаюсь. Если set ip dscp делалось бы в софте, то были бы сотни топиков на разных форумах на эту тему, но их нет

nuclearcat

можно линк где это написано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

route-map`у на cisco всегда нужно какое-то действия иначе по опыту поведение железки может стать непредсказуемым. Лучше как и предлагалось выше прописать какое-нибудь ничего не меняющее действие. Мы прописываем dscp в 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно линк где это написано?

 

http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst4500/12-2/25ew/configuration/guide/conf/pbroute.html

 

The Catalyst 4500 switching engine supports matching a "set next-hop" route-map action with a packet on a permit ACL. All other route-map actions, as well as matches of deny ACLs, are supported by a flow switching model. In this model, the first packet on a flow that matches a route-map will be delivered to the software for forwarding. Software determines the correct destination for the packet and installs an entry into the TCAM so that future packets on that flow are switched in hardware. The Catalyst 4500 switching engine supports a maximum of 4096 flows.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.