DNS, email auth, TLS, BGP/RPKI, WHOIS and subnet tools with plain-English fixes, plus webhook URLs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Origin AS, visibility, RPKI validity, upstreams and announced prefixes from the global routing table. Inputs – query: AS number, IP address or prefix. Results include plain-English findings with fixes and a shareable link.
AS number, IP address or prefix (e.g. AS13335 or 1.1.1.0/24)
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http network-tools https://thenetworkery.com/mcp
Origin AS, visibility, RPKI validity, upstreams and announced prefixes from the global routing table. Inputs – query: AS number, IP address or prefix. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| query* | string | AS number, IP address or prefix (e.g. AS13335 or 1.1.1.0/24) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "AS number, IP address or prefix (e.g. AS13335 or 1.1.1.0/24)"
}
}
}Is an IP, a domain or its mail servers on the spam blocklists receivers use – and how to get delisted. Inputs – target: IP address or domain. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| target* | string | IP address or domain (e.g. 192.0.2.10 or example.com) |
{
"type": "object",
"required": [
"target"
],
"properties": {
"target": {
"type": "string",
"description": "IP address or domain (e.g. 192.0.2.10 or example.com)"
}
}
}Merge a list of IPs, ranges and CIDRs into the fewest prefixes, subtract ranges, and turn start–end ranges into CIDRs. Inputs – list: Addresses, ranges and CIDRs (one per line); exclude: Exclude (optional). Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| list* | string | Addresses, ranges and CIDRs (one per line) (e.g. 192.0.2.0/25 192.0.2.128/25 198.51.100.10-198.51.100.20 2001:db8::/33 2001:db8:8000::/33) |
| exclude | string | Exclude (optional) (e.g. 192.0.2.64/26) |
{
"type": "object",
"required": [
"list"
],
"properties": {
"list": {
"type": "string",
"description": "Addresses, ranges and CIDRs (one per line) (e.g. 192.0.2.0/25\n192.0.2.128/25\n198.51.100.10-198.51.100.20\n2001:db8::/33\n2001:db8:8000::/33)"
},
"exclude": {
"type": "string",
"description": "Exclude (optional) (e.g. 192.0.2.64/26)"
}
}
}Creates a public HTTPS URL that records every request sent to it (any method, any sub-path, headers, query and body), so you can receive webhooks and callbacks without a server of your own. Use it when something needs a URL to call back – a payment provider, a CI job, an OAuth or API integration, your own code under test – then give that URL to the sender and read what arrived with list_webhook_requests. Returns the capture URL, the bin id and a secret key (pass both to the other webhook tools), a private page link for a person to watch requests live in a browser, and the expiry (7 days). The URL answers every request with HTTP 200 {"ok":true} unless you set response_status/response_type/response_body.
| Argument | Type | Description |
|---|---|---|
| name | string | Optional label for the bin, e.g. what it is for (at most 80 characters). |
| response_body | string | Body of the answer. Default {"ok":true}. |
| response_type | string | Content-Type of the answer. Default application/json. |
| response_status | integer | HTTP status the URL answers with. Default 200. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Optional label for the bin, e.g. what it is for (at most 80 characters)."
},
"response_body": {
"type": "string",
"description": "Body of the answer. Default {\"ok\":true}."
},
"response_type": {
"enum": [
"application/json",
"text/plain",
"application/xml",
"text/xml",
"text/csv",
"application/x-www-form-urlencoded"
],
"type": "string",
"description": "Content-Type of the answer. Default application/json."
},
"response_status": {
"type": "integer",
"maximum": 599,
"minimum": 200,
"description": "HTTP status the URL answers with. Default 200."
}
}
}Every publicly logged certificate for a domain and its subdomains – find forgotten hosts and unexpected issuers. Inputs – domain: Domain. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain (e.g. example.com) |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain (e.g. example.com)"
}
}
}Choose a policy, report addresses and alignment and get a DMARC record with every tag explained, compared with the one you publish now. Inputs – domain: Domain; p: Policy (p); sp: Subdomain policy (sp); rua: Aggregate reports to (rua); ruf: Failure reports to (ruf, optional); adkim: DKIM alignment (adkim); aspf: SPF alignment (aspf); t: Test mode (t); pct: pct (legacy, optional). Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| p | string | Policy (p) |
| t | string | Test mode (t) |
| sp | string | Subdomain policy (sp) |
| pct | string | pct (legacy, optional) (e.g. 100) |
| rua | string | Aggregate reports to (rua) (e.g. [email protected]) |
| ruf | string | Failure reports to (ruf, optional) (e.g. [email protected]) |
| aspf | string | SPF alignment (aspf) |
| adkim | string | DKIM alignment (adkim) |
| domain* |
Unregistered AS numbers, free IPv4 blocks and a random unused IPv6 /48 – checked against the live registry. Inputs – size: IPv4 block size. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| size | string | IPv4 block size |
{
"type": "object",
"properties": {
"size": {
"enum": [
"29",
"28",
"27",
"26",
"25",
"24"
],
"type": "string",
"default": "27",
"description": "IPv4 block size"
}
}
}WireGuard, BIRD 2 and RouterOS 7 configs for a DN42 peering, following the wiki conventions. Inputs – our_asn: Your AS number; peer_asn: Peer AS number; peer_ll6: Peer link-local IPv6; our_ll6: Your link-local IPv6 (optional); peer_ipv4: Peer tunnel IPv4 (optional); our_ipv4: Your DN42 IPv4 (optional); endpoint: Peer endpoint host:port (optional); peer_pubkey: Peer WireGuard public key (optional); enh: Session type. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| enh | string | Session type |
| our_asn* | string | Your AS number (e.g. 4242421711) |
| our_ll6 | string | Your link-local IPv6 (optional) (e.g. fe80::1711) |
| endpoint | string | Peer endpoint host:port (optional) (e.g. uk1.example.net:21711) |
| our_ipv4 | string | Your DN42 IPv4 (optional) (e.g. 172.23.141.33) |
| peer_asn* | string | Peer AS number (e.g. 4242423914) |
| peer_ll6* | string | Peer link-local IPv6 (e.g. fe80::3914) |
Look up any DN42 object – AS, IP, prefix, maintainer, person or .dn42 domain – with everything linked to it. Inputs – query: AS number, IP, prefix, maintainer, person or domain. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| query* | string | AS number, IP, prefix, maintainer, person or domain (e.g. AS4242421711, 172.23.141.33, THENETWORKERY-MNT) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "AS number, IP, prefix, maintainer, person or domain (e.g. AS4242421711, 172.23.141.33, THENETWORKERY-MNT)"
}
}
}Every record for a name, straight from its authoritative nameservers or from a public resolver, with plain-English notes. Inputs – name: Domain or host name; type: Record type; resolver: Resolver. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| name* | string | Domain or host name (e.g. example.com) |
| type | string | Record type |
| resolver | string | Resolver |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Domain or host name (e.g. example.com)"
},
"type": {
"enum": [
"ALL",
"A",
"AAAA",
"CNAME",
"MX",
"NS",
"TXT",
"SOA",
"CAA",
"SRV",
"PTR",
"HTTPS",
"TLSA",
"DS",
"DNSKEY"
],
"type": "string",
"default": "ALL",
"description": "Record type"
},
"resolver": {
"enum": [
"authoritative",
"cloudflare",
"google",
"quad9"
],
"type": "string",
"default": "authoritative",
"description": "Resolver"
}
}
}Ask 13 public resolvers around the world the same question and see who has your change. Inputs – name: Domain or host name; type: Record type. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| name* | string | Domain or host name (e.g. www.example.com) |
| type | string | Record type |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Domain or host name (e.g. www.example.com)"
},
"type": {
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"NS",
"TXT",
"SOA",
"CAA",
"SRV",
"PTR",
"HTTPS",
"TLSA",
"DS",
"DNSKEY"
],
"type": "string",
"default": "A",
"description": "Record type"
}
}
}Is the zone signed, does the chain of trust validate, and are the algorithms current? Inputs – name: Domain. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| name* | string | Domain (e.g. example.com) |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Domain (e.g. example.com)"
}
}
}DNS, DNSSEC, email security, blocklists, certificates, HTTPS and registration in one scored report, with what to fix first. Inputs – domain: Domain. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain (e.g. example.com) |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain (e.g. example.com)"
}
}
}SPF, DKIM, DMARC, MTA-STS, TLS-RPT and BIMI graded, with the exact records to fix what is missing. Inputs – domain: Domain. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain (e.g. example.com) |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain (e.g. example.com)"
}
}
}Paste a message's headers to see its route and delays, SPF, DKIM and DMARC results with alignment, and why it may have gone to spam. Inputs – headers: Message headers. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| headers* | string | Message headers (e.g. Received: from … Authentication-Results: … From: …) |
{
"type": "object",
"required": [
"headers"
],
"properties": {
"headers": {
"type": "string",
"description": "Message headers (e.g. Received: from …\nAuthentication-Results: …\nFrom: …)"
}
}
}Returns one request captured by a webhook URL from create_webhook_url, in full: method, path, query, every header the sender set, the body (base64 if it is binary), and a curl command that sends the same request again. Use it after list_webhook_requests when you need the exact bytes, e.g. to check a signature header against the body.
| Argument | Type | Description |
|---|---|---|
| bin* | string | The bin id from create_webhook_url (e.g. abc123def456). Its capture URL or private bin page URL also work. |
| key | string | The bin's secret key from create_webhook_url. Not needed if "bin" is the private bin page URL, which contains it. |
| request_id* | integer | The request id (the #number from list_webhook_requests). |
{
"type": "object",
"required": [
"bin",
"request_id"
],
"properties": {
"bin": {
"type": "string",
"description": "The bin id from create_webhook_url (e.g. abc123def456). Its capture URL or private bin page URL also work."
},
"key": {
"type": "string",
"description": "The bin's secret key from create_webhook_url. Not needed if \"bin\" is the private bin page URL, which contains it."
},
"request_id": {
"type": "integer",
"minimum": 1,
"description": "The request id (the #number from list_webhook_requests)."
}
}
}Redirect chain, response headers and a graded check of HSTS, CSP and the other security headers. Inputs – url: URL or host name. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| url* | string | URL or host name (e.g. https://example.com) |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "URL or host name (e.g. https://example.com)"
}
}
}Expand and compress IPv6 addresses, see their type, convert MAC addresses to EUI-64 and back, and get the ip6.arpa name. Inputs – address: IPv6 address or MAC address; prefix: Prefix for EUI-64 (optional). Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| prefix | string | Prefix for EUI-64 (optional) (e.g. fe80::/64) |
| address* | string | IPv6 address or MAC address (e.g. 2001:db8::1 or 00:1a:2b:3c:4d:5e) |
{
"type": "object",
"required": [
"address"
],
"properties": {
"prefix": {
"type": "string",
"description": "Prefix for EUI-64 (optional) (e.g. fe80::/64)"
},
"address": {
"type": "string",
"description": "IPv6 address or MAC address (e.g. 2001:db8::1 or 00:1a:2b:3c:4d:5e)"
}
}
}Lists the requests a webhook URL from create_webhook_url has received, oldest first, with method, path, query, headers and body (long bodies shortened; get_webhook_request has them in full). Pass after_id = the last id you have seen to get only newer requests; the answer ends with the id to use next time. Set wait_seconds (up to 10) to wait briefly for a request to arrive, e.g. right after triggering the sender; for longer waits call it again rather than waiting in one call.
| Argument | Type | Description |
|---|---|---|
| bin* | string | The bin id from create_webhook_url (e.g. abc123def456). Its capture URL or private bin page URL also work. |
| key | string | The bin's secret key from create_webhook_url. Not needed if "bin" is the private bin page URL, which contains it. |
| limit | integer | Most requests to return. Default 10. |
| after_id | integer | Only requests with a higher id than this. Default 0: from the oldest kept request. |
| wait_seconds | integer | If nothing newer has arrived yet, wait up to this many seconds for it. Default 0 (answer at once). |
{
"type": "object",
"required": [
"bin"
],
"properties": {
"bin": {
"type": "string",
"description": "The bin id from create_webhook_url (e.g. abc123def456). Its capture URL or private bin page URL also work."
},
"key": {
"type": "string",
"description": "The bin's secret key from create_webhook_url. Not needed if \"bin\" is the private bin page URL, which contains it."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Most requests to return. Default 10."
},
"after_id": {
"type": "integer",
"minimum": 0,
"description": "Only requests with a higher id than this. Default 0: from the oldest kept request."
},
"wait_seconds": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "If nothing newer has arrived yet, wait up to this many seconds for it. Default 0 (answer at once)."
}
}
}Who made a network card, from the IEEE registry – and whether the address is randomised. Inputs – mac: MAC address or prefix. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| mac* | string | MAC address or prefix (e.g. 00:1A:2B:3C:4D:5E) |
{
"type": "object",
"required": [
"mac"
],
"properties": {
"mac": {
"type": "string",
"description": "MAC address or prefix (e.g. 00:1A:2B:3C:4D:5E)"
}
}
}Connect to a remote MCP server like an AI assistant would: handshake, tools, resources, prompts, OAuth discovery and context cost, checked against the spec. Inputs – url: MCP server URL; token: Bearer token (optional, never stored); tool: Call a tool (optional); arguments: Tool arguments as JSON (optional). Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| url* | string | MCP server URL (e.g. https://example.com/mcp) |
| tool | string | Call a tool (optional) (e.g. tool_name) |
| token | string | Bearer token (optional, never stored) (e.g. sk-…) |
| arguments | string | Tool arguments as JSON (optional) (e.g. {"query": "example"}) |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "MCP server URL (e.g. https://example.com/mcp)"
},
"tool": {
"type": "string",
"description": "Call a tool (optional) (e.g. tool_name)"
},
"token": {
"type": "string",
"description": "Bearer token (optional, never stored) (e.g. sk-…)"
},
"arguments": {
"type": "string",
"description": "Tool arguments as JSON (optional) (e.g. {\"query\": \"example\"})"
}
}
}Tests every nameserver of a domain directly: lame or unreachable servers, NS and glue mismatches, SOA serials, open recursion, TCP and EDNS. Inputs – zone: Domain. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| zone* | string | Domain (e.g. example.com) |
{
"type": "object",
"required": [
"zone"
],
"properties": {
"zone": {
"type": "string",
"description": "Domain (e.g. example.com)"
}
}
}A network’s peering policy, internet exchange ports, facilities and NOC contacts from PeeringDB. Inputs – asn: AS number. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| asn* | string | AS number (e.g. AS64500) |
{
"type": "object",
"required": [
"asn"
],
"properties": {
"asn": {
"type": "string",
"description": "AS number (e.g. AS64500)"
}
}
}Is a TCP port open, closed or filtered when reached from the internet? One connection from our server, timed. Inputs – host: Host name or IP address; port: TCP port. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| host* | string | Host name or IP address (e.g. example.com) |
| port* | string | TCP port (e.g. 443) |
{
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"type": "string",
"description": "Host name or IP address (e.g. example.com)"
},
"port": {
"type": "string",
"description": "TCP port (e.g. 443)"
}
}
}The PTR name of an IP address, whether it resolves back to the same IP (FCrDNS), and whether it looks generic. Inputs – query: IP address or host name. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| query* | string | IP address or host name (e.g. 192.0.2.25 or mail.example.com) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "IP address or host name (e.g. 192.0.2.25 or mail.example.com)"
}
}
}Is a route RPKI valid, invalid or not found? The ROAs covering a prefix, max-length mistakes and how to fix them. Inputs – prefix: Prefix; asn: Origin AS (optional). Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| asn | string | Origin AS (optional) (e.g. AS64500) |
| prefix* | string | Prefix (e.g. 192.0.2.0/24) |
{
"type": "object",
"required": [
"prefix"
],
"properties": {
"asn": {
"type": "string",
"description": "Origin AS (optional) (e.g. AS64500)"
},
"prefix": {
"type": "string",
"description": "Prefix (e.g. 192.0.2.0/24)"
}
}
}Pick the services that send your mail and get one SPF record, its DNS lookup count and a comparison with the record you publish now. Inputs – domain: Domain; all: Mail from anywhere else; providers: Services that send mail as this domain; extra: Extra entries (optional). Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| all | string | Mail from anywhere else |
| extra | string | Extra entries (optional) (e.g. ip4:192.0.2.10 ip6:2001:db8::/48 include:_spf.example.net) |
| domain* | string | Domain (e.g. example.com) |
| providers | string | Services that send mail as this domain |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"all": {
"enum": [
"~all",
"-all"
],
"type": "string",
"default": "~all",
"description": "Mail from anywhere else"
},
"extra": {
"type": "string",
"description": "Extra entries (optional) (e.g. ip4:192.0.2.10 ip6:2001:db8::/48 include:_spf.example.net)"
},
"domain": {
"type": "string",
"description": "Domain (e.g. example.com)"
},
"providers": {
"type": "string",
"description": "Services that send mail as this domain"
}
}
}Certificate, chain, expiry, hostname match, key strength and the TLS version a server negotiates. Inputs – host: Host name; port: Port. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| host* | string | Host name (e.g. example.com) |
| port | string | Port |
{
"type": "object",
"required": [
"host"
],
"properties": {
"host": {
"type": "string",
"description": "Host name (e.g. example.com)"
},
"port": {
"enum": [
"443",
"8443",
"465",
"993",
"995",
"636",
"853",
"5061"
],
"type": "string",
"default": "443",
"description": "Port"
}
}
}IPv4 and IPv6 prefixes: ranges, masks, host counts, reverse zones and splitting. Inputs – cidr: Address or prefix; split: Split into prefix length (optional). Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| cidr* | string | Address or prefix (e.g. 192.168.10.0/24 or 2001:db8::/48) |
| split | string | Split into prefix length (optional) (e.g. 26) |
{
"type": "object",
"required": [
"cidr"
],
"properties": {
"cidr": {
"type": "string",
"description": "Address or prefix (e.g. 192.168.10.0/24 or 2001:db8::/48)"
},
"split": {
"type": "string",
"description": "Split into prefix length (optional) (e.g. 26)"
}
}
}Who holds a domain, IP address or AS number – from the registry, via RDAP. Inputs – query: Domain, IP, prefix or AS number. Results include plain-English findings with fixes and a shareable link.
| Argument | Type | Description |
|---|---|---|
| query* | string | Domain, IP, prefix or AS number (e.g. example.com, 1.1.1.1, AS13335) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Domain, IP, prefix or AS number (e.g. example.com, 1.1.1.1, AS13335)"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
| string |
| Domain (e.g. example.com) |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"p": {
"enum": [
"none",
"quarantine",
"reject"
],
"type": "string",
"default": "none",
"description": "Policy (p)"
},
"t": {
"enum": [
"n",
"y"
],
"type": "string",
"default": "n",
"description": "Test mode (t)"
},
"sp": {
"enum": [
"",
"none",
"quarantine",
"reject"
],
"type": "string",
"default": "",
"description": "Subdomain policy (sp)"
},
"pct": {
"type": "string",
"description": "pct (legacy, optional) (e.g. 100)"
},
"rua": {
"type": "string",
"description": "Aggregate reports to (rua) (e.g. [email protected])"
},
"ruf": {
"type": "string",
"description": "Failure reports to (ruf, optional) (e.g. [email protected])"
},
"aspf": {
"enum": [
"r",
"s"
],
"type": "string",
"default": "r",
"description": "SPF alignment (aspf)"
},
"adkim": {
"enum": [
"r",
"s"
],
"type": "string",
"default": "r",
"description": "DKIM alignment (adkim)"
},
"domain": {
"type": "string",
"description": "Domain (e.g. example.com)"
}
}
}| peer_ipv4 |
| string |
| Peer tunnel IPv4 (optional) (e.g. 172.20.53.97) |
| peer_pubkey | string | Peer WireGuard public key (optional) (e.g. base64…=) |
{
"type": "object",
"required": [
"our_asn",
"peer_asn",
"peer_ll6"
],
"properties": {
"enh": {
"enum": [
"yes",
"no"
],
"type": "string",
"default": "yes",
"description": "Session type"
},
"our_asn": {
"type": "string",
"description": "Your AS number (e.g. 4242421711)"
},
"our_ll6": {
"type": "string",
"description": "Your link-local IPv6 (optional) (e.g. fe80::1711)"
},
"endpoint": {
"type": "string",
"description": "Peer endpoint host:port (optional) (e.g. uk1.example.net:21711)"
},
"our_ipv4": {
"type": "string",
"description": "Your DN42 IPv4 (optional) (e.g. 172.23.141.33)"
},
"peer_asn": {
"type": "string",
"description": "Peer AS number (e.g. 4242423914)"
},
"peer_ll6": {
"type": "string",
"description": "Peer link-local IPv6 (e.g. fe80::3914)"
},
"peer_ipv4": {
"type": "string",
"description": "Peer tunnel IPv4 (optional) (e.g. 172.20.53.97)"
},
"peer_pubkey": {
"type": "string",
"description": "Peer WireGuard public key (optional) (e.g. base64…=)"
}
}
}