2016年1月31日日曜日

デスクトップなCentOSへサーバ機能を追加してゆく遠路の一歩目

CentOS 6.7 を当初はWebサーバーでインストールし徐々に設定を進めたものの、これがたいへんに面倒だった。

そこで、インストールをデスクトップで行うアプローチに変えてみることにした。無用な機能/あるべきでない機能もインストールしてしまう問題はあるが、ものは試し。


で、機能の追加。以下、引用は server-world.infoさんから。


NTP
http://www.server-world.info/query?os=CentOS_6&p=ntp

じゃぱにーずなので全くわかっちゃいないが、restrictという言葉には「許可する」印象が無いので、この捉え方にはどうにも違和感がある。まるで「すーぱー」において、「ぷらすちっくかいものぶくろは、要求されていません。」のような。
http://ejje.weblio.jp/content/restrict


sshd
デスクトップインストールでもデフォルトで有効だった。


Samba
http://www.server-world.info/query?os=CentOS_6&p=samba&f=1

最初から日本語デスクトップであるので、導入の成り行きもいくらかわかりやすく、ほんのキブン的にだが。それから、will be 更新 とか、更新・整理中・verifing などとちょっと面白くもあり。

[root@localhost cent]# yum -y install samba
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
base                                                                                                                     | 3.7 kB     00:00
extras                                                                                                                   | 3.4 kB     00:00
updates                                                                                                                  | 3.4 kB     00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package samba.i686 0:3.6.23-24.el6_7 will be インストール
--> 依存性の処理をしています: samba-winbind-clients = 3.6.23-24.el6_7 のパッケージ: samba-3.6.23-24.el6_7.i686
--> 依存性の処理をしています: samba-common = 3.6.23-24.el6_7 のパッケージ: samba-3.6.23-24.el6_7.i686
--> トランザクションの確認を実行しています。
---> Package samba-common.i686 0:3.6.23-20.el6 will be 更新
--> 依存性の処理をしています: samba-common = 3.6.23-20.el6 のパッケージ: samba-client-3.6.23-20.el6.i686
--> 依存性の処理をしています: samba-common = 3.6.23-20.el6 のパッケージ: samba-winbind-3.6.23-20.el6.i686
---> Package samba-common.i686 0:3.6.23-24.el6_7 will be an update
---> Package samba-winbind-clients.i686 0:3.6.23-20.el6 will be 更新
--> 依存性の処理をしています: samba-winbind-clients = 3.6.23-20.el6 のパッケージ: libsmbclient-3.6.23-20.el6.i686
---> Package samba-winbind-clients.i686 0:3.6.23-24.el6_7 will be an update
--> トランザクションの確認を実行しています。
---> Package libsmbclient.i686 0:3.6.23-20.el6 will be 更新
---> Package libsmbclient.i686 0:3.6.23-24.el6_7 will be an update
---> Package samba-client.i686 0:3.6.23-20.el6 will be 更新
---> Package samba-client.i686 0:3.6.23-24.el6_7 will be an update
---> Package samba-winbind.i686 0:3.6.23-20.el6 will be 更新
---> Package samba-winbind.i686 0:3.6.23-24.el6_7 will be an update
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================================================
 パッケージ                                 アーキテクチャ            バージョン                             リポジトリー                  容量
================================================================================================================================================
インストールしています:
 samba                                      i686                      3.6.23-24.el6_7                        updates                      5.0 M
依存性関連での更新をします。:
 libsmbclient                               i686                      3.6.23-24.el6_7                        updates                      1.6 M
 samba-client                               i686                      3.6.23-24.el6_7                        updates                       11 M
 samba-common                               i686                      3.6.23-24.el6_7                        updates                      9.9 M
 samba-winbind                              i686                      3.6.23-24.el6_7                        updates                      2.2 M
 samba-winbind-clients                      i686                      3.6.23-24.el6_7                        updates                      2.0 M

トランザクションの要約
================================================================================================================================================
インストール         1 パッケージ
アップグレード       5 パッケージ

総ダウンロード容量: 31 M
パッケージをダウンロードしています:
(1/6): libsmbclient-3.6.23-24.el6_7.i686.rpm                                                                             | 1.6 MB     00:02
(2/6): samba-3.6.23-24.el6_7.i686.rpm                                                                                    | 5.0 MB     00:06
(3/6): samba-client-3.6.23-24.el6_7.i686.rpm                                                                             |  11 MB     00:13
(4/6): samba-common-3.6.23-24.el6_7.i686.rpm                                                                             | 9.9 MB     00:12
(5/6): samba-winbind-3.6.23-24.el6_7.i686.rpm                                                                            | 2.2 MB     00:02
(6/6): samba-winbind-clients-3.6.23-24.el6_7.i686.rpm                                                                    | 2.0 MB     00:02
------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                            795 kB/s |  31 MB     00:40
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  更新                    : samba-winbind-3.6.23-24.el6_7.i686                                                                             1/11
  更新                    : samba-winbind-clients-3.6.23-24.el6_7.i686                                                                     2/11
  更新                    : samba-common-3.6.23-24.el6_7.i686                                                                              3/11
  更新                    : samba-client-3.6.23-24.el6_7.i686                                                                              4/11
  インストールしています  : samba-3.6.23-24.el6_7.i686                                                                                     5/11
  更新                    : libsmbclient-3.6.23-24.el6_7.i686                                                                              6/11
  整理中                  : samba-client-3.6.23-20.el6.i686                                                                                7/11
  整理中                  : libsmbclient-3.6.23-20.el6.i686                                                                                8/11
  整理中                  : samba-common-3.6.23-20.el6.i686                                                                                9/11
  整理中                  : samba-winbind-3.6.23-20.el6.i686                                                                              10/11
  整理中                  : samba-winbind-clients-3.6.23-20.el6.i686                                                                      11/11
  Verifying               : samba-client-3.6.23-24.el6_7.i686                                                                              1/11
  Verifying               : samba-winbind-clients-3.6.23-24.el6_7.i686                                                                     2/11
  Verifying               : libsmbclient-3.6.23-24.el6_7.i686                                                                              3/11
  Verifying               : samba-winbind-3.6.23-24.el6_7.i686                                                                             4/11
  Verifying               : samba-common-3.6.23-24.el6_7.i686                                                                              5/11
  Verifying               : samba-3.6.23-24.el6_7.i686                                                                                     6/11
  Verifying               : samba-winbind-clients-3.6.23-20.el6.i686                                                                       7/11
  Verifying               : samba-winbind-3.6.23-20.el6.i686                                                                               8/11
  Verifying               : samba-common-3.6.23-20.el6.i686                                                                                9/11
  Verifying               : samba-client-3.6.23-20.el6.i686                                                                               10/11
  Verifying               : libsmbclient-3.6.23-20.el6.i686                                                                               11/11

インストール:
  samba.i686 0:3.6.23-24.el6_7

依存性を更新しました:
  libsmbclient.i686 0:3.6.23-24.el6_7          samba-client.i686 0:3.6.23-24.el6_7                  samba-common.i686 0:3.6.23-24.el6_7
  samba-winbind.i686 0:3.6.23-24.el6_7         samba-winbind-clients.i686 0:3.6.23-24.el6_7

完了しました!
[root@localhost cent]#

次に、共有ディレクトリの作成とパーミッションの変更。

[root@localhost ~]# ls /home
cent  lost+found
[root@localhost ~]#
[root@localhost ~]# mkdir /home/share
[root@localhost ~]#
[root@localhost ~]# ls /home
cent  lost+found  share
[root@localhost ~]#
[root@localhost ~]# ls -alF /home
合計 32
drwxr-xr-x.  5 root root  4096  1月 31 15:08 2016 ./
dr-xr-xr-x. 24 root root  4096  1月 31 14:52 2016 ../
drwx------. 31 cent cent  4096  1月 30 23:09 2016 cent/
drwx------.  2 root root 16384  1月 30 01:15 2016 lost+found/
drwxr-xr-x.  2 root root  4096  1月 31 15:08 2016 share/
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# chmod 777 /home/share
[root@localhost ~]#
[root@localhost ~]# ls -alF /home
合計 32
drwxr-xr-x.  5 root root  4096  1月 31 15:08 2016 ./
dr-xr-xr-x. 24 root root  4096  1月 31 14:52 2016 ../
drwx------. 31 cent cent  4096  1月 30 23:09 2016 cent/
drwx------.  2 root root 16384  1月 30 01:15 2016 lost+found/
drwxrwxrwx.  2 root root  4096  1月 31 15:08 2016 share/
[root@localhost ~]#


続いては smb.conf の編集だが、これは長くなりそうなので別エントリで。取り急ぎ日本語訳のドキュメント。

smb.conf(5)
http://www.samba.gr.jp/project/translation/3.5/htmldocs/manpages-3/smb.conf.5.html



オチとしては、設定を始めた当初 samb.confと入力して「あれ!? ない? どこだ???」などと誤3ぶりをやらかしていた。



2016年1月30日土曜日

init も全く知らないうちに systemd に手を出す愚行

ソフトバンクさん系のITネットメディア、アットマークアイティさんから。

CentOS 7で始める最新Linux管理入門(1)
http://www.atmarkit.co.jp/ait/articles/1511/30/news004.html

・・・Cent OS 7 から64ビットのみとのこと。手元のテストPCのCPUは Diamondville 、ここで早くも目論見が崩れる。というわけで従来のテストPCは、バージョン6.7以前の専用機ということで。

致し方ないので64ビットの別PC上で Oracle VirtualBox ・・・と思ったのだが。これが、仮想マシンの新規作成段階の選択肢に、そもそも64ビットが表示されない。

検索してみたところ、

こまめブログさん
VirtualBoxで64ビット版OSをインストールできない場合の対処方法
http://little-beans.net/howto/virtualbox-64bit-os/

tech.ewdev.infoさん
VirtualBoxでWindowsの仮想環境を作ろう
http://tech.ewdev.info/2014/07/1987/

hellooooworld.com
VirtualBoxで64bit版Linuxディストリビューションがインストールできない現象の理由
http://hellooooworld.com/virtualbox-64bit-linux/


これらの方々の事例が。たいへんありがたく参考にさせていただき、この問題のPCの環境をあらためてみることに。



・BIOSの段で仮想化機能(VT-x/AMD-V)が有効であるかどうか
・Windowsの設定(コントロールパネル)で同上


というわけで、再起動。


再起動、BIOSの設定項目を探したところ、Virtualization Technology が Disable となっていた。これを Enable に変更後、Windows ~ Oracle VirtualBox を立ち上げたところ、64ビット環境が選択項目に表示された。


続いて、CentOS 7 のイメージダウンロード。世界に向けた歴史的詐欺な理研のftpから。と、このように書きはするが、研究は評価が難しくコスト妥当性の判断はさらに。であるので、理研を善悪二極でどうこうとは言っていない。優秀な研究者もいれば、それはそれはクソな研究者も。
http://ftp.riken.jp/Linux/centos/7/isos/x86_64/


さておき、冒頭に引用した内容に沿って進めてゆくつもりが、いつの間にか乖離が。実機では、ディスクの指定が終わった時点でインストールがどんどん進んでゆく。引用ではネットワーク設定の後にインストールが始まりそうだが、rootのパスワードさえ設定しないうちに sqliteのインストールまで進んでしまった。これは!? 何か操作を誤ったか。

その後、sqliteのインストールでしばらく時間を要したのち、kernelのインストールに変わる。これがまた、kernelの画面に変わってからずいぶんと時間を要する。そこでユーザ1を追加したところ、「インストール後セットアップ作業の準備中」との表示に変わっていた。はて!? そしてこの段がまたたいへんに長くいつ終わることやら。いったん場を離れ、食器の片づけやら何やら2,30分ほどもしたら、次の画面に変わっていた。

そして、インストールも完了しゲストOSの再起動後。いくらか操作してみるものの、OSの仕様変更がどうこうという以前に、シームレスモードにするにはどうすればいい!? という感が。



というわけで有益な話になりそうにないので、アットマークアイティさんのコンテンツの、次の回。

CentOS 7で始める最新Linux管理入門(2)
CentOS 7のシステム管理「systemd」をイチから理解する
http://www.atmarkit.co.jp/ait/articles/1512/24/news017.html




2016年1月24日日曜日

無線AP探し

単なるメモ。

SOHO/中小企業に効く「無線LANアクセスポイント」の選び方(前編):
「無線LANアクセスポイント」の法人モデルは家庭用と何が違うのか? (1/2)

http://www.itmedia.co.jp/pcuser/articles/1406/24/news115.html



2016年1月19日火曜日

CentOS デスクトップの日本語化

教えていただいたのはこちらさまから。 

CentOS 6 - 日本語環境にする : Server World
http://www.server-world.info/query?os=CentOS_6&p=japanese


まだ試行錯誤中。とりあえず入力メソッドで日本語が使えるようになったのでテストを兼ねてこのエントリ。






2016年1月8日金曜日

L2ループ構成関連 とぅれびゅーわんずぱすと


まず、従来がRSTPほか諸々設定をぶち込んでいたのでごっそり削除。

L2-48#delete flash:vlan.datDelete filename [vlan.dat]?
Delete flash:vlan.dat? [confirm]
L2-48#
L2-48#erase startup-configErasing the nvram filesystem will remove all configuration files! Continue? [confirm]
[OK]
Erase of nvram: complete
L2-48#

もう1台のL2も初期化してSTPの動作状況がこのような。

Switch-24#show span

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32768
             Address     0026.99c8.287c
             Cost        19
             Port        3 (FastEthernet0/1)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     0024.c428.8680
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/1               Root FWD 19        128.3    P2p
Fa0/21              Altn BLK 19        128.23   P2p


Switch-24#


以前は sys-id-ext の意味がわからないどころか目に入れてさえいなかった。同様に、ポートプライオリティやインターフェースタイプも全く目に入っていなかった。が、今ならとりあえず目には入る。イージス先生ほか皆様のおかげである。

さて、初期化後、でふぉるとのBPDUの中身。構成は2台のCisco-L2間を2本の渡りでループさせただけ。STPに関する設定は一切変更なし。BPDUを拾うのはルートブリッジ側につないだPC。






















これはPCがSTP収束後にキャプチャしているので、発信元はルートブリッジ。BPDUタイプは0x00でConfiguration。フラグの1ビット目がトポロジーチェンジAckがゼロ、8ビット目がトポロジーチェンジでこちらもゼロであるようだ。

次にルートブリッジのプライオリティ、システムID拡張、MACアドレスが続き、この後にパスコスト。このPCはルートブリッジに直結なのでパスコストはゼロだ。

続いては当該ブリッジの情報。このケースではルートアイデンィフィアーと合致。ポートIDは、この機種の場合はFE0/1が3番目ということになるらしい。マックスエイジは何の変更もしていないのででふぉの20秒。ハローもふぉわーでぃんぐディレイも同様。


でふぉで収束後のステータスを見たので、次は収束までの過程を見る。まず何より、PCの接続ポートにPortfastを入れなければならない。

Switch-48(config)#interface FastEthernet 0/1
Switch-48(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
 host. Connecting hubs, concentrators, switches, bridges, etc... to this
 interface  when portfast is enabled, can cause temporary bridging loops.
 Use with CAUTION

%Portfast has been configured on FastEthernet0/1 but will only
 have effect when the interface is in a non-trunking mode.
Switch-48(config-if)#



Switch-48#show spanning-tree interface FastEthernet 0/1

Vlan             Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
VLAN0001         Desg FWD 19        128.3    Edge P2p
Switch-48#

どうして Edge と P2p が併記されるのかは何とも。P2p は、The interface is considered as a point-to-point (shared) interface by the spanning tree. なので、ねいばータイプ、としてならいずれかだと思うのだが。


次に、STP以前の最低限の設定をいくつか。

ntp server どれどれ
logging host どれどれ
service password-encryption
enable secret ほげほげ
line vtp 0 4
password ほげほげ
login


次に、デバッグをONにして・・・の前にNTPの設定を。NTPはこの環境でなら CentOS で立ててあるが、小規模な企業では Linuxなんて面倒極まりない(*)のでここでは Windows それもクライアントOSでどうにかなるか? な実験を。

* 小規模な企業さんだったらそもそもCiscoなんてバカ高い機材は使わないだろ、というアナは看過願います。

まず、Windows 8.1でのNTPサーバ機能の有効かは、レジストリエディタで。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
この下のバイナリ値"Enabled"を0から1へ変更。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
この下のバイナリ値"AnnounceFlags"をaから5へ変更。

AnnounceFlags 値の意味についてはアットマークアイティさんのこちら。

第2回 Active Directoryおよびワークグループ環境での時刻同期 (2/5)
時刻サーバとしてアドバタイズするかの設定
http://www.atmarkit.co.jp/ait/articles/1205/17/news135_2.html#annflag

とりあえずこれで netstat -a を見ると ntp が開いてないので、services.msc で windows time (W32Time) を開始サービスを起動。これでとりあえずUDP123は開いたように見えるのだが、Catalyst側で見ると同期できていない。そこで wf.msc で穴あけを。

受信の規則~新しい規則ウィザード~ポート~プロトコルUDPの番号123指定~IPSecで保護された接続と保護されていない接続どちらも含む~いつ適用しますか?(ドメイン/プライベート/パブリック…とりあえずすべてチェックON)~規則の命名と説明入力で終了。

で、やっとNTP設定が終了...かと思いきや、

Switch-24#show ntp status
Clock is unsynchronized, stratum 16, no reference clock
nominal freq is 119.2092 Hz, actual freq is 119.2092 Hz, precision is 2**18
reference time is 00000000.00000000 (00:00:00.000 UTC Mon Jan 1 1900)
clock offset is 0.0000 msec, root delay is 0.00 msec
root dispersion is 0.00 msec, peer dispersion is 0.00 msec
Switch-24#

やれやれ。とりあえず 自分の設定漏れやミスを疑って順番に確認するが、作業そのものに誤りはなさそうな。となると、作業前段のやるべきことを根本的に何か間違えているか!? と思ったのだが、トラフィックを見るとNTPクライアント<--->サーバ間の通信そのものは存在している。で、検索してみたところこのようなやりとりが。


NTP Status: Clock is unsynchronized - Cisco Support Community
https://supportforums.cisco.com/discussion/11986476/ntp-status-clock-unsynchronized

そしてやりとりの中で示されている資料が

Troubleshoot Network Time Protocol (NTP)
Unable to Sync NTP to W32 Based Time Service
http://www.cisco.com/c/en/us/support/docs/ip/network-time-protocol-ntp/108076-ntp-troubleshoot.html#wtm


パケットを見てもSNTPとNTPの区別がつかない自分だった。また、やりとりの事例は3750Xのスタックで2008DCや2012DC相手の問題だが、SNTPとNTPだけの話ではないようだ。が、そもそも英語を読み切れていないのも我ながら痛い。とりあえず辞書引きながらの段。


dispersion でぃすぱじゃn
http://ejje.weblio.jp/content/dispersion

stratum sとれぃたm
http://ejje.weblio.jp/content/stratum


debug spanning-tree events を追いかける前にこれほど手間がかかろうとは。。



2016年1月6日水曜日

STP構成 パーVLANスパニングツリープラス

CSTも小企業なら全然アリなのではないかと個人的には思うのだが、機材・人材・労務費・スキルと運用負荷が足りるならば、もちろんPVSTのほうが良いは良い。

さておきPVST+。イージス先生のWebコンテンツはこちら。
http://www.infraexpert.com/study/stpz4.html

CSTとPVST+ではブリッジIDの中身が異なると。PVST+ではプライオリティ値の16ビット中、うしろ12ビットが拡張システムID。詳細はCiscoのこちら。

STPおよびMSTの設定 から 拡張システム ID
http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Access/CAT4500SWT/CG/003/14303_01_17.html?bid=0900e4b1825298e5#14523


PVST+では、プライオリティ値そのものにVLAN IDが値として加算されるとのこと。もっとも、パーVLANなので意味は低そうだが。

(config)# no spanning-tree vlan 10
(config)# spanning-tree vlan 10
(config)# spanning-tree vlan 10 priority 4096

プライオリティ値は4096の倍数で、

0
4096
8192
12288
16384
20480
24576
28672
32768
36864
40960
45056
49152
53248
57344
61440

まで。必然的に、静的/明示的な指定としてはルートブリッジが0、セカンダリが4096。

そして、これは初見どころか存在を微塵も知らなかったのだが、プライオリティの動的設定が可能だそうで。

(config)# spanning-tree vlan vlan-id root primary
(config)# spanning-tree vlan vlan-id root secondary

先生は非推奨とのことだが、ご説明を読む限りにこの機能ではそりゃ、非推奨も当然だ。


次にPortfast、これはエッジポートと同義とのことだがさておき。リスニングとラーニングを経ずにフォワーディングする設定。エッジ扱いではあってもBPDUの送受信は行うしSTPとしても動作する。詳しくはCiscoから。
http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Core/CAT6500SWT/CG/005/stp_enha.html?bid=0900e4b182a19490#pgfId-1052988

ただ、アラクサラとは挙動が異なるかもしれない。
https://www.alaxala.com/jp/techinfo/archive/manual/AX3630S/HTML/11_10/CFGUIDE/0403.HTM

それから、Ciscoにおいては全ポートでPortfastをでふぉにする設定もあるようだ。最初に設置して永遠に同じ使い方ならともかくだが、実際にはこんなコマンドでも無いと変更時が少々面倒かもしれない。
(config)#spanning-tree portfast default


そして、エッジポートにはBPDUガード。
http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Core/CAT6500SWT/CG/005/stp_enha.html?bid=0900e4b182a19490#pgfId-1020395


構成管理がままならない企業では特に必要かも。エラーディセーブルになったらなったで復旧が面倒だが。。

(config-if)# spanning-tree bpduguard enable


さらにひと手間かけるなら、PortFast BPDU フィルタリング。
http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Core/CAT6500SWT/CG/005/stp_enha.html?bid=0900e4b182a19490#pgfId-1033403


あるいはXEならこちら。
http://www.cisco.com/cisco/web/support/JP/docs/SW/CampusLANSWT-Access/CAT3850SWT/CG/013/b_layer2_3e_3850_cg_chapter_011.html?bid=0900e4b184009261











A bridge spans the river there.

span は親指と小指の間で図ることも意味するようで。
http://ejje.weblio.jp/content/span

今回からは誤3の知らないすぱにんつりーの世界。決して、小学生が釣られまくる某クソ公害デブ番組の世界ではない。単に、これまでがあまりにも怠慢で勉強していなかった=STPの世界を知らない、だから遅きに失しても学ぶというだけの話。


さて、

BPDUマルチキャスト 0180.C200.0000

こんなところから知らんかったからなぁ。イージス先生のご説明によれば BPDUのメッセージフォーマットはまずここから、

・プロトコルID
・バージョン
・メッセージタイプ


基本で典型的なメッセージタイプは2種類、コンフィギュレーションとトポロジーチェンジ(ノティフィケイション)。前者は16進で00、後者は80。

 ・フラグ

とりあえず保留。

・ルートID
・パスコスト
・ブリッヂID
・ポートID

先生のご説明によれば、これらがルートブリッヂ選択やブロックすべきポートの選択に使われる主要4要素。以下の要素は別途再学習で、じゃあ実のところはというと!? これはRST環境下だが、ざっくりこんなもん程度の見方で。 

























イージス先生のご指導としては、STPの超概要の次に、ブリッヂIDとパスコスト。

・ブリッヂID=プライオリティ2バイト+MACアドレス8バイト
・パスコストは、現在が2,4,19,100、以前が1,1,10,100。


続いて先生のこちら。

STP - Root Bridge / Root | Designated | Blocking Port
http://www.infraexpert.com/study/stpz2.html

「ループ構成をツリー状にするために」


 1 ルートブリッヂの選出
 2 ルートポート(RP)の選出
 3 指定ポート(DP)の選出
 4 非指定ポート(NDP)の選出-->ブロック

・ルートブリッジが送出するBPDUのパスコストは0
・ルートブリッジ以外はRPをひとつ選出
・RPが決まったらリンク毎に指定ポートを選出
 (ルートブリッジは全て指定ポートなので選出不要)
・コストが同じならブリッジIDの小さいほう(プライオリティ-ブリッジIDと同じ関係)
・RPにもDPにもならないポートはデータフレームの送受信をブロック

・DP選出経過ではブリッジIDまで同じ場合に送信元ポートIDを比較
・送信元ポートIDはポートプライオリティ(でふぉ128)+ポート番号


何度目だ上田次郎、なのだが。


さらにイージス先生から。

STP - Disabled / Blocking / Listening / Learning / Forwarding
http://www.infraexpert.com/study/stpz3.html


ポート状態の遷移

ブロッキング (BPDUを受信のみ)
リスニング (BPDUを送受信しルートブリッジ/RP/DP/NDPを選出)
ラーニング (引き続きBPDUを送受信+MACを学習)
フォワーディング (データ転送)

ケンバジェンス後のチーフはルートブリッジ。2秒毎に指示を出すチョーメンドクサイ上司。それから、マックスエイジは20秒、フォワーディングディレイは15秒。これも何度目だ山田奈緒子。



次に、ルートブリッジの「配置」について。これはイージス先生の図を見れば・・・ちょっとビミョーだが、ド素人さんなら気づかないだろう。0-4096-32768のわかりやすい設定値。


次のエントリから、STPのさまざまなカタチ。




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








IPv6 ルーティング独習 第1段階

ルーティングの前に

! 応答の受信
. 応答を待機中にタイムアウト
U PDU が受信した宛先到達不能エラー
Q ソース クエンチ(宛先がビジー状態)
M 断片化不可
? パケット タイプ不明
& パケットの存続時間超過

もとはCisco謹製Webコンテンツ。
http://www.cisco.com/cisco/web/support/JP/100/1008/1008447_ping_traceroute-j.html

などと今さらながらに。続いて、IPv6のスタティックルート設定。

ipv6 route FD00:0:115:A860::/64 FD00:0:115:1313::2
ipv6 route FD00:0:115:C700::/126 FD00:0:115:1313::2
ipv6 route FD00:0:115:C700::4/126 FD00:0:115:1313::2

こんな感じで。ネクストホップはリンクローカルアドレスの指定も可能だそうだが、ただでさえややこしい(IPv4比)のに、さらに"傍目にわかりにくい"設定をしたくない。リンクローカルアドレス指定時の作法は

ipv6 route グローバルアドレス/プリフィクス長さ 自ルータの出てくインターフェース ネクストホップルータのリンクローカルアドレス

だそうだ。グローバルを宛先にしながらネクストホップの前にトラフィックの出口としてインターフェース名を指定しつつ、ネクストホップはリンクローカル、この概念が果たして使いやすいのだろうか。


さておき、次にRIPng。

IPv6-R0(config)#ipv6 router rip ?
  WORD  User selected string identifying this process

IPv6-R0(config)#ipv6 router rip HajimetenoRIPng
IPv6-R0(config-rtr)#exit
IPv6-R0(config)#interface vlan 1
IPv6-R0(config-if)#ipv6 rip HajimetenoRIPng enable
IPv6-R0(config-if)#
IPv6-R0(config-if)#exit
IPv6-R0(config)#ipv6 router rip HajimetenoRIPng
IPv6-R0(config-rtr)#maximum-paths ?
  <1-32>  Number of paths

IPv6-R0(config-rtr)#maximum-paths 12
IPv6-R0(config-rtr)#end

IPv6-R2(config)#ipv6 router rip HajimetenoRIPng2
IPv6-R2(config-rtr)#max
IPv6-R2(config-rtr)#maximum-paths 12
IPv6-R2(config-rtr)#exit
IPv6-R2(config)#interface vlan  1
IPv6-R2(config-if)#ipv6 rip HajimetenoRIPng2 enable
IPv6-R2(config-if)#exit
IPv6-R2(config)#
IPv6-R2(config)#interface fastEthernet 0
IPv6-R2(config-if)#ipv6 rip HajimetenoRIPng2 enable
IPv6-R2(config-if)#exit
IPv6-R2(config)#interface fastEthernet 1
IPv6-R2(config-if)#ipv6 rip HajimetenoRIPng2 enable
RIPv6: No IPV6 enabled on this interface
IPv6-R2(config-if)#


で、debug ipv6 rip をかけるとこんな。


IPv6-R0#debug ipv6 rip
  RIP Routing Protocol debugging is on
IPv6-R0#
Jan  5 00:55:13.553: RIPng [default VRF]: a message has been received.
Jan  5 00:55:13.553: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:55:13.553:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:55:13.553:        dst=FF02::9
Jan  5 00:55:13.553:        sport=521, dport=521, length=52
Jan  5 00:55:13.553:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:55:13.553:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:55:13.553:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:55:31.773: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:55:31.773:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:55:31.773:        dst=FF02::9 (Vlan1)
Jan  5 00:55:31.773:        sport=521, dport=521, length=32
Jan  5 00:55:31.773:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:55:31.773:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#
Jan  5 00:55:39.817: RIPng [default VRF]: a message has been received.
Jan  5 00:55:39.817: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:55:39.817:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:55:39.817:        dst=FF02::9
Jan  5 00:55:39.817:        sport=521, dport=521, length=52
Jan  5 00:55:39.817:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:55:39.817:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:55:39.817:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:56:02.773: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:56:02.773:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:56:02.773:        dst=FF02::9 (Vlan1)
Jan  5 00:56:02.773:        sport=521, dport=521, length=32
Jan  5 00:56:02.773:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:56:02.773:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#
Jan  5 00:56:08.573: RIPng [default VRF]: a message has been received.
Jan  5 00:56:08.573: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:56:08.573:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:56:08.573:        dst=FF02::9
Jan  5 00:56:08.573:        sport=521, dport=521, length=52
Jan  5 00:56:08.573:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:56:08.573:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:56:08.573:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:56:19.086: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:56:19.086:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:56:19.086:        dst=FF02::9 (Vlan1)
Jan  5 00:56:19.086:        sport=521, dport=521, length=32
Jan  5 00:56:19.086:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:56:19.086:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#
Jan  5 00:56:21.254: RIPng [default VRF]: next RIB walk in 167320.
IPv6-R0#
Jan  5 00:56:35.214: RIPng [default VRF]: a message has been received.
Jan  5 00:56:35.214: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:56:35.214:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:56:35.214:        dst=FF02::9
Jan  5 00:56:35.214:        sport=521, dport=521, length=52
Jan  5 00:56:35.214:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:56:35.214:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:56:35.214:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:56:58.642: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:56:58.642:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:56:58.642:        dst=FF02::9 (Vlan1)
Jan  5 00:56:58.642:        sport=521, dport=521, length=32
Jan  5 00:56:58.642:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:56:58.642:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#
Jan  5 00:57:02.818: RIPng [default VRF]: a message has been received.
Jan  5 00:57:02.818: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:57:02.818:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:57:02.818:        dst=FF02::9
Jan  5 00:57:02.818:        sport=521, dport=521, length=52
Jan  5 00:57:02.818:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:57:02.818:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:57:02.818:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:57:25.207: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:57:25.207:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:57:25.207:        dst=FF02::9 (Vlan1)
Jan  5 00:57:25.207:        sport=521, dport=521, length=32
Jan  5 00:57:25.207:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:57:25.207:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#
Jan  5 00:57:29.703: RIPng [default VRF]: a message has been received.
Jan  5 00:57:29.703: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:57:29.703:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:57:29.703:        dst=FF02::9
Jan  5 00:57:29.703:        sport=521, dport=521, length=52
Jan  5 00:57:29.703:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:57:29.703:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:57:29.703:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:57:43.955: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:57:43.955:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:57:43.955:        dst=FF02::9 (Vlan1)
Jan  5 00:57:43.955:        sport=521, dport=521, length=32
Jan  5 00:57:43.955:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:57:43.955:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#
Jan  5 00:57:56.883: RIPng [default VRF]: a message has been received.
Jan  5 00:57:56.883: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:57:56.883:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:57:56.883:        dst=FF02::9
Jan  5 00:57:56.883:        sport=521, dport=521, length=52
Jan  5 00:57:56.883:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:57:56.883:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:57:56.883:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:58:14.304: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:58:14.304:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:58:14.304:        dst=FF02::9 (Vlan1)
Jan  5 00:58:14.304:        sport=521, dport=521, length=32
Jan  5 00:58:14.304:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:58:14.304:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#
Jan  5 00:58:26.324: RIPng [default VRF]: a message has been received.
Jan  5 00:58:26.324: RIPng [Vl1, default VRF]: response received from FE80::226:99FF:FEC8:287C for process "HajimetenoRIPng".
Jan  5 00:58:26.324:        src=FE80::226:99FF:FEC8:287C (Vlan1)
Jan  5 00:58:26.324:        dst=FF02::9
Jan  5 00:58:26.324:        sport=521, dport=521, length=52
Jan  5 00:58:26.324:        command=2, version=1, mbz=0, #rte=2
Jan  5 00:58:26.324:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
Jan  5 00:58:26.324:        tag=0, metric=1, prefix=FD00:0:115:C700::/126
IPv6-R0#
Jan  5 00:58:38.388: RIPng [Vl1, default VRF]: process "HajimetenoRIPng" is sending a multicast update.
Jan  5 00:58:38.388:        src=FE80::2E54:2DFF:FE99:B815
Jan  5 00:58:38.388:        dst=FF02::9 (Vlan1)
Jan  5 00:58:38.388:        sport=521, dport=521, length=32
Jan  5 00:58:38.388:        command=2, version=1, mbz=0, #rte=1
Jan  5 00:58:38.388:        tag=0, metric=1, prefix=FD00:0:115:1313::/64
IPv6-R0#


次は駆け足にOSPF Version3。でいいのか?


IPv6 RAの基本的な設定とWindowsの挙動

仮でグローバルなプリフィクスを付与する設定の続き。

ルータを設定・・・Windowsにはライフタイムを過ぎても反映されず
Windowsにおいてnetsh interface ipv6 reset を行っても反映ならず

結局、前回のエントリ時の懸念どおり、Windowsをごっそり再起動しなくてはならんと。そしてWindows再起動後のアドレス状況がこのように。

   IPv6 アドレス . . . . . . . . . . . .: 2001:ffff:eeee:dddd:ec3d:80d5:e7ea:9fa0(優先)
   IPv6 アドレス . . . . . . . . . . . .: fd00:0:115:13fe:ec3d:80d5:e7ea:9fa0(優先)
   一時 IPv6 アドレス. . . . . . . . . .: 2001:ffff:eeee:dddd:c5d6:a24:3b90:157(優先)
   一時 IPv6 アドレス. . . . . . . . . .: fd00:0:115:13fe:c5d6:a24:3b90:157(優先)
   リンクローカル IPv6 アドレス. . . . .: fe80::ec3d:80d5:e7ea:9fa0%3(優先)
   IPv4 アドレス . . . . . . . . . . . .: 172.19.19.171(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: fe80::2e54:2dff:fe99:b815%3

ルータの当該VLANでは、

interface Vlan1
 ip nbar protocol-discovery
 ipv6 address FD00:0:115:13FE::1/64
 ipv6 enable
 ipv6 nd prefix 2001:FFFF:EEEE:DDDD::/64 60 40

v6まわりの設定はこんなところ。グローバルユニキャストとユニークローカルユニキャストの設定が両方あるとこのようになると。


続いてスタティックルート。まず、これまでの2台とは異なるルータにIPv6アドレスを順次設定してゆく。

IPv6-R3(config)#int vlan 1
IPv6-R3(config-if)#
IPv6-R3(config-if)#
IPv6-R3(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-R3(config-if)#ipv6 address fd00:0:115:a860::ff/64
IPv6-R3(config-if)#end
IPv6-R3#
IPv6-R3#
IPv6-R3#show ipv6 route
IPv6 Routing Table - default - 3 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
       D - EIGRP, EX - EIGRP external, NM - NEMO, ND - Neighbor Discovery
       l - LISP
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   FD00:0:115:A860::/64 [0/0]
     via Vlan1, directly connected
L   FD00:0:115:A860::FF/128 [0/0]
     via Vlan1, receive
L   FF00::/8 [0/0]
     via Null0, receive
IPv6-R3#

ここでインターフェースに対してipv6 enableは設定していないし、ipv6 unicast-routingも 投入していない。が、ルーティングテーブルとしてはこのように。

続けざまにテスト環境の各ルータの設定を変更してゆく中、RAなルータにおいてアドバタイズなグローバルユニキャストのプレフィクスおよびライフタイム設定を削除し、ユニークローカルユニキャストの値を同時に修正したところ、ほどなくしてWindows側でこのように。

   自動構成有効. . . . . . . . . . . . .: はい
   IPv6 アドレス . . . . . . . . . . . .: fd00:0:115:1313:ec3d:80d5:e7ea:9fa0(優先)
   IPv6 アドレス . . . . . . . . . . . .: fd00:0:115:13fe:ec3d:80d5:e7ea:9fa0(優先)
   一時 IPv6 アドレス. . . . . . . . . .: fd00:0:115:1313:c5d6:a24:3b90:157(優先)
   一時 IPv6 アドレス. . . . . . . . . .: fd00:0:115:13fe:c5d6:a24:3b90:157(優先)
   リンクローカル IPv6 アドレス. . . . .: fe80::ec3d:80d5:e7ea:9fa0%3(優先)
   デフォルト ゲートウェイ . . . . . . .: fe80::2e54:2dff:fe99:b815%3

グローバルユニキャストの設定は消え、ユニークローカルユニキャストは新旧の設定が併存するという状況、また、でふぉげはリンクローカルと。



2016年1月4日月曜日

IPv6 3歩進んで3歩下がったところから

年末年始を挟んで、記憶が3歩後退してしまった。いろんな部分でやり直しだがしようがない。

ipv6 unicast-routing

続いてユニークローカルユニキャストアドレス、さらにULAのプリフィクスでエニィキャストを設定してみたところ、


interface Vlan1
 ip address 172.19.19.2 255.255.255.0
 ipv6 address FD00:0:115:1302::/64 anycast
 ipv6 address FD00:0:115:1302::1/64
 ipv6 address autoconfig
このように。autoconfigのリンクローカル、静的なULA、ULAでのanycast、もとのIPv4アドレスと相まってなんとややこしいことか。そりゃIPv6流行らんよ。もちろん「ややこしい」とはド初心者の後ろ向きで怠惰な発想であるわけだが、普及に向けてはひとつの障害ではあるし、キャズムにも近い。

ともあれ次。ここでさらに、インターフェースに対してIPv6をいねーぶるにしてみる。

interface Vlan1
 ip address 172.19.19.2 255.255.255.0
 ipv6 address FD00:0:115:1302::/64 anycast
 ipv6 address FD00:0:115:1302::1/64
 ipv6 address autoconfig
 ipv6 enable

#show ipv6 interface brief
(略)
FastEthernet9              [up/down]
    unassigned
Vlan1                      [up/up]
    FE80::226:99FF:FEC8:287C
    FD00:0:115:1302::
    FD00:0:115:1302::1
#

既にリンクローカルが設定されていて、ipv6 enable コマンドによって変わってはいない。また、この時点でipv6 route に


S   ::/0 [2/0]
     via FE80::2E54:ルータインターフェース, Vlan1

があらわれている。autoconfig のオプションに default は入れていない。ここで ipv6 address autoconfig の削除を試してみたところ、削除しただけでは消えないが、reload 後はこのエントリが消失した。とりあえずこの機材とバージョンの組み合わせにおいては、ipv6 address autoconfig においては default オプションがでふぉである可能性は念頭においておく。

ここで、もう1台のほうで autoconfig を消しつつ、ユニークローカルユニキャストアドレスを設定する。ここでULAは敢えてプリフィクスの65-80ビットで、もう一方のルータと異なる値を使う。未だにIPv6におけるネットワークアドレスの概念がまるでわかっちゃいないからだ。

当然、別ネットワークであればpingが通らないのだがリンクローカルアドレスは/64を越えて通ることがあったのでユニークローカルユニキャストアドレスにおいてはどうか?試した限りでは通らない。通らなくて当然なのだが、一方のルータにおいて S ::/0 がまたしても現れている。一方がRAの機能を果たした状態においてもう一方で autoconfig が設定しされていればまだしも、show run 上はそのようには見えない。どうにもすんなり理解がすすまない。RAの機能については

ipv6 nd ra suppress

で停止したところ、もう一方のスタティックルート(デフォルトルート)も消えた。こうなると 複数のルータがレイヤ2で共存する環境においては、RA機能のOFF/ONやあるいは優先度について注意が必要。ルータ間だけを考えれば全面停止すればいいだけのことだが、エンドノードが混じるセグメントでは面倒かもしれない。やってみればカンタンかもしれないが。ともあれ、

#show ipv6 route
IPv6 Routing Table - default - 3 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:13FE::/64 [0/0]
     via Vlan1, directly connected
L   FD00:0:115:13FE::1/128 [0/0]
     via Vlan1, receive
L   FF00::/8 [0/0]
     via Null0, receive
#
#
#ping ipv6 FD00:0:115:13FE::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FD00:0:115:13FE::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
#

ping ipv6 FD00:0:115:1302::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FD00:0:115:1302::1, timeout is 2 seconds:

% No valid route for destination
Success rate is 0 percent (0/1)



ping ipv6 を でばっぐな中身はこのような。

Jan  4 09:55:43.998: IPv6-Fwd: Destination lookup for FE80::226:99FF:FEC8:287C : i/f=Vlan1, nexthop=FE80::226:99FF:FEC8:287C
Jan  4 09:55:43.998: IPV6: source FE80::2E54:2DFF:FE99:B815 (local)
Jan  4 09:55:43.998:       dest FE80::226:99FF:FEC8:287C (Vlan1)
Jan  4 09:55:43.998:       traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating
Jan  4 09:55:43.998: IPv6-Fwd: Sending on Vlan1
Jan  4 09:55:49.098: IPV6: source FE80::2E54:2DFF:FE99:B815 (local)
Jan  4 09:55:49.098:       dest FE80::226:99FF:FEC8:287C (Vlan1)
Jan  4 09:55:49.098:       traffic class 224, flow 0x0, len 72+0, prot 58, hops 255, originating
Jan  4 09:55:49.098: IPv6-Fwd: Created tmp mtu cache entry for FE80::2E54:2DFF:FE99:B815 FE80::226:99FF:FEC8:287C 00000000
Jan  4 09:55:49.098: IPv6-Fwd: Sending on Vlan1
Jan  4 09:55:49.098: IPv6-Fwd: Destination lookup for FE80::2E54:2DFF:FE99:B815 : Local, i/f=Vlan1, nexthop=FE80::2E54:2DFF:FE99:B815
Jan  4 09:55:49.098: IPV6: source FE80::226:99FF:FEC8:287C (Vlan1)
Jan  4 09:55:49.102:       dest FE80::2E54:2DFF:FE99:B815 (Vlan1)
Jan  4 09:55:49.102:       traffic class 224, flow 0x0, len 64+14, prot 58, hops 255, forward to ulp


IPv6はpingのデバッグメッセージひとつも見る手間が大きい。


ともあれ、リンクローカルアドレスはこの言葉の通り、L2と同義とは捉えないがリンクなレイヤ、のアドレスとして、IPv4におけるアドレスの概念とは完全に異なることがやっとわかりかけてきた。

この一方でRAの機能がそもそも有効かそうでないか、についてますます混乱してきた。ルータ側で

 ipv6 nd ra suppress

が設定されていても、このインターフェース配下のWindows PCにおいては、ユニークローカルユニキャストなIPv6アドレスが自動設定され、これだけでなくてデフォルトゲートウェイまでもこのVLAN宛になっているからだ。

さぷ
http://ejje.weblio.jp/content/suppress

と思いきや、今見たところWindwosのIPv6のでふぉげが消えている。どうにもWindows側の挙動がわかっていない。いーじす先生の解説によると

IPv6 - Windows7
http://www.infraexpert.com/study/ipv6z9.html

テスト環境殿動作状況は、


C:\Windows\system32>netsh interface ipv6 show interface 3

インターフェイス イーサネット パラメーター
----------------------------------------------
IfLuid                             : ethernet_0
IfIndex                            : 3
状態                               : connected
メトリック                         : 20
リンク MTU                         : 1500 バイト
到達可能な時間                     : 36000 ミリ秒
基本の到達可能な時間               : 30000 ミリ秒
再転送間隔                         : 1000 ミリ秒
DAD 転送                           : 1
サイト プレフィックスの長さ        : 64
サイト ID                          : 1
転送                               : disabled
アドバタイズ                       : disabled
近隣探索                           : enabled
近隣到達不可能性検出               : enabled
ルーター発見                       : enabled
管理されたアドレス構成             : disabled
その他のステートフル構成           : disabled
脆弱なホストによる送信             : disabled
脆弱なホストによる受信             : disabled
自動メトリックの使用               : enabled
既定ルートを無視                   : disabled
アドバタイズされたルーターの有効期間: 1800 秒
既定ルートのアドバタイズ           : disabled
現在のホップ制限                   : 64
ARPND スリープ解除パターンの強制   : disabled
指定の MAC スリープ解除パターン    : disabled
ECN 機能                           : application


C:\Windows\system32>


有効期間はルータ側で設定した値となっておらず、先生の解説事例と同じ値だ。でふぉげの値が見られないことからも、ルータとのやりとりは無効かあるいは無視しているようだ。となると、ユニークローカルユニキャストアドレスの生成はRAとは別物ということか?キリがないので次。


DRP、でふぉるとるーたーぷりふぁれんす、の設定。


(config-if)#ipv6 nd router-preference ?
  High    High default router preference
  Low     Low default router preference
  Medium  Medium default router preference

インターフェース毎。ネイバーディスカバリの設定の一部、というところが従来の私の独自カンカクとずれるところ。どっちがずれているのか?といえば当然私のほうだが。誤3でないとらえ方のひとつはこちら様など。


UnixPower on Networking IPv6の挙動
http://www.unix-power.net/routing/ipv6_behavior.html


次に、通知するぷれふぃくす関連の設定について。ここではWindows側の挙動の確認も含めてライフタイムのみならずほかも変えてみる。

と、その前に2台のルータのうち一方は明示的に ip6 nd ra suppress をかけておかないと事情の把握に混乱をきたす。ただでさえ混乱してるのに。また、ルータのもう一方では

no ipv6 nd ra suppress

を明らかに設定・・・というか解除したところ、


(config-if)#no ipv6 nd ra suppress
(config-if)#
Jan  4 11:02:00.843: %IPV6_ND-4-RA_TIMERS_INCONSISTENT: Configured Router Advertisements interval exceeds the configured RA lifetime on Vlan1.
Jan  4 11:02:01.363: IPV6: source FE80::2E54:2DFF:FE99:B815 (local)
Jan  4 11:02:01.363:       dest FF02::1 (Vlan1)
Jan  4 11:02:01.363:       traffic class 224, flow 0x0, len 104+0, prot 58, hops 255, originating
Jan  4 11:02:01.363: IPv6-Fwd: Sending on Vlan1
Jan  4 11:02:01.399: IPV6: source FE80::EC3D:80D5:E7EA:9FA0 (Vlan1)
Jan  4 11:02:01.399:       dest FF02::1:FF99:B815
Jan  4 11:02:01.399:       traffic class 0, flow 0x0, len 72+14, prot 58, hops 255, forward to ulp
Jan  4 11:02:01.403: IPV6: source FE80::2E54:2DFF:FE99:B815 (local)
Jan  4 11:02:01.403:       dest FE80::EC3D:80D5:E7EA:9FA0 (Vlan1)

(config-if)#


直ちにRAが機能したことを示すデバッグ(IPv6パケット)が。

ここで、ルータを電源OFF。PCを再起動し単独状態での ipconfig /all 、表示内容から前のユニークローカルユニキャストアドレス及びでふぉげが消えていることを確認。

次に RAでないルータを起動し、このルータ上でユニークローカルユニキャストアドレスが設定されていることを確認。ここでPCを再起動しても、PCではリンクローカルアドレスが動作するのみで、ユニークローカルユニキャストアドレスは生成していないしでふぉげも得ていない。

また、RAであるルータを起動した後にPCを再起動すると、PCはユニークローカルユニキャストアドレスを生成しデフォゲも得ていた。この時PCにおいては


インターフェイス イーサネット パラメーター
----------------------------------------------
IfLuid                             : ethernet_0
IfIndex                            : 3
状態                               : connected
メトリック                         : 20
リンク MTU                         : 1500 バイト
到達可能な時間                     : 36500 ミリ秒
基本の到達可能な時間               : 30000 ミリ秒
再転送間隔                         : 1000 ミリ秒
DAD 転送                           : 1
サイト プレフィックスの長さ        : 64
サイト ID                          : 1
転送                               : disabled
アドバタイズ                       : disabled
近隣探索                           : enabled
近隣到達不可能性検出               : enabled
ルーター発見                       : enabled
管理されたアドレス構成             : disabled
その他のステートフル構成           : disabled
脆弱なホストによる送信             : disabled
脆弱なホストによる受信             : disabled
自動メトリックの使用               : enabled
既定ルートを無視                   : disabled
アドバタイズされたルーターの有効期間: 1800 秒
既定ルートのアドバタイズ           : disabled
現在のホップ制限                   : 64
ARPND スリープ解除パターンの強制   : disabled
指定の MAC スリープ解除パターン    : disabled
ECN 機能                           : application

RAなPCの設定で

(config-if)# ipv6 nd ra interval
(config-if)# ipv6 nd ra lifetime

これらを変更した後、これらを削除した後いずれも、PC側のステータスは変わっていない。ここがPC側に伝搬されるものかと思っていたがどうも違うようだ。

infinite
http://ejje.weblio.jp/content/infinite


IPv6-R1(config-if)#ipv6 nd ?
  advertisement-interval  Send an advertisement interval option in RA's
  autoconfig              Automatic Configuration
  cache                   Cache entry
  dad                     Duplicate Address Detection
  destination-guard       Query destination-guard switch table
  managed-config-flag     Hosts should use DHCP for address config
  na                      Neighbor Advertisement control
  ns-interval             Set advertised NS retransmission interval
  nud                     Neighbor Unreachability Detection
  other-config-flag       Hosts should use DHCP for non-address config
  prefix                  Configure IPv6 Routing Prefix Advertisement
  ra                      Router Advertisement control
  reachable-time          Set advertised reachability time
  router-preference       Set default router preference value

IPv6-R1(config-if)#ipv6 nd prefix 2001:ffff:eeee:dddd::/64 ?
  <0-4294967295>  Valid Lifetime (secs)
  at              Expire prefix at a specific time/date
  infinite        Infinite Valid Lifetime
  no-advertise    Do not advertise prefix
  <cr>

IPv6-R1(config-if)#ipv6 nd prefix 2001:ffff:eeee:dddd::/64 60 ?
  <0-4294967295>  Preferred Lifetime (secs)
  infinite        Infinite Preferred Lifetime

IPv6-R1(config-if)#ipv6 nd prefix 2001:ffff:eeee:dddd::/64 60 40
IPv6-R1(config-if)#

ルータ側を再設定したところで、Windows側をリセット。

C:\Windows\system32>netsh interface ipv6 reset
インターフェイス のリセットに成功しました。
近隣 のリセットに成功しました。
パス のリセットに成功しました。
 のリセットに失敗しました。
アクセスが拒否されました。

 のリセットに成功しました。
 のリセットに成功しました。
コンピューターを再起動してこの操作を完了してください。


C:\Windows\system32>


・・・このメッセージからすると、つまるところ再起動が必要ではないのか!?と懸念する。実際、直後に ipconfig /all を叩いても、ユニークローカルユニキャストのアドレスのままであって、ルータで設定した仮グローバルのプリフィクスはPCに反映されなかった。


というわけで、PC再起動と共に次回。