Skip to content

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

License

Notifications You must be signed in to change notification settings

ahmetozer/ndppd

 
 

Repository files navigation

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 80.8%
  • C 11.3%
  • Roff 3.4%
  • Shell 3.3%
  • Other 1.2%