solaris 10 как найти информацию о клиенте?

Как я могу узнать, какие клиенты монтируют общие ресурсы NFS с сервера Solaris 10 NFS? я пробовал использовать dfshare на сервере, который ничего не возвращает.

    dfshares -F nfs

ура порт 50006 принимает пакеты со скоростью 1/11 передаваемой скорости, например 1 пакет каждые 55 секунд - остальные 10 из 11 пакетов предположительно отбрасываются.

Порт 50006 прослушивается сценарием socat:

socat UDP-RECVFROM:50006,fork "EXEC:handler-script"

Обработчик сценарий возвращается в течение 1 секунды, и при изменении сценария на бездействие не наблюдается никаких изменений в скорости получения.

Одно из двух неисправных устройств самопроизвольно исправилось, и порт 50006 начал принимать пакеты со скоростью передачи.

Оставшееся устройство по-прежнему принимает пакеты только с 1/11 скорости передачи, хотя tcpdump показывает исходные пакеты прибытие на полной скорости.

$ sudo iptables -L -t mangle
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
TEE        udp  --  192.168.12.0/24      anywhere             udp dpt:50007 TEE gw:10.0.0.1

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       udp  --  192.168.12.0/24      anywhere             udp dpt:50007 to:192.168.12.1:50006

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  192.168.12.0/24      anywhere            

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

$ sudo tcpdump -i eth2 port 50007

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
03:56:41.851719 IP 192.168.12.66.4097 > example.com.50007: UDP, length 216
03:56:41.851996 IP 10.0.0.8.4097 > example.com.50007: UDP, length 216`

ЦП на неисправном узле выглядит штатным, и почти наверняка нет различий в конфигурации между функционирующим и неисправным узлами. Однако узлы развернуты в разных локальных сетях.

Итак, возникает вопрос: что могло быть причиной того, что неисправный узел отбрасывал 10 из каждых 11 пакетов? Второй вопрос: почему tcpdump по-разному ведет себя на этом узле и показывает замаскированный пакет, а также исходный пакет.

Есть ли предложения о том, как я могу отладить эту проблему?

0
задан 3 December 2015 в 06:19
1 ответ

Хорошо, оказывается, что объяснение было предоставлено с помощью этого вопроса и ответа:

Почему iptables не отбрасывает пакеты?

Оказывается, эта установка имела особенно хорошее соединение Wi-Fi между нисходящим устройством и маршрутизатором, и запись ip_conntrack была установлена ​​до того, как было установлено правило DNAT, что привело к обстоятельствам, которые применялись в упомянутых вопросах и ответах.

Мне удалось подтвердить это, отключив точку доступа на маршрутизаторе на 185 секунд (на 5 секунд дольше, чем тайм-аут входа conntrack по умолчанию), а затем снова включив его. Как только я это сделал, пакеты пошли с ожидаемой скоростью.

Кроме того, неожиданное дублирование пакетов, видимое в трассировке tcpdump, исчезло, как только эта проблема была решена.

0
ответ дан 5 December 2019 в 11:24

Теги

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