Linux
在 LXC 容器上設置公共 IP 地址
誰能告訴我如何為每個 LXC 容器設置網路介面,以便每個容器都有自己的專用 IP 地址?
這是
/etc/network/interfaces
我的主機節點上的文件的樣子:# Generated by SolusVM auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 160.201.10.167 gateway 160.201.8.1 netmask 255.255.252.0 dns-nameservers 8.8.8.8 8.8.4.4 auto eth0:0 iface eth0:0 inet static address 160.201.8.32 gateway 160.201.8.1 netmask 255.255.252.0 dns-nameservers 8.8.8.8 8.8.4.4 auto eth0:1 iface eth0:1 inet static address 160.201.8.36 gateway 160.201.8.1 netmask 255.255.252.0 dns-nameservers 8.8.8.8 8.8.4.4 auto eth0:2 iface eth0:2 inet static address 160.201.8.37 gateway 160.201.8.1 netmask 255.255.252.0 dns-nameservers 8.8.8.8 8.8.4.4
這是我的 LXC 容器配置文件的樣子:
lxc.include = /usr/share/lxc/config/ubuntu.common.conf lxc.rootfs = /var/lib/lxc/francis/rootfs lxc.mount = /var/lib/lxc/francis/fstab lxc.utsname = francis lxc.arch = amd64 lxc.network.type = veth lxc.network.flags = up lxc.network.link = eth0 lxc.network.hwaddr = 00:16:3e:de:53:6f lxc.network.ipv4 = 160.201.8.32 lxc.cgroup.memory.limit_in_bytes = 256M lxc.cgroup.memory.memsw.limit_in_bytes = 256M
誰能告訴我如何給容器“francis”它自己的公共IP地址,
160.201.8.32
例如?我的主機節點正在執行 Ubuntu 14.04 伺服器。
這取決於你真正想要做什麼。
如果你只是想讓你的容器通過它的 IP 完全自治,或者只是讓它可以被特定埠上的特定協議訪問。
對於第二種情況,您只需要在 eth0 上啟用路由並設置 NAT 規則,以 NAT/unNAT 特定埠和協議來往/來自 LXC 網橋上的容器私有 IP。
對於第一種情況,您需要添加另一個網橋,
proxy_arp
在 eth0 和新網橋介面上啟用,並直接將公共 IP 地址分配給容器 veth 介面,而不在 eth0 上使用任何 IP 別名。然後設置 iptables 規則以避免將不必要的內容暴露給您的網路。