forked from TrueCloudLab/frostfs-contract
160 lines
3.8 KiB
Markdown
160 lines
3.8 KiB
Markdown
|
# Globally unique domain zone
|
||
|
|
||
|
**Make sure you understand the [basic concepts](../nns/README.md) of `NNS`.**
|
||
|
|
||
|
`Globally Unique Domains Zone` (`GUDZ`) is an extension of `NNS` that ensures unique names across multiple domain zones. When this option is enabled, all newly created domains will automatically receive a corresponding alias in the designated global zone. Deleting a domain will also remove its alias from the global zone.
|
||
|
|
||
|
It's important to note that this feature is not retroactive: domains created before this option is enabled will not receive a global alias. Likewise, if the option is later disabled, domains that already have a `GUDZ` alias will retain their records. To fully disable `GUDZ`, all domains must be recreated with the option turned off.
|
||
|
|
||
|
To enable `GUDZ`, add a `cnametgt=$(global domain)` `TXT` record that specifies the global zone.
|
||
|
|
||
|
**Example:**
|
||
|
|
||
|
Domains:
|
||
|
- `poland`
|
||
|
- `sweden`
|
||
|
- `animals.org`
|
||
|
|
||
|
It is necessary to associate the domain zones `.poland` and `.sweden` into the global zone `.animals`.
|
||
|
|
||
|
![](img/GUDZ.png)
|
||
|
|
||
|
Create domains:
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns register --name="poland" --email="email@email.email"
|
||
|
frostfs-adm morph nns register --name="sweden" --email="email@email.email"
|
||
|
frostfs-adm morph nns register --name="org" --email="email@email.email"
|
||
|
frostfs-adm morph nns register --name="animals.org" --email="email@email.email"
|
||
|
```
|
||
|
|
||
|
Add the `cnametgt` records:
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns add-record --name="poland" --data="cnametgt=animals.org" --type="txt"
|
||
|
frostfs-adm morph nns add-record --name="sweden" --data="cnametgt=animals.org" --type="txt"
|
||
|
```
|
||
|
|
||
|
Create a domain with mapping to the global zone:
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns register --name="bober.poland" --email="email@email.email"
|
||
|
```
|
||
|
|
||
|
Add any `TXT` record
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns add-record --name="bober.poland" --data="CID" --type="txt"
|
||
|
```
|
||
|
|
||
|
Verify that the created domain has alias in the global zone
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns tokens -v
|
||
|
|
||
|
balance.frostfs
|
||
|
animals.org
|
||
|
group.frostfs
|
||
|
container
|
||
|
org
|
||
|
container.frostfs
|
||
|
proxy.frostfs
|
||
|
policy.frostfs
|
||
|
alphabet0.frostfs
|
||
|
sweden
|
||
|
frostfsid.frostfs
|
||
|
bober.animals.org (CNAME: bober.poland)
|
||
|
netmap.frostfs
|
||
|
frostfs
|
||
|
poland
|
||
|
bober.poland
|
||
|
```
|
||
|
|
||
|
Create of a conflicting domain
|
||
|
```
|
||
|
frostfs-adm morph nns register --name="bober.sweden" --email="email@email.email"
|
||
|
|
||
|
unable to register domain: script failed (FAULT state) due to an error: at instruction 1263 (THROW): unhandled exception: "global domain is already taken: bober.animals.org. Domain: bober.poland
|
||
|
```
|
||
|
|
||
|
**Disable GUDZ**
|
||
|
Delete `cnametgt` records
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns delete-records --type=txt --name=poland
|
||
|
```
|
||
|
Create `hamster.poland` and `hamster.sweden`
|
||
|
```
|
||
|
frostfs-adm morph nns register --name="hamster.poland" --email="email@email.email"
|
||
|
frostfs-adm morph nns register --name="hamster.sweden" --email="email@email.email"
|
||
|
```
|
||
|
`hamster.poland` and `hamster.sweden` does not have alias
|
||
|
```
|
||
|
frostfs-adm morph nns tokens -v
|
||
|
balance.frostfs
|
||
|
animals.org
|
||
|
group.frostfs
|
||
|
container
|
||
|
org
|
||
|
container.frostfs
|
||
|
proxy.frostfs
|
||
|
policy.frostfs
|
||
|
alphabet0.frostfs
|
||
|
sweden
|
||
|
frostfsid.frostfs
|
||
|
bober.animals.org (CNAME: bober.poland)
|
||
|
netmap.frostfs
|
||
|
frostfs
|
||
|
poland
|
||
|
bober.poland
|
||
|
hamster.poland
|
||
|
```
|
||
|
Delete global alias of `bober.poland`
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns delete-records --name="bober.poland" --type="txt"
|
||
|
```
|
||
|
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns tokens -v
|
||
|
balance.frostfs
|
||
|
animals.org
|
||
|
group.frostfs
|
||
|
container
|
||
|
org
|
||
|
container.frostfs
|
||
|
proxy.frostfs
|
||
|
policy.frostfs
|
||
|
alphabet0.frostfs
|
||
|
sweden
|
||
|
frostfsid.frostfs
|
||
|
netmap.frostfs
|
||
|
frostfs
|
||
|
poland
|
||
|
bober.poland
|
||
|
hamster.poland
|
||
|
```
|
||
|
Delete `bober.poland`
|
||
|
```
|
||
|
frostfs-adm morph nns delete --name="bober.poland"
|
||
|
```
|
||
|
|
||
|
```
|
||
|
frostfs-adm morph nns tokens -v
|
||
|
balance.frostfs
|
||
|
animals.org
|
||
|
group.frostfs
|
||
|
container
|
||
|
org
|
||
|
container.frostfs
|
||
|
proxy.frostfs
|
||
|
policy.frostfs
|
||
|
alphabet0.frostfs
|
||
|
sweden
|
||
|
frostfsid.frostfs
|
||
|
netmap.frostfs
|
||
|
frostfs
|
||
|
poland
|
||
|
hamster.poland
|
||
|
```
|