«Net.c: 577: сбой sendmsg (): операция не разрешена» в выводе dig

8

Я использую версию Bind 9.10.2 на компьютере CentOS 6.6. При запуске команды dig, я получаю " net.c:577: sendmsg() failed: Operation not permitted"уведомление".

Утилита dig дает мне ответ, но сверху показывает это уведомление.

$dig nkn.in +short   
**net.c:577: sendmsg() failed: Operation not permitted**  
164.100.129.98

System Information :-  
cat /etc/*-release   
CentOS release 6.6 (Final)   
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch    
CentOS release 6.6 (Final)   
CentOS release 6.6 (Final)

Может кто-нибудь, пожалуйста, помогите мне, почему я получаю это уведомление?

Набор правил брандмауэра IPv6: -

*filter  
:INPUT DROP [0:0]  
:FORWARD DROP [0:0]  
:OUTPUT DROP [0:0]  
:LOGGING - [0:0]  
-A INPUT -i lo -j ACCEPT  
-A INPUT -p icmpv6 -j ACCEPT   
-A INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT  
-A INPUT -p udp -m udp --dport 631 -j ACCEPT  
-A INPUT -p tcp -m tcp --dport 631 -j ACCEPT  
-A INPUT -p udp -m udp --dport 53 -j ACCEPT  
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT  
-A OUTPUT -p icmpv6 --icmpv6-type echo-reply -j ACCEPT  
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
-A INPUT -m udp -p udp --sport 1812 -j ACCEPT  
-A INPUT -m udp -p udp --sport 1813 -j ACCEPT 
-A INPUT -s fe80::/64 -j ACCEPT  
-A INPUT -s ff02::/64 -j ACCEPT  
-A INPUT -j LOG --log-prefix "IP6Tables:INPUT " --log-level 7  
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT  
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT  
-A OUTPUT -p icmpv6 -j ACCEPT  
-A OUTPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT  
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
-A OUTPUT -d 2001:db8::/32 -j ACCEPT  
-A OUTPUT -d fe80::/64 -j ACCEPT  
-A OUTPUT -d ff02::/64 -j ACCEPT  
-A OUTPUT -j LOG --log-prefix "IP6Tables:OUTPUT " --log-level 7  
-A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IP6Tables-Dropped: "  
-A LOGGING -j DROP  
COMMIT  
Гаурав Кансал
источник
Вероятно, проблема сети / маршрутизации. Вы можете связаться со всеми серверами имен в вашем /etc/resolv.conf?
Дженни Д
@JennyD ... Это DNS-сервер .. И имея запись вроде 'nameserver 127.0.0.1', и я могу разрешить домены.
Гаурав Кансал
1
@kayess ... Мой набор правил брандмауэра обновлен в разделе вопросов. Пожалуйста, помогите мне, что не так в этом.
Гаурав Кансал

Ответы:

8

В моем арке Linux это помогло добавить правило брандмауэра ip6tables, позволяющее отправлять локальные пакеты udp с localhost на localhost:

ip6tables -I OUTPUT 1 -p udp -s 0000:0000:0000:0000:0000:0000:0000:0001 \ 
-d 0000:0000:0000:0000:0000:0000:0000:0001 -j ACCEPT
t3o
источник
2
Любая идея, почему IP6tables генерировал предупреждение без вышеуказанного правила?
Гаурав Кансал
1
@GauravKansal, когда вы получаете IP-адрес с помощью такой функции, как getaddrinfo(), вы получаете список возможностей, а когда IPv6 включен, он включается в ответ, и они делают его первым сейчас. Это означает, что такие инструменты, как digи hostбудут сначала пытаться с адресом IPv6, затем он будет пытаться с IPv4.
Алексис
1

Вы пытались достичь этого места по любому другому протоколу? Нравится ICMP?

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

kayess
источник
Вы можете попробовать запустить ту же команду, что и root. Если это не помогло, вы можете попытаться временно отключить брандмауэр iptables, если он есть, и попытаться снова.
Басос
1
@basos Отключение firewally не является хорошей практикой устранения неполадок. Правильнее всего было бы посмотреть журналы брандмауэра, чтобы увидеть, попало ли в них что-нибудь.
Дженни Д
Я считаю, что этот ответ на что-то. Я видел это сообщение об ошибке, когда процесс пытается отправить пакет UDP, который блокируется iptablesправилом в OUTPUTцепочке.
Касперд
1
@ basos .... Да, я тоже пытался из-под рута .. Но та же проблема .... После отключения брандмауэра ipv6 я не получаю уведомление об отключении.
Гаурав Кансал
1
@kansal, можешь ли ты объяснить, что ты имеешь в виду под "уведомлением об отсутствии"?
Басос