Skip to main content

Register

In order to get started, you need to create several objects in the NX3 registry: https://git.brettb.xyz/nx3/registry.

The registry is a git repository. You create objects by forking the main repository, making your changes, and then submitting a pull request for review.

Editing the git repository requires a Linux/Mac computer due to the characters used in file names. Windows Subsystem for Linux *may* work but is not officially supported.

When filling out objects in the registry, refer to the schema to speed up your review process.

When submitting your pull request, you must squash your changes into a single commit.

The registry includes a couple of scripts in order to help check your request:

  • fmt-my-stuff <FOO>-MNT: Automatically fixes minor formatting errors
  • check-my-stuff <FOO>-MNT: Validates your objects against the registry schema

*Do not use the gitea web interface to edit files, doing so will create a large number of commits and prevents the running of registry scripts.*

Registry Example

This example assumes that your name is <FOO>, and are part of an organization called <ORG-FOO>. *Organization objects are not required if you are registering as an individual*. Please make sure you replace these with appropriate values.

The code blocks below may not properly display, if not, please take note that the fields of each registry entry should start on the 20th column.

We will create several objects as a part of this example:

  • maintainer objects
  • person objects, which describe people or organizations and can provide contact information
  • and resource objects (AS Number, IP Subnet, DNS Zone, etc.)

Create a Maintainer Object

Create a mntner object in data/mntner/ named <FOO>-MNT. It will be used to edit all objects that are under your responsibility.

  • Use <FOO>-MNT as mnt-by

Example data/mntner/FOO-MNT:

mntner:             FOO-MNT
admin-c:            FOO-NX3
tech-c:             FOO-NX3
mnt-by:             FOO-MNT
source:             NX3

Create Person Objects

Create a person object in data/person/ for yourself (not your organization).

  • Use something like <FOO>-NX3 as your nic-hdl, ensuring it ends with -NX3
  • Ther person field is a little more freeform, you can use your nickname or real name here.
  • Provide an email
  • You can also provide other forms of contact
  • Don't forget to set mnt-by to <FOO>-MNT

Example data/person/FOO-NX3

person:             John Doe
e-mail:             john.doe@example.com
nic-hdl:            FOO-NX3
mnt-by:             FOO-MNT
source:             NX3

Create Organisation Objects

Organizations are not required if you are joining NX3 as an individual

See how to create an organisation

If you intend to register resources for an organisation, you must also create an organisation object.

Example data/organisation/ORG-FOO

organisation:       ORG-FOO
org-name:           Foo Organisation
admin-c:            FOO-NX3
tech-c:             FOO-NX3
mnt-by:             FOO-MNT
source:             NX3

Creating Resource Objects

Throughout the rest of these examples, you should use:

  • admin-c: <FOO>-NX3 and tech-c: <FOO>-NX3 on your resources.
  • admin-c: <FOO>-NX3, tech-c: <FOO>-NX3,  and org: <ORG-FOO> on your organisation resources.
  • mnt-by: <FOO>-MNT on all objects.

Register an AS Number

To register an AS number, create an as-name object in data/aut-num/.

Your AS number can be arbitrarily chosen in the NX3 ASN space.

The online NX3 Registry includes a page for finding free ASN. For a list of currently assigned AS numbers browse the registry data, and the explorer.

Example: data/aut-num/AS4266033999

aut-num:            AS4266033999
as-name:            AS-FOO-NX3
admin-c:            FOO-NX3
tech-c:             FOO-NX3
mnt-by:             FOO-MNT
source:             NX3

Register a Network Prefix

IPv6

To register an IPv6 prefix, you create an inet6num object. NX3 uses the ULA range. A single /48 allocation is typical, and will likely provide more than enough room for all devices you wish to connect.

Using a fully random prefix is recommended; finding a conflict with other networks and needing to renumber your own network is no fun. If you wish to generate some ULA prefixes:

Example: data/inet6num/fd35:4992:6a6d::_48

inet6num:           fd35:4992:6a6d:0000:0000:0000:0000:0000 - fd35:4992:6a6d:ffff:ffff:ffff:ffff:ffff
cidr:               fd35:4992:6a6d::/48
netname:            FOO-NETWORK
descr:              Network of FOO
country:            XD
admin-c:            FOO-NX3
tech-c:             FOO-NX3
mnt-by:             FOO-MNT
status:             ASSIGNED
source:             NX3
IPv4

If you also want to register an IPv4 network prefix, simply create an inetnum object. You may choose your network prefix in one of the currently open netblocks. You can get a list of unassigned subnets on the following site. Please mind the recommended allocation sizes.

If there are no free subnets of the size you want, you may split a larger block as required.

Please check the registry to make sure no-one else has allocated the same prefix. Please ensure that the parent block has an 'open' policy.

Think before you allocate.

If you need a /24 or larger, be prepared to justify your network needs.

Example: data/inetnum/172.24.150.0_27

inetnum:            172.24.150.0 - 172.24.150.31
cidr:               172.24.150.0/27
netname:            FOO-NETWORK
descr:              Network of FOO
country:            XD
admin-c:            FOO-NX3
tech-c:             FOO-NX3
mnt-by:             FOO-MNT
status:             ASSIGNED
source:             NX3

Create Route Objects

If you plan to announce your prefixes in the NX3 network, you will need to create a route6 object for ipv6 prefixes, and a route object for ipv4 prefixes. This information is used for ROA checks. If you skip this step, your network will likely get filtered by most major peers. Checking ROA will also prevent (accidental) hijacking of other people's prefixes.

Example: data/route6/fd35:4992:6a6d::_48

route6:             fd35:4992:6a6d::/48
origin:             AS4266033999
max-length:         48
mnt-by:             FOO-MNT
source:             NX3

Example: data/route/172.24.150.0_27

route:              172.24.150.0/27
origin:             AS4266033999
max-length:         27
mnt-by:             FOO-MNT
source:             NX3

DNS and Domain Registration

(Optional)

The updating of the NX3 zone is currently a manual process. A pull request with a DNS update will not be accepted until the zone has been updated.

To register a domain name, create a dns object in the data/dns directory. Domain names and nserver attributes must be lowercase.

Example: data/dns/foo.nx3

domain:             foo.nx3
admin-c:            FOO-NX3
tech-c:             FOO-NX3
mnt-by:             FOO-MNT
nserver:            ns1.foo.nx3 172.24.150.1
nserver:            ns1.foo.nx3 fd35:4992:6a6d:53::1
nserver:            ns2.foo.nx3 172.24.150.2
nserver:            ns2.foo.nx3 fd35:4992:6a6d:53::2
source:             NX3