在 EC2 中管理 LXC 容器

在 EC2 中管理 LXC 容器

我有一个在 VPC 内运行的 EC2 实例。我需要在该实例中启动的 LXC 容器内运行一项服务,并使该服务可供外界使用。

因此,我创建了一个网桥(br0),并使用以下/etc/network/interfaces文件获取10.0.3.1与该网桥关联的 EC2()提供的 IP 地址:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet manual

auto br0
iface br0 inet dhcp
  netmask 255.255.0.0
  bridge_ports eth1
  bridge_stp off
  bridge_maxwait 0
  post-up brctl setfd br0 0

这是我从中获得的信息ifconfig

br0       Link encap:Ethernet  HWaddr 16:2b:ae:07:29:82  
          inet addr:10.0.3.1  Bcast:10.0.255.255  Mask:255.255.0.0
          inet6 addr: fe80::142b:aeff:fe07:2982/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1026 (1.0 KB)  TX bytes:1238 (1.2 KB)

eth0      Link encap:Ethernet  HWaddr 16:2b:ae:0a:db:b6  
          inet addr:10.0.67.62  Bcast:10.0.255.255  Mask:255.255.0.0
          inet6 addr: fe80::142b:aeff:fe0a:dbb6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:229 errors:0 dropped:0 overruns:0 frame:0
          TX packets:217 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25889 (25.8 KB)  TX bytes:23330 (23.3 KB)
          Interrupt:27 

eth1      Link encap:Ethernet  HWaddr 16:2b:ae:07:29:82  
          inet6 addr: fe80::142b:aeff:fe07:2982/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1222 (1.2 KB)  TX bytes:1798 (1.7 KB)
          Interrupt:28 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

这里的问题是我无法访问具有 IP 地址的 LXC 容器10.0.3.2

user@ip-10-0-67-62:~$ ping 10.0.3.2
PING 10.0.3.2 (10.0.3.2) 56(84) bytes of data.
From 10.0.67.62 icmp_seq=1 Destination Host Unreachable
...

如能得到有关如何调试此问题的任何提示或建议,我们将非常感激。

更新:输出来自ip route

$ ip route
default via 10.0.0.1 dev eth0  metric 100 
10.0.0.0/16 dev eth0  proto kernel  scope link  src 10.0.67.62
10.0.0.0/16 dev br0  proto kernel  scope link  src 10.0.3.1

更新:输出来自iptables -nvL

$ iptables -nvL
Chain INPUT (policy DROP 13 packets, 416 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 2195  129K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
88029  130M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 26680 packets, 1669K bytes)
 pkts bytes target     prot opt in     out     source               destination   

答案1

该桥将 lxc 容器与服务器主机连接起来,但没有网络输出。

因此,您可以使用 iptables 或隧道将流量从 eth0 转发到 br0。

您显示的 ip 是主机,客户系统具有您必须配置的其他 ip,容器是其他主机,具有与虚拟专用网络连接的其他网络接口。

internet <------>eth0 (主机) br0 <---虚拟专用网络 >---< eth0(容器)

相关内容