lxc容器中没有DNS

时间:2013-09-20 14:32:12

标签: networking dns lxc

我有一个在我的archlinux主机上运行的LXC debian容器。我尝试使用wlan0设置一个桥(lxc-bridge-nat),但我无法从我的容器 ping外部世界,除非我使用ip而不是域名ping。 / p>

我可以从主机和容器中的主机ping容器。

这里有一些信息:

主持人:ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether d4:be:d9:70:bd:e5 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether c4:85:08:b4:5c:e9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.42.121/24 brd 192.168.42.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::c685:8ff:feb4:5ce9/64 scope link 
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
4: lxc-bridge-nat: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether fe:b3:b7:a2:e1:31 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.1/24 brd 192.168.50.255 scope global lxc-bridge-nat
       valid_lft forever preferred_lft forever
    inet6 fe80::b0c8:d2ff:fe73:aa50/64 scope link 
       valid_lft forever preferred_lft forever

host:ip route

default via 192.168.42.1 dev wlan0  proto static 
192.168.42.0/24 dev wlan0  proto kernel  scope link  src 192.168.42.121  metric 9 
192.168.50.0/24 dev lxc-bridge-nat  proto kernel  scope link  src 192.168.50.1

容器:ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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
10: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:ff:aa:00:00:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.2/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::2ff:aaff:fe00:1/64 scope link 
       valid_lft forever preferred_lft forever

容器:ip route

default via 192.168.50.1 dev eth0 
192.168.50.0/24 dev eth0  proto kernel  scope link  src 192.168.50.2

容器:/etc/resolv.conf

nameserver 212.27.40.240
nameserver 212.27.40.241

2 个答案:

答案 0 :(得分:1)

主机名不能立即将点解析到DNS服务器,发布resolv.conf的内容在这里很有用;它们是你立即控制之外的唯一部分。

正如您所发现的,只是ping远程服务器并不总是有帮助 - 对它们运行nslookup表明它们是问题所在。 (作为一个对应点,由于ping本身的工作方式,ping的响应不足并不意味着服务器停机 - ping在防火墙级别上很容易阻塞。) < / p>

要解决您的DNS问题,您可以使用其他DNS服务器,例如hosted by Google。只需将resolv.conf更改为:

即可
nameserver 8.8.8.8
nameserver 8.8.4.4

答案 1 :(得分:1)

在/ etc / network / interfaces中添加8.8.8.8并不是一个好主意。您应该保持interfaces文件不变(恢复旧设置)并仅修改/etc/resolv.conf文件。

您已将容器IP设置为与其中一个Google DNS服务器相同的IP。

当然,ping会起作用,但是当您尝试解析DNS主机名时,容器会自行联系并生成错误。