このブログを検索

2023/12/28

CEクレジット

私の調査したところでは、現在CEクレジットを無料で取得できる 講座は下記の二つのみであり合計で28クレジットであり、今回必要な40クレジットに足りない。


Cisco SD-WAN Operation and Deployment | SDWFND

12credits


Understanding Cisco Network Automation Essentials | DEVNAE

16credits


たとえば、下記の有料の講座で24クレジット取得できるのだが

Programming for Network Engineers | PRNE

24credit

"Buy Now"をクリックすると、

Cisco U. Essentials(1800ドル)

Cisco U All Access(6000ドル)

のいずれかを選択する画面が表示される。


これらは365日有効で複数の講座を利用できるもので、どうも、講座を「単品」では購入できないようだ....


ちょっと高すぎるし、そんなにたくさんの講座を受講する必要もない。


どこかで確かに単品で買える画面を見たのだが、今探しても見つからない。

単品だと一番安くてたしか800ドルくらいの講座があった。


というわけで、今は下記の講座を購入して更新しようかと思っている。

Implementing and Operating Cisco Enterprise Network Core Technologies (ENCOR) v1.3

Continuing Education Credits: 64 


価格は$1000である。今のレートだと15万円近い。


試験を受けると57,200円でだいぶ安いのだが、テキストやネットの教材などを絶対買うので+3万くらいはかかり、さらにもし不合格になって2回受験するようなことになれば(そしてそうなる気がしてならない)、結局$1000くらいかかってしまう。

私の受験準備は独学であり、効率も悪いし過去の実績を見てもそもそも正しい知識がなにかがあいまいなまま詰め込み問題演習を繰り返して試行錯誤するようなことをするのが無駄でストレスも多い。

正直、もう試験を受けたくない。疲れる。


ちなみに、前述のSDWFNDを受講して12CEクレジットを得た。

無料の講座であり、動画(だいたい15分くらい)をいくつか見て、簡単なテストを実施すれば終わるものだが、最終テスト(Post Assesment)というのがあってそれに合格しないと受講完了にならない。Post Assesmentは何度でも受けられて答えも調べればわかるのだが、しらべて答えをだすのもまあまあ大変だった。


ちなみに全部英語である。

もう、CCNPくらいになったらテキストも試験も全部英語にした方がいいと思う。

CCIEは英語しかないし、ドキュメントも翻訳は不正確だったり、コマンドまで翻訳されていたりして、英語を読んだ方が早いケースが多い。

私はもう5回くらい英語で受けたし、ENCORもENARSIもテキストは英語版を買った。

テキストは全部は読んでいないが、辞書を引きながらじゃないと読めないような内容でもないし、今はドカッとコピペして翻訳もできる。


あと、Ciscoの資格試験に関しては全部自腹です。会社からの援助や報奨金のようなものは一切ありません。そもそも会社員ではないので。


2023/12/24

CCNP更新... されず

ENARSI(300-410)に受かった。1回落ちて2回目で。

かなり難しかった。今まで受けたCiscoの試験で一番難しかったのではないか。少なくとも、対策に最も時間とカネを費やしたのは間違いない。

2回目を受けるときに、これで落ちたら年末を重い気持ちで過ごすことになると恐れていたが無事合格し、これでまたしばらくゆっくりできる... と喜んでいた。

受験日の夜目覚めて、トラッキングシステムを確認するとENARSI「Pass」の記録があった。これでCCNPも更新だな... と思って見ると、期限が変わっていない。

まさか、と再認定の条件を確認したら、コア試験1科目またはコンセントレーション試験2科目の合格が必要だった.....

https://www.cisco.com/c/ja_jp/training-events/training-certifications/recertification-policy.html#~requirements


うげぇ....

じゃあ何か、ENARSIは更新のためには全く必要なかったってことか....

もう一個コンセントレーション試験に受かるという手段もあるが、今回受験科目を選ぶときに調べたがENARSI以外の科目は対策本などがほとんどないから、事実上ENCOR(350-401)しかないのだ。

研修を受けて「CEクレジット」というものを稼ぐ方法もある。コンセントレーション試験に1つ受かっている場合はあと40クレジットで更新とあるが、調べてみると安くても40万以上の講習を平日日中に5日間受ける必要がありこれも事実上無理。(後記:これは民間の講習の話で、Ciscoのサイトで受けられる講習は多数あって無料のものもある。40クレジットならもしかしたら無料あるいは受験料と同程度の出費で済むかもしれない)

私は現行試験になる前(マイナーな変更が1年前くらいにあったようだがその前の変更)にCCNPに認定されており、再認定はENCOR1科目でできたので、てっきりENARSIに受かれば更新だと思い込んでいた....

受験記をざっと見ると、どうやら難易度はENCOR<ENARSIではあるようだが、前回受験時にはなかったシミュレーションがあるし簡単な試験ではない。前回も1回落ちている。


幸い、更新期限まであと4ヶ月あるので対策は可能である。たまたま仕事が暇だったので早めに取っておいたのだが、もし期限ギリギリに受験してその時気づいたら大変なことになるところだった。やっぱり早め早めに更新するのが良い。

ENARSI合格のために勉強したことは面白かったしタメにもなった。DMVPN、VRF、OSPF・BGP・EIGRPなど。特にもうずっと勉強してきた3つのルーティングプロトコルについては、今まで見えていなかったところが今回の勉強でようやく理解できた気がしているので無駄ではなかった。ただ、試験が終わってふと我に帰ると、これらの技術を実際に仕事で使うことはほとんどない。ルーティングプロトコルについては本当に基本的な機能しか使われていない。企業のネットワークでも、ダイナミックルーティングプロトコルを使用するケースは少ない。Staticで事足りるケースがほとんど。むしろダイナミックなプロトコルで予期しない状況になるのを恐れて意図してStaticを使っているようなところがある。OSPFでエリアを分けているケースは見たことがない。スタブとかNSSAとか、異なるルーティングプロトコル間の再配送とかも。

今回受験した時に他の受験生を何人かみたが、待っている間に受付のやり取りが聞こえてきたのがAWSが二人、Linucが一人だった。もはや、Ciscoとかルーティングとかいう技術はマイナーな、忘れ去られようとしているものになりつつあるのかもしれない。


ちなみにENCORの受験料は57,200円.... 

「ごぉまぁんなぁなせんにぃひゃくえぇぇん!?ふざけんなよ!」とトイレの中で呆れた.....

2023/12/19

Cisco CLI小技

routing設定のみ見る

sho run | sec router


bgp設定のみ見る

sho run | sec bgp

 

interface設定のみ見る

sho run | sec interface

 

|(パイプ)はコマンド結果から一部を抽出する場合などに使うが、

i(include)の後に指定する語句の間に入れると or検索になる

 CORE#sho run | i ospf|eigrp
 ospfv3 10 ipv6 area 0
router ospfv3 10
router ospf 10
router ospf 20
router ospf 1
access-list 100 deny   eigrp 10.10.0.0 0.0.255.255 any
access-list 100 permit eigrp any any
access-list 121 permit eigrp host 10.10.12.2 any
access-list 123 deny   eigrp 10.10.0.0 0.0.255.255 any
access-list 123 deny   eigrp any 10.10.0.0 0.0.255.255
access-list 123 permit eigrp any any



 

特定のinterface設定のみ見る

sho run int gig 0/0

 

routing tableを表示するときに凡例を出さない

show ip route | begin Gate

CORE#sho ip route | begin Gate
Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
C        10.10.1.1/32 is directly connected, Loopback0
C        10.10.12.0/24 is directly connected, GigabitEthernet0/0
L        10.10.12.1/32 is directly connected, GigabitEthernet0/0
C        10.10.13.0/24 is directly connected, GigabitEthernet0/1
L        10.10.13.1/32 is directly connected, GigabitEthernet0/1
O        10.10.99.99/32 [110/2] via 10.10.12.2, 00:03:51, GigabitEthernet0/0
CORE#

 

configモードでshowコマンド実行(tab補完はできない、?でヘルプは出る)

(config) do show run

 

ショートカット

pingやtracerouteを中断する

Ctrl + Shift + 6

※何度か連打する。連打は3つのキー全部離して打つと入りやすい。Ctrl+Shiftを押したまま6だけ連打とかではダメ?

 

コマンドを打っているときに取り消して行頭に戻る

Ctrl + U または Ctrl + X

 

debugの終了

un all

(undebug all)


sshやtelnetしているときにdebugを表示/非表示

ter mon

(terminal monitor)

ter no mon

(terminal no monitor)


configモードで一気に抜ける

end

Ctrl + Z



ショートカット(linuxなどでも同じ)

行頭へ移動

Ctrl + A

 

カーソル以降を削除

Ctrl + K

 

行末へ移動

Ctrl + E

2023/12/03

iPhoneのメール設定で待たされる件

postfix/dovecot設定をするときは、ややこしいのでいつも、

SSLなしでいったん設定して送受信を確認してから、SSLありにして再設定している。


iPhoneで送受信するのがメインなのでiPhoneにメールアカウントを追加するのだが、

SSLなしの状態を確認するためにアカウントを追加するのだが、メールサーバとアカウントとパスワードしか入力できず、SSLあり設定で接続を試しに行く。

まあセキュリティを考慮すると仕方ないかなとは思うのだが、

それで当然失敗して「SSLなしで設定しますか」と聞いてくるのだが、

失敗を待つのにずいぶん時間がかかる。測っていないが多分3分くらい待つ。


これがウザい。

postfix/dovecot設定@centos9

昨日から今日にかけてpostfix/dovecotの設定をやった。

まずはubuntu 23.10(digital ocean)で、そしてcentos sgreanm release 9(さくらのVPS)で。

同じ設定をしたのだが設定個所や内容は微妙に異なる。osが違うというだけではなく、設定を紹介している人の理解とかやり方によるように見える。つまり、やり方は一つではない。

ubuntuでやった時はgmailのアカウントに送れなかったので、centosでやってみたのだが、こちらはspfもdkimも設定していないのに送れた。

ドメイン名は違っていて、centosでやった方のドメインは逆引きを設定している。逆引きがあれば(spfやdkimがなくても)、gmailに送れるのだろうか?


あと、iphoneの証明書の信頼は、ただCA証明書をインストールするだけではだめで、

Settings > General > About > Certificate Trust Settings 

で、ENABLE FULL TRUST FOR ROOT CERTIFICATESを有効にする必要がある。


証明書を作るとき、サーバの秘密鍵は暗号なしで作るのが楽。

いつもこういう風にしているが、

#openssl genrsa -aes256 -out ./server.key

Enter PEM pass phrase:


これでよい。

# openssl genrsa -out ./server.key


秘密鍵を暗号化して作った場合でも、以下のようにして解除できる(パスワードを入力する必要あり)。

# openssl rsa -in server.key -out server.key


また、暗号化した秘密鍵を使って、パスワードを設定する方法もある。

メールサーバを作ったがgmailに送れない(と思ったけど送れた)

※このエントリーを書いた後再確認したらgmailあてに送れるようになっていた。理由はよくわからない。備忘録のため残しておく


私はdigital oceanのVPSを使っていて、さくらインターネットで管理しているドメインの名前をつけている。そのサーバをメールサーバにしたのだが、色々やったあげくgmailアカウントにメールが送れなかった。

使ったのはpostfix/dovecotである。

postfixは送信(MTA)、dovecotは受信(MDA)でいいのだろうか?

何度か設定したが、いつもこの2つが不可分なような気がしてならない。


ただメールを送受信するだけなら簡単なのだが、まずSSL対応するのが面倒。

証明書が必要だったり、追加設定もたくさんある。設定ファイルも複数あるし。


いつもiPhoneをクライアント(MUA)として確認しているが、iphoneのメール設定もいつも忘れるのと、昔はメールと言えばSMTP/POPだったのに、いつの間にかIMAPが標準になって、でもiphoneの設定画面にはimapとpopが両方あって、どちらも使えるように見える。


あとサブミッションポートというものもよくわからない。25を587に変えるだけじゃないのか?

設定方法についてはいろんな人がブログなどで説明しているのでそれらを参考にすればできるのだが、バージョンやOSの違いなどで微妙な差がある。ブログとかだと記載ミスとかあるし、おそらく書き漏らしている手順とかもあるだろう。実際、書かれている通りにやってみてもうまくいかないことが何度もあった。


メールサーバなんか自分建てるものではない、と改めて思った。

とりあえずSSL対応してiPhoneで送受信できたのだが、gmailのアカウントに送ると、エラーになって帰ってくる。このことについても情報はたくさんあるのだが、「SPFまたはDKIMが必要」と言っている人が多いが、どうも両方必要なようである。さらに、逆引き設定も必要なようである。

SPFは簡単だがDKIMはめんどくさい。一体なんでこんなことをしなければならないのかと思いながらやっとの思いで設定を終えた。

しかしやはりgmailに送れない。ただし送れない理由がSPFとDKIMがなかった時と違っていて、「550-5.7.25 PTR record setup」がない、となっている。

逆引きが必要ならやればいいと思ってさくらインターネットのドメインコントロールパネルで追加しようとしたが、レコードの種類の選択に「PTR」がない。ドメインコントロールパネルは何度も使ったことがあるが逆引きを登録したことはそういえばなかったか。あったような気がするが、結論を言うとドメインコントロールパネルでは逆引き登録ができない。

ただし、さくらのVPSのホストの逆引き登録はサーバ自体の設定でできる。

しかし、今回私がメールサーバにしたのはdigital oceanのサーバで、そのアドレスの逆引き登録はできないのだ。

理由はよくわからないのだが、逆引き設定というのは間違いやすいとか間違うと重大な問題が起こるとかがあるのだろうか。

DNSサーバをdigital oceanのものにするとか、さくらのVPSのサーバをメールサーバにするとか、色々方法はあるだろうが、めんどくさいな....


さくらのVPSでメモリ枯渇

centos9を動かしているさくらのVPSにsshしてdnfしたらsshが切れる。

調べてもそんな例は見当たらない。何度やっても、どこからつないでも切れるのでコンソール(さくらの管理画面から)につないでdnfしてみたら、物騒なメッセージが出ていた。


# dnf update

[25559685.849171] dnf invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=0

[25559685.852614] CPU: 1 PID: 2780910 Comm: dnf Not tainted 5.14.0-252.el9.x86_64 #1

[25559685.853720] Hardware name: Red Hat Linux KVM, BIOS 0.5.1 01/01/2011

[25559685.854759] Call Trace:

[25559685.855521]  <TASK>

(以下略)


oom-killer?

検索してみるとメモリ枯渇の時に出るようだった。

freeを実行してみるとSwapが0 ... ?


# free

               total        used        free      shared  buff/cache   available

Mem:          986668      393268       63280        2956      671788      593400

Swap:              0           0           0


freeなんていつも見ないので、この状態が異常なのか普通なのかわからない...

メモリ不足ということはなんか余計なものが動いているのだろうと思い、メモリを多く使用しているプロセスを確認するコマンドを調べて実行した。

ps aux --sort rss

試しにzabbixをインストールしたときに動かしたが使っていないmariadbだのsnmpdだのが多くのメモリを使っているようだったのでそれらを停止、アンインストールした。

dnf updateができるようになった。

が、よく見るとupdateでzabbixのモジュールを更新しようとしている。


もうzabbixはいらないのに。調べると、リポジトリ置き場(/etc/yum.repos.d)に「zabbix」のついたものがある。

ほかにもいろいろ入っている。これらは何かをインストールするときに「これを追加する」と書いてあるのをそのまま鵜呑みにして追加してそのままになっていたものだ。zabbixなんとかを名前を変えて消す。

などやって、freeを見ると、空き領域は増えたようだ。

swapは相変わらずゼロ。多分、swapを使っていないのだろう。

これはどうかと思うが、とりあえず、今回はok


# free

               total        used        free      shared  buff/cache   available

Mem:          986668      332612      416868        4788      412608      654056

Swap:              0           0           0


ちなみに私が使っているサーバのメモリは1Gである。

さくらのVPSはなんだかんだで10年くらい使っているだろうか?そんな古くない?

今調べたらさくらがVPSを提供開始したのは2010年とある。わたしはレンタルサーバを使っていて、これはいいと思ってすぐ使い始めた覚えがあるのでやはり10年以上使ってきた。

でもメモリの不足を感じたことは一度もなかった。

スケールアップしようかな...

それよりswap設定の方が先か...


2023/11/30

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独自プロトコルだから近いのか。

2023/11/24

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である。




2023/11/14

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用として違う型番のものが売っているのだからそうなんだろうな、と買うことにした。


2023/11/11

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を再起動すると、

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

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

2023/11/09

globalprotectのアンインストール

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

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

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

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

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

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

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

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

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

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


2023/11/02

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を使うと日本語と英語の切り替えだけでイライラしてしょうがない...



2023/10/31

CML2.6.1

 


CMLのバージョンを2.6.1にした。

今まで2.2.3(かな?)を使っていたのだが、バージョンがだいぶ上がっているのに気づいた。

もしかしてライセンスがあればアップグレードできるのか? ...できる。

Upgradeという操作ができるが、めんどくさいので仮想マシンを新しく作り直した。

いつも忘れるのだが、CMLの購入履歴、ライセンストークン、ダウンロード等は「Cisco Learning Network」でおこなう。

CMLは本体とrefplatなんとかというisoファイルを必要とする。

refplatがルータやスイッチなどのイメージを含んでいるようであり、これがないと実質使えない。

refplatは起動時に読み込むようにしておく。

VMWare ESXiの場合、仮想マシンの設定でisoファイルを選択(その前にアップロードする)し、起動時に接続をチェックしておく。

これをしないでいると、仮想マシン起動後のセットアップで警告が出る。


新しいCMLでは、テキストや図形(四角や丸など簡単なもの)を貼れるようになった。

あと、これは以前からあったかもしれないが、各ノードのconfigをCLIでなく設定できる。

また、設定したconfigを FETCHで読み込める。


確認するときにlinux端末があると便利なのでUbuntuについて

アカウントはcisco、パスワードはcisco

ネットワーク設定はコマンドでもできるが設定を保存するには

/etc/netplan/ に拡張子.yamlで設定ファイルを書く。


cisco@ubuko:~$ cat /etc/netplan/99-config.yaml 
network:
  version: 2
  renderer: networkd
  ethernets:
    ens2:
      dhcp4: false
      addresses:
        - 192.168.4.100/24
      routes:
        - to: default
          via: 192.168.4.254


設定変更したら、 sudo netplan apply で反映する。

名前はなんでもよいようで、このフォルダにあるyamlファイルがアルファベット順にすべて読み込まれ、(同じ設定があったら)最後に読み込まれた設定が有効になるそうだ。

ちなみにデフォルトルートの書き方は gateway4: というのは古く、上記が新しい書き方である。


2.2で作ったLab設定はエクスポート・インポートしたが、トポロジーはインポートできたがconfigが消えてしまった。extractとかいう操作をしたら戻るみたいなことが書いてあったがやってもだめで、入れなおした。

あと、仮想マシンを作り直したのでライセンスを再登録したのだが、ちょっと手間取ったのでメモ。

レジスターするとなぜかエラーになる。何度やってもだめで、「既に登録されていたら解除する」をチェックしてもだめ。 結局、CMLのコンソールにログインし、下記を実施してやっと有効になった。
sudo -E -s
cd /var/local/virl2/smart
systemctl stop virl2.target
rm -f *.data call_home_ca
systemctl start virl2.target

2023/10/10

PC新調時のトラブル

1: Wed May 3 16:38:56 2023
マザーボード: ASRock B760M Steel Legend WiFi
CPU: Core i5 13400F
メモリ DDR5 64GB(32GB x2)
M.2 SSD 2TB(サムソン)

グラフィックカード
NVIDIA GeForce GTX 1650 SUPER(流用)

電源 550W Gold(流用)

2: Wed May 3 16:41:39 2023
いったん起動してWindows10をディスクからインストールし、
windows updateをしていた。
ドライバは自動アップデートが走った。

いったん落ち着いて
LANアダプタとM.2(流用)をつけて起動したら、
画面が黒いまま。
マザーボードのpost checkとかなんとかいうLEDを見ると、
bootとvgaが赤く光っている。

3: Wed May 3 16:43:12 2023
CMOSクリアとか、余計なものを外すなどしたが問題がわからず、
vgaが認識しないということだからグラフィックカードの故障か、となった。
ファンは回っているが....

4: Wed May 3 16:45:03 2023
13400Fはグラフィック機能がないCPUなので、グラフィックボードを認識しないと何も表示されなくなってしまう。
今まで9400Fを使っていたがこんなトラブルはなく、どうせ外付けグラフィックボードを使うんだからいらないだろうと、Fを選んだ。

5: Wed May 3 16:47:12 2023
CMOSクリアはやってみた。
biosが初期化されているというメッセージが出て、bios画面だけは出る。
時刻をセットする。メモリ、SATAデバイスは問題なく認識されている。

ネットで調べると、似たような問題がbiosアップデートでなおる、みたいな情報もあるが、
画面が何も出ないとbiosアップデートもできない......

6: Wed May 3 17:04:56 2023
その日はあきらめて、
翌日中古のグラフィックボード、壊れたと思しきものとほぼ同スペックだが違う型番のものと、
グラフィック機能付きの Core i5 9500 中古CPUを買った。

新しく買ったグラフィックボードをつけてみると、同じようにbootとvgaが点灯して画面が表示されない。

予想外だった。これはグラフィックボードの故障ではない。
買った中古品も壊れている可能性もないとは言えないが考えにくい。

元の構成に戻す。ただしCPUは買ってきた 9500に付け替える。
まずグラフィックボードをささずに起動してみる。
CMOSがクリアされていたが、正常に起動する。

そして壊れたと思っていた今まで使っていたグラフィックボードをさして起動する。
正常に起動してグラフィックボードも認識する。やっぱり壊れていなかった。

7: Wed May 3 17:08:54 2023
ということは?
マザーボード?

問題が起きる前に、LANカードとM.2 SATAドライブを付けた。

LANカードはグラフィックボード(2スロット使う)の下のスロットで、
触るか触らないかギリギリで、ねじで固定する位置によってはファンにあたって回転しない。

8: Wed May 3 17:09:51 2023
その時にグラグラさせてしまってスロットが壊れた?

9: Wed May 3 17:11:51 2023
あと気になることと言えば、問題なく起動してASRockのドライバアップデートが走って再起動したときに真っ暗・HDDアクセスなし状態となり、電源オフオンした。

ただし、その時は正常に起動している。

10: Wed May 3 17:15:20 2023
気になるのはVGAだけでなくBOOTも点灯していることだ。
BOOTデバイスはM.2である。

11: Wed May 3 17:27:43 2023
BIOS(UEFI)はBIOS画面からできるようだ。

https://www.ictbs.co.jp/blog/asrock-bios-update/#i

やってみよう。
また構成を買えるのはメンドクサイが....

そう簡単に壊れたり不良品を掴むとも考えにくいんだよな....

12: Wed May 3 17:28:32 2023
でもいったんちゃんと動いたというのがな....
バージョンとかのせいなら一回も動かないでしょ.......

13: Thu May 4 08:14:10 2023
ドライブ類を全部抜く。
今までつけたままにしていたM.2 SSDも。これはWindowsをインストールした起動ドライブである。

すると、例のvga, boot LED点灯問題は起きなくなった。
起動ドライブがないのでBIOS画面になる。

M.2 SSDの故障あるいは不良だ!と確信しかけた.... いや、この時点では確信した.... しかし.....

今使っているドライブは、
a. M.2 1枚(起動ドライブ)
b. SSD 1枚
c. HDD 1枚
である。

aがダメなので、aの代わりに別のSATA(a2)ディスクをつなぎ、
DVDドライブにWindows10のインストールディスクを入れて起動する。
Press any key to installみたいなメッセージが出て、
キーを押してインストールに進む。(ここでkeyを押してもスルーされてBIOSに行ってしまうというおかしな挙動があったがキーボードを変えるなどしてなんとく進む)

Windows10インストール画面が表示され、無事にインストールは終わる。
グラフィックボードが故障している疑惑は完全に晴れた。


14: Thu May 4 08:20:20 2023
OSインストールが終わって、問題のM.2 SSDを初期化できないかと思い、
さして再起動するとダブルLED点灯問題が起きる。

「起動ディスクは別にもあるのにダメか... 違うスロットに変えてみよう」
それでも同じ。
「このM.2 SSDはどこにさしても起動しなくなるのか.... やれやれ....」

M.2を抜いて、再起動すると....... ダブルLED点灯問題発症。M.2 SSDは挿していないのに!

まさか.... 電源容量が足りないとかか?

起動ドライブのSSDを抜いてもとのSSD(a)を挿して起動。問題が起きずBIOS画面になる。

そのままSSD a を a2 に差し替えると問題発生。電源ではない。「起動ドライブにしたSSD」があるとダメだ。

どういう問題なのか。
規則性があり、やや込み入った条件の下で発生するのでソフトウェアバグっぽい気がする。

念のため32x2GB=64GBにしているメモリを1個だけ、32GBにしてみたがそれでも問題は起こる。

15: Thu May 4 08:22:12 2023
BIOSをアップデートしようと思ったが、
ASRock B760M Steel Legend WiFi
の新しいbiosはない。

今のバージョンは 1.08

発売は今年の1月で、価格コムのレビューとかも少ない。
16: Thu May 4 13:58:40 2023
https://faq.tsukumo.co.jp/index.php?solution_id=1316

「BIOS 」と書いたが、今使われているのはもうBIOSではなく「UEFI」と呼ぶ。
役割は似ている。
そしてUEFIには Compatibility Supported Module【CSM】という、
biosとの互換に関する設定がある。
17: Thu May 4 14:03:10 2023
すぐに確認できないのだが、今 disableになっているのではないだろうか。
まず、今回USBメモリからインストールしようとしたのだがboot候補として選べなかった。
DVDはディスクを入れたら読み込まれインストールできたので
なんでかなと思いつつインストールしたが、
そのインストール方法がUEFI非互換の方式で、
だからそのデバイスからブートしようとすると失敗するのでは?
18: Thu May 4 14:07:09 2023
パーツの故障や不良とは考えにくい。
動作に規則性や再現性がある。
bootの問題だし。

19: Thu May 4 14:15:23 2023
https://www.pc-master.jp/jisaku/bios-uefi.html

今回は新規インストールするので、
「UEFI」モードでインストールして、旧式との互換がどうこうを
気にしたくないのだが…

20: Thu May 4 14:15:25 2023
https://www.pc-master.jp/jisaku/bios-uefi.html

今回は新規インストールするので、
「UEFIモード」でインストールして、旧式との互換がどうこうを
気にしたくないのだが…

21: Thu May 4 14:20:42 2023
https://www.archlinux.site/2016/11/windows-10uefi-uefi-bios.html?m=1

22: Thu May 4 23:00:11 2023
まだよくわからないのだが
とりあえず無事インストールでき、再起動もできた。
やはりCSMはdisableで、enable にすることで起動ディスクにした
SSDドライブを挿して動かせた。

23: Thu May 4 23:03:43 2023
ただし、そのまま「biosモードインストール」すると
windows がまともにインストールされない。
インストーラーUSBメモリを使ってインストールしなおしたどうやら「UEFIモード」で
インストールできたようだ。

24: Thu May 4 23:05:04 2023
とにかく、CSM をenableにして道が開けた。


(追記)
CSMとはCompatibility Supported Moduleの略らしい。
この設定はUEFIのboot設定の一項目であり、デフォルトでは無効になっている。
有効にするとは、「BIOSモードでの起動も有効にする」ということになる。

CSMが無効だと起動しないということは、インストールした媒体(M.2 SSDにインストールしたWindows10)がBIOSモードでインストールされているということだ。

本来はUEFIモードでインストールしてCSMはデフォルトのまま無効にしておきたかった。
しかしWindowsをUEFIモードでインストールすることができなかった。



2023/05/23

raspbery pi を wifiルータにする

sudo su

#ip forwarding
/etc/systemctl.conf
net.ipv4.ip_forward=1

#iptables設定消去
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#nat設定
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE


iptables-save > /etc/iptables.ipv4.nat

iptables-restore < /etc/iptables.ipv4.nat

#再起動しても有効にする
/etc/rc.local
# exit 0 の上に
sudo iptables-restore < /etc/iptables.ipv4.nat
#おまけ static route
# route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168
.1.76 eth0
# ip r
default via 172.16.11.254 dev wlan0 proto dhcp src 172.16.11.112 metric 303
10.0.0.0/24 via 192.168.1.76 dev eth0
172.16.11.0/24 dev wlan0 proto dhcp scope link src 172.16.11.112 metric 303
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.254 metric 202

参考
Raspberry pi を NAT ルーター兼 DHCP + DNS サーバーにしたい - 子育てしながらエンジニアしたい

2023/05/15

約分その2

さっきの約分の問題はyoutubeで見かけたものなのだが、その動画では私がやったようなやり方で解くのではなかった。

3007/1067 であれば、2つの数の差を求める。

1940。

この数を素因数分解する。

2で割れる。970。また2で割れる。485。

4で割れるのか。485。

5で割れる。97。

1940=4x5x97


3007も、1067も、97で割れる。

つまり、公約数である。


2つの数の差の約数がなぜ元の数の約数になるのか。

直感的にはピンとこない。


約分、素因数分解、素数判定

約分、素因数分解、素数判定

この3つは実質同じことをする。

ある数について、約数があるかどうかを確かめる。


たとえば、「3007/1067 という分数を約分しなさい」という問題。

パっとみ、割れる数が思いつかない。2, 3, 5あたりはダメ。


すぐにできる約数を見つける方法は、

末尾が偶数... 2

各桁の数を足すと3の倍数... 3

末尾が5か0... 5


そして、2桁だったら素数は列挙してもそんなに時間はかからない。

2, 3, 5, 7, 11, 13, 17, 19, 23, 

くらいまではすぐ出る。


29, 31, 37, 41, 43, 47, 53, 

この辺から怪しくなってくるか


でも2桁だったら、「素数を列挙してその中にあるか」ではなく、

いくつかの数で割ってみればわかる。1分もかからないだろう。


また、桁数は10桁とか20桁とか、「どんな桁数であっても使える素数判定法」を見つけようというのでもない。


まあ、4、5桁くらい。


先ほど例にあげた、3007, 1067 といったような数字で使える、そんなに厳密でなくてもいい方法。


この例では、2つの数字がともに末尾が7となっている。

もしこれらの数字に約数があるならば、2つの数値をかけて結果の末尾(1の位)が7になる数字、ということである。


それはどういう数かと考えて、まず思ったのは、「末尾が7である数と、末尾が1である数の積」である。そして、これだけだと思った。

しかし、それだけではなく、3x9=27 でもある。


ただ、これだけわかればだいぶ楽だ。

3007について。

2, 3, 5 では割れないことはわかっている。

7は、微妙だが割ってみればすぐわかる。割れない。

8, 9, 10 はそれぞれその約数で割れないのですでに対象外。

2桁になっていく。


4桁の数で、「約分しなさい」という問題だから、おそらく2桁x2桁になるのだろう。

候補は下1桁が1, 3, 7, 9

これくらいなら順番に割ってもよさそうだが、

目的はこの問題を解くことではなく簡易的でもいいから判定法を見つけることなので、

もう少し考える。


3007という数の大きさ。


3000は、10x300, 15x200, 30x100 などである。(ほかにもあるが、たとえば。)

ここに登場する、10, 15, 30, 100, 200, 300 などをいじって、

先ほど候補として絞った「下一桁が1と7、あるいは3と9」にしたらどうだろうか?

10x300→ 11x299, 13x299, 17x291

15x200→13x209, 17x191, 19x193

30x100→31x97, 33x99, 29x93


適当にやっただけなので、ざっと見ると

13x209, 29x93は3000に満たないので除外


11x299, 13x299, 17x291

17x191, 19x193

31x97, 33x99


13x299は明らかに大きい

19x193も大きい

33x99も大きい


11x299, 17x291

17x191, 31x97,


おっと、末尾が7にならないのが混じっていた。

17x291, 17x191, 31x97,


17x291=17x(300-9)=5100-153

17x191=17x(200-9)=3400-153

31x97=31x(100-3)=3100-93=3007 ... これ!



1067は...

同様にやってもいいのだが

すでに3007=31x97が判明しているので

どっちかで割れるであろう。


31x37かな

(30+1)x37 ... 違う

31x27=(30+1)x27=810+27... 違う


97x11は...

(100-3)x11=1100-33=1067... これ!


ちなみに1067の方を先にやった場合の候補は


1067だと、1000との差がやや大きい。

1000=10x100, 20x50, 500x2, 330x3+α, 250x4


で、末尾が7になるから

11x97, 21x47, 

500x2, 330x3, 250x4は除外


もう答えを知ってるから 11x97がすぐ出てきちゃったけど...




2023/03/27

ラズパイ4が熱いのでケースを変えた

 


自宅で動かしているラズベリーパイ4にアクセスできない。
pingも返ってこない。

見ると、電源コード(USB-C)のが抜けているとかいうこともないが
触ると熱い。

公式ケースみたいなのを使っていたが、
ケース自体がヒートシンクになっているようなのを買った。

ラズパイのケースにファンとかつけるのは違うでしょ... 
と思う。

見た目もカッコイイ。

しかしラズパイの価格が高騰していますね....

2023/02/12

SNMPトラップの受信, zabbix

ネットワーク機器を導入するとき、まず必ずSNMPによる監視とトラップ送信をおこなう。

これらは機器の本来の提供機能ではなく、監視のための機能であるから、あまり重視しておらず、とりあえず送れればいいでしょ、見れればいいでしょ、という感じだった。

一応検証するのだが、監視(ポーリング)はSNMPマネージャをWindowsPCなどにインストールして確認し、TRAPはWiresharkでキャプチャしてUDP162のパケットが飛んでいるな、くらいで確認を済ましていた。

マネージャはTWSNMPというのがある。GUIで使えるのはこれくらいしかない。

net-snmpというのがあってポーリングはこれでいいのだが、trap受信確認でいいのがない。


zabbixというのがよく使われてて名前をよく聞くのでちょっと調べてみたらフリーソフトだったのでcentosのサーバにインストールしてみた。

....が、こいつ、訳が分からない。

インストールも手間取った。

MariaDB, net-snmp, などいろいろなものが必要。

DBはMariaDBを使う例が紹介されていることが多いがpostgresqlの場合もある。

linuxで何かをインストールする場合、検索すればたくさん情報が出てくるのでそれを参考にして、ほとんどの場合書いてあるコマンドをそのまま入れてやってみる。

まずなんらかのエラーメッセージがでたり、URLにアクセスできなかったり、依存関係がどうの、インストールできないだの、で四苦八苦することになる。


改めて思うのは、なぜみんな dnfとかyumで -y オプションをつけて、複数モジュールを一気にインストールするのかということだ。

そうできるのは十分に検証して前提条件とかバージョンとかが吟味されている場合だけだ。

私はdnfで何かをインストールするときは -y をつけることはまずないし、慣れたもの以外は一個ずつ入れる。


あと、特定のソフトウェアをインストールするときに、特定のリポジトリを追加する、ということがよくあるのだが、これは何なのか。

そういうこともあるんだな、といつもそれに従っているが、そのリポジトリがなぜ必要で、そしてなぜそのリポジトリを追加すればよいとわかるのかが、わからない。

このリポジトリ追加もよく失敗する。

ブログ等に紹介されている例はあくまでもその時にそのバージョンでその環境でたまたまうまくいった例にすぎないのである。


というわけでzabbixのインストールは苦労したのだが、とりあえずブラウザで管理画面にアクセスしてログインすることができた。

が、ここからがまた大変だった。SNMPで監視してトラップを受信する、なんて、対象のホストを登録して、何を監視するか、ポートは何を使うか、デフォルトでいいか、監視間隔は、程度だろうと思ったら、itemだのtemplateだのtriggerだの....

あと、エージェントが必要とか....

たかがSNMP監視でエージェントなんか必要なのかよ....

そんなの入れたことないし.....


さらにtrap受信のためにはzabbixだけではだめで、トラップ受信用のソフトが必要。

とりあえずtrapを受信してログに出力されることは確認できた。が、それはzabbixの機能ではない。

まあ、ログファイルをlessなりtailなりで見ればtrapが来てるなーという確認はできるので、ほぼ私の用途は満たすのだが、

どうせならGUIでホスト名、時刻、trapの内容等を表にしてブラウザで見れたらうれしい。

zabbixってそういうものでしょ?


それが、できない....




2023/01/05

motionでカメラを二つ使う

 motion4.3.2

root@raspberrypi:/etc/motion# cat /etc/os-release

PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"

(略)


よくわからなかったのでメモ。


motion.confの下の方に、以下のような設定があり、コメントアウトされている。


##############################################################

# Camera config files - One for each camera.

##############################################################

; camera /usr/etc/motion/camera1.conf

; camera /usr/etc/motion/camera2.conf

; camera /usr/etc/motion/camera3.conf

; camera /usr/etc/motion/camera4.conf


カメラを2台使うなら、最初の2行をコメントアウトして、設定ファイルを置けばよい。

camera~ のところは、以前は thread~ だったが、変わったようだ。


設定ファイルに記載するのは、2台のカメラ固有の設定のみでよい。
それ以外の設定は motion.confの内容が使われるようだ。


以下、サンプル。

設定ファイルの場所と名前は変えた。

camera0がraspiカメラで、camera1が外付けのUSBカメラ。
筐体を横にしたので、camera0だけ rotate 270を設定した。

##############################################################

# Camera config files - One for each camera.

##############################################################

camera /etc/motion/camera0.conf

camera /etc/motion/camera1.conf

; camera /usr/etc/motion/camera3.conf

; camera /usr/etc/motion/camera4.conf


#camera0.conf

# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video0

# Image width in pixels.
width 800

# Image height in pixels.
height 600

# Maximum number of frames to be captured per second.
framerate 5

# Text to be overlayed in the lower left corner of images
text_left CAMERA0

# Text to be overlayed in the lower right corner of images.
text_right %Y-%m-%d\n%T-%q

norm 1

rotate 270


#camera1.conf

# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video1

# Image width in pixels.
width 800

# Image height in pixels.
height 600

# Maximum number of frames to be captured per second.
framerate 5

# Text to be overlayed in the lower left corner of images
text_left CAMERA1

# Text to be overlayed in the lower right corner of images.
text_right %Y-%m-%d\n%T-%q

norm 1


本家のヘルプページ