1
0
mirror of https://github.com/xdp-project/BNG-router.git synced 2024-05-06 15:54:53 +00:00

README: Add description of the BNG setup and scope

A bit rough around the edges, but it's a start...

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
This commit is contained in:
Toke Høiland-Jørgensen
2021-08-18 15:21:31 +02:00
parent 93da536a2d
commit 5e735a7d8e

View File

@@ -5,3 +5,43 @@
This git-repo (goal is to) contain tools and designs for a Broadband Network
Gateway (BNG) router based on Linux.
We assume a setup like this:
#+begin_src
+--------------------------+
| BNG |
| |
| |
<------+eth1 eth0 +-----> Upstream internet
| |
Customer <------+eth2 |
interfaces | |
|... |
| |
<------+ethX |
| |
+--------------------------+
#+end_src
Where the BNG box is a middlebox between one or more customer-facing
interfaces, and an upstream connection. The customer interfaces use
double-tagged VLANs where the outer VLAN tag determines the Point of
Presence that the customer is connected to, and the inner VLAN tag is unique
per customer.
This setup should be transparent to the customer equipment, which means the
BNG needs to add and remove VLAN tags for the traffic as needed, and do
NAT'ing for IPv4 traffic. From the customer PoV it should appear like they
are on their own layer-2 segment with the BNG being the only other host. It
also needs to relay DHCP traffic to an upstream central DHCP server.
Functions in scope are:
- DHCP relay for v4 and v6
- NAT'ing of traffic (for IPv4) and routing of customer prefixes (for IPv6
with prefix delegation)
The idea is to use regular Linux stack functionality as much as possible
(e.g., VLAN interfaces), but accelerate functions with XDP and TC-BPF where
appropriate, for either functionality or performance reasons.