LINUX.ORG.RU

Сообщения SeecH

 

Iptables лимит на отправку пакетов для каждого хоста

Форум — Admin

Всех приветствую! Прошу помощи с настройкой iptables. Задача: нужно ограничить количество отправляемых сервером пакетов в секунду для каждого уникального хоста (ип:порт). В сетевом администрировании новичок, поэтому прошу сильно не ругать!

После небольшого изучения iptables удалось сделать следующее:

iptables -A OUTPUT -m limit --limit 25/s --limit-burst 25 -j ACCEPT
iptables -A OUTPUT -j DROP

Работает все это дело правильно, ПО не может отправлять больше 25 пакетов в секунду (протокол значения не имеет). Однако, этот лимит является «общим», т.е. если ПО работает с, к примеру, 10 юзерами, то учитывается общее кол-во отправляемых пакетов всем юзерам, а не пакеты индивидуально каждого юзера. Нужно сделать так, чтоб сервер индивидуально каждому юзеру (уникальный айпи:порт) отправлял не более 25 пакетов в секунду. Буду очень признателен, если поможете разобраться! Спасибо за внимание!

P.S. Все это настраиваю в Docker-контейнере, в котором запущено лишь 1 ПО с 1 открытым портом, поэтому правила iptables глобальные в плане протоколов.

 , , ,

SeecH
()

Проблемы с настройкой сети для LXC

Форум — Admin

Всех приветствую! Имеется сервер (Debian 9), созданный на нём LXC-контейнер, 2 белых адреса. Уже вторые сутки все никак не могу настроить сеть в контейнере, нужно сделать так, чтоб второй адрес принадлежал контейнеру (static адрес). Что у меня получается в итоге: оба адреса принадлежат хост-машине, в контейнере нет инета, хотя все настроено по мануалам из сети. Прилагаю свои конфиги: /etc/network/interfaces

auto lo
	iface lo inet loopback
auto eth0
	iface eth0 inet manual
auto eth0:0
		 iface eth0:0 inet static
			address 145.239.227.60
			netmask 255.255.255.255
auto vmbr0
	 iface vmbr0 inet static
			bridge_ports eth0
			bridge_stp off
			bridge_fd 0
			address 54.36.18.234
			broadcast 54.36.18.255
			netmask 255.255.255.0
			gateway 54.36.18.254

Конфиг контейнера (/var/lib/lxc/test/config)
lxc.include = /usr/share/lxc/config/debian.common.conf
lxc.arch = linux64
lxc.rootfs = /var/lib/lxc/test/rootfs
lxc.rootfs.backend = dir
lxc.utsname = test
lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth1
lxc.network.link = vmbr0
lxc.network.veth.pair = veth-01
lxc.network.ipv4 = 145.239.227.60
lxc.network.hwaddr = 52:54:00:a6:cf:12
lxc.network.ipv4.gateway = 145.239.227.255
Вывод команды ifconfig (хост-сервер)
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 52:54:00:a6:cf:12  txqueuelen 1000  (Ethernet)
        RX packets 16474  bytes 1022626 (998.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1502  bytes 147956 (144.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 145.239.227.60  netmask 255.255.255.255  broadcast 145.239.227.60
        ether 52:54:00:a6:cf:12  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 51  bytes 8315 (8.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 51  bytes 8315 (8.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth-01: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc8c:10ff:feb9:a1f7  prefixlen 64  scopeid 0x20<link>
        ether fe:8c:10:b9:a1:f7  txqueuelen 1000  (Ethernet)
        RX packets 8  bytes 558 (558.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10266  bytes 616224 (601.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vmbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 54.36.18.234  netmask 255.255.255.0  broadcast 54.36.18.255
        inet6 fe80::5054:ff:fea6:cf12  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:a6:cf:12  txqueuelen 1000  (Ethernet)
        RX packets 16346  bytes 786104 (767.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1495  bytes 147500 (144.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Вывод ifconfig (контейнер)
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 145.239.227.60  netmask 255.0.0.0  broadcast 145.255.255.255
        inet6 fe80::5054:ff:fea6:cf12  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:a6:cf:12  txqueuelen 1000  (Ethernet)
        RX packets 11066  bytes 664224 (648.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 558 (558.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 3  bytes 198 (198.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 198 (198.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Прошу помощи! Буду очень признателен, если поможете разобраться. Всем добра!

 , , ,

SeecH
()

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

Форум — Admin

Всех приветствую! Необходимо сделать так, чтобы при обращении на адрес 1.test.ru:12345 трафик шел на сервер 12.34.56.78:47389, при обращении на 2.test.ru:12345 трафик шел на сервер 56.56.56.56:56745 и т.д. В общем, чтоб при обращении на *.test.ru (обязательно по 12345 порту) происходила проверка поддомена, по которому обратились, далее в зависимости от поддомена трафик уходит на другой сервер. Подсказали, что сделать это можно через DNAT, но я к успеху пока не пришел, поэтому хочу попросить помощи у Вас!

P.S. Используется для игровых серверов, которые работают через UDP

 , , ,

SeecH
()

Настройка sysctl.conf (проблема с UDP)

Форум — Admin

Всех приветствую, форумчане! Имеется нода, на ней поднято 3 контейнера OpenVZ,у каждого свой белый IP, доступ в сеть сделан посредством VENET. В каждом контейнере на одном и том же порте крутится игровой сервер, работает через UDP протокол. Суть в том, что если зайти на сервер первого контейнера, затем после него на сервер второго, а потом на третий, то подключение к последнему не осуществится. Спустя 30 секунд попыток - войдет на третий. Если войти на 3, затем на 1, то на 2 уже будет недоступен также около 30 секунд. В tcpdump это выглядит так:

root@droms1:~# tcpdump dst host shadow.mcpehost.ru and port 33462 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes ^C 0 packets captured 13 packets received by filter 0 packets dropped by kernel

Где в качестве хоста указан последний по счету сервер, на который не удалось зайти. Сами пакеты в tcpdump «не идут», но железка их получает (13 пакетов фильтр захватил). Сначала думал на аппаратную защиту от атак, но в ДЦ убедили, что при срабатывании защиты вредоносные пакеты не доходят до самой ноды, т.е. в tcpdump бы их не было. Полагаю, что нужно перенастроить sysctl.conf на самой ноде, но какие именно параметры нужно подправить? Я уже пробовал гуглить, но подробного описания каждой переменной из sysctl я нигде не нашел.

 , , , ,

SeecH
()

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

Форум — Admin

Здравствуйте! Имеется нода под управлением Debian 7 amd64, поделена на 3 виртуалки OpenVZ. Если на каждой из виртуалок поднять игровой сервер с одинаковым портом (19191 например), то на той виртуалке, где сервер был запущен первый, все работает без проблем, а на 2 других виртуалках сервера недоступны - происходит отброс UDP пакетов. Если захватывать все это дело через tcpdump, то на первом сервере видны все пакеты, при остановке tcpdump внизу в статистике количество захваченных фильтром пакетов равно количеству обработанных, т.е. все как и полагается, а вот на 2 других в tcpdump не отображаются сами приходящие пакеты, при завершении tcpdump количество захваченных пакетов фильтром больше 0 (обычно 6-10 после 2 попыток входа), а обработанных 0. Все виртуалки работают через VENET. Прошу помощи в решении возникшей проблемы, думаю в сторону смены VENET на VETH. Также буду благодарен тому, кто объяснит - почему так происходит? Спасибо за внимание!

 , ,

SeecH
()

RSS подписка на новые темы