administrative distanceとmetric

この2つは同じような概念なのでよく混同する。

ditanceは距離、metricは辞書的には「メートル法の」とか「測定基準」という意味で、これも距離のような概念である。

どちらも大きいほうが「遠い」経路であるから、同じ宛先の経路があった場合小さいほうが採用され、ルーティングテーブルに載るのは一つだけである。

等コスト(「コスト」もまた同じような概念だが...)バランスする場合は同じ経路が複数載る場合もあるが、それは例外とする。

以下はあるshow ip routeの結果の抜粋である。

      172.17.0.0/16 is variably subnetted, 2 subnets, 2 masks

D        172.17.0.0/16 [90/3072] via 172.18.1.1, 01:10:04, GigabitEthernet0/0

O        172.17.1.0/24 [110/2] via 172.18.1.1, 00:00:04, GigabitEthernet0/0

C        172.18.1.0/24 is directly connected, GigabitEthernet0/0

L        172.18.1.2/32 is directly connected, GigabitEthernet0/0

      172.19.0.0/16 is variably subnetted, 3 subnets, 3 masks

D        172.19.0.0/16 is a summary, 01:10:07, Null0

S     192.168.2.0/24 [1/0] via 172.17.1.1


[90/3072]のように書いてあるのが、[ad/metric]である。

90はEIGRPの内部経路のデフォルトのad値

110はOSPFの内部経路のデフォルトのad値

1はstaticのad値


show ip routeではconnected経路、EIGRPの集約経路などのad値は表示されないが、それぞれ0, 5である。

IPアドレスというものは、だれでも自由に採番できる。プライベートアドレスだけでなく、グローバルアドレスであっても、設定しようと思えば設定できる。よく、「1.1.1.1」などというIPアドレスをloopbackなどで使用することがあるが、これは有効なグローバルアドレスであり、実際にはdnsサーバであり、インターネット上に唯一(であるべき)なアドレスである。

ルーティングによってどんなアドレスが広報され、自身が学習するかわからない。自分が設定しているから他所では設定されていないと決めつけることはできない。また、自分自身が設定していないアドレスは、他所のどこか一か所に設定されているとは限らず、また、一か所であったとしても、その経路が必ず一つの装置から広報されるとも限らない。

だから、同じ宛先の経路が複数あったときにどれを採用するかの基準が必要となる。

administrative distanceは、異なるルーティングプロトコルから受信した経路の比較に使われ、メトリックは同じルーティングプロトコルで受信した経路の比較に使われる。

だから、優先度としてはadが先ということになる。まずadを比較して、adも同じだった場合にはメトリックを比較する。

そもそもメトリックというのはルーティングプロトコルごとに計算方法がことなるので、異なるルーティングプロトコルのメトリックを比較するのは意味がない。

ちなみに、adとmetricを比較する前に「ロンゲストマッチ」という基準があり、ある宛先が別の宛先を含む場合はどちらの宛先に送っても到達可能ということになるが、その場合はサブネットマスクがより長いほうを採用する。サブネットマスクが長いということはより限定された宛先、いわば「狭い」宛先範囲を意味する。そちらが優先される。


AD値は変更できるがデフォルトでは以下のようになっている。(これも抜粋。ciscoだけのデフォルトかは知らない...)


BGP外部 20

EIGRP内部 90

OSPF110

RIP 120

EIGRP外部 170

BGP内部 200


BGPは外部が「近く」、内部が「遠い」が、EIGRPは逆に内部が「近く」、外部が「遠い」

BGPというプロトコルはちょっと用途が異なるから違うのだろうけど、「どうしてBGPは外部の方を近いとするのか?」と聞かれたら説明できない.....


内部だけの比較だと EIGRP < OSPF < RIP となっている。

RIPが一番遠いのはわかるがEIGRPがOSPFより近いのがちょっと意外。EIGRPはCisco独自プロトコルだから近いのか。

EIGRPの集約

 



Ping-tのENARSI問題集、問題ID 25513, 25514

RAはno auto-summary(デフォルト)、RBとRCは auto-summaryが有効。


集約すると、集約したルータには集約した経路のnull0あての経路ができる。

集約するのは自身が接続しているネットワークのみで、RBはRAから受け取った集約されていない172.16.1.0/24 についてはそのまま広報する。


なぜRDがサクセサのFDより小さくないとフィージブルサクセサになれないのか再考

このことは以前考えて自分なりに解決した記憶があって、過去のエントリを見たら書いてあったが、いまひとつ釈然としないので再考してみた。

EIGRP固有の考えにサクセサとフィージブルサクセサというものがある。

サクセサというのは最短経路、フィージブルサクセサは最短経路の次に最短な経路、要は最短経路の代替経路のことである。

経路が最短であるかどうかは帯域幅と遅延(基本はこの2つ)など複数の要素を考慮してメトリックとして計算され、メトリックが最小となる経路が「最短」とされる。

それはOSPFやBGPなどと同様であるが、その代替経路まで選定するのがEIGRP固有である。

「代替経路なんてメトリックが最小の次に小さい経路なんだから別に何も難しくないじゃないか」

と思うのだが、EIGRPでは単にメトリックが最小の次に小さいだけではフィージブルサクセサとして選ばれない。フィージブルサクセサとなるには「その経路のFDがサクセサのRDより小さい」ことが条件となる。

※昔は Feasible DistanceとAdvertised Distanceと言っていたが、今は Advertised DistanceをReported Distanceと言うようになったようである。


なぜだろうか?




この構成で、AからEへのサクセサは A→B→Eであり、そのFDは110である。

フィージブルサクセサを選ぼうとして、候補に挙がるのが下記2つの経路であろう。

A→C→E (FD: 140)

A→D→E (FE: 150)

FD、つまり目的地までの距離はA→C→Eのほうが小さいが、こちらの経路はRDが130でありサクセサのFDより大きいためフィージブルサクセサになれない。

もしA→C→Eをフィージブルサクセサとしたらどうなるか。



AはCにパケットを転送する。CはCでEへの最短の経路を計算している。パッと見てCとEは理隣接しているのだからEが最短に決まっているだろうと思えるが、メトリックを見ると実はC→A→B→Eのほうが120であり、直接接続しているリンクのメトリック130より小さい。だから、CはAにパケットを戻すことになる。

AはBを経由してEに到達する経路が利用できなくなったのでCに転送したのであるが、そのことをCがAと同時に検知してAから受け取っていたRDを無効にする必要がある。それをする前にAからEあてのパケットを受け取っていたら、CはAにパケットを戻すことになるだろう。

ループが発生するのは多分このような場合だ。


つまり、AからEへのフィージブルサクセサと候補となる経路は最初に挙げた2つだけではなく、以下のような経路もあったのだ。


A→C→A→B→E

A→C→A→D→E

A→D→A→B→E

A→D→A→C→E


この問題についてはあまり詳しく述べられていることが少なく単に「ルーティングループが起こるから」としか書いていないのは、たぶん、厳密に説明しようとすると結構複雑な条件が必要になるからだと思う。



EIGRPのメトリック計算はそんなに難しくない

EIGRPのメトリック計算ってめんどくさそうで敬遠していたのだが、やっぱりちゃんと覚えないとだめだと思いあらためて確認したら、それほど複雑ではなかった。

基本的に、経路上の一番小さい帯域幅と、遅延の合計がわかれば計算できる。

インターフェースの帯域幅と遅延は、show interfaceで確認できる。


CMLのIOSvルータ

Bandwidth: 1000000 Kbit/sec(=1000Mbit/sec = 1Gbit/sec), Delay 10μsec





ASA5506

Bandwidth 1000 Mbps(=1Gbps), Delay 10μsec





Cisco892

Bandwidth: 100000 Kbit/sec(=100MKbit/sec), Delay 100μsec

あれ、GigabitEthernetなのに100M?




FastEthernetと同じ....







K値はメトリックを計算するときにかける係数、つまり重みだが、デフォルトでは帯域幅と遅延以外はゼロである。つまり、帯域幅と遅延以外の値はゼロになる。つまり、無視される。

そして、帯域幅と遅延にかけられる係数のデフォルト値は1、つまりそのままの値である。
だから、K値はとりあえず無視してよい。帯域幅は、大きいほど速い。つまり、目的の経路までに速く到達できる。帯域幅をそのまま足すと速いほど大きい値になってしまう。そこで、ある値を基準として、どれだけ小さいかを計算する。

複数のリンクを経る場合、たとえば1G→100M→1G→10G→10M→1G→1G という場合、一番遅いところを採用する。厳密にルータAからルータxへ到達する時間を測定するには経由するすべてのインターフェースの帯域幅を考慮しなければならないだろうが、eigrpのメトリック計算においてはそこまではしない。

1G→1G→1G→1G→1G→100M→1G→1G であっても、
100M→100M→100M→100M→100M→100M→100M→100Mであっても、
100Mが採用される。

ちなみにメトリックの正式な計算式はこうである。





うわぁ...という感じだが、先述のようにK1とK3以外はゼロなので、こうなる。





これでもまだちょっとメンドクサイが、よく見るとそんなに難しくない。

10^7 / Min Bandwidth というのは、

10^7 = 10000000 Kbit/sec で、= 10000Mbit/sec = 10Gbit/sec


「10Gを最小帯域幅で割った値」である。


割るといっても全部10^nなので、最小帯域幅が 1Gなら10で、100Mなら100。10Gなら1と、計算というほどの計算ではない。

ディレイも同様で1Gの場合10μsecだから1, 100Mの場合100μsecだから10。


























この構成でR5のルーティングテーブルを見ると




192.168.3.0/24, 192.168.4.0/24 のメトリックは3072である。
1Gのインターフェースを二つ経由するから、最小帯域幅は1G, 遅延の合計は 20、

10G/1G + 20/10 = 12 で、

256 * 12 = 3072

である。

経由するルータが3つ4つと増えても、
帯域幅が同じなら遅延だけ増やせばよい。
上記は1ホップ先だが、3ホップ先で経由するインタフェースは全部1Gのデフォルト設定であれば、
256*14 = 3584




Ping-t ENARSI問題集に出てきたOSPFマルチエリア構成の確認

問題ID 25631, 25635, 25665

 CMLで構成を作って確認してみた。


RHは EIGRPをOSPFに、REはRIPをOSPFにredistributeしている。


RGのルーティングテーブル。

NSSAエリア内部のルータ。

O N2 .... AS外部のEIGRP経路

O IA ... 各エリアのOSPF経路

C ... 自分のエリアの経路はconnected

デフォルトルートは、ない。

area 20の外部経路のRIPの経路も、ない。












RHのshow ip ospf database

NSSAエリアのASBRルータ。

Type-7 LSAがある。AS外部のEIGRPの経路。


RAの show ip ospf database

バックボーンエリアのルータ。

NSSAの外部経路はType-5で受信している。

















REの show ip ospf database
ノーマルエリアのASBR。
AS外部のRIPの経路は Type-5である。




X11のクレードル(NAR01PUU)はX12で使えない

Bicカメラで買った、「Speed Wi-Fi 5G X11」というのを使っていた。

製造元はNECプラットフォームズ株式会社、型番はNAR01

5G対応のモバイルwi-fiルータである。最近なぜかモバイルwi-fiルータというものを見かけなくなった気がする。スマホでテザリングしているのだろうか?

この製品が、イマイチで買い替えようと思ったのだが、なかなかこれに代わるものがない。

やっと見つけた PA-MR51FNというのを買ったのだが、ほとんど同じような製品で、UIなんかほとんど同じである。すぐに解約した。

すると、X11の後継機種X12が出たということが分かったので「機種変更」した。


X11のイマイチだったところは、

・電池がすぐなくなる

・遅い(場所によるが50Mbpsくらい)

・スタティックルート設定ができない


など。X12に替えたら、電池の持ちが多少良くなった気がするが気がする程度。

スピードはほとんど変わらない。UIは基本的な仕様は同じだが細かいところがけっこう変わっている。スタティックルートはやっぱりできない。

X11では3日で15G(かな?)使うと低速になるみたいな制限があったのだが

それがなくなった。


そして、重要な問題が。

X11はクレードルを買って使っていた。NAR01PUUという型番で、そこにWi-Fiルータを置くと、LANケーブルで接続できるというものだ。たいした機能ではないと思うのだが5000円くらいする。

X12でも使えるだろうと思って置いてみたがケーブルを接続してもリンクアップしない。

X11を置いたらリンクアップする。調べると、X12は NAR03PUUというX12用のクレードルがあった。

「NAR01PUUはX12では使えない」ということはどこにも明記されていないのだが、X12用として違う型番のものが売っているのだからそうなんだろうな、と買うことにした。


Windowsで「デスクトップ」がなくなった時

 Windows10にはデフォルトで、日本語で「デスクトップ」「ドキュメント」「ピクチャ」「ビデオ」などの、フォルダそのものでない、何と呼ぶのか、エイリアスみたいなものがある。

これらはデフォルトだと、もう変えてしまったのでわからないが、確か、「C:\Users\Hogehoge\Desktop」などのフォルダを指していると思う。

だが、Onedriveが絡んでくるとこれがややこしくなる。よく覚えていないがMicrosoftアカウントでログインするとOnedriveが有効になったように思う。

Onedrive自体はだいぶ前から使っていてたくさんファイルも置いてあり、これは私にとって必要なものではあるが、Onedriveを使うと「デスクトップ」「ドキュメント」などが、Onedriveのフォルダに置き換わってしまう。... しまうのかどうかわからないが、私の場合、置き換わってしまっていた。

最近はインターネット接続が高速化しているので、クラウド利用が進んでいるが、私が利用しているインターネット回線はフレッツのマンションタイプ、VDSLで、100M以上の速度が出ない。fast.comなどで測定すると70~80Mbps程度である。

この回線では、Onedriveのフォルダをデスクトップやドキュメントで利用するのは実用に耐えない。ちょっと大きいファイルをデスクトップにコピーすると、Onedriveの同期が走ってしまう。


そこで、「デスクトップ」「ドキュメント」などのエイリアスみたいなものは(めんどくさいので以後エイリアスと呼ぶ)、ローカルドライブに変更している。

PCは何度か構成変更しているが、ドライブは起動ドライブとデータドライブを分けており、起動ドライブはシステムドライブとして自動でいろいろファイルが置かれるのでデータは置かず開けておくようにしている。

そして、DドライブやEドライブを作り、D:\mydoc, D:\pix,  E:\movies などのようなフォルダを作ってエイリアスのプロパティで「移動」を選んでそれらに移動している。

Windowsでは「デスクトップ」「ドキュメント」と表示されるのは変わらないが、実際にファイルが置かれるフォルダはDやEドライブになる。

この移動の時に、Onedriveのバックアップ設定やら同期設定、そして同期状況などにより移動できなかったりする。それはそれでめんどくさいのだが今回の本題はそのことではない。


このエイリアスの場所変更などをいろいろやっているうちに、「デスクトップ」がなくなって、「ドキュメント」と一緒になってしまった。Windowsを起動して表示される「デスクトップ」に、「ドキュメント」にあるファイルが表示されるようになってしまった。

それから、「ピクチャ」の場所もいろいろ変更しているうちにどこがどこだかわからなくなって、スクリーンショットが変なフォルダに保存されてしまい探すのに苦労する。

「ピクチャ」がドライブごとにできたりもしている(これはなおっていない)。


とりあえず、消えた「デスクトップ」を復旧する方法がわかったので書いておく。


(参考)

ドキュメントフォルダが消えた・標準の場所に戻すことができない | WindowsFAQ


この件で検索するとMicrosoftのフォーラムが出てくる。Windows関連の問題や疑問で検索するとちょくちょくMSフォーラムが出てきて何度か見ているが、このフォーラムは本当になんの役にも立たない。

要はレジストリを変更するのであるが、

powershellでできる。

powershellを管理者として実行する。

以下、「デスクトップ」を復活させる場合だが、「ピクチャ」「ドキュメント」も同様な感じでできるようだ。


md %USERPROFILE%\Desktop

でフォルダを作る。

そして以下を実行。

reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop /t REG_EXPAND_SZ /d %USERPROFILE%\Desktop /f

上記のリンクだとこの前に reg deleteで何かを消しているのだが私の場合それを実行しても「そんなのない」みたいになって削除できなかった。

上記のmd... とreg add...をやったら、Windowsを再起動すると、

デスクトップにあった「ドキュメント」の中身が消えてゴミ箱だけになった。

エクスプローラを開くと「デスクトップ」が復活していた。

globalprotectのアンインストール

最近MacBookを使っている。別に必要だからではなく、せっかく二十数万円出して買ったのに使わないでいるのがもったいないからだ。

買った直後は興味もあったし勉強的な意味でもいろんなことをやってはみたが、何をやってもWindowsとの勝手の違いにイライラし、別にMacじゃないとできないことなどほとんどないし、と、いつの間にかほとんど使わなくなった。

とにかく画面はきれい。写真や動画がすごくきれいなのは気持ちいい。でも、それだけ。

同じ部屋でWindowsのノートPCと並べてWifiにつないで使っていたが、Macの方だけすぐ切れる。つなぎなおすとつながる。今まではそんなことはなかったが、引っ越したばかりの部屋で新しいWifiルータなので、それとの相性のようなものだろうか。

いろんなVPN設定がある。OpenVPN, Forticlient, globalprotect...

必要ないのでアンインストールしていったが、globalprotectはアンインストールできない。調べるとインストーラを起動してアンインストールを選択する必要があるらしい。インストーラが残っていないかと探したが残っていない。インストーラはpaloaltoに設定された「ポータル」にアクセスしてダウンロードする必要がある。ポータルへのアクセスは認証が必要である。インストールしてあるのだからポータルを設定して証明書も発行したのだが、まあまあ面倒くさかった覚えがある。またアクセスすればいいと思ったがpaloaltoの設定を見ると証明書の有効期限が失効している。

とりあえずポータルにアクセスできてglobalprotectのインストーラが落とせればいいのだが、認証が必要なので証明書の発行からやり直す必要がある... もうどこをやればいいのかわからないので、globalprotectの設定を全部やり直した。

paloaltoのバージョンもだいぶ上がっていたので最新にした。ただ最新にするには段階を踏む必要があり、アンチウィルスなどのパッチも必要なものが適用されている必要があるようでだいぶ時間がかかった。

証明書は今回のようなことがあると面倒だから有効期限10年とかで作ったらいざアクセスしたときにエラーになってしまう。作ってインストールすることはできるのだが、クライアントからアクセスするとエラーになり、強行もできない。それも、ブラウザとかOSとかによってできたりできなかったりする。

で、結局globalprotectでVPN接続して、消さずに残しておくことにした。


Macでシリアル接続しようとして少しハマった

 MacBook Proを持て余している。

訳あってシリアル接続したかったが、MacBookはUSB-Cポートしかなく、いつも使っているUSBシリアル変換ケーブルが使えない。

USBハブを使っている人がいたが、シリアルケーブルを使うだけのために持っていないハブを買うのも馬鹿らしいなと思い、USB-Cインターフェースのシリアル変換ケーブルはないのかと探したら、あった。

StarTechのICUSB232PROCというモノだ。Macでも使えるというクチコミも載っている。

ドライバーをインストールすると /dev/tty* (たくさんある)の中に出てくるとのことだが出てこない。

何度かドライバを再インストールしたり再起動しているうちに、インストール時にMacOSのあるオプションを変更する必要があることに気づいた。

細かい内容は覚えていないが、Securityナンタラのナンタラextentionを有効にする必要があった。

ドライバインストールなど、出てくるプロンプトなんか見ずに全部ハイハイで入るもんだと思っていたが、それがダメだった。

やっと /dev/tty.PL2303G-USBtoUART1410 が出てきた。

cu -l /dev/tty.PL2303G-USBtoUART1410 

とするが、Permission denied. と言われる。

sudo する。

connected.

と表示されるのだが、その後何もできない。

調べると、ciscoルータなどのネットワーク機器にシリアル接続する際には

/dev/cu. を使うそうだ。

sudo cu -l /dev/cu.PL2303G-USBtoUART1410


ようやくコンソールアクセスして操作できた。


...が、コンソールを抜けるにはどうしたらいいのか?


わからない。

しょうがないのでterminalごと終わらす....


たまにMacを使うと日本語と英語の切り替えだけでイライラしてしょうがない...