6. IPv6
6-IPv6
とりあえずI/Fにこうコマンド打つとv6の設定ができるよ
★フツーにグローバル(文書用だが)ユニキャスト
Router(config)#int gi0/0
Router(config-if)#ipv6 address 2001:db8:2:2::1/64
Router(config-if)#no shut
★1個はフツーに、もう1個はEUI-64を使ってみる
Router(config)#int gi0/1
Router(config-if)#ipv6 address 2001:db8:1:1::1/64
Router(config-if)#ipv6 address 2001:db8:1:1::/64 eui-64
Router(config-if)#no shut
★ipv6ルーティングを有効化
Router(config)#ipv6 unicast-routing
★リンクローカルアドレスを自動設定
Router(config-if)#ipv6 enable
★リンクローカルアドレスを手動設定 ※リンクロに限らず、グロユニキャでも 手動設定する場合は上述のipv6 enableが暗黙で設定されてくれる。
Router(config-if)#ipv6 address FE80::1 link-local
★RAを使ってIPv6アドレス(グロユニキャ)を自動取得 ※defaultオプションで、デフォルトルートを登録可
Router(config-if)#ipv6 address autoconfig [default]
★ACLをつくりたい (最後の行で暗黙のpermitがキャンセルされてるので途中工夫)
Router(config)#ipv6 access-list Hoge
Router(config-ipv6-acl)#permit tcp 2001:db8:1:1::/64 host 2001:db8:2:2::100 ep 23
Router(config-ipv6-acl)#permit icmp any any nd-ns
Router(config-ipv6-acl)#permit icmp any any nd-na
Router(config-ipv6-acl)#deny ipv6 any any
★ACLをi/fに設定したい。
Router(config-if)#ipv6 traffic-filter Hoge in
★設定確認したい
Router#sh run | begin fast →eui-64で設定されたアドレスは具体的に見えないので注意
Router#sh ivp6 int bri→お手頃
Router#sh ipv6 route ルーティングテーブルが見える
Router#sh ipv6 neighbors →ネイバーテーブルが見える ※REACH:到達可能な状態で通信可能 STALE:動いてない。最近通信してない。 stale:古仏語で「動かない」
Router#sh ipv6 access-list →ipv6の部分は省略可。アクセスリストが見える。
★ping
★/etc/host的なことをしたい
Router(config)#ipv6 host hogehoge 2001:db8:1:1::1
★DNSレコードをアウトソースするなら
Router(config)#ip name-server DNS鯖のアドレス
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 6-1 ICND1でエニーキャストマルチキャストは一応やったので
ユニキャストについてしつこく見ていく。
そもそも:IPv6のアドレスには
有効範囲と送付先で3*3=9通りの分類がある。
有効範囲:
・リンクローカル:特定サブネットのみで有効。
つまりルータを超えることはない。
アドレス自動設定やルーティングプロトコルで使用。
そもそもリンクとはサブネット内のつながりを表す。
・ユニークローカル
ルータを飛び越えはするが、特定の組織内でのみ有効。
つまるところipv4で言うプライベートアドレス
・グローバル
ISPや、レジストリから取得できる、有効範囲制限のないアドレス。
つまるところipv4で言うグローバルアドレス。
送付先:
・1対1:ユニキャストアドレス
特定単数のI/Fに向けられたアドレス。
128ビットのうち前半64bitsがprefix、後半64bitsがInterface ID.
・1対多:マルチキャストアドレス
特定グループへの宛先アドレス。
・1対one of any:エニーキャストアドレス
これはipv6特有。
近傍複数ノードのI/Fが、同じユニキャストアドレスを持てる。
そのアドレスを持つ、最も近いノードのI/Fに転送される。
★んで、今回はユニキャストアドレスを具に見ていく。
・グローバルユニキャストアドレス
2000::/3 (ビットで言うと001.....)で始まる。
2001::/16がIPv6インターネット用に使われる。
2002::/16は6to4トンネル用。2003://16-は未割当。
3FFE::/16を実験用に使ってたりもしたけど今は廃止されてる。
prefixにはISP等から割り当てられる48bitsのGlobal Routing Prefixと
その後ろに16bits分のsubnetIDがある。16bitsだから65536個分 サブネットが作れるわけやね。
このsubnetIDをSLA:Site-Level Aggregationとも呼ぶ。
・ユニークローカルユニキャストアドレス
もう一度言うがこれはプライベートアドレスっぽいやつ。
FC00::/7 (ビットで言うと1111 110...)で始まるが、
8ビット目(Lと言う)はグローバルIDの使用方法のビットで
通常L=1となるので
結局FD00::/8 (ビットで言うと1111 1101....)を使うことになる。
・リンクローカルユニキャストアドレス
ルータを超えないサブネット内で使われるアドレス。
リンクローカルアドレスとあぶれびえられることもある。
FE80::/10 (ビットで言うと1111 1110 10 ....)で始まる。
プレフィクスで使うのが10ビットなので、残りの54ビットは0になる。
I/F IDは、EUI-64フォーマットでMACアドレスから自動生成できるので
これを利用してDHCPがなくてもリンクローカルアドレスを自動付与できる。
・その他のアドレス
-loopback = ::1 (127.0.0.1的なやつ)
-unassigned = :: (アドレスがないという意味でRouting対象外。)
※IPアドレスの自動取得を試みるデバイスの送信元IPとかがこれに。
-Document = 2001:db8::/32 社内文書用などのアドレス。
インターネット上で通信できないように設定されている。
-IPV4射影アドレス=::FFFF:+ipv4 (80bitは0、16ビットは1、残りにipv4アド)
IPv4アドレスしかサポートしてないノードとの通信用。
IPv4互換アドレスの廃止に伴いこちらを使用。
★EUI-64
MAC Address 00-AB-65-23-45-98 が与えられたとき
EUI-64からインターフェースIDを自動生成してみようぜ
1. MACアドレスをベンダコードとシリアルの24ビットずつに分けます
00-AB-65 と 23-45-98
2. 真ん中に16ビット分FFFEをぶっこみます。
00-AB-65-FF-EE-23-45-98
3. Universal/Localビット:先頭から7ビット目を反転させる。
U/Lビットが1→ MACアドレスではローカル、I/F IDではグローバル
U/Lビットが0 → MACアドレスではグローバル、I/F IDではローカル
グローバル(一意)なMACアドレスを変換する場合、普通00→02になる。
02-AB-65-FF-EE-23-45-98
4. IPv6っぽい表記にして完成
02AB:65FF:EE23:4598
★IPv4→v6への移行方法
・デュアルスタック = 1台の機器で両方サポートする
・トンネリング = IPv6パケをIPv4ヘッダでカプセル化してv4NWを通す
・トランスレータ =NAT-PTなどでNWの出口でipv6に変換しちゃう
★近隣探索:ND
ICMPv6 近隣探索
→同一セグメント上にあるノードを探索しネイバーテーブルにまとめる。
要はARPテーブルのようなもの。
下記133-137のICMPメッセージを送受信してテーブルをつくる。
133 RS:Router Solicitation ルータ要請
134 RA:Router Advertisement ルータ広告
-RS/RAで何ができるか
・ホストにIPv6アドレスを自動割り当て
・Prefixを検出し、リンクでいける範囲とルータを飛び越える範囲を識別
・NextHop検出
・同一リンク上で、ノードが接続できるルータを検出
・リンクMTUやホップリミットを検出
135 NS: Neighbor Solicitation 近隣要請
136 NA: Neighbor
-NS/NAで何ができるか
・MACアドレスとIPv6アドレスの関連付け(ARPのようなもの)
・重複アドレス検出:DAD
・近隣ノードの到達不能状態の検出
137 :Redirect
-IPv4でいうICMPリダイレクトと同様に最も効率の良い転送先を通知
★ACL:アクセスリスト
名前付きしか作れないのでむしろわかりやすい。
暗黙のdenyに加えて、nsとnaを許可する暗黙のpermitがあることに注意。
つまるところ末尾に以下が自動付加されていることになる。
・permit icmp any any nd-ns
・permit icmp any any nd-na
・deny ipv6 any any