WIP
This commit is contained in:
57
README.md
57
README.md
@@ -4,8 +4,9 @@
|
||||
|
||||
* Peer: router: create process for managing the routing table
|
||||
* Peer: router: track mediators, enable / disable ...
|
||||
* Hub: track peer last-seen timestamp
|
||||
* Hub: track peer last-seen timestamp (?)
|
||||
* Peer: local peer discovery - part of RoutingProcessor
|
||||
* Peer: update hub w/ latest port on startup
|
||||
|
||||
## Principles
|
||||
|
||||
@@ -13,24 +14,21 @@
|
||||
* Simple setup: via setup link from the hub.
|
||||
* Each peer has full network state replicated from the hub.
|
||||
|
||||
## Design
|
||||
## Routing
|
||||
|
||||
* Append nonce to end of packet
|
||||
* Then it's readable whether signed or unsiged
|
||||
* Types of packets to send:
|
||||
* standard: encrypt and send
|
||||
* Forward via: encrypt, sign and send
|
||||
* Forward to: send
|
||||
* Type of packeting read from interface:
|
||||
* Forward to: check signature
|
||||
* Forwarded, standard
|
||||
* Routing is different for public vs non-public peers
|
||||
* Public: routes are initialized via incoming ping requests
|
||||
* NonPub: routes are initialized via incoming ping responses
|
||||
|
||||
Incoming from net:
|
||||
* Data for iface
|
||||
* Packet for forward
|
||||
* Packet for routingHandler
|
||||
* Incoming from iface:
|
||||
* Data for peer
|
||||
A non-public peer needs to maintain connections with every public peer.
|
||||
|
||||
* Sending:
|
||||
* Public: send to address
|
||||
* Non-public: send to a mediator
|
||||
|
||||
* Pings:
|
||||
* Servers don't need to ping
|
||||
* Clients need to ping all public and local peers to keep connections open
|
||||
|
||||
## Hub Server Configuration
|
||||
|
||||
@@ -84,3 +82,28 @@ journalctl -f -u hub -n 100
|
||||
```
|
||||
|
||||
Sign-in and configure.
|
||||
|
||||
## Peer Configuration
|
||||
|
||||
Install the binary somewhere, for example `~/bin/vppn`.
|
||||
|
||||
Create systemd file in `/etc/systemd/system/vppn.service`.
|
||||
|
||||
|
||||
```
|
||||
Description=vppn
|
||||
Requires=network.target
|
||||
|
||||
[Service]
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_ADMIN
|
||||
Type=simple
|
||||
User=user
|
||||
WorkingDirectory=/home/user/
|
||||
ExecStart=/home/user/vppn -name vppn
|
||||
Restart=always
|
||||
RestartSec=8
|
||||
TimeoutStopSec=24
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user