Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add default routes for internet traffic howto #176

Merged
merged 4 commits into from
Apr 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/components/How-To-Guides.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ const howToGuides = [
description:
'Learn how to provide access to LANs, VPS, and corporate private networks.',
},
{
href: '/how-to/configuring-default-routes-for-internet-traffic',
name: 'Configure default routes and traffic for the Internet',
description: 'Understand how to set up your network for accessing the internet through default routes, also known as "exit nodes".',
},
{
href: '/how-to/monitor-system-and-network-activity',
name: 'Log and monitor network activity',
Expand Down
2 changes: 1 addition & 1 deletion src/components/NavigationDocs.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export const docsNavigation = [
isOpen: false,
links: [
{ title: 'Routing traffic to private networks', href: '/how-to/routing-traffic-to-private-networks' },

{ title: 'Configuring default routes for Internet traffic', href: '/how-to/configuring-default-routes-for-internet-traffic' },
]
},
{
Expand Down
110 changes: 110 additions & 0 deletions src/pages/how-to/configuring-default-routes-for-internet-traffic.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Configuring default routes for Internet traffic

NetBird introduces a way to redirect a peer's internet traffic through what is commonly known as exit nodes.
This setup allows you to direct all internet-bound traffic from your devices through a specified routing
peer.

<Note>
This feature is available from Netbird version v0.27.0 onwards.
</Note>

## Concepts

### Default Routes

A default route, specified with the network address `0.0.0.0/0` for IPv4 and `::/0` for IPv6, directs internet-bound
traffic from your devices
through a designated routing peer.
<Note>
Currently, IPv6 traffic is not supported and is blocked to prevent unintentional traffic leakage.
</Note>

### Routing Peer

The routing peer functions as the exit node for the Internet traffic. Once configured, it automatically handles traffic
it receives from connected peers, applying masquerading to ensure traffic appears to originate from the routing peer's
public IP address.

### Distribution Groups

Peers within the specified distribution group are configured to send their Internet traffic to the routing peer over the
VPN.
This setup is activated as soon as the routing peer is connected.

### Supported Clients

The feature currently supports Linux, macOS, and Windows as client operating systems.

### Routing Peer Selection

Currently, this is exclusively configured through the dashboard and cannot be influenced by the client.

## Configuration Steps

### Access the Dashboard peers tab

Navigate to the NetBird dashboard to begin the configuration process.

<p>
<img src="/docs-static/img/how-to-guides/netbird-peers.png" alt="dashboard-peers-view"
className="imagewrapper-big"/>
</p>

### Select the designated routing peer

<p>
<img src="/docs-static/img/how-to-guides/netbird-peers-routing-peer.png" alt="routing-peer-view"
className="imagewrapper-big"/>
</p>

### Make the peer an exit node routing peer

Hit the `Add Exit Node` button to configure the peer as an exit node routing peer.

In the opened window, specify which peers should use the default route by assigning one or more distribution groups.
These peers will automatically route their internet traffic through the routing peer upon its connection.


<p>
<img src="/docs-static/img/how-to-guides/netbird-peers-add-exit-node.png" alt="add-exit-node-view"
className="imagewrapper-big"/>
</p>

Then hit the `Add Exit Node` button to complete the configuration.

The routing peer is automatically set up to handle and route traffic it receives from connected peers. Masquerading
remains enabled by default to mask the original source IP addresses.

### Verify the configuration

Verify the configuration in the peer view. The routing peer should now be marked as an exit node.

<p>
<img src="/docs-static/img/how-to-guides/netbird-peers-routing-peer-exit-node.png" alt="routing-peer-exit-node-view"
className="imagewrapper-big"/>
</p>

### DNS Configuration

Add a DNS server with the match domain set to `ALL`.
This is important, as locally configured DNS servers might not be accessible from the routing peer.
This also helps to avoid leaking the client's location.

See [Manage DNS in your network](manage-dns-in-your-network).

## High Availability

Like for other network routes, high availability configurations are supported for default
routes. Refer to
the [Creating Highly Available Routes](routing-traffic-to-private-networks#creating-highly-available-routes)
section for more information.

## Get started
<p float="center" >
<Button name="button" className="button-5" onClick={() => window.open("https://netbird.io/pricing")}>Use NetBird</Button>
</p>

- Make sure to [star us on GitHub](https://github.com/netbirdio/netbird)
- Follow us [on Twitter](https://twitter.com/netbird)
- Join our [Slack Channel](https://join.slack.com/t/netbirdio/shared_invite/zt-vrahf41g-ik1v7fV8du6t0RwxSrJ96A)
- NetBird [latest release](https://github.com/netbirdio/netbird/releases) on GitHub
Loading