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 IPv6 related documentation #165

Closed
Closed
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.
3 changes: 2 additions & 1 deletion src/components/NavigationDocs.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ export const docsNavigation = [
{ title: 'Add peers to your network', href: '/how-to/add-machines-to-your-network' },
{ title: 'Approve peers', href: '/how-to/approve-peers' },
{ title: 'Setup keys', href: '/how-to/register-machines-using-setup-keys' },
{ title: 'Configure IPv6 support', href: '/how-to/configure-ipv6-for-peers' },
]
},
{
Expand Down Expand Up @@ -283,4 +284,4 @@ export const docsNavigation = [
</div>
</li>
)
}
}
63 changes: 63 additions & 0 deletions src/pages/how-to/configure-ipv6-for-peers.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@

# Configure IPv6 support for your peers

In addition to IPv4, Netbird also supports both establishment of connections over IPv6 as well as assignment of IPv6 addresses
to peers within the network.

<Note>
Assignment of IPv6 addresses is available for NetBird [TODO] or later.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before merging, this [TODO] must be replaced with the version of netbird that introduces the changes of netbirdio/netbird#1459.

</Note>

<Note>
Assignment of IPv6 addresses is currently only supported on Linux peers using the kernel Wireguard module and nftables firewall backend.
</Note>

## Configure IPv6 for a specific peer

To set the IPv6 setting of a specific peer, navigate to the peers tab and adjust the "IPv6 Support" setting using the dropdown menu.

<p>
<img src="/docs-static/img/how-to-guides/peer-settings-ipv6.png" alt="high-level-dia" width="700" className="imagewrapper"/>
</p>

There are three options for the peer's IPv6 status:
- **Force enabled:** Enable IPv6 for the peer regardless of group membership or configured routes.
- **Automatic (default):** Enable IPv6 for the peer if it is either...
- ...a member of a group with the IPv6 setting enabled, or...
- ...assigned as the routing peer of an IPv6 route.
- **Force disabled:** Disable IPv6 for the peer regardless of group memberships.

<Note>
Force disabling IPv6 will disable all IPv6 routes configured for this peer.<br />
After re-enabling IPv6, the routes will have to be re-enabled manually.
</Note>

The peer's IPv6 address can be seen both in the peers tab as well as the peer settings.

## Configure IPv6 for an entire group
Instead of enabling IPv6 manually for each peer, you can instead enable IPv6 for an entire group at once.

To enable IPv6 for an entire group, open the group settings and enable the IPv6 toggle in the table.

<p>
<img src="/docs-static/img/how-to-guides/account-settings-groups-ipv6.png" alt="high-level-dia" width="700" className="imagewrapper"/>
</p>

All peers that are a member of the group, support IPv6 and have their peer-specific IPv6 setting set to _Automatic_ will be given an IPv6 address.

## What's next?

Here are a few links that might be handy as you venture further into NetBird:

- [Add new peers to your network](/how-to/add-machines-to-your-network)
- [Creating routes to private networks](/how-to/routing-traffic-to-private-networks)
- [Configure DNS for your network](/how-to/manage-dns-in-your-network)

<p float="center" >
<Button name="button" className="button-5" onClick={() => window.open("https://netbird.io/pricing")}>Try 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
5 changes: 5 additions & 0 deletions src/pages/how-to/manage-dns-in-your-network.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ A nameserver is an upstream DNS server responsible for name resolution. If a que
it will be resolved by one of the upstream servers. You can assign private and public IPs, as well as custom ports for your nameservers.
Ensure that network routes for private addresses are set up to allow peers to connect to them, when configuring private nameservers.

<Note>
IPv6 nameserver addresses will only be distributed to peers that [have IPv6 enabled](/how-to/configure-ipv6-for-peers).<br />
Unless you are certain that this applies to all peers used by a given nameserver, we recommand always adding at least one IPv4 nameserver address.
</Note>

### Match domains
When creating nameserver groups without match domains, it implies that the nameservers will resolve all DNS queries.
For specific cases, you may want to deploy a split horizon configuration for private or specific domains.
Expand Down
8 changes: 8 additions & 0 deletions src/pages/how-to/routing-traffic-to-private-networks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,19 @@ A routing peer is a peer that routes packets between your routed network and the
<Note>
Only Linux OS machines can be assigned as routing peers.
</Note>

<Note>
Routes to IPv6 networks can only be created using peers that [have IPv6 enabled](/how-to/configure-ipv6-for-peers).
</Note>
#### Routing group
A routing group is a set of routing peers. Each will route packets between your routed network and the other NetBird peers.
<Note>
Only Linux OS machines can be assigned as routing peers.
</Note>
<Note>
Routes to IPv6 networks will only use group members that [have IPv6 enabled](/how-to/configure-ipv6-for-peers) as routing peers.<br />
However, IPv6 does not have to be enabled for the group itself.
</Note>
#### High availability routes
A highly available route is a combination of multiple routes with the same network identifier and ranges. They have different routing peers or routing peer groups offering highly available paths for communication between your peers and external networks.
Nodes connected to routing peers will choose one of them to route packets to external networks based on connection type and defined metrics.
Expand Down