kreept Posted March 29, 2013 Posted March 29, 2013 Добрый день. Есть проблема при появление DDOS атаки, нагрузка на бордере сильно возрастает(растет si) и начинаются потери. На текущий момент сервер обрабатывает 2,8G исход и 1,7G вход на одной сетевой карточке. На сервере два процессора Xeon E5645 2.40GHz, 2 сетевые карточки 82599EB, ядро 3.2.7. Kpps: in 318, out 264, аналогичные значения и на второй сетевой карточке. sysctl.conf net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.rmem_default = 8388608 net.core.wmem_default = 8388608 net.ipv4.tcp_rmem = 8192 87380 16777216 net.ipv4.tcp_wmem = 8192 65536 16777216 net.ipv4.tcp_mem = 8388608 12582912 16777216 net.ipv4.udp_mem = 8388608 12582912 16777216 net.unix.max_dgram_qlen = 400 net.ipv4.tcp_syncookies = 1 net.core.somaxconn = 262144 net.ipv4.tcp_max_tw_buckets = 1440000 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 180 net.ipv4.tcp_keepalive_intvl = 10 net.ipv4.tcp_keepalive_probes = 5 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_sack = 0 net.ipv4.tcp_window_scaling = 0 net.ipv4.route.gc_interval = 900 net.ipv4.route.gc_min_interval_ms = 3000 net.ipv4.route.gc_thresh = 16777216 net.ipv4.route.gc_timeout = 900 net.ipv4.route.max_size = 16777216 net.ipv4.route.mtu_expires = 1800 net.ipv6.conf.all.forwarding = 1 net.ipv6.route.max_size = 32768 Подскажите или ткните носом что можно оптимизировать на сервере, заранее благодарен за любую помощь. Вставить ник Quote
replicant Posted March 29, 2013 Posted March 29, 2013 А поточнее что именно делает бордер? В это слово зачастую вкладывают разные значения и сервера укомплектовывают по-разному. В частности интересует: - наличие или отсутствие NAT - наличие или отсутствие шейперов - наличие или отсутствие счетчиков трафика - кол-во записей в таблице маршрутизации сервера - наличие других демонов (их названия и роли), работающих на сервере - правила iptables (текущая таблица) - насколько остра необходимость в ipv6 в данный момент - настройки ethtool - настройки ifconfig - настройки vlan, если есть - почему до сих пор 3.2.7 ядро (как минимум уже 35 более новых версий вышло) - распределение прерываний сетевой по ядрам (таблица прерываний cat /proc/interrupts) - использование HT (опции в BIOS для процессора) - кол-во памяти и ее скорость (опциональный вопрос) Вставить ник Quote
kreept Posted March 29, 2013 Author Posted March 29, 2013 (edited) - NAT отсутствует - шейпер есть но там всего несколько правил - счетчики трафика отсутствуют - два full view - только quagga - iptables около 10 правил - ipv6 используется - ethtool -g eth11 Ring parameters for eth11: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 - 20 vlan-ок, дополнительно никак не настроено - сложно сказать, думал "работает не трогай" - cat /proc/interrupts 112: 2586748256 0 0 0 215155429 0 0 0 PCI-MSI-edge eth10-TxRx-0 113: 0 2649758003 0 0 0 180270891 0 0 PCI-MSI-edge eth10-TxRx-1 114: 0 0 2415608630 0 0 2821071040 0 0 PCI-MSI-edge eth10-TxRx-2 115: 0 0 0 2987970059 0 0 2831339266 0 PCI-MSI-edge eth10-TxRx-3 116: 0 0 2856069194 0 2828435811 0 0 0 PCI-MSI-edge eth10-TxRx-4 117: 0 0 2907751745 0 0 2833557129 0 0 PCI-MSI-edge eth10-TxRx-5 118: 0 0 0 0 175269334 0 2513290529 0 PCI-MSI-edge eth10-TxRx-6 119: 0 0 0 0 205205984 0 0 2609050256 PCI-MSI-edge eth10-TxRx-7 120: 4959227 0 0 0 0 181699 0 0 PCI-MSI-edge eth10 121: 2735501988 0 0 0 0 0 45781874 0 PCI-MSI-edge eth11-TxRx-0 122: 0 263969943 0 0 0 0 3982149052 0 PCI-MSI-edge eth11-TxRx-1 123: 0 0 169294581 0 0 0 0 135033151 PCI-MSI-edge eth11-TxRx-2 124: 0 0 0 1549409802 0 0 0 3897088306 PCI-MSI-edge eth11-TxRx-3 125: 260666545 0 0 0 1601261904 0 0 0 PCI-MSI-edge eth11-TxRx-4 126: 279885351 0 0 0 0 2739182658 0 0 PCI-MSI-edge eth11-TxRx-5 127: 0 4233419160 0 0 0 0 1470246776 0 PCI-MSI-edge eth11-TxRx-6 128: 0 4171272327 0 0 0 0 0 1567428276 PCI-MSI-edge eth11-TxRx-7 - HT отключен - 8Г памяти Edited March 29, 2013 by kreept Вставить ник Quote
kreept Posted March 29, 2013 Author Posted March 29, 2013 По разному бывает, если нас то приходится ИП в блекхол загонять. Если от нас, то выясняю кто и отключаю порт. Проблемы в основном наблюдаются при ддосе udp трафиком большим количество маленьких пакетов. Вставить ник Quote
kapa Posted March 29, 2013 Posted March 29, 2013 а прерывания специально кривовато распределены? Вставить ник Quote
kreept Posted March 29, 2013 Author Posted March 29, 2013 Нет конечно, подбирал на свое усмотрение. Подскажите пожалуйста как правильно нужно распределить? Вставить ник Quote
kreept Posted March 29, 2013 Author Posted March 29, 2013 Module Size Used by cls_u32 7195 3 sch_sfq 6486 5 sch_htb 14921 3 bonding 112285 0 iptable_filter 1440 1 ip_tables 18488 1 iptable_filter ip6table_filter 1412 0 ip6_tables 18657 1 ip6table_filter ipv6 309076 34 ext2 62988 1 dm_mod 72875 0 pcspkr 1803 0 i2c_i801 9369 0 i2c_core 22647 1 i2c_i801 sg 28386 0 iTCO_wdt 11691 0 iTCO_vendor_support 1913 1 iTCO_wdt i7core_edac 18334 0 edac_core 36541 4 i7core_edac ixgbe 221756 0 igb 159737 0 e1000e 176664 0 ext4 408775 4 mbcache 5618 2 ext2,ext4 jbd2 67666 1 ext4 sd_mod 36412 7 crc_t10dif 1284 1 sd_mod pata_acpi 3424 0 ata_generic 3407 0 ata_piix 21927 6 Вставить ник Quote
^rage^ Posted March 30, 2013 Posted March 30, 2013 x86_64? покажите: правила iptables настройки conntrack выхлоп perf top в момент атаки. Вставить ник Quote
kreept Posted March 30, 2013 Author Posted March 30, 2013 x86_64 - да iptables содержит около 10 правил блокировки некоторых ИП, вся логика NAT и.т.д лежит на других машинах. Ядро собрано без поддержки NAT. perf top постараюсь выложить в момент атаки. Вставить ник Quote
passer Posted March 30, 2013 Posted March 30, 2013 - cat /proc/interrupts 112: 2586748256 0 0 0 215155429 0 0 0 PCI-MSI-edge eth10-TxRx-0 113: 0 2649758003 0 0 0 180270891 0 0 PCI-MSI-edge eth10-TxRx-1 114: 0 0 2415608630 0 0 2821071040 0 0 PCI-MSI-edge eth10-TxRx-2 115: 0 0 0 2987970059 0 0 2831339266 0 PCI-MSI-edge eth10-TxRx-3 116: 0 0 2856069194 0 2828435811 0 0 0 PCI-MSI-edge eth10-TxRx-4 117: 0 0 2907751745 0 0 2833557129 0 0 PCI-MSI-edge eth10-TxRx-5 118: 0 0 0 0 175269334 0 2513290529 0 PCI-MSI-edge eth10-TxRx-6 119: 0 0 0 0 205205984 0 0 2609050256 PCI-MSI-edge eth10-TxRx-7 120: 4959227 0 0 0 0 181699 0 0 PCI-MSI-edge eth10 121: 2735501988 0 0 0 0 0 45781874 0 PCI-MSI-edge eth11-TxRx-0 122: 0 263969943 0 0 0 0 3982149052 0 PCI-MSI-edge eth11-TxRx-1 123: 0 0 169294581 0 0 0 0 135033151 PCI-MSI-edge eth11-TxRx-2 124: 0 0 0 1549409802 0 0 0 3897088306 PCI-MSI-edge eth11-TxRx-3 125: 260666545 0 0 0 1601261904 0 0 0 PCI-MSI-edge eth11-TxRx-4 126: 279885351 0 0 0 0 2739182658 0 0 PCI-MSI-edge eth11-TxRx-5 127: 0 4233419160 0 0 0 0 1470246776 0 PCI-MSI-edge eth11-TxRx-6 128: 0 4171272327 0 0 0 0 0 1567428276 PCI-MSI-edge eth11-TxRx-7 - HT отключен 2 шестиядерных процессора, а столбиков 8. Куда остальные дели? Вставить ник Quote
replicant Posted March 31, 2013 Posted March 31, 2013 (edited) Лимит в конфиге ядра вестимо. Печально. После такого даже не удивлен, что падает и глючит. В довесок к этому печальная картина распределения прерываний ... Edited March 31, 2013 by replicant Вставить ник Quote
kreept Posted March 31, 2013 Author Posted March 31, 2013 Подскажите пожалуйста, где почитать как правильно распределить прерывания ? Объясните нубу что означает "Лимит в конфиге ядра вестимо" Вставить ник Quote
ThreeDHead Posted March 31, 2013 Posted March 31, 2013 Подскажите пожалуйста, где почитать как правильно распределить прерывания ? Объясните нубу что означает "Лимит в конфиге ядра вестимо" 1. Прерывания одной сетевой карты, необходимо раскидывать по ядрам одного процессора. В вашем случае, необходимо включить на сетевой по 6 очередей (а не 8 как у Вас), и "прибить" их к 6-ти ядрам одного процессора. Со второй сетевой все тоже самое, только "прибить" ко второму процессору. Но сперва надо разобраться с п.2. т.к. там "каша" или Вы при копипасте модификнули вывод. 2. Вы говорите, что "Ядро собрано без поддержки NAT", значит собирали самостоятельно, возможно что-то "зацепили", не все ядра процессоров видны. В чем "таинство" самостоятельной сборки ядра? Вставить ник Quote
kreept Posted March 31, 2013 Author Posted March 31, 2013 Спасибо за объяснения по прерываниям. Буду разбираться, вероятно что то зацепил при сборке так как в системе видно только 4 ядра каждого процессора. Вставить ник Quote
sexst Posted March 31, 2013 Posted March 31, 2013 Dmesg смотрите, там при загрузке все касаемо ядер будет написано. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.