Craig Miller has been using LXD for quite a while and he happens to be an extremely knowledgeable
Network engineer with especially significant expertise in IPv6.
LXD also support MACVLAN type of interface with eliminates the complexity of getting your container connected to a LAN, and then the Internet. However, there is a limitation, in that in the default config, the Linux Container can talk to the internet, but it can’t talk to the host it is residing on.
What lxd_add_macvlan_host.sh does
lxd_add_macvlan_host.sh` script solves this problem by creating an additional MACVLAN interface on the host, and adjusting routes so that the new interface is preferred.
Yeah, I posted that because the script makes it much easier & less error prone for some LXD users to use rather than doing each step manually.
Also, I liked that he added several command line options to the script that are useful:
$ ./lxd_add_macvlan_host.sh -h
./lxd_add_macvlan_host.sh - creates MACVLAN interface on LXD Host Example: $ ./lxd_add_macvlan_host.sh -a
-a Add MACVLAN interface
-4 Add MACVLAN IPv4 interface
-f Fix MACVLAN IPv4 route
-r Remove MACVLAN interface (see note below)
-i use this interface e.g. eth0
By Craig Miller - Version: 1.0*
Note:
Occasionally, the container may lose IPv4 connectivity to the LXD Host. For some reason, the preferred route to the MACVLAN network (inside the LXD Host) is removed.
In version 1.0 of the script was, added the parameter -f - to fix the IPv4 route.
After adding the host-shim interface with ./lxd_add_macvlan_host.sh -4, *it is possible at a later time to fix the IPv4 route with ./lxd_add_macvlan_host.sh -f. It is no longer necessary toremove and re-add the host-shiminterface.
Also… this occurs only with IPv4, IPv6 does not have this problem.