2015年12月28日月曜日

IPv6ルーティングの初歩的な設定お試し

構成はこのように。

PC----L2----R1
   |---R2

IPv6の設定の前に、IPv6でのSSDPのマルチキャストが気になるが、ここで関わってしまうといつまで経っても先に進まないので保留。

既存の設定としてはvlan1に

ipv6 address autoconfig

のみ、ここから順次。

IPv6-R1(config)#ipv6 ?
  access-list        Configure access lists
  cef                Cisco Express Forwarding for IPv6
  cga                Configure IPv6 certified generated address
  dhcp               Configure IPv6 DHCP
  flowset            Set flow label random for originated packets
  general-prefix     Configure a general IPv6 prefix
  hop-limit          Configure hop count limit
  host               Configure static hostnames
  icmp               Configure ICMP parameters
  inspect            Context-based Access Control Engine
  local              Specify local options
  mfib               Multicast Forwarding
  mld                Global mld commands
  mobile             Mobile IPv6
  multicast          Configure multicast related commands
  multicast-routing  Enable IPv6 multicast
  nat                NAT-PT Configuration commands
  nd                 Configure IPv6 ND
  neighbor           Neighbor
  ospf               OSPF
  pim                Configure Protocol Independent Multicast
  port-map           Port to application mapping (PAM) configuration commands
  prefix-list        Build a prefix list
  radius             RADIUS configuration commands
  route              Configure static routes
  router             Enable an IPV6 routing process
  source-route       Process packets with source routing header options
  spd                Selective Packet Discard (SPD)
  tacacs             TACACS configuration commands
  traffic            Configure traffic parameters
  unicast-routing    Enable unicast routing

IPv6-R1(config)#

ここで

IPv6-R1(config)#ipv6 unicast-routing

を投入した後、


IPv6-R1#ping ipv6 ?
  WORD  Ping destination address or hostname
  <cr>

IPv6-R1#
IPv6-R1#ping ipv6 fe80::226:99ff:fec8:287c
Output Interface: vlan1
% IPv6 isn't enabled on this interface

なるほど、vlan1がupしてなかった。そらenabled なわけないわ。vlan1を上げて自アドレスにpingが通ったところで続いてL2を介してつながっているPCのリンクローカルアドレスにping
 
IPv6-R1#ping ipv6  fe80::ec3d:80d5:e7ea:9fa0
Output Interface: vlan1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::EC3D:80D5:E7EA:9FA0, timeout is 2 seconds:
Packet sent with a source address of FE80::226:99FF:FEC8:287C%Vlan1
.....
Success rate is 0 percent (0/5)

通らない。PC側では受信していて応答を返していないのでPC側の問題。これも掘り下げると進まないので、ルータ間で確認する。

R1とR2間のリンクローカルアドレス同士はPing OK。ルータ間についてdebugで見るとこの通り。

IPv6-R1#debug ipv6 icmp
  ICMP Packet debugging is on
IPv6-R1#
Pv6-R1#ping ipv6 fe80::2e54:2dff:fe99:b815
Output Interface: vlan 1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::2E54:2DFF:FE99:B815, timeout is 2 seconds:
Packet sent with a source address of FE80::226:99FF:FEC8:287C%Vlan1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/1/4 ms
IPv6-R1#
Dec 27 15:22:33.752: ICMPv6: Sent echo request, Src=FE80::226:99FF:FEC8:287C, Dst=FE80::2E54:2DFF:FE99:B815
Dec 27 15:22:33.752: ICMPv6: Received echo reply, Src=FE80::2E54:2DFF:FE99:B815, Dst=FE80::226:99FF:FEC8:287C
Dec 27 15:22:33.752: ICMPv6: Sent echo request, Src=FE80::226:99FF:FEC8:287C, Dst=FE80::2E54:2DFF:FE99:B815
Dec 27 15:22:33.752: ICMPv6: Received echo reply, Src=FE80::2E54:2DFF:FE99:B815, Dst=FE80::226:99FF:FEC8:287C
Dec 27 15:22:33.752: ICMPv6: Sent echo request, Src=FE80::226:99FF:FEC8:287C, Dst=FE80::2E54:2DFF:FE99:B815
Dec 27 15:22:33.756: ICMPv6: Received echo reply, Src=FE80::2E54:2DFF:FE99:B815, Dst=FE80::226:99FF:FEC8:287C
Dec 27 15:22:33.756: ICMPv6: Sent echo request, Src=FE80::226:99FF:FEC8:287C, Dst=FE80::2E54:2DFF:FE99:B815
Dec 27 15:22:33.756: ICMPv6: Received echo reply, Src=FE80::2E54:2DFF:FE99:B815, Dst=FE80::226:99FF:FEC8:287C
Dec 27 15:22:33.756: ICMPv6: Sent echo request, Src=FE80::226:99FF:FEC8:287C, Dst=FE80::2E54:2DFF:FE99:B815
Dec 27 15:22:33.760: ICMPv6: Received echo reply, Src=FE80::2E54:2DFF:FE99:B815, Dst=FE80::226:99FF:FEC8:287C
IPv6-R1#
Dec 27 15:22:38.824: ICMPv6: Received N-Solicit, Src=FE80::2E54:2DFF:FE99:B815, Dst=FE80::226:99FF:FEC8:287C
Dec 27 15:22:38.828: ICMPv6: Sent N-Advert, Src=FE80::226:99FF:FEC8:287C, Dst=FE80::2E54:2DFF:FE99:B815
IPv6-R1#
IPv6-R1#
IPv6-R1#
Dec 27 15:22:43.924: ICMPv6: Sent R-Advert, Src=FE80::226:99FF:FEC8:287C, Dst=FF02::1
IPv6-R1#

pingに前後してネイバーソォリィシット、ネイバーァエドヴァト、それから定期なルータぁえどヴぁっとも見られる。

リンクローカルアドレスとこのpingについてはCisco社のこちら。
http://www.cisco.com/cisco/web/support/JP/110/1109/1109812_ipv6-lla.html




続いて、具体的にIPv6アドレスの設定を。設定にあたってのアドレス設計だが、ULAを使う。

IETFから Unique Local IPv6 Unicast Addresses
https://tools.ietf.org/html/rfc4193


JPNIC ユニークローカルIPv6ユニキャストアドレス
https://www.nic.ad.jp/ja/newsletter/No32/090.html

具体的には、fc00::/8 でなく fd00::/8 から。下図ではfc00だが。また、ここでのグローバル識別子は仮に、10進で言うところの277。


 サブネット識別子は、テスト構成でいろいろやるのでIPv4の下16ビットにでも合わせるか。ま、そこはテキトーに。


ともあれ設定。

IPv6-R1(config-if)#ipv6 address ?
  WORD                General prefix name
  X:X:X:X::X          IPv6 link-local address
  X:X:X:X::X/<0-128>  IPv6 prefix
  autoconfig          Obtain address using autoconfiguration
  dhcp                Obtain a ipv6 address using dhcp

IPv6-R1(config-if)#ipv6 address FC00:0:115:1302:0:0:0:1/64

設定後のdebug ipv6 icmpの出力は

Dec 27 17:05:46.206: %SYS-5-CONFIG_I: Configured from console by console
Dec 27 17:05:55.434: ICMPv6: Received R-Advert, Src=FE80::2E54:2DFF:FE99:B815, Dst=FF02::1
Dec 27 17:07:02.707: ICMPv6: Sent R-Advert, Src=FE80::226:99FF:FEC8:287C, Dst=FF02::1
Dec 27 17:07:03.707: ICMPv6: Received N-Advert, Src=FC00:0:115:1302:2E54:2DFF:FE99:B815, Dst=FF02::1
Dec 27 17:07:03.835: ICMPv6: Received N-Advert, Src=FC00:0:115:1302:F8E4:95D1:C4DA:1759, Dst=FF02::1
Dec 27 17:08:50.129: ICMPv6: Received R-Advert, Src=FE80::2E54:2DFF:FE99:B815, Dst=FF02::1
Dec 27 17:10:19.878: ICMPv6: Sent R-Advert, Src=FE80::226:99FF:FEC8:287C, Dst=FF02::1


・・・やらかした。fd00を使うつもりがfc00で設定してる。これぞまさに誤3っぷり、愚かにも程がある。 いったん設定削除。

IPv6-R1(config-if)#no ipv6 address FC00:0:115:1302:0:0:0:1/64
IPv6-R1(config-if)#
Dec 27 17:17:20.170: ICMPv6: Sent type 254, Src=FE80::226:99FF:FEC8:287C, Dst=FF02::16
Dec 27 17:17:20.690: ICMPv6: Sent type 254, Src=FE80::226:99FF:FEC8:287C, Dst=FF02::16

ff02::16向けに更新をかけるようだ。マッタク意図していなかったが目にすることができて幸い。ここであらためて、

 ff02::16

とはなんぞや?であるのだが。IPv6なマルチキャストの末尾16ビットが 0x16、つまり
00000001 00000110。いやだから?

Google先生で検索をすると The Cisco Learning Network の CCIE Routing & Switching > Discussions から、

IPv6 address FF02::16 Significance
https://learningnetwork.cisco.com/thread/13865

このようなやりとりが。私程度ではそもそも、しぐにふぃけいす って何ですか?からなのだが。ほかにもほとんど解せない単語として、destinedbehaviormistique などが。そこを Weblioさんに頼りつつ何とか目を通してわかったことは。とりあえず FF02::16 とは All MLDv2-capable routers を指すということ。

IANA - IPv6 Multicast Address Space Registry
http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml

タイプ254が何を示すのかも追いたいところだが CiscoのWebコンテンツでも触れないこともある ぐらいなのでとりあえず保留。


さて、設定すべきアドレスをfd00にあらためてみたところ今度は、

Dec 27 17:24:49.278: ICMPv6: Sent type 254, Src=FE80::226:99FF:FEC8:287C, Dst=FF02::16
Dec 27 17:24:49.282: ICMPv6: Sent N-Solicit, Src=::, Dst=FF02::1:FF00:1
Dec 27 17:24:50.198: ICMPv6: Sent type 254, Src=FE80::226:99FF:FEC8:287C, Dst=FF02::16
Dec 27 17:24:50.282: ICMPv6: Sent N-Advert, Src=FD00:0:115:1302::1, Dst=FF02::1

先のログでは保留してしまったがICMPv6タイプ253と254は、ネイバーディスカバリであるようだ。ここでWindows PC側を見てみると

   自動構成有効. . . . . . . . . . . . .: はい
   IPv6 アドレス . . . . . . . . . . . .: fc00:0:115:1302:ec3d:80d5:e7ea:9fa0(優先)
   IPv6 アドレス . . . . . . . . . . . .: fd00:0:115:1302:ec3d:80d5:e7ea:9fa0(優先)
   一時 IPv6 アドレス. . . . . . . . . .: fc00:0:115:1302:f8e4:95d1:c4da:1759(優先)
   一時 IPv6 アドレス. . . . . . . . . .: fd00:0:115:1302:f8e4:95d1:c4da:1759(優先)
   リンクローカル IPv6 アドレス. . . . .: fe80::ec3d:80d5:e7ea:9fa0%3(優先)
   IPv4 アドレス . . . . . . . . . . . .: 172.19.19.171(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: fe80::2e54:2dff:fe99:b815%3
                                          fe80::226:99ff:fec8:287c%3

ユニークローカルユニキャストアドレスが生成されている。それも、誤って設定したfc00と修正したfd00と両方。また、ルータ側のアドレスをfc00からfd00へ修正した後も、PC側のfc00アドレスはping的には有効。そうでなければipconfig /allに表示もされないだろうがなるほど。そして、IPv6のデフォゲはユニークローカルユニキャストアドレスになっていない点もなるほど、確かにでふぉげなのでリンクローカルアドレスで事足りそうではあるが。


ここで、ユニークローカルユニキャストアドレスの生成ルールがわからなくなった。これ以前にリンクローカルアドレスの生成は?と、ここでさらに、いまさらながら IPv4のリンクローカルアドレスが169.254.0.0/16であることを知る。どうにもわかっていない。ともあれ、

Windows8 ゼロ・コンフィギュレーション しくみ
https://technet.microsoft.com/ja-jp/library/bb726952.aspx

いろいろ探してみるものの、Windowsにおけるリンクローカルアドレス生成については不明なので、これは掘り下げない。とりあえず、EUI-64ではないしRFC4941でもないということで。

話をユニークローカルユニキャストアドレスの生成に戻して。

ルータにユニークローカルゆにきゃすとアドレスを設定したのち、PCにおいてアドレスを確認するとPC側でもユニークローカルユニキャストアドレスが生成されている。このとき、ルータ側の設定ではffc0に始まるアドレスとffd0に始まるそれを続けざまに設定削除再設定したわけだが、PC側には両方のアドレスがだぶって設定されている。

そして、これらのアドレスは、インターフェースID相当の64ビット分についてそっくり、PCのリンクローカルアドレス値がそのまま転写されている。また、当たり前といえばそれまでだがグローバル識別子40ビットと、サイト識別子16ビットはルータに設定した値そのままに。






















0 件のコメント:

コメントを投稿