<div dir="ltr"><div class="gmail_default" style="font-size:small">I use plain LXC, not LXD. is  ipvlan supported?</div><div class="gmail_default" style="font-size:small">Also my containers have public IPs, same network as the host. This is why I cannot use NAT.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 20, 2020 at 12:02 AM Fajar A. Nugraha <<a href="mailto:list@fajar.net">list@fajar.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Mar 19, 2020 at 12:02 AM Saint Michael <<a href="mailto:venefax@gmail.com" target="_blank">venefax@gmail.com</a>> wrote:<br>
><br>
> The question is: how do we share the networking from the host to the containers, all of if. each container will use one IP, but they could see all the IPs in the host. This will solve the issue, since a single network interface,  single MAC address, can be associated with hundreds of IP addresses.<br>
<br>
If you mean "how can a container has it's own ip on the same network<br>
as the host, while also sharing the hosts's mac address", there are<br>
several ways.<br>
<br>
The most obvious one is nat. You NAT each host's IP address to<br>
corresponding vms.<br>
<br>
<br>
A new-ish (but somewhat cumbersome) method is to use ipvlan:<br>
<a href="https://lxd.readthedocs.io/en/latest/instances/#nictype-ipvlan" rel="noreferrer" target="_blank">https://lxd.readthedocs.io/en/latest/instances/#nictype-ipvlan</a><br>
<br>
e.g.:<br>
<br>
# lxc config show tiny<br>
...<br>
devices:<br>
  eth0:<br>
    ipv4.address: 10.0.3.101<br>
    name: eth0<br>
    nictype: ipvlan<br>
    parent: eth0<br>
    type: nic<br>
<br>
set /etc/resolv.conf on the container manually, and disable network<br>
interface setup inside the container. You'd end up with something like<br>
this inside the container:<br>
<br>
tiny:~# ip ad li eth0<br>
10: eth0@if65: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP,M-DOWN> mtu 1500<br>
qdisc noqueue state UNKNOWN qlen 1000<br>
...<br>
    inet <a href="http://10.0.3.101/32" rel="noreferrer" target="_blank">10.0.3.101/32</a> brd 255.255.255.255 scope global eth0<br>
...<br>
<br>
tiny:~# ip r<br>
default dev eth0<br>
<br>
<br>
Other servers on the network will see the container using the host's MAC<br>
<br>
# arp -n 10.0.3.162 <=== the host<br>
Address                  HWtype  HWaddress           Flags Mask            Iface<br>
10.0.3.162               ether   00:16:3e:77:1f:92   C                     eth0<br>
<br>
# arp -n 10.0.3.101 <=== the container<br>
Address                  HWtype  HWaddress           Flags Mask            Iface<br>
10.0.3.101               ether   00:16:3e:77:1f:92   C                     eth0<br>
<br>
<br>
if you use plain lxc instead of lxd, look for similar configuration.<br>
<br>
-- <br>
Fajar<br>
_______________________________________________<br>
lxc-users mailing list<br>
<a href="mailto:lxc-users@lists.linuxcontainers.org" target="_blank">lxc-users@lists.linuxcontainers.org</a><br>
<a href="http://lists.linuxcontainers.org/listinfo/lxc-users" rel="noreferrer" target="_blank">http://lists.linuxcontainers.org/listinfo/lxc-users</a><br>
</blockquote></div>