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

Маршрутизатор на Centos

Имеется системник с i5-4670 (4 x 3.4ггц) и 2 карточками intel i350-t2. Стоит Centos 7, прерывания раскиданы по ядрам (вручную, irqbalance каждые 5-10 сек менял ядра). Сервер маршрутизирует трафик между миром и локалкой. На нём крутится bgp (без full view), dhcpd и tc шейпер, iptables+ipset.

Пускаем через этот маршрутизатор hping3 с 2х серверов (vlan10) на трейтий сервер (vlan20). Оба влана, например, на eth2. При достижении 300к пакетов на интерфейсе eth2, si показывает 99%, ksoftirqd 100%, 80% потерь пакетов. При 200-250к пакетов - si 12%, ksoftrqd даже не выскакивает. Но есть такой момент, на всех 4х интерфейсах может быть по 200к пакетов и проблемы нет. Нагрузка появляется при 250к+ пакетов.

Вот и возник вопрос. Можно ли это профиксить или только замена железа поможет?

hping3 -d 1 --rand-source ip_address --faster

 28:    2701690    1744748    2344683    2271745  IR-PCI-MSI-edge      eth0
29:          1          0          0          0  IR-PCI-MSI-edge      eth1
30:  171345200  169389507  109184674  218322360  IR-PCI-MSI-edge      eth1-rx-0
31:  150053053   83104599  151165912  223802517  IR-PCI-MSI-edge      eth1-rx-1
32:  186495892  111549142  112436304  234875923  IR-PCI-MSI-edge      eth1-rx-2
33:  158976010  180870431  170022758  111272490  IR-PCI-MSI-edge      eth1-rx-3
34:  180929454  105231181  216153718  115707364  IR-PCI-MSI-edge      eth1-tx-0
35:  189888745  138612562  263748962  124417296  IR-PCI-MSI-edge      eth1-tx-1
36:  205698039  128601088  189239160  221975777  IR-PCI-MSI-edge      eth1-tx-2
37:  185522875  118200837  144223478  194044475  IR-PCI-MSI-edge      eth1-tx-3
40:          1          0          0          0  IR-PCI-MSI-edge      eth2
41:   69800742   58567281   53006256   91392123  IR-PCI-MSI-edge      eth2-rx-0
42:   78854523   65511463   79758929   71591243  IR-PCI-MSI-edge      eth2-rx-1
43:   76845708   86854208   77057444   83671461  IR-PCI-MSI-edge      eth2-rx-2
44:   57003327   83792902   75626361   69263975  IR-PCI-MSI-edge      eth2-rx-3
45:  141779983   71491281  135351424  148587804  IR-PCI-MSI-edge      eth2-tx-0
46:  108230666   67471994  144197484  166486942  IR-PCI-MSI-edge      eth2-tx-1
47:  135353877  139683685   70465709  155690332  IR-PCI-MSI-edge      eth2-tx-2
48:  167780888   79413573  150996982   83099320  IR-PCI-MSI-edge      eth2-tx-3
49:          0          0          0          1  IR-PCI-MSI-edge      eth3
50:  151279126  109191347  144846080  161135569  IR-PCI-MSI-edge      eth3-rx-0
51:  194411603  152782138  185925840  151429478  IR-PCI-MSI-edge      eth3-rx-1
52:  161593990  149918954  144065743  152037226  IR-PCI-MSI-edge      eth3-rx-2
53:  179662779  106820200  164945479  165038101  IR-PCI-MSI-edge      eth3-rx-3
54:  198790323  121198826  209318043  195822376  IR-PCI-MSI-edge      eth3-tx-0
55:  211768250  157071748  221561610  239461157  IR-PCI-MSI-edge      eth3-tx-1
56:  199816800  181533517  201208109  244981838  IR-PCI-MSI-edge      eth3-tx-2
57:  202353183  121875150  185856374  195305669  IR-PCI-MSI-edge      eth3-tx-3
58:          1          0          0          0  IR-PCI-MSI-edge      eth4
59:  124266136  104684657  206826829  150663409  IR-PCI-MSI-edge      eth4-rx-0
60:  136138256  196174592  159019971  126292666  IR-PCI-MSI-edge      eth4-rx-1
61:  180045695  126389834  142231642  121237912  IR-PCI-MSI-edge      eth4-rx-2
62:  152778012  121436005  120753192  193629546  IR-PCI-MSI-edge      eth4-rx-3
63:  173258802  125170439  181964084  140336434  IR-PCI-MSI-edge      eth4-tx-0
64:  152946386  129432795  157884255  186957783  IR-PCI-MSI-edge      eth4-tx-1
65:  175997086  124882943  176990272  166884618  IR-PCI-MSI-edge      eth4-tx-2
66:  164998728  119419200  178964340  174601588  IR-PCI-MSI-edge      eth4-tx-3

ethtool -c eth1,2,3,4

Coalesce parameters for eth1:
Adaptive RX: off  TX: off
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0

rx-usecs: 3
rx-frames: 0
rx-usecs-irq: 0
rx-frames-irq: 0

tx-usecs: 3
tx-frames: 0
tx-usecs-irq: 0
tx-frames-irq: 0

rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0

rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0

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

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


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

Есть подозрение на conntrack, судя по "--rand-source". Что в фаерволе? В логах что-то появляется?

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


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

input полностью закрыт кроме 22 порта для нескольких IP, 179 порта для вышестоящих, icmp.

И открываем доступ абонентам в мир

ipset -N users iphash --hashsize 8192
ipset users -A 1.1.1.1
...
iptables -A FORWARD -i eth1+ -m set --match-set users dst,src -j ACCEPT
iptables -A FORWARD -i eth2+ -m set --match-set users dst,src -j ACCEPT
iptables -A FORWARD -i eth1+ -j DROP
iptables -A FORWARD -i eth2+ -j DROP

(eth1 и eth2 - внешка)

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

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


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

Я про -m state и/или NAT, если ни то ни другое не используется, возможно стоит вообще модули контрека из загрузки.

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


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

А как отключить conntrack?

для начала попробуйте просто увеличить количество на горячую. Может я не прав и причина в другом

sysctl -w net.netfilter.nf_conntrack_max=2000000

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


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

Не помогло

 

Уберите dhcp с этой тачки.

 

Это пробовали??

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


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

Спасибо, отключение dhcpd помогло. 500к пакетов, нагрузка 0%

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

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


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

Ещё есть такая штука:

http://github.com/danieltt/pktgen/blob/master/examples/pktgen.conf-1-1

Если такой же эксперимент проделать, то генерируется 200к пакетов, нагрузка на маршрутизатор 0%, а у абонентов потери.

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

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


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

Не за что, это старая проблема.

 

 

А если не секрет - что там за проблема и откуда ноги растут?

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


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

А если не секрет - что там за проблема и откуда ноги растут?

Сейчас точно не вспомню, на форуме пролетала...))

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


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

Убираем dhcp с роутера => надо поставить dhcpd на другой сервер => нужна настройка dhcp relay на свиче. Но тут загвоздка... Чтоб настроить dhcp relay на свиче, надо чтобы сам свич находился в раздаваемых подсетях. Или я не прав?

Например, свитч имеет ip 10.0.1.10/24 (vlan 1), dhcp сервер имеет 10.0.2.10 (vlan 10), раздавать надо 10.1.1.0/30 (vlan 50), 10.1.1.4/30(vlan 60), 10.2.2.0/24(vlan70)...

В данном случае не получится использовать dhcp relay?

Если нет, то как тогда избавить от уязвимости?

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

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


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

нет. если dhcpd isc. То достаточно в shared-network Добавить subnet со свитчами и все.

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


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

Поднял на dgs-3120 dhcp relay. Запросы на dhcp сервер приходят только из той подсети, в которой находится сам свитч.

# config dhcp_relay add ipif System ip_address_dhcp_server
# config dhcp_relay option_82 state enable
# enable dhcp_relay

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


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

Сейчас точно не вспомню, на форуме пролетала...))

 

Что-то не удалось с хода найти.. а ключевые слова для поиска не вспомните часом?

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


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

Сейчас точно не вспомню, на форуме пролетала...))

 

Что-то не удалось с хода найти.. а ключевые слова для поиска не вспомните часом?

 

dhcp raw socket

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


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

В общем если кому ещё интересно

http://forum.nag.ru/forum/index.php?showtopic=113425&st=40

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


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

Интересно, спасибо. Только хотел спросить ссылочку.

Просто у меня 410к прерываний и DHCP на одном сервере, вот и подумал, мало ли что.

У меня нет на нем BGP и PPP.

Живёт нормально.

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


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

Join the conversation

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

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

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

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

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

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

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