Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skoef/crapvd
Custom Router Apvertisment Daemon
https://github.com/skoef/crapvd
Last synced: about 1 month ago
JSON representation
Custom Router Apvertisment Daemon
- Host: GitHub
- URL: https://github.com/skoef/crapvd
- Owner: skoef
- Created: 2014-08-21T13:11:45.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-09-02T14:31:17.000Z (over 8 years ago)
- Last Synced: 2023-03-11T13:03:09.431Z (almost 2 years ago)
- Language: Python
- Size: 20.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Custom Router APVertisment Daemon
Send custom, directed IPv6 router advertisements on any network.
## Background
At my current employer, we run a lot of customer virtual machines in shared VLANs.
Each of these customers gets an IPv6 /64, but still have to use a prefixlen of 48 since
the router has a /48 gateway address. We know this is not how it should be implemented,
but resist to the fact of configuring gateways or next-hops for each /64. So this is where
we came up with:- generate lists of mac address and prefix combinations per customer
- listen for router solicitation from any of these link-local addresses
- reply with a matching router advertisements, forging the given link-local address and MAC
address of the router itself
- send periodic router advertisements anyhow, with or without router solicitation## Usage
Given the following YAML based config file:
```YAML
customer1:
macaddr: '01:23:45:67:89:ab'
prefix: '2a01:f000:f000:f000::/64'
````crapvd` will periodically send router advertisements to customer1 for prefix `2a01:f000:f000:f000::/64`, as well as respond to router solicitations from `01:23:45:67:89:ab`.
By default, `crapvd` will listen to router advertisements from the actual router and then uses the IPv6 link-local and MAC address found in there to send more specific router advertisements to each client. For information how to override these, and other available settings, refer to the example config file.
## Dependencies
```crapvd``` depends on [scapy](http://www.secdev.org/projects/scapy/ "Scapy") and [pyyaml](http://pyyaml.org/ "PyYAML")