
お世話になっております。
システムガーディアンのカトーです。
先日、香港へ行った際、待ち時間があったので、ビールを飲んで休んでいました。
表示価格が「$59」だったので、つい台湾ドルの感覚で注文してしまったのですが、支払い時に「どうも金額がおかしい」と気が付きました。
当然ながら香港ドルです。
500mlのビールが日本円で約1200円越え。
なかなか驚きの物価でした。
恐るべし香港。
恐るべしヒューガルデン・ホワイト。
ちなみに、スペルを見て「Hoegaarden」を「hoge」と読み違え、店員さんに「ホゲビール」などと言ってしまいました。
お恥ずかしい話ですが、思わずプログラムでよく見る変数名の hoge を思い出してしまいました。
良くあるテスト文字列を見返してみる。
IT業務をしていると、hogeやらfuga、piyoなど、文字列を使いがちで、URL関係は「.test」なんて テスト用の変数やドメイン、メールアドレスなども手順書に載せるサンプルのドメイン名を書く場面がよくあります。たとえば、
|
1 2 3 |
user@example.com test@example.invalid mail.example.com |
このあたりは、インフラやWebまわりを触っている方であれば、なんとなく
「example.com を使っておけばよい」
「.invalid は無効なドメインの例で使える」
という認識があるかと思います。
私自身も以前から知ってはいたのですが、改めて現在の予約済みドメインを見返してみると、意外と整理して覚えていなかった部分もありました。
ドメイン名は小さな文字列ですが、適当に書くとテストメールが外部に飛んだり、DNS問い合わせが実在する第三者ドメインに向いたりすることがあります。
たとえるなら、社内検証のつもりで投げたボールが、なぜか隣の会社の窓に当たるようなものです。
インターネット、思ったより地続きです。
今回は、テスト用・例示用として安全に使える予約済みドメインについて、改めて整理します。
なぜ予約済みドメインを使うべきなのか
手順書や設定例で、なんとなく以下のようなドメイン名を使ってしまうことがあります。
|
1 2 3 |
test-company.jp dummy-mail.com sample-system.net |
その場合、以下のような問題につながることがあります。
|
1 2 3 4 5 6 7 |
・DNS問い合わせが実在の外部ドメインに飛んでしまう ・テストメールが第三者に送信される可能性がある ・アクセスログやメールログに不要な通信が残る ・セキュリティ検証時に誤解を招く ・資料を見た人が実在サービスと勘違いする ・後からそのドメインが実在化して、過去の資料やコードと衝突する ・発狂したエンジニアが他人のサーバーを叩き続けてしまう。 |
RFC 2606: Reserved Top Level DNS Names
@See : https://datatracker.ietf.org/doc/html/rfc2606
よく使う予約済みドメイン一覧
まず、実務でよく使うものを一覧にすると以下の通りです。
| ドメイン | 用途 | 実務での使いどころ |
|---|---|---|
example.com |
例示用 | WebサイトURL、メールアドレス例、手順書 |
example.net |
例示用 | ネットワーク系の説明、設定例 |
example.org |
例示用 | 組織・団体の例示 |
.example |
例示用TLD | system.example などの文書例 |
.test |
テスト用途 | DNS検証、開発・検証環境の説明 |
.invalid |
無効なドメイン名の明示 | 存在しない宛先、ダミーメールアドレス |
.localhost |
ローカルホスト用途 | ループバック、ローカル環境 |
localhost |
ローカルホスト用途 | http://localhost:8080/ など |
RFC 2606では、.test、.example、.invalid、.localhost の4つが、テストや文書例などのために予約されています。また、例示用の第2レベルドメインとして example.com、example.net、example.org も挙げられています。
なお、IANAの予約済みドメインのページでも、example.com や example.org などは文書内の例示用途として使えるものとして案内されており、登録や移転の対象ではないと説明されています。
.invalid ドメインとは
.invalid は、その名前の通り、無効なドメインであることを示すための予約済みトップレベルドメインです。
たとえば、以下のように使います。
|
1 2 3 4 |
example.invalid user@example.invalid mail.example.invalid test-server.invalid |
.invalid は「これは実在するドメインではありません」という意図を明確にできます。
特に、以下のような場面で便利です。
|
1 2 3 4 5 6 |
・ダミーのメールアドレス ・テストデータ ・無効な入力例 ・検証ログの例 ・セキュリティ検証時の無効な宛先 ・サンプルCSVやユーザーデータ |
|
1 2 |
送信元:noreply@example.invalid 宛先:user@example.invalid |
.invalid については、IANAの Special-Use Domain Names の一覧にも掲載されています。
example.com と .invalid の使い分け
実務では、example.com と .invalid をどう使い分けるかが一番分かりやすいポイントです。
| 用途 | おすすめ |
|---|---|
| 一般的なURL例 | https://www.example.com/ |
| 一般的なメールアドレス例 | user@example.com |
| 実在しない宛先として明示したい | user@example.invalid |
| 入力エラー例として使いたい | wrong@example.invalid |
| ドキュメントやマニュアル | example.com |
| 送信してはいけないダミー宛先 | example.invalid |
example.com は、資料や手順書で自然に見せたい場合に向いています。
一方で、.invalid は「これは無効なものです」と強調したい場合に向いています。
つまり、ざっくり言うと以下です。
|
1 2 |
自然な例として見せたい → example.com 無効であることを示したい → example.invalid |
.test は検証環境向け
.test は、テスト用途として予約されているトップレベルドメインです。
|
1 2 3 |
app.test system.test mail.test |
DNS関連の検証や、開発・検証環境の説明に使いやすいドメインです。
ただし、実際の社内ネットワークやローカルDNSで .test を使って名前解決する場合は、運用ルールを決めておく必要があります。
たとえば、
|
1 2 3 |
app01.system.test db01.system.test mail.system.test |
localhost と .localhost
localhost は、自分自身のPCやサーバーを指すローカルホスト名として使われます。
|
1 2 |
http://localhost:8080/ http://localhost:3000/ |
また、.localhost も予約済みTLDとして扱われています。RFC 2606では、.localhost は伝統的にループバックIPアドレスを指すものとして実装されてきたため、その用途のために予約されていると説明されています。
実務上は、以下のように使い分けると分かりやすいです。
| 用途 | 例 |
|---|---|
| ローカルWebアプリ | http://localhost:3000/ |
| ローカルAPI | http://localhost:8080/api/ |
| ローカルサブドメイン風の例 | app.localhost |
.local は便利そうに見えて注意が必要
ここで注意したいのが .local です。
|
1 2 3 |
server.local company.local test.local |
.local は mDNS、Bonjour、Avahi などで使われることがあります。IANAの Special-Use Domain Names にも local. は掲載されており、RFC 6762の参照が付いています。そのため、Windows、macOS、Linux、ネットワーク機器、プリンタ、NASなどが混在する環境では、.local を安易に社内DNS名として使うと、名前解決がややこしくなる場合があります。検証用だからといって .local を使うより、用途に応じて以下を使い分ける方が安全です。|
1 2 3 4 5 |
文書の例示:example.com 無効なドメイン例:example.invalid テスト用途:example.test ローカル開発:localhost 社内本番・準本番:自社で管理している正式なサブドメイン |
現在の Special-Use Domain Names も見返してみる
IANAには、Special-Use Domain Names という一覧があります。
これは、技術標準によって特別な用途が指定されたドメイン名の一覧です。
2026年6月3日時点で確認したところ、IANAの Special-Use Domain Names は 2026年5月22日に更新されていました。
一覧には、実務でよく見るものだけでなく、逆引き用やプロトコル用途のものも含まれています。
代表的なものを抜粋すると以下です。
| 名前 | 概要 |
|---|---|
example. |
例示用 |
example.com. |
例示用 |
example.net. |
例示用 |
example.org. |
例示用 |
invalid. |
無効なドメイン名用 |
localhost. |
ローカルホスト用 |
test. |
テスト用途 |
local. |
mDNS用途 |
onion. |
Tor onion service 用 |
home.arpa. |
家庭内ネットワーク用途 |
ipv4only.arpa. |
IPv6/IPv4変換関連の検出用途 |
resolver.arpa. |
DNSリゾルバ関連用途 |
service.arpa. |
サービス関連用途 |
IANAの一覧では、alt.、home.arpa.、onion.、resolver.arpa.、service.arpa. なども Special-Use Domain Names として掲載されています。ただし、Web制作やメール設定の手順書で普段使うのは、基本的には以下を押さえておけば十分です。
|
1 2 3 4 5 6 |
example.com example.net example.org example.invalid example.test localhost |
IDNのテスト用ドメインもある
IANAの予約済みドメイン一覧には、国際化ドメイン名、いわゆるIDNの評価用に使われたテスト用TLDも掲載されています。
たとえば、以下のようなものです。
| 表記 | 言語・文字 |
|---|---|
テスト |
日本語・カタカナ |
测试 |
中国語・簡体字 |
測試 |
中国語・繁体字 |
테스트 |
韓国語・ハングル |
δοκιμή |
ギリシャ語 |
испытание |
ロシア語・キリル文字 |
通常の手順書ではあまり使いませんが、国際化ドメインや多言語対応の検証では、こうしたものがあることを知っておくと便利です。
実務でのおすすめルール
実務では、細かく考えすぎるよりも、社内ルールとして決めてしまうのが一番です。
たとえば、以下のように決めておくと迷いません。
| 場面 | 使用例 |
|---|---|
| WebサイトのURL例 | https://www.example.com/ |
| メールアドレス例 | user@example.com |
| 無効なメールアドレス例 | user@example.invalid |
| 送信してはいけない宛先 | noreply@example.invalid |
| DNS検証の説明 | host.example.test |
| ローカル開発 | http://localhost:8080/ |
| 社内検証環境 | 自社管理ドメインのサブドメイン |
| 避けたい例 | 適当な未取得風ドメイン、.local の安易な利用 |
個人的には、以下の使い分けが一番分かりやすいと思います。
|
1 2 3 4 5 |
説明資料・手順書:example.com 無効な宛先:example.invalid DNSや検証環境:example.test ローカル開発:localhost 社内本番/検証:自社で管理する正式なサブドメイン |
やってはいけない例とか
逆に、以下のような使い方は避けた方が無難です。
|
1 2 3 4 5 6 |
・適当に考えた会社名風ドメインを使う ・存在確認せずに sample-xxxxx.com などを書く ・顧客名に似たダミードメインを使う ・テストメールの宛先に実在しそうなアドレスを書く ・社内DNSで .local を深く考えずに使う ・公開資料に実在企業っぽいドメインを載せる |
|
1 |
test@example.invalid |
|
1 |
test@example-co.jp |
「どうせ存在しないだろう」は、インターネットではあまり信用しない方がよいです。
だいたい、存在しないと思ったものほど、誰かが先に取っています。
まとめ
今回は、ふと昔使っていた.invalid を中心に、テスト用・例示用として使える予約済みドメインを改めて見返してみました。
押さえておきたいポイントは以下でしょうか?
|
1 2 3 4 5 6 |
・example.com / example.net / example.org は例示用に使える ・.invalid は、無効なドメイン名であることを示す用途に向いている ・.test は、テスト用途として使える ・localhost / .localhost は、ローカルホスト用途 ・.local は mDNS などと関係するため、社内DNSでは注意が必要 ・適当に考えたドメイン名は、実在・将来取得のリスクがある |
|
1 2 3 4 5 |
Webサイトの例 :https://www.example.com/ メールアドレス例 :user@example.com 無効な宛先例 :user@example.invalid 検証環境の例 :app.example.test ローカル開発 :http://localhost:8080/ |
.invalid は名前からして「私は無効です」と正直に名乗っている、かなり誠実なドメインですね。手順書、サンプルコード、検証データを作るときは、ぜひ予約済みドメインをうまく使い分けいきましょう。
……そう書いて自分を反省する記事です。
