2016年1月5日火曜日

IPv6 ルーティング独習 第2段階 まだまだ設定初歩編

OSPFv3の前に、RIPngの続き。

IPv6-R0#show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
       H - NHRP, D - EIGRP, EX - EIGRP external, ND - ND Default
       NDp - ND Prefix, DCE - Destination, NDr - Redirect, O - OSPF Intra
       OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1
       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations
       ld - LISP dyn-eid, a - Application
C   FD00:0:115:1313::/64 [0/0]
     via Vlan1, directly connected
L   FD00:0:115:1313::FF/128 [0/0]
     via Vlan1, receive
R   FD00:0:115:A860::/64 [120/3]
     via FE80::226:99FF:FEC8:287C, Vlan1
R   FD00:0:115:C700::/126 [120/2]
     via FE80::226:99FF:FEC8:287C, Vlan1
L   FF00::/8 [0/0]
     via Null0, receive
IPv6-R0#show ipv6 route FD00:0:115:A860::/64
Routing entry for FD00:0:115:A860::/64
  Known via "rip HajimetenoRIPng", distance 120, metric 3
  Route count is 1/1, share count 0
  Routing paths:
    FE80::226:99FF:FEC8:287C, Vlan1
      Last updated 00:54:26 ago

IPv6-R0#


OSPFは、とりあえず全インターフェースでしゃべらせる。ディスタンスで全部経路が書き換わるので、あとはデフォルトルートの再配信・・・は外部に向けてのルートがないのでR0でNullで落とすか。R1で載せてR2でテーブルを確認しよう。

さて、イージス先生の解説はこちら。
http://www.infraexpert.com/study/ipv6z16.html

年も変わったであらためて書くが、この場はこのblogタイトルや説明の通り、誤3で四苦八苦なネタしかないので、きちんと学ぼうとする人は、イージス先生(正しくはネットワークエンジニアとしてさん)のWebコンテンツなりほかの教材を丁寧に学習なさいますように。


イージス先生の解説に戻って。v3がv2から変わった点はそう多くなく、

・LSAのタイプ8およびタイプ9
・ネイバーやネクストホップをリンクローカルアドレスで認識
・おしゃべり対象をサブネット毎でなくインターフェース毎で設定

が目立った違いであるようだ。ほかに、プロトコル番号がネクストヘッダの番号というとらえ方になっていたり、また、IPsecで認証できたりもするようだが。後者は先々の課題。

それから、IPv6なのでマルチキャストのアドレスは当然異なるが末尾の値はOSPFv2と同じ。


話はちょっと逸れるが引用一つ。技評で以前掲載されていた高木氏の実践的技術コラムから

タイプ2ネットワークLSAはなぜ必要か?
http://gihyo.jp/admin/serial/01/net_prac_tech/0012


さておき設定。

IPv6-R0(config)#ipv6 router ospf 6277
IPv6-R0(config-rtr)#exit
IPv6-R0(config)#int
IPv6-R0(config)#interface vlan 1
IPv6-R0(config-if)#ipv6 ospf 6277 ?
  area  Set the OSPF area ID

IPv6-R0(config-if)#ipv6 ospf 6277 area ?
  <0-4294967295>  OSPF area ID as a decimal value
  A.B.C.D         OSPF area ID in IP address format

IPv6-R0(config-if)#ipv6 ospf 6277 area 17219190 ?
  instance  Set the OSPF instance
  <cr>

IPv6-R0(config-if)#ipv6 ospf 6277 area 17219190
IPv6-R0(config-if)#

IPv6-R3(config)#ipv6 router ospf 6277 ?
  <cr>

IPv6-R3(config)#ipv6 router ospf 6277
IPv6-R3(config-rtr)#ma
IPv6-R3(config-rtr)#maximum-paths 15
IPv6-R3(config-rtr)#?
  area                   OSPF area parameters
  auto-cost              Calculate OSPF interface cost according to bandwidth
  bfd                    BFD configuration commands
  default                Set a command to its defaults
  default-information    Distribution of default information
  default-metric         Set metric of redistributed routes
  discard-route          Enable or disable discard-route installation
  distance               Administrative distance
  distribute-list        Filter networks in routing updates
  event-log              OSPF Event Logging
  exit                   Exit from IPv6 routing protocol configuration mode
  graceful-restart       Graceful-restart options
  ignore                 Do not complain about specific event
  interface-id           Source of the interface ID
  log-adjacency-changes  Log changes in adjacency state
  maximum-paths          Forward packets over multiple paths
  no                     Negate a command or set its defaults
  passive-interface      Suppress routing updates on an interface
  queue-depth            OSPF Hello/Router process queue depth
  redistribute           Redistribute IPv6 prefixes from another routing
                         protocol
  router-id              router-id for this OSPF process
  summary-prefix         Configure IPv6 summary prefix
  timers                 Adjust routing timers

IPv6-R3(config-rtr)#
IPv6-R3(config-rtr)#exit
IPv6-R3(config)#interface vlan 1
IPv6-R3(config-if)#end
IPv6-R3#
IPv6-R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
IPv6-R3(config)#
IPv6-R3(config)#int fa
IPv6-R3(config)#int fastEthernet 1
IPv6-R3(config-if)#ipv6 ospf area 17219190
                                ^
% Invalid input detected at '^' marker.

IPv6-R3(config-if)#ipv6 ospf 6277 area 17219190
IPv6-R3(config-if)#exit
IPv6-R3(config)#int
IPv6-R3(config)#interface vlan
IPv6-R3(config)#interface vlan 1
IPv6-R3(config-if)#ipv6 ospf 6277 area 192168960
IPv6-R3(config-if)#
IPv6-R3(config-if)#
IPv6-R3(config-if)#end

IPv6-R2(config)#ipv6 router ospf ?
  <1-65535>  Process ID

IPv6-R2(config)#ipv6 router ospf 6277
IPv6-R2(config-rtr)#max
IPv6-R2(config-rtr)#maximum-paths 7
IPv6-R2(config-rtr)#exit
IPv6-R2(config)#interface vlan 1
IPv6-R2(config-if)#ipv6 ospf 6277 area 17219190

IPv6-R2(config-if)#exit
Jan  5 14:02:45.179: %OSPFv3-5-ADJCHG: Process 6277, Nbr 192.255.255.255 on Vlan1 from LOADING to FULL, Loading Done
IPv6-R2(config)#interface fastEthernet 0
IPv6-R2(config-if)#ipv6 ospf 6277 area 17219190
IPv6-R2(config-if)#
Jan  5 14:02:59.391: %OSPFv3-5-ADJCHG: Process 6277, Nbr 192.168.96.254 on FastEthernet0 from LOADING to FULL, Loading Done
IPv6-R2(config-if)#

ルータIDを敢えて設定していないので、IPv4のインターフェースアドレスのひとつがIPv6のOPSFでも使われていて、少々マギラワシイ。

そして、別の1台にも同様の作業をする中で


IPv6-RC0(config)#ipv6 unicast-routing
IPv6-RC0(config)#ipv6 router ospf 6277
IPv6-RC0(config-rtr)#maximum-paths 19
IPv6-RC0(config-rtr)#exit
IPv6-RC0(config)#interface fastEthernet 1
IPv6-RC0(config-if)#ipv6 ospf 6277 area 17219190
% OSPFv3: No IPV6 enabled on this interface
IPv6-RC0(config-if)#ipv6 address fd00:0:115:c700::6/126
IPv6-RC0(config-if)#ipv6 ospf 6277 area 17219190
IPv6-RC0(config-if)#end

ユニキャストルーティング、OSPFプロセス、マキシマムパス(必要時)、インターフェース(ここでは前後してアドレス設定も)にプロセスとエリア、これらが最低限で動作はするが、ルータidがv4のアドレスしかも実インタフェースのアドレスではどうにも。そこでループバック追加。

IPv6-RC0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
IPv6-RC0(config)#interface ?
  Async               Async interface
  Auto-Template       Auto-Template interface
  BRI                 ISDN Basic Rate Interface
  BVI                 Bridge-Group Virtual Interface
  CDMA-Ix             CDMA Ix interface
  CTunnel             CTunnel interface
  Dialer              Dialer interface
  FastEthernet        FastEthernet IEEE 802.3
  Group-Async         Async Group interface
  LISP                Locator/ID Separation Protocol Virtual Interface
  Lex                 Lex interface
  LongReachEthernet   Long-Reach Ethernet interface
  Loopback            Loopback interface
  Multilink           Multilink-group interface
  Null                Null interface
  Tunnel              Tunnel interface
  Vif                 PGM Multicast Host interface
  Virtual-Dot11Radio  Virtual dot11 interface
  Virtual-PPP         Virtual PPP interface
  Virtual-Template    Virtual Template interface
  Virtual-TokenRing   Virtual TokenRing
  Vlan                Vlan IEEE 802.1q
  range               interface range command
  vmi                 Virtual Multipoint Interface

IPv6-RC0(config)#interface loopback ?
  <0-2147483647>  Loopback interface number

IPv6-RC0(config)#interface loopback 6277
IPv6-RC0(config-if)#i
Jan  5 14:25:51.426: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback6277, changed state to up
IPv6-RC0(config-if)#
IPv6-RC0(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-RC0(config-if)#ipv6 address autoconfig
IPv6-RC0(config-if)#end
IPv6-RC0#
IPv6-RC0#
Jan  5 14:26:15.471: %SYS-5-CONFIG_I: Configured from console by console
IPv6-RC0#
IPv6-RC0#show ipv6 int brief
BRI0                       [administratively down/down]
    unassigned
BRI0:1                     [administratively down/down]
    unassigned
BRI0:2                     [administratively down/down]
    unassigned
FastEthernet0              [down/down]
    unassigned
FastEthernet1              [up/up]
    FE80::223:4FF:FEE9:5269
    FD00:0:115:C700::6
FastEthernet2              [up/down]
    unassigned
FastEthernet3              [up/down]
    unassigned
FastEthernet4              [up/down]
    unassigned
FastEthernet5              [up/down]
    unassigned
FastEthernet6              [up/down]
    unassigned
FastEthernet7              [up/down]
    unassigned
FastEthernet8              [up/down]
    unassigned
FastEthernet9              [up/up]
    unassigned
Loopback6277               [up/up]
    FE80::223:4FF:FEE9:5268
NVI0                       [administratively down/down]
    unassigned
Vlan1                      [up/up]
    FE80::223:4FF:FEE9:5268
    FD00:0:115:A860:223:4FF:FEE9:5268
IPv6-RC0#



ループバックのアドレスを自動設定したところ、VLAN 1 のリンクローカルアドレスそのままとなった。そういう仕様かなるほど。

また、ループバックを設定したからといってOSPFのルータIDになるわけでもないので、

IPv6-RC0#show ipv6 ospf
 Routing Process "ospfv3 6277" with ID 172.19.64.254
 Event-log enabled, Maximum number of events: 1000, Mode: cyclic
 Initial SPF schedule delay 5000 msecs
 Minimum hold time between two consecutive SPFs 10000 msecs
 Maximum wait time between two consecutive SPFs 10000 msecs
 Minimum LSA interval 5 secs
 Minimum LSA arrival 1000 msecs
 LSA group pacing timer 240 secs
 Interface flood pacing timer 33 msecs
 Retransmission pacing timer 66 msecs
 Number of external LSA 0. Checksum Sum 0x000000
 Number of areas in this router is 1. 1 normal 0 stub 0 nssa
 Graceful restart helper support enabled
 Reference bandwidth unit is 100 mbps
    Area 17219190
        Number of interfaces in this area is 1
        SPF algorithm executed 1 times
        Number of LSA 3. Checksum Sum 0x01FF07
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0

IPv6-RC0#
IPv6-RC0#

結局idは別途設定が必要と。 ただ、設定が必要とはいえ、


IPv6-RC0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
IPv6-RC0(config)#ipv6 router ospf 6277
IPv6-RC0(config-rtr)#router-id ?
  A.B.C.D  OSPF router-id in IP address format

IPv6-RC0(config-rtr)#router-id 0.0.0.0
% OSPFv3: 0.0.0.0 is not a valid router-id

このv4アドレスライクな形式でしか入らんのがイマイチちぐはぐな。あるいは、敢えてv4と共通化しようという意図なのかもしれないが、どこかでしっかり(カネを貢いで)学べば手取り足取り教えてもらえるかも。あと、何気に0.0.0.0はダメなようだ、どうでもいいが。

IPv6-RC0(config-rtr)#router-id 5.5.5.5
IPv6-RC0(config-rtr)#end
IPv6-RC0#
IPv6-RC0#
Jan  5 14:28:46.550: %SYS-5-CONFIG_I: Configured from console by console
IPv6-RC0#
IPv6-RC0#show ipv6 ospf
 Routing Process "ospfv3 6277" with ID 5.5.5.5
 Event-log enabled, Maximum number of events: 1000, Mode: cyclic
 Initial SPF schedule delay 5000 msecs
 Minimum hold time between two consecutive SPFs 10000 msecs
 Maximum wait time between two consecutive SPFs 10000 msecs
 Minimum LSA interval 5 secs
 Minimum LSA arrival 1000 msecs
 LSA group pacing timer 240 secs
 Interface flood pacing timer 33 msecs
 Retransmission pacing timer 66 msecs
 Number of external LSA 0. Checksum Sum 0x000000
 Number of areas in this router is 1. 1 normal 0 stub 0 nssa
 Graceful restart helper support enabled
 Reference bandwidth unit is 100 mbps
    Area 17219190
        Number of interfaces in this area is 1
        SPF algorithm executed 1 times
        Number of LSA 3. Checksum Sum 0x00E4CE
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0

IPv6-RC0#

それから、ここまでやってイージス先生の「わかりやすくするためリンクローカルアドレスを静的に設定」の意味がわかった。なるほど自動では把握し難いし教えがたいし管理も煩雑。設定も煩雑だが。


続いて、きちんとアドレス設計をしておらず単に設定をぶちこんでいるだけだが、アドレス集約を

IPv6-RJ0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
IPv6-RJ0(config)#ipv6 router ospf 6277
IPv6-RJ0(config-rtr)#area 17219190 fd00:0:115::/48
                                    ^
% Invalid input detected at '^' marker.

IPv6-RJ0(config-rtr)#area 17219190 range fd00:0:115::/48

ユニークローカルユニキャストでも集約はできた。range というワードを使う点はv4と全く異なる。もっとも、ワイルドカードと比べようもないぐらいシンプルでわかりやすいので好ましい。


次に、イージス先生のところではLSAタイプの比較表がある。たいへんありがたい。ただ、この下の内容が少々唐突で説明もおかしいような気がするが、如何せん当方が無知すぎるので的ハズれの可能性大。

この点は、いちおうRFC4970を。
https://tools.ietf.org/html/rfc4970


動作状況のチェックについては

show ipv6 protocols
show ipv6 ospf
show ipv6 ospf int
show ipv6 ospf nei
show ipv6 ospf database

など。


また、以前、自分が無知すぎる故ペンディングになったWindowsにおけるリンクローカルアドレスの自動生成(EUI-64かランダムかあるいはほかの何か?)について。Windowsのシェルで変更の余地があるようなので次にコマンドのヘルプを。

C:\Windows\system32>netsh interface ipv6 ?

使用できるコマンドは次のとおりです:

このコンテキストのコマンド:
6to4           - 'netsh interface ipv6 6to4' コンテキストに変更します。
?              - コマンドの一覧を表示します。
add            - テーブルに構成エントリを追加します。
delete         - テーブルから構成エントリを削除します。
dump           - 構成スクリプトを表示します。
help           - コマンドの一覧を表示します。
isatap         - 'netsh interface ipv6 isatap' コンテキストに変更します。
reset          - IP 構成をリセットします。
set            - 構成情報を設定します。
show           - 情報を表示します。

利用できるサブコンテキストは次のとおりです:
 6to4 isatap

コマンドのヘルプを表示するには、コマンドの後にスペースを入れ、
 ? と入力してください。


C:\Windows\system32>netsh interface ipv6 set ?

使用できるコマンドは次のとおりです:

このコンテキストのコマンド:
set address    - インターフェイスに IP アドレスまたはデフォルト ゲートウェイを設定します。
set compartment - コンパートメント構成パラメーターを変更します。
set dnsservers - DNS サーバーのモードおよびアドレスを設定します。
set dynamicportrange - 動的ポート割り当てに使用するポートの範囲を変更します。
set global     - グローバル構成一般パラメーターを変更します。
set interface  - IP のインターフェイス構成パラメーターを変更します。
set locality   - locality の情報を表示します。
set neighbors  - 近隣アドレスを設定します。
set prefixpolicy - プレフィックス ポリシー情報を変更します。
set privacy    - プライバシー構成パラメーターを変更します。
set route      - ルートのパラメーターを変更します。
set subinterface - サブインターフェイス構成パラメーターを変更します。
set teredo     - Teredo 状態を設定します。

C:\Windows\system32>netsh interface ipv6 set global ?

使用法: set global [[defaultcurhoplimit=]<整数>]
              [neighborcachelimit=]<整数>
              [[routecachelimit=]<整数>] [[reassemblylimit=]<整数>]
              [[icmpredirects=]enabled|disabled]
              [[sourceroutingbehavior=]drop|forward|dontforward]
              [[taskoffload=]enabled|disabled]
              [[dhcpmediasense=]enabled|disabled]
              [[mediasenseeventlog=]enabled|disabled]
              [[mldlevel=]none|sendonly|all]
              [[mldversion=]version1|version2|version3]
              [[multicastforwarding=]enabled|disabled]
              [[groupforwardedfragments=]enabled|disabled]
              [[randomizeidentifiers=]enabled|disabled]
              [[store=]active|persistent]
              [[addressmaskreply=]enabled|disabled]
              [[minmtu=]<整数>]

パラメーター:

       タグ                 値
       defaultcurhoplimit - 送信したパケットの既定のホップ制限です。
       neighborcachelimit - 近隣キャッシュ エントリの最大数です。
       routecachelimit    - ルート キャッシュ エントリの最大数です。
       reassemblylimit    - 再構築バッファーの最大サイズです。
       icmpredirects      - ICMP リダイレクト パケットに応答してパス キャ
                            ッシュが更新されたかどうかを示します。
       sourceroutingbehavior - ソース ルートが指定されたパケットの動作を
                               決定します。ソース ルートが指定された IPv6
                               パケットの転送は、RFC 5095 でサポートが削除
                               されたため、今後は、forward と設定しても
                               dontforward と同じ結果となります。
       taskoffload        - タスク オフロードが有効かどうかを示します。
       dhcpmediasense     - メディア検出が有効かどうかを示します。
       mediasenseeventlog - メディア検出ログが有効かどうかを示します。
       mldlevel           - マルチキャスト サポートのレベルです。none は
                            マルチキャスト パケットを送受信できないことを
                            示します。sendonly はマルチキャスト パケットの
                            送信はできても、受信はできないことを示します。
                            all は、マルチキャスト パケットを送受信できる
                            ことを示します。
       mldversion         - ホストでサポートされる最大 MLD バージョンです。
       multicastforwarding - マルチキャスト パケットを転送できるかどうかを
                             示します。
       groupforwardedfragments - フラグメントを転送する前にグループ化するか
                                 どうかを示します。
       randomizeidentifiers - インターフェイス識別子をランダム化するか
                              どうかを示します。
       store              - 次のいずれかの値を指定します:
                            active: 設定は次の起動時までしか適用されません。
                            persistent: 設定は固定されます。これは既定値です。
       addressmaskreply   - コンピューターが ICMP アドレス マスク パケットに
                            応答するかどうかを示します。
       minmtu             - 断片化を防ぐために設定する IP MTU の最小値。
                            MTU のサイズを小さくすると、パフォーマンスが
                            大幅に低下する可能性があります。
                            IPv4 の場合、値は 352 ~ 576 で可変
                            IPv6 の場合、値は 1280 で固定

注釈: グローバル構成一般パラメーターを変更します。

例:

       set global 32 100 100000



C:\Windows\system32>netsh interface ipv6 set global randomizeidentifiers ?
パラメーターが間違っています。



C:\Windows\system32>netsh interface ipv6 set global randomizeidentifiers=enabled
OK


C:\Windows\system32>
C:\Windows\system32>netsh interface ipv6 set global randomizeidentifiers=disabled
OK


C:\Windows\system32>netsh interface ipv6 set global randomizeidentifiers=enabled
OK


C:\Windows\system32>
C:\Windows\system32>
C:\Windows\system32>












なお、これらのオプションの中には、Windowsにおける静的経路の設定を思わせるような「うそでしょ!?昨日の夜のことは何だったの!?」タイプの定義もあるようだ。昨今、スリープばかりでリブートしないユーザの場合はひょっとしたら気づくことが遅れるかもしれない。








0 件のコメント:

コメントを投稿