summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile14
-rw-r--r--Makefile.inc38
-rw-r--r--dn42/Makefile6
-rw-r--r--dn42/Makefile.inc1
-rw-r--r--dn42/index.adoc89
-rw-r--r--dn42/nodes/Makefile5
-rw-r--r--dn42/nodes/index.adoc37
-rw-r--r--index.adoc5
-rw-r--r--main.css97
10 files changed, 295 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7ce212a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/wwwroot
+*.sw?
+*.html
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..bebecb7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,14 @@
+# This source code is released into the public domain.
+
+PAGES= index.adoc
+FILES= main.css
+SUBDIR= dn42
+
+WWWROOT=${.CURDIR}/wwwroot
+
+all: build .PHONY
+
+deploy: install .PHONY
+ rsync -iavP wwwroot/ lexi@rose.le-fay.org:/export/www/www.le-fay.org/htdocs
+
+.include "Makefile.inc"
diff --git a/Makefile.inc b/Makefile.inc
new file mode 100644
index 0000000..4c0b100
--- /dev/null
+++ b/Makefile.inc
@@ -0,0 +1,38 @@
+# vim:set ft=make:
+# This source code is released into the public domain.
+
+ADOCFLAGS= -a linkcss -a stylesheet=${ROOTDIR}main.css
+.SUFFIXES: .html .adoc
+
+HTML= ${PAGES:.adoc=.html}
+
+build: ${HTML} .PHONY
+.for dir in ${SUBDIR}
+ @echo "build ==> ${dir}"
+ @make -C ${dir} ROOTDIR=${ROOTDIR}../ WWWROOT=${WWWROOT}/${dir} build
+ @echo "build <== ${dir}"
+.endfor
+
+clean: .PHONY
+ rm -f ${HTML}
+.for dir in ${SUBDIR}
+ @echo "clean ==> ${dir}"
+ @make -C ${dir} clean
+ @echo "clean <= ${dir}"
+.endfor
+
+install: ${HTML} .PHONY
+ install -d ${WWWROOT}
+
+.for file in ${HTML} ${FILES}
+ install -C -m 0644 ${file} ${WWWROOT}
+.endfor
+
+.for dir in ${SUBDIR}
+ @echo "build ==> ${dir}"
+ @make -C ${dir} ROOTDIR=${ROOTDIR}../ WWWROOT=${WWWROOT}/${dir} install
+ @echo "build <== ${dir}"
+.endfor
+
+.adoc.html:
+ asciidoctor ${ADOCFLAGS} -o ${.TARGET} ${.IMPSRC}
diff --git a/dn42/Makefile b/dn42/Makefile
new file mode 100644
index 0000000..6ebea7d
--- /dev/null
+++ b/dn42/Makefile
@@ -0,0 +1,6 @@
+# This source code is released into the public domain.
+
+PAGES= index.adoc
+SUBDIR= nodes
+
+.include "../Makefile.inc"
diff --git a/dn42/Makefile.inc b/dn42/Makefile.inc
new file mode 100644
index 0000000..01b5f23
--- /dev/null
+++ b/dn42/Makefile.inc
@@ -0,0 +1 @@
+.include "../Makefile.inc"
diff --git a/dn42/index.adoc b/dn42/index.adoc
new file mode 100644
index 0000000..b046384
--- /dev/null
+++ b/dn42/index.adoc
@@ -0,0 +1,89 @@
+= le-fay.dn42
+
+welcome to le-fay.dn42, AS4242421495.
+
+[overview]
+== overview
+
+* ASN: 4242421495
+* location: UK
+* contact: ft.dn42@le-fay.org
+* networks:
+** fd5b:a83:b06b::/48
+** 172.23.76.0/26
+
+[peering]
+== peering
+
+i am accepting peerings in the UK & Ireland.
+please see the link:nodes/[list of nodes] for information about nodes
+accepting new peerings.
+all nodes support multiprotocol BGP with extended next hop for IPv4 prefixes;
+BGP itself is only supported over link-local IPv6 addresses.
+
+peering requests with an excessively high rtt may be rejected to preserve
+network quality.
+
+to request a peering, please mail ft.dn42@le-fay.org and include:
+
+* the node you want to peer with
+* your DN42 ASN
+* your Wireguard endpoint address, port, and public key
+* your BGP link-local address
+* whether you want IPv4 routes, IPv6 routes, or both
+ (note that in any case, BGP peerings are always over IPv6 link local
+ addresses)
+
+[communities]
+== BGP communities
+
+routes advertised by AS4242421495 may have one or more of the following
+communities attached:
+
+[cols="2*"]
+|===
+|community | meaning
+
+2+h| general
+| 4242421495:1:1
+| route origin: internal (AS4242421495)
+| 4242421495:1:2 [.red]#*#
+| route origin: external, Internet (DFZ)
+| 4242421495:1:42
+| route origin: external, DN42
+| 4242421495:4:1 [.red]#*#
+| internal route policy: export to Internet peers
+| 4242421495:4:2 [.red]#*#
+| internal route policy: export to internal peers only
+| 4242421495:4:42
+| internal route policy: export to DN42
+| 4242421495:5:1
+| aggregated route (internal route policy: do not install to FIB)
+
+2+h| node-specific
+| 4242421495:2:1
+| route originated or received by rose
+| 4242421495:2:2
+| route originated or received by amaranth
+| 4242421495:2:3
+| route originated or received by ash
+| 4242421495:2:4
+| route originated or received by oak
+| 4242421495:2:9
+| route originated or received by willow
+
+2+h| region-specific
+
+| 4242421495:3:1
+| route originated or received in UK region
+| 4242421495:3:4
+| route originated or received in Eden
+|===
+
+[.red]#*# - these communities should never be seen on DN42
+
+the node-specific and region-specific communities are only attached when the
+route is originated or received from an external peer. for example, a route
+tagged with 4242421495:2:1 was either received by rose from an external EBGP
+peer, or was locally originated on that node. therefore, any route should only
+have a single node-specific and region-specific community.
diff --git a/dn42/nodes/Makefile b/dn42/nodes/Makefile
new file mode 100644
index 0000000..7b8992e
--- /dev/null
+++ b/dn42/nodes/Makefile
@@ -0,0 +1,5 @@
+# This source code is released into the public domain.
+
+PAGES= index.adoc
+
+.include "../Makefile.inc"
diff --git a/dn42/nodes/index.adoc b/dn42/nodes/index.adoc
new file mode 100644
index 0000000..fe4f127
--- /dev/null
+++ b/dn42/nodes/index.adoc
@@ -0,0 +1,37 @@
+= nodes | le-fay.dn42
+
+link:../[<< back]
+
+== public nodes
+
+these nodes are currently accepting new peerings.
+for information on how to set up a peering, see link:../[the main page].
+
+*note:* new peerings are currently preferred on <<oak>>.
+if you'd rather peer with a different node, please explain why in your email.
+
+[#ash]
+=== ash.le-fay.org
+
+location:: Cambridge, UK - Mythic Beasts
+DNS name (clearnet):: [.node]#ash.le-fay.org#
+IPv6 address (clearnet):: [.ipaddr]#2a00:1098:6b:400::4#
+DNS name (DN42):: [.node]#ash.le-fay.dn42#
+IPv6 address (DN42):: [.ipaddr]#fd5b:a83:b06b:100::1#
+IPv4 address (DN42):: [.ipaddr]#172.23.76.0#
+Wireguard public key:: [.key]#Whll1SCzNLqPcKMdfGpJF1SdAt49lXThSrkHwnP72iw=#
+Wireguard port:: 20000 + last four digits of your ASN
+IPv6 link-local address:: [.ipaddr]#fe80::1495:1#
+
+[#oak]
+=== oak.le-fay.org
+
+location:: London, UK - Jump Networks
+DNS name (clearnet):: [.node]#oak.le-fay.org#
+IPv6 address (clearnet):: [.ipaddr]#2001:ba8:4015:100::3#
+DNS name (DN42):: [.node]#oak.le-fay.dn42#
+IPv6 address (DN42):: [.ipaddr]#fd5b:a83:b06b:900::1#
+IPv4 address (DN42):: [.ipaddr]#172.23.76.1#
+Wireguard public key:: [.key]#sZ07jrWqPHvuJuDrgJxMoHpdOtX4sXhZYoDVgoymLFI=#
+Wireguard port:: 20000 + last four digits of your ASN
+IPv6 link-local address:: [.ipaddr]#fe80::1495:2#
diff --git a/index.adoc b/index.adoc
new file mode 100644
index 0000000..286f332
--- /dev/null
+++ b/index.adoc
@@ -0,0 +1,5 @@
+= le-fay.org
+
+welcome to le-fay.org.
+
+for DN42 information, link:dn42/[go here].
diff --git a/main.css b/main.css
new file mode 100644
index 0000000..86bd4cb
--- /dev/null
+++ b/main.css
@@ -0,0 +1,97 @@
+body {
+ font-family: sans-serif;
+}
+
+h1 {
+ font-size: 135%;
+ border-bottom: dashed 1px black;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+#footer {
+ width: 100%;
+ border-top: solid 1px;
+ font-size: 80%;
+ opacity: 0.6;
+}
+
+p {
+ width: 40%;
+ min-width: 30em;
+ margin-left: 1.5em;
+ line-height: 1.4em;
+ text-align: justify;
+}
+
+dt {
+ font-weight: bold;
+}
+
+dl {
+ margin-left: 1.5em;
+}
+
+span.red {
+ color: #dd3333;
+}
+
+span.green {
+ color: #33dd33;
+}
+
+span.node, span.path, span.ipaddr, span.key, .community {
+ font-family: monospace;
+}
+
+/*
+ * asciidoctor puts the content of certain elements inside <p>, which makes
+ * them format badly using the default style.
+ */
+dd p,
+dt p,
+td p,
+th p,
+li p {
+ min-width: 0;
+ width: auto;
+ text-align: start;
+ margin: 0;
+ padding: 0;
+}
+
+table {
+ border-collapse: collapse;
+ text-align: left;
+}
+
+th, td {
+ padding: 4px;
+ border: none;
+}
+
+thead th {
+ font-weight: bold;
+ text-align: center;
+ text-transform: uppercase;
+ border-bottom: 2px solid currentColor;
+}
+
+tbody th p {
+ background-color: rgba(0, 0, 0, 0.1);
+ text-align: center;
+ font-weight: bold;
+ padding: 5px;
+ margin: 0;
+}
+
+tbody tr:nth-child(odd) td {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+tfoot {
+ font-weight: bold;
+ border-top: 2px solid currentColor;
+}