ahmetozer / ndppd

Proxies neighbor discovery messages to your containers. Give a IPv6 connection to docker containers in Scaleway, VULTR, DigitalOcean instances.

Home Page:https://hub.docker.com/r/ahmetozer/ndppd

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NDPPD Container System

ndppd, or NDP Proxy Daemon, is a daemon that proxies neighbor discovery messages. It listens for neighbor solicitations on a specified interface and responds with neighbor advertisements - as described in RFC 4861 (section 7.2).

Container

You can easily run ndppd on your system with docker container.

You can just run container and system will be automatically detect your /64 prefix and your proxy interface.

docker run -it --restart always --cap-add NET_ADMIN --cap-add NET_RAW --network host ahmetozer/ndppd

If you want to set default proxy interface by manual, set PROXY_INTERFACE variable to your interface.
If the program is not detect right IPv6 subnet, please set also IPv6_SUBNET variable by manual. System normally runs static mode but if you define DOCKER_INTERFACE, system only forward requests to your defined docker interface.

#       Examples        #

#   Set Proxy Interface by manual
docker run -it --restart always --cap-add NET_ADMIN --cap-add NET_RAW --network host -e PROXY_INTERFACE="enp0s4" ahmetozer/ndppd

#   Set IPv6 subnet by manual
docker run -it --restart always --cap-add NET_ADMIN --cap-add NET_RAW --network host -e IPv6_SUBNET="2001:db8:900d:c0de::/64" ahmetozer/ndppd

#   Set IPv6 subnet and Proxy Interface by manual
docker run -it --restart always --cap-add NET_ADMIN --cap-add NET_RAW --network host -e PROXY_INTERFACE="enp0s4" -e IPv6_SUBNET="2001:db8:900d:c0de::/64" ahmetozer/ndppd

#   Set IPv6 subnet and Proxy Interface by manual and dedicated Docker interface
docker run -it --restart always --cap-add NET_ADMIN --cap-add NET_RAW --network host -e PROXY_INTERFACE="enp0s4" -e IPv6_SUBNET="2001:db8:900d:c0de::/64" -e DOCKER_INTERFACE="docker0" ahmetozer/ndppd

#   Dedicated Docker interface only
docker run -it --restart always --cap-add NET_ADMIN --cap-add NET_RAW --network host -e DOCKER_INTERFACE="docker0" ahmetozer/ndppd

Run in other container network

For any reason, you might be run under other container network. For this purpose, you can follow the below examples.

docker run -it --rm --privileged -e container_name=net-tools-service -v /proc/:/proc2/ -v /var/run/docker.sock:/var/run/docker.sock --name teredo ahmetozer/ndppd
# Please change container_name variable to your container id or name.
container_name="net-tools-service"

docker run -it --rm --privileged -v /proc/$(docker inspect -f '{{.State.Pid}}' $container_name)/ns/net:/var/run/netns/container ahmetozer/ndppd

If you don't want to run container for NDP proxy, here is bash solution dockeripv6.sh

About

Proxies neighbor discovery messages to your containers. Give a IPv6 connection to docker containers in Scaleway, VULTR, DigitalOcean instances.

https://hub.docker.com/r/ahmetozer/ndppd

License:GNU General Public License v3.0


Languages

Language:C++ 80.7%Language:C 11.3%Language:Roff 3.4%Language:Shell 3.3%Language:Makefile 0.8%Language:Dockerfile 0.4%