名前空間で実行されているdnsmasqは、名前空間内でクエリを取得できません。

名前空間で実行されているdnsmasqは、名前空間内でクエリを取得できません。

デフォルト値を設定dnsmasq.confし、デフォルトでは以下を除いて変更しませんでした。

listen-address=192.168.42.2
interface=veth1 # Also tried without
server=8.8.8.8

私の/etc/hosts外観は次のとおりです。

127.0.0.1    test.testing.com

その後、次の名前空間を作成しました。

# ip netns add spacename
# ip link add veth0 type veth peer name veth1
# ip link set veth1 netns spacename
# ip addr add 192.168.42.1/24 dev veth0
# ip link set dev veth0 up
# ip netns exec spacename ip addr add 192.168.42.2/24 dev veth1
# ip netns exec spacename ip link set dev veth1 up
# ip netns exec spacename ip route add default via 192.168.42.1
# iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o eno1 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward
# ip netns exec spacename /bin/bash
(namespace)# echo 1 > /proc/sys/net/ipv4/ip_forward

これらすべてが素敵で素敵です。
以下で確認できます。

[root@arch Torxed]# ip netns list
spacename (id: 0)

ここから状況が変になります

名前空間内に永続シェルを作成し、dnsmasqを起動します。

# ip netns spacename /bin/bash
(namespace)# /usr/bin/dnsmasq -k --enable-dbus --user=dnsmasq --pid-file --log-queries --no-daemon

すべてがうまく始まりました。次のコマンドを実行してこれを確認しました。

(namespace)# ss -lun
State                Recv-Q                Send-Q                                Local Address:Port                                 Peer Address:Port                
UNCONN               0                     0                                           0.0.0.0:53                                        0.0.0.0:*                   
UNCONN               0                     0                                              [::]:53                                           [::]:* 

「外部」の観点からは、ポートリスニングはありません。予想通り。しかし、私がするたびに:

(namespace)# dig test.testing.com @192.168.42.2

何もしません。しかし、私がするとき

# dig test.testing.com @192.168.42.2
;test.testing.com.               IN      A

;; ANSWER SECTION:
test.testing.com.        0       IN      A       127.0.0.1

;; Query time: 0 msec
;; SERVER: 192.168.42.2#53(192.168.42.2)
;; WHEN: Sat Nov 24 19:58:37 CET 2018
;; MSG SIZE  rcvd: 60

名前空間の外で動作します。
インターネットにはなぜ緑の地球があるのでしょうか?dnsmasqを実行している名前空間内で情報を掘り下げることはできませんか?

iptablesをもう一度確認しましたが、名前空間の内側と外側の両方が疑わしく見えません。

[root@arch Torxed]# iptables -L
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

名前空間内でも同じように見えます。
また、私の名前空間IPをpingすることはできません。

(namespace)# ping 192.168.42.2 -c 1
PING 192.168.42.2 (192.168.42.2) 56(84) bytes of data.

--- 192.168.42.2 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

名前空間のもう一方の端(たとえば、「デフォルトドメイン」の受信者)に対するpingは有効です。

(namespace)# ping 192.168.42.1 -c 1
PING 192.168.42.1 (192.168.42.1) 56(84) bytes of data.
64 bytes from 192.168.42.1: icmp_seq=1 ttl=64 time=0.024 ms

--- 192.168.42.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms

これは、ネームスペースが独自のネームスペースインターフェイスIPをpingできないことを意味します。

tcpdump -vv -n -i veth1名前空間内でも試しました。割り当てられたIPにpingしようとすると、情報は提供されませんveth1。しかし、ping veth0(192.168.42.1)を行うと、問題なくパケットを受け取ります。

私は次のことを確認しました:

これらのどれも実際にこのようなことが起こる理由や回避策を説明していません。

チェックリスト

  • 他の形式の接続はありません。
  • iptables:ACCEPT all -- anywhere anywhere すべてのテーブル、チェーン、およびポリシーに適用されます。 DROPルールはありません。
  • 他のファイアウォールはインストールまたはアクティブ化されません。
  • すべてのインターフェイスが動作しています(再確認)。
  • 名前空間を行き来するパスがあります(ルーティングテーブルが良く見えます)。
  • Ping外部->~へアドレスエンジニアリング
  • Ping~へ->外部アドレスエンジニアリング
  • Ping~へ->~へするいいえ働く
  • Ping外部->外部働く

私はどこで間違っていますか?

ベストアンサー1

答えを見ると、とても奇妙です。
名前空間デバイスがオフになっていることを除いて、loopbackすべてが正しいです。

すべてがローカルにルーティングされるため、loこのインターフェイスも機能する必要があります。

# ip netns spacename ip link set up dev lo
# ip netns spacename ip addr add 127.0.0.1/8 dev lo

問題を解決する。TJ-irc.freenoce.net/#ubuntuに感謝します。

00:51 < TJ-> DoXiD: "ip netns spacename ip link set up dev lo"  :D --- it was down!
00:52 < TJ-> DoXiD: I knew it had something to do with the way localhost is handled, but I didn't look at the basics
00:53 < TJ-> DoXiD: anything routed inside the host uses lo

おすすめ記事