ip addr を見たら inet6 fe80::… ってアドレスが付いてた
設定した覚えがないのに
【疑問】fe80:: で始まるアドレスが勝手に付いてる。IPv6 の128ビットと省略表記、リンクローカル、近隣探索【LPICレベル1】
前提のおさらい。IPv4 は32ビットで、ネットワーク部とホスト部を /24 みたいなプレフィックスの長さで分ける。IPv6 も考え方は同じ
>>1
fe80::/10 はリンクローカルアドレス。IPv6 が有効なインターフェースには自動で付く。同じリンク(ルーターを越えない範囲)の中だけで使う
近くの機器を見つけたり、ルーターと話したりするのに使うから、消さんでええ
>>3
そもそも IPv6 のアドレスの書き方は?
>>4
128ビットを16ビットずつ8つに区切って、16進数で : でつなぐ
2001:0db8:0000:0000:0000:0000:0000:0001
各区切りの先頭の0は省ける。0だけが続くところは1か所だけ :: にできる
→ 2001:db8::1
>>5
:: を2か所に使ったらあかんの?
>>6
あかん。何個の0を省いたか分からんようになる。2001:db8:0:0:1:0:0:1 は 0 の続きが2か所あるけど、:: にできるのは1か所だけ。Python の ipaddress で縮めたら 2001:db8::1:0:0:1(前のほう)になった
>>2
アドレスの数は?
>>8
全部で
通り。普通は前の64ビットがネットワーク(プレフィックス /64)、後ろの64ビットがインターフェース ID で、1つの /64 の中だけで
個ある
>>9
ほかの種類のアドレスは?
>>10
::1/128:ループバック(IPv4 の 127.0.0.1)
fe80::/10:リンクローカル
fc00::/7(実際は fd00::/8):ユニークローカル。IPv4 のプライベートアドレスに近い
2000::/3:グローバルユニキャスト。インターネットで使う
ff00::/8:マルチキャスト
2001:db8::/32:文書用
>>11
ブロードキャストは?
>>12
IPv6 にはない。全部のノード宛てのマルチキャスト(ff02::1)などで代わりをする
>>2
IPv4 で使ってた ARP は?
>>14
ARP の代わりが近隣探索(NDP、Neighbor Discovery)。ICMPv6 の近隣要請・近隣広告で相手の MAC アドレスを調べる。ルーター要請・ルーター広告でルーターやプレフィックスも見つける
一覧は ip -6 neigh
>>15
アドレスはどうやって決まるん
>>16
ルーター広告でもらったプレフィックスに、自分でインターフェース ID を付ける SLAAC(ステートレス自動設定)がある。DHCPv6 でもらう方法も、手で付ける方法もある
IPv4 とのほかの違いは?
>>18
ヘッダーが固定長で単純になった。途中のルーターは分割(フラグメント)しない。IPv4 と IPv6 を同時に使うのがデュアルスタック
コマンドは ping -6 や昔の ping6、traceroute6、ip -6 route。URL にアドレスを書くときは http://[2001:db8::1]:8080/ のように [ ] で囲む
>>19
試したマシンの lo には inet6 ::1/128 scope host が付いてた。IPv4 の 127.0.0.1/8 と並んでる
>>3
128ビットを16進数で8つ、先頭の0と :: で省略(:: は1か所)、fe80 はリンクローカルで自動、ブロードキャストはなくて ARP の代わりは NDP。勝手に付いてたのは正常か
管理人のひとこと
- IPv6 は128ビット。16ビットずつ8つを16進数で
:区切り。各区切りの先頭の0は省略でき、0の連続は1か所だけ::にできる(2001:0db8:0:0:0:0:0:1 → 2001:db8::1)。 - 普通は /64 がネットワーク、残り64ビットがインターフェース ID。::1 ループバック、fe80::/10 リンクローカル(自動で付く)、fc00::/7 ユニークローカル、2000::/3 グローバル、ff00::/8 マルチキャスト、2001:db8::/32 文書用。
- ブロードキャストはなくマルチキャストを使う。ARP の代わりは ICMPv6 の近隣探索(NDP)。アドレスは SLAAC・DHCPv6・手動で付ける。
- ヘッダーは固定長で、途中のルーターは分割しない。コマンドは ping -6(ping6)、traceroute6、ip -6。URL では [アドレス]:ポート と書く。