名前空間でmacvlanのDNSを正しく設定するにはどうすればよいですか(IP pingは機能しますがURL pingは機能しません)。

名前空間でmacvlanのDNSを正しく設定するにはどうすればよいですか(IP pingは機能しますがURL pingは機能しません)。

サーバーの名前空間にmacvlanを設定しました。デフォルトの名前空間とmacvlanの名前空間だけでなく、LAN上の他のクライアントのmacvlanの名前空間にもpingできます。

しかし、DNSは機能しません。他に何を構成する必要がありますか?

pi@testpi:~ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:98:70:4b brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.222/24 brd 192.168.100.255 scope global dynamic noprefixroute eth0
       valid_lft 84768sec preferred_lft 73968sec
    inet6 fe80::247e:fd3c:36d7:68f5/64 scope link 
       valid_lft forever preferred_lft forever
4: hostmacvlanben0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:27:eb:98:70:4c brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.222/24 scope global noprefixroute hostmacvlanben0
       valid_lft forever preferred_lft forever
    inet 192.168.100.174/24 brd 192.168.100.255 scope global secondary dynamic noprefixroute hostmacvlanben0
       valid_lft 84792sec preferred_lft 73992sec
    inet6 fe80::8d5f:20a4:abba:2d1c/64 scope link 
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe98:704c/64 scope link 
       valid_lft forever preferred_lft forever


pi@testpi:~ $ ip r
default via 192.168.100.1 dev eth0 proto dhcp src 192.168.100.222 metric 202 
default via 192.168.100.1 dev hostmacvlanben0 proto dhcp src 192.168.100.174 metric 204 
192.168.100.0/24 dev eth0 proto dhcp scope link src 192.168.100.222 metric 202 
192.168.100.0/24 dev hostmacvlanben0 proto dhcp scope link src 192.168.100.174 metric 204 
192.168.100.224 dev hostmacvlanben0 scope link 

名前空間出力nsben1

pi@testpi:~ $ sudo ip netns exec nsben1 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: macvlanclient1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:27:eb:98:70:4d brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.100.224/24 scope global macvlanclient1
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe98:704d/64 scope link 
       valid_lft forever preferred_lft forever


pi@testpi:~ $ sudo ip netns exec nsben1 ip r
default via 192.168.100.1 dev macvlanclient1 
192.168.100.0/24 dev macvlanclient1 proto kernel scope link src 192.168.100.224 

pingはIP有効ですが、pingはURL無効です。

pi@testpi:~ $ sudo ip netns exec nsben1 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=111 time=23.0 ms
^[[A64 bytes from 8.8.8.8: icmp_seq=2 ttl=111 time=24.3 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 23.003/23.667/24.332/0.682 ms


pi@testpi:~ $ sudo ip netns exec nsben1 ping google.com
ping: google.com: Temporary failure in name resolution

tracerouteヒントは提供されません。

pi@testpi:~ $ sudo ip netns exec nsben1 traceroute google.com
google.com: Temporary failure in name resolution
Cannot handle "host" cmdline arg `google.com' on position 1 (argc 1)

/etc/resolv.confのもの:

pi@testpi:~ $ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.100.1

192.168.100.1私のプライベートLANのエッジルーターです。その後、ISPからケーブルモデムも入手しました。


確認してくださいtcpdumpmacvlan名前空間のIPをnsben1確認し、名前空間内でpingを実行して8.8.8.8回答を得ます。

pi@testpi:~ $ sudo tcpdump --interface eth0 host 192.168.100.224
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:43:45.417310 IP 192.168.100.224 > dns.google: ICMP echo request, id 20611, seq 1, length 64
15:43:45.440190 IP dns.google > 192.168.100.224: ICMP echo reply, id 20611, seq 1, length 64
15:43:46.418707 IP 192.168.100.224 > dns.google: ICMP echo request, id 20611, seq 2, length 64
15:43:46.440392 IP dns.google > 192.168.100.224: ICMP echo reply, id 20611, seq 2, length 64

そしてpingにはwww.google.com応答がありません。8.8.1.1私が理解していないPingは次のとおりです(8.8.1.1直接Pingをしても答えは得られませんでした)。

15:44:13.988596 IP 192.168.100.224.45822 > 8.8.1.1.domain: 22489+ A? google.com. (28)
15:44:13.989314 IP 192.168.100.224.45822 > 8.8.1.1.domain: 25561+ AAAA? google.com. (28)
15:44:18.994541 IP 192.168.100.224.45822 > 8.8.1.1.domain: 22489+ A? google.com. (28)
15:44:18.994660 IP 192.168.100.224.45822 > 8.8.1.1.domain: 25561+ AAAA? google.com. (28)

編集を使用しました。/etc/dhcpcd.confネームサーバーをからに変更し192.168.100.18.8.8.8サービスを再起動してください。これでresolv.conf表示されますが、nameserver 8.8.8.8動作はまだ同じです。

答え1

特別な設定は必要ありません。

/etc/resolv.conf通常、ネームスペースに提供されるネームサーバーは、追加のdefaultネームスペース()でも使用する必要がありますnsben1


私の場合、これはうまくいきません。

最初はLANルーターをネームサーバーとして使用しましたが、8.8.8.8ルーター側のDNSに問題があるかどうかをテストするために変更しました。

これが私の行動に変化を与えたわけではないので、もう少し調査をしてsudo ip netns exec nsben1 cat /etc/resolv.conf結果を見つけましたnameserver 8.8.1.1

これは間違っています。答えもping 8.8.1.1与えられませんでした。

nsben1私はこれが同じだと思ったので、以前は名前空間でこれを確認しませんでした。/etc/resolv.confRaspberryPi OSの場合は、/etc/dhcpcd.conf行を使用して編集して変更できますstatic domain_name_servers=

再起動後、名前空間が表示され、8.8.8.8DNSが正常に動作します。

関連情報