Set reverse DNS for a floating IP
Give a floating IP, or any address in an instance's IPv6 /64, a PTR record so lookups of the address return your hostname.
In the dashboard
Reverse DNS answers the question "which hostname belongs to this address?". Set it for a floating IP so that a lookup of the address returns your hostname, such as mail.example.com. Mail servers check it before they accept mail, and tools such as traceroute show it.
Each address has one reverse DNS record, stored as a PTR record. A subnet has one record for each usable host. An instance's IPv6 /64 has one for each address in it that you name, up to 256.
The Floating IPs list does not show reverse DNS names. Its table has a Reverse DNS column that reads Per host for a subnet and Per address for a /64, and a dash for a single address. Read or set the name on the address's own Reverse DNS tab.
Before you begin
Section titled Before you begin- The floating IP must be on your account. It does not need to be attached.
- Choose a fully qualified hostname that you control, such as
mail.example.com. If you have no domain, you can use a name under a free coritan.gg name, as Claim a free coritan.gg name describes. - For mail, the hostname also needs an
Arecord that points at the address, or anAAAArecord for an IPv6 address. Make the name resolve both ways explains how. - You can change reverse DNS as often as you like, but you cannot remove it once it is set.
Set reverse DNS for a single address
Section titled Set reverse DNS for a single addressIn the dashboard, go to Floating IPs, open the address and select the Reverse DNS tab.
Type the hostname in the field, such as
mail.example.com. A trailing dot is optional.If you hold a coritan.gg name, the chips under the field offer names under it, such as
ip-203-0-113-10.survival-smp.coritan.gg. Select a chip to fill the field.Check the Published record preview. It shows the address's reverse name, such as
10.113.0.203.in-addr.arpa, and the hostname it will return. The reverse name of an IPv6 address spells out the address one hex digit at a time and ends inip6.arpa.Select Save reverse DNS.
A message confirms the change, such as Reverse DNS for 203.0.113.10 set to mail.example.com.
Set reverse DNS for a host of a subnet
Section titled Set reverse DNS for a host of a subnet- Open the subnet and select the Reverse DNS tab. You can also open the Hosts tab, open a host's actions menu and select Set reverse DNS, which opens the tab with that host chosen.
- Under Host, choose the host. The list marks attached hosts with
(attached), and the hint under it says what the host is attached to. - Type the hostname and select Save reverse DNS.
The list offers only the usable hosts. The network, gateway and broadcast addresses of a subnet have no reverse DNS of their own, as How subnets work explains.
Set reverse DNS for an address in an IPv6 /64
Section titled Set reverse DNS for an address in an IPv6 /64Every address inside an instance's IPv6 /64 reaches the instance, and each one can have a record of its own.
- In the dashboard, go to Floating IPs and open the /64. Its card says "IPv6 /64" under the address. Select the Reverse DNS tab, or select Per address on the Overview tab.
- On the Reverse DNS per address card, type the address under Address, such as
2001:db8:1000:5::25. The field starts on the address the instance uses, which ends in::1, and the hint under it names the /64. - Once the field holds an address inside the /64, the card shows that address's record under Published record, or a note that starts
No reverse DNS yet.Type the hostname and select Save reverse DNS.
The tab adds the address to the page's URL, such as ?host=2001:db8:1000:5::25, so a link that ends that way opens the tab on that address. The /64 keeps up to 256 records. Once it has 256, you can still change the hostname of an address that has one.
Make the name resolve both ways
Section titled Make the name resolve both waysThe PTR record only answers lookups of the address. Mail servers also look up the hostname and expect it to return the same address. Create an A record for the hostname that points at the address, or an AAAA record for an IPv6 address:
- For a domain on Coritan DNS, add the record on the domain's DNS records, as Add, edit and delete DNS records describes. For a domain elsewhere, add it at your DNS provider.
- For a name under your coritan.gg name, tick Also give the address a name on the Attach tab when you attach the address, as Attach and detach a floating IP describes. For an address that is already attached, or an address in a /64, add the record to the name's zone as for any other domain.
Then check both directions from any machine with dig:
dig -x 203.0.113.10 +short
dig mail.example.com A +short
The first command prints mail.example.com. and the second prints 203.0.113.10. For an IPv6 address, ask for AAAA:
dig -x 2001:db8:1000:5::25 +short
dig mail.example.com AAAA +short
Result
Section titled ResultThe Reverse DNS tab shows the saved hostname in the field and in the Published record preview. The Overview tab shows it under Reverse DNS. For a /64, the Reverse DNS tab shows each record once you enter its address.
We publish the record in the reverse zone that covers the address, when we host that zone. Our nameservers then answer with the new hostname once you save it. Resolvers that looked the address up earlier can return the old answer until it expires.
The record belongs to the address. It stays when you detach the address or move it to another instance or server.
Troubleshooting
Section titled TroubleshootingEnter a hostname- The field is empty. Type a hostname.
Use a fully qualified name, for example mail.example.com- The hostname has no dot. Type the full name, including the domain.
Empty label in hostname- The hostname has two dots in a row, or starts with a dot. Remove the extra dot.
Each label is at most 63 charactersorHostnames are at most 253 characters- A part of the hostname between dots, or the whole hostname, is too long. Choose a shorter name.
- A message that ends
is not a valid label - A part of the hostname has a character other than a letter, a digit or a hyphen, or starts or ends with a hyphen. Remove the character.
- Save reverse DNS is greyed out
- The hostname is the one already saved, or it breaks one of the rules above.
No usable hosts- We could not list the subnet's hosts. Contact support with the subnet's address.
- A message that ends
is not inside 2001:db8:1000:5::/64. - The address under Address is outside the /64 that the message names. Type an address that starts with the /64's network, such as
2001:db8:1000:5::25. - A message that starts
Enter an IPv6 address, such as - The field under Address does not hold an IPv6 address. Check it for a typing mistake.
This /64 already has 256 PTR records, the most it can keep. Set a new hostname on one of its addresses instead.- The /64 has a record for 256 of its addresses, and you cannot remove one. Give one of those addresses the new hostname instead.
dig -xreturns nothing or an old hostname- A resolver may still hold the old answer. Ask our nameserver directly with
dig -x 203.0.113.10 @ns1.coritan.com +short. If it prints your hostname, wait for the resolver's copy to expire. If it prints nothing, ordigreportsREFUSED, we do not host the reverse zone for the address, so the record is saved but not published. Contact support with the address. - Mail servers still reject your mail
- The hostname's
Arecord is missing or points at another address. Check both directions as Make the name resolve both ways shows.
Related
Section titled Related- Attach and detach a floating IP
- How subnets work
- Add, edit and delete DNS records
- Claim a free coritan.gg name
With the API
Section titled With the APIGET /api/v1/client/ips/{service_id}/ptr returns the reverse DNS record of a floating IP:
curl https://api.coritan.com/api/v1/client/ips/214/ptr \
-H "Authorization: Bearer $CORITAN_TOKEN"
{
"id": 12,
"inventory_id": 901,
"hostname": "mail.example.com",
"address": "203.0.113.10",
"version": "ipv4",
"service_id": 214,
"created_at": "2026-09-25T10:00:00",
"updated_at": "2026-09-25T10:00:00"
}
An address with no reverse DNS returns {"hostname": null, "ip_service_id": 214}. For a subnet, name the host with the host_address query parameter, such as ?host_address=203.0.113.18, or with host_inventory_id, the host's id from the subnet's host list.
For an instance's IPv6 /64, host_address is required and names any address inside it, such as ?host_address=2001:db8:1000:5::25. Its record has the inventory_id of the /64, the address in its short form, version, service_id and hostname. For an IPv6 address, host_address is optional, and when you send it, it must be the address itself.
PATCH /api/v1/client/ips/{service_id}/ptr sets the record:
curl -X PATCH https://api.coritan.com/api/v1/client/ips/214/ptr \
-H "Authorization: Bearer $CORITAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"hostname": "mail.example.com"}'
| Field | Meaning |
|---|---|
hostname |
Required. A fully qualified hostname of 1–253 characters. We store it in lower case, without a trailing dot. |
host_address |
Subnets and IPv6 /64s. The host whose record you set, or for a /64 any address inside it. Required for a /64. |
host_inventory_id |
Subnets only. The host's id from the subnet's host list, in place of host_address. |
The response is the saved record, as GET returns it.
| Response | When |
|---|---|
422 with PTR hostname must be a fully-qualified domain name |
The hostname has no dot. |
422 with PTR hostname must be a valid FQDN |
A part of the hostname breaks the rules in Troubleshooting. |
422 with PTR hostname is required |
The hostname is blank. |
422 with Subnet PTR requires host_address or host_inventory_id |
The floating IP is a subnet and the request named no host. |
422 with Address is reserved (network/broadcast/gateway) and cannot be attached |
The host is one of the subnet's reserved addresses. |
404 with a message that starts Host in block |
The address is not part of the subnet. |
422 with A PTR on a /64 needs host_address: the address inside the /64 that it names. |
The floating IP is an instance's /64 and the request named no address. |
422 with a message that ends is not inside 2001:db8:1000:5::/64. |
host_address is outside the /64. |
409 with This /64 already has 256 PTR records, the most it can keep. Set a new hostname on one of its addresses instead. |
The /64 has 256 records and host_address names an address that has none. |
422 with a message that starts This service is the one address |
The floating IP is an IPv6 address and host_address names another one. |
403 with You do not own this service |
The service is on another account. |
409 with Service is terminated or pending termination |
The floating IP has been cancelled. |
The Floating IPs API reference lists every field.
API operations on this page
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/client/ips/{service_id}/ptr | Get PTR |
PATCH | /api/v1/client/ips/{service_id}/ptr | Set PTR |