установите предел скорости передачи пакетов через iptables

Солярис в основном предполагает, что у и клиента и сервера есть тот же UIDs/GIDs для каждого пользователя. То, что, вероятно, происходит, - то, что Ваш 'read1' и 'read2' пользователи не существуют на сервере Соляриса, таким образом, запросы NFS происходят как NFS скоро пользователь. Существует два способа зафиксировать его.

Найдите числовой UID read1 и read2 пользователей, на хосте Linux, затем например, если бы read1 был UID 101, и read2 был UID 102, то Вы могли:

  1. Вы можете любой показанный/export/home/read1 и/export/home/read2 пользователей к их соответствующему UID, на сервере Соляриса, через chown -R 101 /export/home/read1 chown -R 102 /export/home/read2

  2. Или можно установить NFS скоро пользователь к тем UIDs для каждого пользователя и индивидуально совместно использовать каждый каталог.

    share -o rw -o anon=101 -d „Freigabe von /export/home“ /export/home/read1

    share -o rw -o anon=102 -d „Freigabe von /export/home“ /export/home/read2

Однако при использовании ZFS на Солярисе 11 который Вы, вероятно, можно совместно использовать их непосредственно в ZFS:

  1. Единственная доля для всех

    zfs set share=name=homedirs,path=/export/home,prot=nfs,sec=sys,rw rpool/export/home

  2. Отдельные доли

    zfs set share=name=read1-homedir,path=/export/home/read1,prot=nfs,sec=sys,rw rpool/export/home/read1

    zfs set share=name=read2-homedir,path=/export/home/read2,prot=nfs,sec=sys,rw rpool/export/home/read2

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

6
13.04.2017, 15:36
2 ответа

Установлено, что решение, которое вы нашли, было правильным:

iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT

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

iptables -A OUTPUT -j REJECT

Обязательно добавьте это правило после приема. Либо выполните их в этом порядке, либо используйте , а не вместо - для приема.

Также в зависимости от приложения это может убить соединение. В этом случае попробуйте с падением вместо отклонения или попробовать с другим - отклонить - с (по умолчанию ICMP-порт - недостигаемый).

Я только что протестировал с Telnet на сервере DVR, и он не убил соединения. Конечно, поскольку новое соединение представляет собой выходной пакет, пытаясь повторно подключиться сразу после удара ограничения сберега, если вы используете отклонение.

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

10 пакетов в секунду безумно.

5
27.01.2020, 20:28

Защита от наводнения:

# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

Сканер скрытого порта:

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Ping of Death:

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
0
27.01.2020, 20:28

Теги

Похожие вопросы