仮題

学習用

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

ping ipv6 アドレス ※ipv6の部分は省略可能


★/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