Getting started with dn42

How to register your resources and get your first peers

This is meant to be supplementary post to the dn42 wiki articles on how to get started and provide a more high level overview on the required resources:

Why join dn42?

If you are interested in experimenting with internet technologies such as BGP or DNS at a lower level, you can do just that in dn42.

Requirements

You should have:

How do I register my resources?

Before you can get your first BGP peers, you need to create a pull request to the dn42 registry. For that, create the following objects:

Optionally, you can also register a domain by creating a dns object. Refer to the wiki for more information: https://dn42.cc/wiki/howto/getting-started/#dns-and-domain-registration

Note: it is possible to run a single stack IPv6 network in dn42! There are more IPv6 routes than IPv4 announced currently.

For more examples on how registry objects can look, refer to the wiki https://dn42.cc/wiki/howto/getting-started/#fill-in-the-registry and existing registry objects. Also, see the registry schema.

Not all properties listed here are required for the objects, but I recommend including them anyways.

mntner

Registry path: data/mntner

The name of the mntner MUST be all uppercase and end in -MNT. Example: FOO-MNT

mntner:             Name of your mntner
mnt-by:             Name of the mntner maintaining this mntner object (this is yourself usually)
admin-c:            Name of the person who is the administrator contact
tech-c:             Name of the person who is the technical contact
auth:               An authentication for verifying your changes, you can use for example PGP (pgp-fingerprint <fingerprint>) or ssh (ssh-type <key>)
source:             DN42

person

Registry path: data/person

The name of the person object / nic-hdl MUST be all uppercase and end in -DN42. Example: FOO-DN42

person:             Name of the person (doesn't have to be the same as the file name)
nic-hdl:            Name of the person (object)
mnt-py:             Name of the mntner
e-mail:             The email address you are reachable under
source:             DN42

Note: for more contact options use the contact field and the following syntax: <medium>:<handle>, for example for XMPP:

contact:            xmpp:<jid>

aut-num

Registry path: data/auth-num

Note: You should allocate your AS in the 4242420000-4242423999 range, the name of the file and content of the aut-num field should be in the format of AS<number>.

aut-num:            Your AS number
as-name:            The name of the AS (doesn't have to be the same as the file name)
mnt-by:             Name of the mntner
admin-c:            Name of the person who is the administrator contact
tech-c:             Name of the person who is the technical contact
source:             DN42

inet6num

Registry path: data/inet6num

The name of this file should is in the format of <IP address>_<block size>.

inet6num:           <First address of the IP block> - <Last address of the IP block>
cidr:               The IP block in CIDR notation
mnt-by:             The name of the mntner
admin-c:            Name of the person who is the administrator contact
tech-c:             Name of the person who is the technical contact
netname:            The name of the IP block (doesn't have to be the same as the file name)
status:             ASSIGNED
source:             DN42

route6

Registry path: data/route6

The name of this file is in the format of <IP address>_<block_size>

route6:             The IP block in CIDR notation
origin:             The AS number this route is originating from
max-length:         IP block size
mnt-by:             The mntner of this object
admin-c:            Name of the person who is the administrator contact
tech-c:             Name of the person who is the technical contact
source:             DN42

It is RECOMMENDED that IPv6 prefixes conform to RFC4193.

dn42regsrv can be used to generate a random ASN, IPv6 and IPv4: https://explorer.dn42.dev/free

The syntax for inetnum / route objects is very similar to inet6num / route6, but as stated previously: it is possible to run an IPv6 only dn42 network.

Creating a pull request to the registry

There are multiple scripts in the registry to help with creating the final commit:

The pull request should contain a single, signed commit.

The commit can be signed using for example:

Getting your first peers

After your pull request is merged, you can get your first peers. I recommend using the peer finder to find people near your server or peer with lemon and my network :)

For further information on tunnels, BGP routing daemons etc. check the wiki:

Also check out #dn42 on the hackint.org IRC for further help.