/etc/hostsにIPv6アドレスを表示する正しい方法は何ですか?

/etc/hostsにIPv6アドレスを表示する正しい方法は何ですか?

私は、同僚がホスト上でIPv6アドレスを設定する方法を学ぶことができるように、IPv6に関するドキュメントを作成する任務を受けました。主にRHEL6.x/7.x、ESXi、Ubuntu Serverを使用しています。これはRHEL / Ubuntuでのみ機能します。

ディスカッション:どのように参加する必要がありますか/etc/hosts

私はそれが次のように表示されるのを見ます:

2001:4860:4860::1:8888 google.com
# Gateway:IPv6 Address <hostname_here>

または

IPv4と同じように書かれています。

答え1

ホストファイル形式は複数行で構成されます。各行には、IPアドレスとスペース、1つ以上のホスト名がスペースで区切られて含まれています。

アドレスが従来の IPv4 アドレスではなく IPv6 アドレスの場合、何も変更されません。形式は同じです。

たとえば、

2001:db8:1::1 example.com www.example.com
2001:db8:2::1 mail.example.com

また見てくださいhosts(5)マニュアルページ

答え2

IPv6アドレスは128ビットのアドレス指定スペースを表すため、独自のフォーマットシステムがあります。これは16オクテットで非常に扱いにくいです。今回もここにはゼロがたくさん内蔵されているので簡単に除去できます。オクテットが使用されていないことを示すには、ピリオドの代わりにコロンを使用し、同様に10進数の代わりに16進数を使用します。

一つIPv6アドレス次のようになります。

aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh[%int][/netmask]

netmask最大128を除いて、IPv4と同じように機能します。

必要な%intもの範囲内グローバルアドレス以外のアドレスは、ローカルネットワーク内でのみ意味があり、両方のインターフェイスが同じアドレスを持つことができるため、アドレスを所有するネットワークインターフェイスを指定します。

先行ゼロは省略することができ、アドレス内で単一のゼロ文字列(通常は最長)を使用できます。圧縮使用して::

2001:0db8:1523:0000:1334:0000:0000:0193
先行ゼロを削除:2001:db8:1523:0:1334:0:0:193
最長ゼロ文字列を圧縮します。2001:db8:1523:0:1334::193

いくつかの特別なケースがあります:

  • 完全にゼロで始まるすべてのアドレスはに圧縮され、次にゼロ以外の::部分(0:0:0:0:0:0:0:0/128::/128なります)0:0:0:0:0:0:0:1/128に圧縮できます::1/128

  • IPv4互換およびIPv4マッピングIPv6アドレスは::a.b.c.d/96および::ffff:a.b.c.d/96(または::ffff:aabb:ccdd/96)に似ています。

使用時/etc/hostsにIPv4とIPv6アドレスの間にほとんど変更はありません。ネットワークマスクについて心配する必要はなく、範囲アドレスまたはIPv4互換アドレスについて心配する必要はほとんどありません。ゼロ圧縮規則に従う限り、通常問題はありません。デュアルホームアドレス(IPv4とIPv6の両方を受信するホスト)がある場合は、IPv4アドレスに1回、IPv6アドレスに1回、合計2回入力する必要があります。

::1 localhost
127.0.0.1 localhost
2001:db8:123:456::78 example.com www.example.com
192.0.2.56 example.com www.example.com
fe80::12:34:56:78%eth0 printer.example.com

ネットマスクと範囲については議論しません。ただし、標準範囲を参照する場合は、RIPEは次のことを行います。彼らと一緒にPDF早く知りたいなら。

関連情報