LINUX.ORG.RU

Избранные сообщения Smugo

nf_conntrack_tuple_taken 100% cpu

Форум — Admin

Привет всем! Прошу помощи и совета. Есть Nat/маршрутизатор на Debian. Почти каждый день сервер в разное время ложится в полку по cpu, через некоторое время 10-50мин. его попускает. perf top выявил в этот момент nf_conntrack_tuple_taken 100%. Проц i7-7700. Сетевая Intel I350-t4

Заранее спасибо за любые советы.

~# uname -r
4.9.0-3-amd64
# iptables -V
iptables v1.6.0
# ipset -v
ipset v6.30, protocol version: 6
# sysctl -a | grep conntrack
net.netfilter.nf_conntrack_acct = 0
net.netfilter.nf_conntrack_buckets = 409600
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_count = 722614
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_expect_max = 256
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_helper = 0
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_max = 1638400
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 600
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_timestamp = 0
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.nf_conntrack_max = 1638400
# iptables-save
# Generated by iptables-save v1.6.0 on Thu Oct 26 20:20:05 2017
*mangle
:PREROUTING ACCEPT [8049016415:5035799096738]
:INPUT ACCEPT [20556383:1399056353]
:FORWARD ACCEPT [8010527052:5033150314691]
:OUTPUT ACCEPT [5970982:315886365]
:POSTROUTING ACCEPT [8011579861:5033182613315]
:balance - [0:0]
:new_conn - [0:0]
-A PREROUTING -m conntrack --ctstate NEW -j new_conn
-A PREROUTING -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A balance -m statistic --mode random --probability 0.50000000000 -j SET --add-set vlan2000 src
-A balance -m set --match-set uplink_list src -j RETURN
-A balance -m statistic --mode random --probability 1.00000000000 -j SET --add-set vlan2001 src
-A new_conn -m set --match-set ip_pools src -m set ! --match-set uplink_list src -j balance
-A new_conn -m set --match-set vlan2000 src -j CONNMARK --set-xmark 0x1/0xffffffff
-A new_conn -m set --match-set vlan2001 src -j CONNMARK --set-xmark 0x2/0xffffffff
-A new_conn -m set --match-set vlan2000 src -j SET --add-set vlan2000 src --exist
-A new_conn -m set --match-set vlan2001 src -j SET --add-set vlan2001 src --exist
COMMIT
# Completed on Thu Oct 26 20:20:05 2017
# Generated by iptables-save v1.6.0 on Thu Oct 26 20:20:05 2017
*filter
:INPUT DROP [19591862:1326290389]
:FORWARD ACCEPT [8005609010:5032866794927]
:OUTPUT ACCEPT [5970955:315883993]
:input_check - [0:0]
:input_new - [0:0]
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate NEW -j input_new
-A FORWARD -p tcp -m set --match-set blacklist dst -j REJECT --reject-with tcp-reset
-A FORWARD -m set --match-set blacklist dst -j REJECT --reject-with icmp-port-unreachable
-A input_check -m recent --update --seconds 600 --hitcount 3 --name DEFAULT --mask 255.255.255.255 --rsource -j LOG --log-prefix "iptables INPUT bruteforce: "
-A input_check -m recent --update --seconds 600 --hitcount 3 --name DEFAULT --mask 255.255.255.255 --rsource -j DROP
-A input_check -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource -j ACCEPT
-A input_new -p tcp -m tcp --dport 62222 -j input_check
-A input_new -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A input_new -m set --match-set input_src src -j ACCEPT
COMMIT
# Completed on Thu Oct 26 20:20:05 2017
# Generated by iptables-save v1.6.0 on Thu Oct 26 20:20:05 2017
*nat
:PREROUTING ACCEPT [731335048:51842951878]
:INPUT ACCEPT [19609:2145677]
:OUTPUT ACCEPT [112016:5944261]
:POSTROUTING ACCEPT [4985233:199144045]
:dnat_post - [0:0]
:dnat_pre - [0:0]
-A PREROUTING -d x.x.x.x -m set --match-set dnat_ports dst -j dnat_pre
-A OUTPUT -d x.x.x.x -m set --match-set dnat_ports dst -j dnat_pre
-A POSTROUTING -m set --match-set ip_pools src -m set --match-set dnat_ports dst -j dnat_post
-A POSTROUTING -o vlan2001 -j SNAT --to-source x.x.x.x-x.x.x.x --persistent
-A POSTROUTING -o vlan2000 -j SNAT --to-source x.x.x.x-x.x.x.x --persistent
-A dnat_post -d 172.19.0.1/32 -p udp -m multiport --dports 80,443 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 172.19.0.1/32 -p tcp -m multiport --dports 80,443 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.194.123.7/32 -p tcp -m multiport --dports 6036,6037,6038,6039 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.194.126.9/32 -p tcp -m multiport --dports 50001,50002 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.10/32 -p tcp -m multiport --dports 50004,50005 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.166/32 -p tcp -m multiport --dports 50006,50007 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.166/32 -p udp -m multiport --dports 50006,50007 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.156/32 -p tcp -m multiport --dports 50008,50029 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.41/32 -p tcp -m multiport --dports 50009,50010,50012 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.41/32 -p tcp -m multiport --dports 80 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.180/32 -p tcp -m multiport --dports 50014,50015,50050 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.130/32 -p tcp -m multiport --dports 50016,50017,50025 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.181/32 -p tcp -m multiport --dports 50027,50028 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.194.126.7/32 -p tcp -m multiport --dports 50029,50030,50031,50032 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.216/32 -p tcp -m multiport --dports 50033,50034,50035,50036 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.1.223/32 -p tcp -m multiport --dports 50037,50038 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.1.253/32 -p tcp -m multiport --dports 50039,50040,50041,50042,50043,50044,50045,50046,50047,50048,50049 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.2.8/32 -p tcp -m multiport --dports 50050,50051,50054 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.2.9/32 -p tcp -m multiport --dports 50052,50053 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.1.2/32 -p tcp -m multiport --dports 50055,50056,50057,50058,50059,50060,50061,50062,50063,50064,50065 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 172.20.0.100/32 -p tcp -m multiport --dports 80 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 172.20.0.101/32 -p tcp -m multiport --dports 80 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 172.20.0.102/32 -p tcp -m multiport --dports 80 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 172.20.0.103/32 -p tcp -m multiport --dports 80 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 172.20.0.104/32 -p tcp -m multiport --dports 80 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.193.0.244/32 -p tcp -m multiport --dports 60001,60002,60003 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.194.130.5/32 -p tcp -m multiport --dports 50100:50200 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.194.129.17/32 -p tcp -m multiport --dports 50203:50213 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.194.101.97/32 -p tcp -m multiport --dports 25565,25567,25568,30000,30001,50069:50099,4254:4258 -j SNAT --to-source 172.19.0.6
-A dnat_post -d 10.194.101.97/32 -p udp -m multiport --dports 25565,25567,25568,30000,30001,50069:50099,4254:4258 -j SNAT --to-source 172.19.0.6
-A dnat_pre -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 172.19.0.1
-A dnat_pre -p udp -m multiport --dports 80,443 -j DNAT --to-destination 172.19.0.1
-A dnat_pre -p tcp -m multiport --dports 6036,6037,6038,6039 -j DNAT --to-destination 10.194.123.7
-A dnat_pre -p tcp -m multiport --dports 50001,50002 -j DNAT --to-destination 10.194.126.9
-A dnat_pre -p tcp -m multiport --dports 50004,50005 -j DNAT --to-destination 10.193.0.10
-A dnat_pre -p tcp -m multiport --dports 50006,50007 -j DNAT --to-destination 10.193.0.166
-A dnat_pre -p udp -m multiport --dports 50006,50007 -j DNAT --to-destination 10.193.0.166
-A dnat_pre -p tcp -m multiport --dports 50008,50029 -j DNAT --to-destination 10.193.0.156
-A dnat_pre -p tcp -m multiport --dports 50009,50010,50012 -j DNAT --to-destination 10.193.0.41
-A dnat_pre -p tcp -m multiport --dports 50013 -j DNAT --to-destination 10.193.0.41:80
-A dnat_pre -p tcp -m multiport --dports 50014,50015,50050 -j DNAT --to-destination 10.193.0.180
-A dnat_pre -p tcp -m multiport --dports 50016,50017,50025 -j DNAT --to-destination 10.193.0.130
-A dnat_pre -p tcp -m multiport --dports 50027,50028 -j DNAT --to-destination 10.193.0.181
-A dnat_pre -p tcp -m multiport --dports 50029,50030,50031,50032 -j DNAT --to-destination 10.194.126.7
-A dnat_pre -p tcp -m multiport --dports 50033,50034,50035,50036 -j DNAT --to-destination 10.193.0.216
-A dnat_pre -p tcp -m multiport --dports 50037,50038 -j DNAT --to-destination 10.193.1.223
-A dnat_pre -p tcp -m multiport --dports 50039,50040,50041,50042,50043,50044,50045,50046,50047,50048,50049 -j DNAT --to-destination 10.193.1.253
-A dnat_pre -p tcp -m multiport --dports 50050,50051,50054 -j DNAT --to-destination 10.193.2.8
-A dnat_pre -p tcp -m multiport --dports 50052,50053 -j DNAT --to-destination 10.193.2.9
-A dnat_pre -p tcp -m multiport --dports 50055,50056,50057,50058,50059,50060,50061,50062,50063,50064,50065 -j DNAT --to-destination 10.193.1.2
-A dnat_pre -p tcp -m multiport --dports 50066 -j DNAT --to-destination 172.20.0.101:80
-A dnat_pre -p tcp -m multiport --dports 50067 -j DNAT --to-destination 172.20.0.102:80
-A dnat_pre -p tcp -m multiport --dports 50068 -j DNAT --to-destination 172.20.0.103:80
-A dnat_pre -p tcp -m multiport --dports 50201 -j DNAT --to-destination 172.20.0.104:80
-A dnat_pre -p tcp -m multiport --dports 50202 -j DNAT --to-destination 172.20.0.100:80
-A dnat_pre -p tcp -m multiport --dports 60001,60002,60003 -j DNAT --to-destination 10.193.0.244
-A dnat_pre -p tcp -m multiport --dports 50100:50200 -j DNAT --to-destination 10.194.130.5
-A dnat_pre -p tcp -m multiport --dports 50203:50213 -j DNAT --to-destination 10.194.129.17
-A dnat_pre -p tcp -m multiport --dports 25565,25567,25568,30000,30001,50069:50099,4254:4258 -j DNAT --to-destination 10.194.101.97
-A dnat_pre -p udp -m multiport --dports 25565,25567,25568,30000,30001,50069:50099,4254:4258 -j DNAT --to-destination 10.194.101.97
COMMIT
# Completed on Thu Oct 26 20:20:05 2017
# cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3
  25:          1          0          0          0   PCI-MSI 524288-edge      enp1s0f0
 26:          2          0 1260759450          0   PCI-MSI 524289-edge      enp1s0f0-rx-0
 27:          2 1596364080          0          0   PCI-MSI 524290-edge      enp1s0f0-rx-1
 28: 1608171634          0          0          0   PCI-MSI 524291-edge      enp1s0f0-rx-2
 29:          2          0          0 1431637657   PCI-MSI 524292-edge      enp1s0f0-rx-3
 30:          2          0 2248452719          0   PCI-MSI 524293-edge      enp1s0f0-tx-0
 31:          2 2685798284          0          0   PCI-MSI 524294-edge      enp1s0f0-tx-1
 32: 2407711073          0          0          0   PCI-MSI 524295-edge      enp1s0f0-tx-2
 33:          2          0          0 2681609538   PCI-MSI 524296-edge      enp1s0f0-tx-3
 36:          1          0          0          0   PCI-MSI 526336-edge      enp1s0f1
 37:          2  437882432          0          0   PCI-MSI 526337-edge      enp1s0f1-rx-0
 38:  401100044          0          0          0   PCI-MSI 526338-edge      enp1s0f1-rx-1
 39:          2          0          0  403086479   PCI-MSI 526339-edge      enp1s0f1-rx-2
 40:          2          0  441094187          0   PCI-MSI 526340-edge      enp1s0f1-rx-3
 41:          2  250815536          0          0   PCI-MSI 526341-edge      enp1s0f1-tx-0
 42:  265847277          0          0          0   PCI-MSI 526342-edge      enp1s0f1-tx-1
 43:          2          0          0  274199030   PCI-MSI 526343-edge      enp1s0f1-tx-2
 44:          2          0  270523776          0   PCI-MSI 526344-edge      enp1s0f1-tx-3

 ,

fet4 ()

Из ядра Linux удалена поддержка UDP Fragmentation Offload

Новости — Ядро Linux
Группа Ядро Linux

Андрей Коновалов (Andrey Konovalov) нашел с помощью фаззера syzkaller последовательность системных вызовов, которая портит память ядра, если в системе есть хотя бы один сетевой интерфейс с MTU < 65535 и включенной опцией UDP Fragmentation Offload. На самом деле требуется еще право менять опции интерфейса, но его легко получить через непривилегированные пользовательские пространства имен. Они же позволяют создать такой интерфейс, если его не было в системе изначально. Итог: на некоторых ядрах, поставляемых Ubuntu, продемонстрировано повышение привилегий от обычного пользователя до root (CVE-2017-1000112). Проблема существует также в ядрах не от Ubuntu.

David S. Miller в качестве решения проблемы предложил удалить поддержку UDP Fragmentation Offload и выслал соответствующий набор патчей в рассылку netdev. Мотивация: «эту операцию поддерживает очень небольшое число устройств, польза от нее в лучшем случае сомнительна, и эта операция добавляет немало сложности в пути обработки данных». На данный момент патчи приняты в ветку net-next.

>>> Подробности

 , , ,

AEP ()

учебник по python

Форум — General

привет посоветуйте на русском простенький учебник по python... есть такие учебники, которые читаются и осознаются сразу. есть такие которые прочитываются и ничего кроме вопросов не оставляют. самое сложное найти тот правильный учебник. это можно сделать только с помощью тех людей, которые уже прочли их массу и отделили семена от шелухи. посоветуйте

 ,

linuxpc ()

Удаленная работа + путешествия

Форум — Talks

В первую очередь интересуют те, кто устроен на постоянную серьезную работу (хотя и опыт фрилансеров — тоже).

Если ли тут люди, которым удается работу совмещать с более-менее активным путешествованием?

Например, работаешь месяц в какой-нибудь Камбодже. 5 дней пашешь, на выходных смотришь местные достопримечательности. Потом — на месяц в Гонгконг с таким же графиком. Как надоест — в Европу или Южную Америку.

С какими подводными камнями вы сталкиваетесь кроме проблем с интернетом?

А если вы работаете удаленно, но не путешествуете, то почему?

ttnl ()

Поиск работы за границей РФ: доступ из вашей страны запрещен и другие важные вещи

Форум — Job

Как вы знаете, в РФ есть довольно странное законодательство на счет персональных данных, в котором зарубежные рекрутеры не хотят разбираться. Со стороны это выглядит так, как будто вы пошли на сайт например Red Hat или IBM, а нажать кнопку «apply» вам не дали, вывесив текст о том, что законодательство вашей cтраны не позволяет обрабатывать персданные за границей.

ВАЖНО: эту заглушку не ставит работодатель, ее ставит рекрутер потому что так ему посоветовал МакКинзи или Прайс, которые так посоветовали потому что увидели некоторый риск для рекрутера. Никаких других прчин для этого нет, если вы зайдете на ту же страницу с IP любой европейской страны или США, то ваше резюме будет принято, рассмотрено, вам будут звонить на ваш российский номер телефона.

Важно понимать, что перетащить вас из страны в страну стоит некоторого количества сил и денег. Самостоятельно этого добиться трудно, для этого есть специальные агенства, у которых есть отработанные процедуры. Из этого есть 2 важных прямых следствия и одно косвеное: искать работу стоит в больших корпорациях/стартапах с деньгами, которым не горит вас нанять и для которых затраты на перевозку не критичны. Просто составьте таблицу больших фирм, чья продукция вам нравится, сходите на их раздел «Карьера» и попроситесь на все-все вакансии, которые вам подходят. Второе следствие: естественно все эти затраты кратно вернутся работодателю за первые ваши 2 года работы, так как бизнес - деятельность по извлечению прибыли и единственная причина вас нанять и тащить через пол мира - маржинальность вашей деятельности (местный попросит больше денег и не будет так держаться за место как вы за визу). Это нормально, считайте их затраты на ваше беспроблемное перемещение своей косвенной прибылью. Самостоятельно вы все равно потратите больше, можете потерпеть неудачу не зная точно важных формальностей. Косвенное следствие: с идущими работать в большую корпорацию посольство обращается значительно мягче, чем с идущими работать в новую или мутную фирму.

Прежде чем посылать CV в большую фирму, сходите на Linkedin/Facebook, пройдитесь там по знакомым и укажите их как референсы в резюме. Вы не поверите, сколько пользователей ЛОР, например, в Бренском Red Hat или IBM и с каким удовольствием они оставят о вас отзыв своему HR. Cпойлер: это возможные премии во многих конторах, так что не стесняйтесь спрашивать и просить рекомендации.

UPDATE из 2019. Теперь по крайней мере Red Hat заставляет формально аппаиться через российское представительство посте того, как зааплаился через VPN.

Перемещено Falcon-peregrinus из job

Перемещено Klymedy из talks

 , ,

Shaman007 ()

MPLS в Linux: тестирование

Форум — Admin

Короче, поднял я тестовый MPLS по схеме:

modprobe mpls_router
modprobe mpls_gso
modprobe mpls_iptunnel
sysctl -w net.mpls.conf.lo.input=1
sysctl -w net.mpls.platform_labels=1048575
ip link add veth0 type veth peer name veth1
ip link add veth2 type veth peer name veth3
sysctl -w net.mpls.conf.veth0.input=1
sysctl -w net.mpls.conf.veth2.input=1
ifconfig veth0 10.3.3.1/24 up
ifconfig veth2 10.4.4.1/24 up
ip netns add host1
ip netns add host2
ip link set veth1 netns host1
ip link set veth3 netns host2
ip netns exec host1 ifconfig veth1 10.3.3.2/24 up
ip netns exec host2 ifconfig veth3 10.4.4.2/24 up
ip netns exec host1 ip route add 10.10.10.2/32 encap mpls 112 via inet 10.3.3.1
ip netns exec host2 ip route add 10.10.10.1/32 encap mpls 111 via inet 10.4.4.1
ip -f mpls route add 111 via inet 10.3.3.2
ip -f mpls route add 112 via inet 10.4.4.2
ip netns exec host1 bash
ifconfig lo up
ip addr add 10.10.10.1/32 dev lo
ip netns exec host2 bash
ifconfig lo up
ip addr add 10.10.10.2/32 dev lo
ip netns exec host1 bash

Тестируем. 1. Вначале ping'ом:
Host1:
root@ne-vlezay80:~# ping 10.10.10.2 -I 10.10.10.1
PING 10.10.10.2 (10.10.10.2) from 10.10.10.1 : 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=63 time=0.043 ms
64 bytes from 10.10.10.2: icmp_seq=2 ttl=63 time=0.038 ms
64 bytes from 10.10.10.2: icmp_seq=3 ttl=63 time=0.049 ms
64 bytes from 10.10.10.2: icmp_seq=4 ttl=63 time=0.048 ms
64 bytes from 10.10.10.2: icmp_seq=5 ttl=63 time=0.048 ms
64 bytes from 10.10.10.2: icmp_seq=6 ttl=63 time=0.047 ms
64 bytes from 10.10.10.2: icmp_seq=7 ttl=63 time=0.044 ms
64 bytes from 10.10.10.2: icmp_seq=8 ttl=63 time=0.046 ms
^C
--- 10.10.10.2 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7174ms
rtt min/avg/max/mdev = 0.038/0.045/0.049/0.006 ms
Host2:
root@ne-vlezay80:~# ping 10.10.10.1 -I 10.10.10.2
PING 10.10.10.1 (10.10.10.1) from 10.10.10.2 : 56(84) bytes of data.
64 bytes from 10.10.10.1: icmp_seq=1 ttl=63 time=0.040 ms
64 bytes from 10.10.10.1: icmp_seq=2 ttl=63 time=0.037 ms
64 bytes from 10.10.10.1: icmp_seq=3 ttl=63 time=0.037 ms
64 bytes from 10.10.10.1: icmp_seq=4 ttl=63 time=0.042 ms
64 bytes from 10.10.10.1: icmp_seq=5 ttl=63 time=0.042 ms
64 bytes from 10.10.10.1: icmp_seq=6 ttl=63 time=0.045 ms
64 bytes from 10.10.10.1: icmp_seq=7 ttl=63 time=0.045 ms
64 bytes from 10.10.10.1: icmp_seq=8 ttl=63 time=0.038 ms
^C
--- 10.10.10.1 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7176ms
rtt min/avg/max/mdev = 0.037/0.040/0.045/0.008 ms
Ну, что? Потестируем iperf'ом:
Host1:
iperf3 -s -B 10.10.10.2 -D
Host2:
root@ne-vlezay80:~# ip netns exec host1 bash
root@ne-vlezay80:~# iperf3 -c 10.10.10.2 -B 10.10.10.1   
Connecting to host 10.10.10.2, port 5201
[  4] local 10.10.10.1 port 57039 connected to 10.10.10.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.00 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   1.00-2.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   2.00-3.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   3.00-4.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   4.00-5.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   5.00-6.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   6.00-7.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   7.00-8.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   8.00-9.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   9.00-10.00  sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  20.1 GBytes  17.3 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  20.1 GBytes  17.3 Gbits/sec                  receiver

iperf Done.

root@ne-vlezay80:~# iperf3 -c 10.10.10.2 -B 10.10.10.1 -b -b 1tb
Connecting to host 10.10.10.2, port 5201
[  4] local 10.10.10.1 port 57609 connected to 10.10.10.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   1.00-2.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   2.00-3.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   3.00-4.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   4.00-5.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   5.00-6.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   6.00-7.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   7.00-8.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   8.00-9.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   9.00-10.00  sec  2.11 GBytes  18.2 Gbits/sec    0   1.95 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  21.1 GBytes  18.1 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  21.1 GBytes  18.1 Gbits/sec                  receiver

iperf Done.


tcpdump:

root@ne-vlezay80:~# tcpdump -i veth2 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth2, link-type EN10MB (Ethernet), capture size 262144 bytes
07:02:36.886598 IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1677, seq 1, length 64
07:02:36.886617 MPLS (label 111, exp 0, [S], ttl 64) IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1677, seq 1, length 64
07:02:37.895065 IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1677, seq 2, length 64
07:02:37.895081 MPLS (label 111, exp 0, [S], ttl 64) IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1677, seq 2, length 64

root@ne-vlezay80:~# tcpdump -i veth0 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth0, link-type EN10MB (Ethernet), capture size 262144 bytes
07:03:30.368146 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 1, length 64
07:03:30.368172 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 1, length 64
07:03:31.399057 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 2, length 64
07:03:31.399080 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 2, length 64
07:03:32.423182 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 3, length 64
07:03:32.423210 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 3, length 64
07:03:33.447195 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 4, length 64
07:03:33.447214 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 4, length 64
07:03:34.471219 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 5, length 64
07:03:34.471239 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 5, length 64

Как видим, в Linux MPLS работает довольно таки не плохо, но нехватает:
*VPLS
*MPLS в netfilter для фильтрации mpls-пакетов на P уровне. :D
А так впринцепе, всё работает.

В случае чего для стыка с провайдером хватит. Вот связанные проекты: https://frrouting.org/ https://github.com/FRRouting/frr/pull/343

Кстати, вот ifconfig:

root@ne-vlezay80:~# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:100 (100.0 B)  TX bytes:100 (100.0 B)

veth1     Link encap:Ethernet  HWaddr d2:60:95:e8:a4:d6  
          inet addr:10.3.3.2  Bcast:10.3.3.255  Mask:255.255.255.0
          inet6 addr: fe80::d060:95ff:fee8:a4d6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1047404 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2164674 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22610878516 (21.0 GiB)  TX bytes:104546390092 (97.3 GiB)

Самое прикольное то, что некакой фрагментации нет))

 , , ,

ne-vlezay ()

Отказоустойчивый Network Storage для Proxmox 4.4

Форум — Admin

Всем привет! В общем есть 5 нод под управлением Proxmox VE 4.4 на которых крутятся в среднем 5-8 виртуальных машин. В кластер я их пока не собирал, так как отсустует общее хранилище. Под хранилище есть два сервера Dell R410, в каждом установлен винт на 4тб. Вот тут то и начинается головняк. Гуглением нашёл что в качестве HA Network Storage можно заюзать NAS4Free (HASP который еще надо допилить напильником), OpenAttic (сыроват, Ceph мне там так и не удалось запустить), NexentaStor (не пробовал, но, говорят что в комьюнити версии HA нету, а Enterprise версия таки не по карману), DRBD (пробовал давно версию 8.2 в режиме two primary nodes, пару раз хватал split brain). Что можете посоветовать для создания ha network storage ?

 , , , ,

oldpsyho ()

Ddos ложит debian-87 или неправильная настройка сетевого стека?

Форум — Admin

Здравствуйте господа, небольшая предпосылка имеется игровой сервер на Windows Server 2016, имеются открытые UDP порты. В связи с особенностями сетевого стек windows, было решено использовать linux(debian-87-jessie) в качестве шлюза, посредством pptpd был организован тунель.

Атаки разумеется на udp и причем намеренные когда онлайн на серверах набирается бьют на пару секунд, все сервера падают дело сделано атака прекращается. Сила ddos атаки 144.406 packets/s (36 MBit/s), генерируются пакеты с подменой ip и портов, все пакеты с одинаковым содержимым(это выяснено позже логированием tcpdump). Было принято решение блокировать по содержимому пакета(с помошью iptables), в итоге после начала атаки сервер живет пару секунд ,затем связь SSH обрывается. В течении минуты связь появляется т.к ddos прекращается в статистике 24 милиона пакетов в DROP это если первым правилом стоит блок по длине пакета, при блоке 1 правилом по содержимому доходит до 53М DROPA. Неужели такой ddos никак не отбить посредствами linux?

Правила iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A FORWARD -i eth0 -p udp -m multiport --dports 1111,2222,3333 -m string --string «Intel» --algo bm -j DROP
iptables -A FORWARD -i eth0 -p udp -m multiport --dports 1111,2222,3333 -m string --string «Amd» --algo bm -j DROP
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 180.65.122.12 -p tcp --dport 3389 -j DNAT --to-destination 10.1.0.2
iptables -t nat -A POSTROUTING -d 10.1.0.2 -p tcp --dport 3389 -j SNAT --to-source 10.1.0.1
iptables -t nat -A PREROUTING -d 180.65.122.12 -p udp -m multiport --dports 1111,2222,3333 -j DNAT --to-destination 10.1.0.2
iptables -t nat -A POSTROUTING -d 10.1.0.2 -p udp -m multiport --dports 1111,2222,3333 -j SNAT --to-source 10.1.0.1

P.S: Дедик i7 3770, 1GB канал

 , ,

novice_user_linux ()

прерывания сетевая msi-x

Форум — General

Добрый день!
Сетвая карта поддерживает MSI-X:
#lspci -vvv
Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
Vector table: BAR=3 offset=00000000
PBA: BAR=3 offset=00002000

Когда же смотрю cat /proc/interrupts
33: 2 0 0 0 PCI-MSI-edge eno1

Почему вместо ожидаемого PCI-MSI-X используется PCI-MSI-edge? прочитал мануалы, везде написано - ни каких специальных действий для включения PCI-MSI-X не нужно.

 

ink08 ()

Отказоустойчивый балансировщик нагрузки (Keepalived и haproxy)

Форум — Admin

Друзья, такой вопрос:

Настраиваю отказоустойчивый балансировщик (2 сервера с keepalived), которые в случае падения одного из них подхватывают IP второго.

Задача - балансить траффик на 443 порт (SSL), веб -порты, и почтовые - smtp и imap.

Думал сделать так: На каждом узле keepalived - обеспечивает отказоустойчивость балансировщиков, и haproxy - балансит траффик на уровне TCP.

Данная схема в целом хорошая, или проще балансить тем же keepalived?

Haproxy в плане балансировщика пофункциональнее, да и веб-морда к ней есть, для просмотра минимальной статистики.

Заранее спасибо за ваши советы!

 ,

Fess88 ()

Ограничение скорости для группы адресов

Форум — Admin

Доброго времени суток уважаемые гуру. У меня возник один вопрос по ограничение скорости группы адресов индивидуально. Ситуация такая наша компания берет у провайдера 2 скорости одна для внутренних ресурсов провайдера(100-мб/сек) другая в мир(10 мб/сек). И вот встал вопрос ограничить скорость по этим двум скоростям. Если точнее быть всем пользователям дать скорость для внутренних ресурсов по 3 мб/сек а тем кому есть доступ в мир тоже разделить к примеру создать группу адресов скорость которых будет 1 мб/сек каждому индивидуально также 512 кб/сек и 256 кб/сек можно ли так сделать? А если можно то каким способом лучше сделать. За ранее благодарен за помощь

 ,

itx ()

сетевой алиас

Форум — Admin

Подскажите, где хранится информация о сетевых алиасах. Свойства других интерфейсов можно прочитать в /sys/class/net/<iface>. А алиасы как-то особняком.

Конкретно сейчас, ищу как найти parent для алиаса.

 , ,

barberry ()

Как ограничить скорость трафика с конкретным ip адресом?

Форум — Admin

говорят вроде как для этого хорошо подходит IPtables или shorewall. Но мануалы какие-то большие и что-то всё сложно, нигде не могу просто найти как конкретно выглядит команда, чтобы ограничить трафик например по ip и всё.
Мне нужно ограничить исходящий трафик с браузера в CentOS, но и ограничение для одного ip пока сойдет.

 , , , ,

AlexLichi ()

Контроль изменений на различных Серверах

Форум — Admin

Коллеги, встала задача контроля изменений конфигурации на всех серверах . При этом наблюдаеться исторический зоопарк - FreeBSD ,Windows 2008+ и подавляющие большинство на Gnu/Linux.

Сейчас реализован контроль изменений на сетевых устройствах( его понятно в разы легче реализовать ) и на уровне исходного кода (тоже в git) + скриптом . При этом каким ПРАВИЛЬНЫМ образом реализовать на серверах учет двух вещей:

  • Чтобы было в конфигах изменено ( /etc/* , /usr/local/* , /opt/* , под виндовс вообще не понятно)
  • И кто сделал изменение ( тут засада в том , что админы подымаються до рута командой sudo и непонятно точно кто сделал изменения )

 ,

pinachet ()

Вышла новая версия офисного пакета ONLYOFFICE

Новости — Open Source
Группа Open Source

ONLYOFFICE — облачный офис для совместной работы — открыл исходные коды последней версии серверного решения.

Новая версия редакторов документов ONLYOFFICE 4.0 (Document Server):

  • комментирование;
  • встроенный чат;
  • быстрое совместное редактирование как в Google Docs;
  • режим рецензирования;
  • отслеживание изменений;
  • история версий;
  • текст-арты;
  • именованные диапазоны;
  • язык формул;
  • региональные параметры;
  • создание, удаление и редактирование стилей форматирования.

Работа редакторов при открытии и конвертации ускорена. Код серверной части перенесен с ASP.NET на Node.js.

( читать дальше... )

>>> Подробности

 , , ,

hellonadya ()

iptables NAT logging

Форум — Admin

Здравствуйте!

Трубуется записать все соединения клиентов на OpenVPN сервере:

iptables -t nat -A PREROUTING -p tcp -s 10.0.0.0/8 --syn -j LOG --log-prefix «TCPLOG » --log-level debug

iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE

При этом в логе остаются записи след вида:

Jul 9 14:22:38 56664 kernel: [1637258.474989] TCPLOG IN=tun0 OUT= MAC= SRC=10.8.0.46 DST=79.183.194.195 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=29097 DF PROTO=TCP SPT=14839 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0

Мне же надо сохранить внешний IP и порт, который использовал сервер для соединения (т.е. то что выбрал NAT при выполнении MASQUERADE).

Следующие правила не помогли:

iptables -t filter -A OUTPUT -p tcp -s 10.0.0.0/8 --syn -j LOG --log-prefix «TCPLO2 » --log-level debug

iptables -t nat -A OUTPUT -p tcp -s 10.0.0.0/8 --syn -j LOG --log-prefix «TCPLO3 » --log-level debug

ОС: Debian 6

 , , ,

unlimited ()

Посоветуйте мониторилку действий пользователей в терминале.

Форум — Admin

Задача - сохранять действия пользователей в терминале. Нужно видеть в логе введенную пользователем команду целиком, в идеале с выхлопом от команды.

Попробовал:
auditd - разгребать что там вводил пользователь очень неудобно.
snoopy - что-то непонятное, не всё и не всегда логируется.
screen - несколько корявенько для такой задачи.
logkeys - не работает абсолютно.
script - пишет в лог только после нажатия ctrl+d.

 

Deleted ()

Поясните за выделение CPU Proxmox

Форум — Admin

Как оптимальней всего раздать виртуалкам процессоры (sockets, cores), если сервак односокетный/двухсокетный ?

 

Deleted ()

Кластер и виртуализация

Форум — Admin

Всем здравствуйте. Есть 2 одинаковых сервера. Нужно собрать кластер (как я понял кластер балансировки, т.е. нагрузка должна распределяться на 2 сервера) из них и поставить систему виртуализации. Что можете подсказать? может направление подскажите куда копать?

 ,

tutochkin ()