このブログを検索

2014/12/31

CCNP ROUTE 642-902J

CCIE Writtenを受けようと思いながらいつまでもふんぎりがつかなかったので、

11月にエイヤと試験予約をして、TestKingの問題集も買って、kindle版の参考書も買った。


数万円の出費なので火がついて走りだしたが、ちょっと手ごわい。

簡単な問題はとても簡単なのだが、マルチキャスト、MPLS、QoS、トンネリングなど、

わからないものはさっぱりわからない。


CCIE Writtenの難易度はどれくらいなのだろうと調べると、もちろん実技よりは簡単なようだが、

それでも1ヶ月くらい問題集をやってとれるような試験ではないように思えてきた。



そこで、ROUTE (642-902J) を受けることにした。

私はBSCIを2回受けている。ROUTEはBSCIの後継テストなので、実質3回目ということになる。


だが、2回のBSCIはけっこう苦労した記憶がある。実機を買って、公式ガイドと問題集2冊くらい買って、やっとの思いで合格までこぎつけた。

EIGRP、BGP、IS-ISなど、普段使わないプロトコルの、K値であるとか、medとかlocal-preferenceとか、それらの優先順位とか、覚えるのに苦労した。


BGPは最近触れる機会があったので、知識の再確認と整理のためにも、ROUTEがいいかなと思う。

今回は、30分くらい時間を残して、合格体験記に「簡単でした」とか書きたい。



今、Ciscoのサイトで試験内容を確認したらIS-ISが対象でなくなったようだ。

まあ、当然だよな・・・。

2014/12/27

pingが時々落ちる


ネットワークの構成を作ったり、装置を入れ替えたりしたときに、「疎通確認」と称してpingを打つことがある。

pingを打つ

pingを実行する

疎通確認する

pingが帰ってくる

pingが通る

pingに応答がある

pingが当たる

など、いろんな言い方がある。

また、pingの読み方はピングという人とピンという人がいる。

私はピングという。確かに、辞書を引いて発音記号を見ると、gを「グ」とはっきり言わないのが正しい発音なのだろう。

でも、じゃあ、kingを「キン」と言いますか?言わないでしょう。

だから、ピングでいいのである。



それはさておき、先日、pingを打ったら、不定期にpingが通らないつまりreplyが帰ってこない現象が起きた。

pingというのは、パケットを送信してそれに対する応答を受信できれば通信ができていると判断するものだから、replyが帰ってこないときには、どこまで届いてどこで止まっているかを確認する必要がある。

でも、複数の装置を経る場合にそれを確認するのは結構面倒だ。

pingは必ず通るものでもない。装置の設定によってはping自体を転送しなかったりする場合もあるからだ。



いつもはずっと応答のあるpingが、ときどきtimeoutする。
たとえば、20回くらい応答があったと思ったら、その後5回くらいtimeoutする。
また通るようになったら今度は5回くらいで通らなくなる。1発通ったら一発落ちる、みたいな場合もある。

とりあえず、通るのだから、アドレス設定が間違っているとか、ケーブルが抜けているとかいうことではない。

最初に疑ったのは、トラフィックが過剰なのかということだが、試験的な構成で、大勢がアクセスするわけでもないし、大量のデータを流しているわけでもない。

インターネットにつながっているから、何かマルウェア的なものか、とも疑ったりした。



その現象が起きたときは夜遅かったので、とりあえず次の日に確認することにしてその日は帰った。

帰り道、いったいどういうことだろうと考えた。


そして、どこかに同じIPアドレスを設定しているところがあるのではないかという疑いを持った。

実際、そういうケースがブログで紹介されていた。




次の日、構成を作り直して、アドレス設定が間違っている箇所がないか確認していった。

間違いは見当たらなかったが、余計な設定などは消していった。


そして再確認した環境で再度pingを打つが、やっぱり夕べと同じだ。


わからないので、とりあえず違うことを確認し始めた。


そして、その過程で、ある装置のデフォルトルート設定が二つあることに気づいた。

その装置はCiscoのルータやカタリストのようなcliで設置するものではなく、

ブラウザでアクセスしてGUIで設定する、いわゆるアプライアンス装置である。


二つのインタフェースについて、それぞれデフォルトルートが設定されていて、

両方が有効になっていたのだ。


そしてその場合にどちらのデフォルトルートを選択するかは、まったくランダムになっているようだった。


普通のルータやPCなどでは、デフォルトルートは複数設定できないか、設定できても一つしか有効にならない・・・・と思う。


デフォルトルートを2行書いてしまうことはあるが、それはアドレスを変更して古い設定を消し忘れた場合などである。




デフォルトルートを一つだけにしたら、不定期なpingの疎通断はなくなった。

誰かに相談しようかとも思ったが、きっとごく基本的なことだろうと思い、自分で突き止めた。


ちなみにこっそり休日出勤して、タダ働きである。


2014/12/07

ループバックコネクタの自作

ついでに、こんなものを作った。


1-3, 2-6に結線されている。

これをNICにさすと、リンクアップする。


以前、どういうときかは忘れたが、必要で使ったことがあって、
思い出して結線をしらべて作った。

「ループコネクタ」とか「ループバックコネクタ」と呼ぶらしい。


カバンにいれとこう。





LANケーブルを作る

クロスケーブルが必要になった。
最近はクロスケーブルがあまり売っていない。

作った。
けっこう手間取って、何本も失敗した。


結線情報はWEBでさがせばすぐに見つかる。

ただし、実際にケーブルをコネクタにはめていくとき、
上下をひっくり返したりする必要がある。

使うコネクタによるが、たぶん、上からだと見にくいから、
下から見ることになる。

その場合は下図のようになる。





LANケーブル自作キット、みたいなものは、
しばらく前に秋葉原で2000円くらいで買ってあった。

ケーブルを切って、皮をむいて、中身の線を出して、より合わさっているのをほぐして、
まっすぐにする。

そして中の8本の細い線を、コネクタに挿していく。

挿したら、かしめ工具でかしめる。



「かしめる」というのは、コネクタに並んでいる8個の金具を押し込んで横にならんだ8本のケーブルに突き刺すことを言う。

LANケーブル作成に半田付けなどは必要ないのだ。


かしめたら、ケーブルテスタでテストする。
テスタもいろいろあるようだが、基本的な使い方は同じだと思う。

ケーブルの片端をMASTER、もう片端をREMOTEに挿し、
スイッチを「ON」にする。

すると、MASTER側のLEDが1~8の順に点灯していく。
そして、MASTER側に対応するREMOTE側が点灯する。

クロスケーブルの場合、3,6,1,4,5,2,7,8となる。




※上の写真ではケーブルの皮(黄色)が外に出てますが、
コネクタの中にいれましょう。


ツメカバーは付けましょう。
付けないとほぼ確実に折れる。
折れるとすぐ抜ける。





クロスケーブルの結線については、ciscoの試験でも出る?
参考書には出てくる。


覚え方。

まず、8本のケーブルは2本ずつのペアが4つあると理解する。


白橙+橙

白緑+緑

白青+青

白茶+茶


そしてこの4つのペアはそのまま並ぶのではなく、
緑のペアが青のペアを外から包むように並ぶ。
さらに、青のペアだけは他と違って、青、白青の順に並ぶ。
(なぜかは不明)

白橙+橙(1,2)

白緑+緑(3,6)

青+白青(4,5)

白茶+茶(7,8)


そして、クロスの結線は、橙と緑の配線をひっくり返す。

白緑+緑(1,2)

白橙+橙(3,6)

青+白青(4,5)

白茶+茶(7,8)



 1 --- 3
  2 --- 6
 3 --- 1
青  4 --- 4
 5 --- 5
  6 --- 2
 7 --- 7
  8 --- 8


というわけで、36145278 となる。











2014/12/06

ネットワークエンジニア七つ道具2014 ソフトウェア編

Windows7 Professional 32bit
64bitだと未対応とかがあると面倒なので、32bit

teraterm
私はlogmettもインストールして使っている。

秀丸エディタ
シェアウェアなので金を払いたくないという人は、サクラエディタ。
会社によっては秀丸エディタが使用禁止のところもある。(そんな会社は潰れてしまえ)



winmerge
最近知った。インストールするときにプラグインを有効にしてExcelファイルも比較できるようにしておく。

tftpd32
http://philippe.jounin.net/tftpd32.html

3cdaemonを使っている人が多いと思うが、本家はもうサポートしていない。
そして、3cdaemonのtftpdはでかいファイル(数百MB)を扱うと不具合がある。

subnet calculator

wireshark

ffftp

chrome

evernote

cygwin

activeperl

python

ExPing

nginx
テスト用のWebサーバとして使う。
いろいろあるが、インストールが簡単で軽いのでこれ。


GNS3

adobe reader

Excel






ネットワークエンジニア七つ道具 2014

「私の職業は、ネットワークエンジニアです」

とは、言い切れないところがあるのだが、まあ、嘘にはならないだろう。

最近は、「インフラエンジニア」という言い方もする。

私はネットワーク、つまりルータ、スイッチ、TCP/IP、ルーティングなどによるものを「インフラ」と呼ぶのには抵抗がある。

インフラというと、電気ガス水道などをイメージするからだ。


まあいいや。七つ道具。

以前にも書いたのだがもう10年くらい前なので。

1.ノートパソコン

装置を設定するためと、サーバとして使う。syslog、tftp、httpdとか。
たぶんほとんどの人は会社支給のものを使っていて、
自分のものを持ち込む必要はなく、禁止すらされていると思うが、
私は自分のPCが必要だと感じている。
ノートPCにインストールすべきソフトウェアについては別途書く。

2.USB-シリアル変換ケーブル

最近のノートパソコンにはシリアルポートはまずないので必須。
USB-シリアル変換ケーブルは、ELECOM、Buffalo、Arvelなどのものがある。
買うとけっこう高い。今みたらELECOMのは4000円もした。

BuffaloとArvelは中身は同じか?
Windows7でドライバインストール時にはWindows Updateしないと使えないので注意。



3.コンソールケーブル

Ciscoの装置に接続する、DB-9 - RJ45のケーブル。
昔はRJ-45じゃなかった。


4.LANケーブル

爪が折れてないもの!そして爪折れ防止になっているもの!
折れ防止になっていないケーブルは、必ず折れる!
爪なしケーブルを使っていることにより起こる無駄なトラブルは結構多い!
1mか2mのストレートとクロス一本ずつ。
最近の装置はほとんどストレート・クロスを自動認識する(オートMDI/MDI-X)ので、
クロスケーブルが必要な機会は減っているが、やっぱりいる。最近痛感した。



5.携帯電話(iPhone)

連絡用と、情報検索用。


6.ドライバ(ねじ回し)

コンビニや100円ショップで売ってる普通のプラスドライバが一本あればたいていのことは済むが、
ちょっと小さめのものも持っておくとよい。
マイナスドライバーを使うことはまずない。精密ドライバとかもいらない。


7.iPad

インターネットに接続できる、情報検索用の端末。
iPhoneとかその他のスマホでもいいけど、大きさと携帯性と操作性を考えると、
iPadが一番いいと思う。私は iPad miniである。


とりあえずこれくらいは必須かな。
ちょうど七つ。

もう、これくらいは通勤かばんにいれておくくらいでよい。



あるとベター

マウス
ノートパソコンのタッチパッドはだいたい使い物にならない。

クリップボード
物理的な。紙を挟むプラスチックの板


電源ケーブル
ルータとかスイッチとかのケーブル。普通、装置に付属しているものだが、
場所によっては本体しかなかったりする。


はさみ

カッター

Vaimo11
40枚くらいまで閉じられるホチキス。11号の針を使う。
1000円くらいかな。
私は自宅でも使っている。


サングラス
生活が不規則かつ寝不足になりがちなので、電車の中で寝るときにかける。
朝日がまぶしい時とかも


イヤホン
音楽を聴くためと、寝るときの耳栓のため


使い捨て髭剃り

スイッチングハブ
4ポートとか8ポートとかの。100Mでよい。
昔は電源不要のがあったけど今はないよね・・・
USBで給電できるやつなら持ってる。


電源タップ
2個か3個の口があって、1mくらいのもの。
必須にしてもいいかもしれない。


ルーター
小さくて軽いもの。テスト用。
NEC IX2004とか。


テプラ


コードを束ねる針金


シリアルクロスケーブル




そして、これらを全部収納できる大きなかばん。



2014/11/24

webdav@nginx@ubuntu@さくらのVPS

nginxでwebdavをやるには、以下の二つのモジュールが必要。

http_dav_module
nginx-dav-ext-module


nginx -V 

で確認できる。

--with-http_dav_module
--add-module=/build/buildd/nginx-1.6.2/debian/modules/nginx-dav-ext-module

があればよい。

ちなみに-Vの結果は1行で出るので、grepしてもわからない。

こういうときはどうやればいいのだろう?

とりあえずテキストにコピーして探した。




nginx自体は 

sudo apt-get install nginx 

でインストールできるのだが、何もしないと上記のモジュールなしにインストールされてしまう。



検索すると、ソースコードをダウンロードして、モジュールを組み込んでビルドする、
という方法を紹介している人が見つかるが、めんどくさいしやってみたら途中で
わからなくなった。

こんなことしなくても、最新を持ってくるとかすれば入ってるんじゃないのか・・・
と検索し、下記のページのとおりにすると、無事2つのモジュール入りがインストールできた。

http://qiita.com/hiroq/items/420424bc500d89fd1cc8




さて、webdavの設定自体はそれほど大変ではない。

## webdav
        server {
                listen 10080 default;
                server_name     example.com;
                root    /var/webdav;
                charset utf-8;
                location / {
                        dav_methods PUT DELETE MKCOL COPY MOVE;
                        dav_ext_methods PROPFIND OPTIONS;
                        dav_access user:rw group:rw all:r;
                        client_body_temp_path /tmp/nginx/webdav;
                        create_full_put_path on;
                }
        }
}


いちおうクライアントからアクセスでき、ファイルのコピーもできるが、
サーバにおこうとすると、「ファイルがすでにあるが上書きするか」
というメッセージが表示されてしまう。

なんか間違ってるんだろう・・・。後で直す。



ちなみにクライアントはCarotDav@windows7home premium 64bit

nginxでリバースプロキシ設定

さくらのvpsを2台借りた。

1台目はcentosでapacheが動いている。

2台目をリバースプロキシにして、今まで1台目にアクセスするときに使用していたURLに
クライアントがアクセスすると、2台目がリクエストを1台目に転送するようにする。

別にそうする必要性はなにもないのだが、ちょっとやってみたかっただけ。



まず、DNSに登録している既存のAレコードを、新しいサーバのIPアドレスに変更する。

<今まで>
www.example.com    123.xx.xx.100

<変更後>
www.example.com    123.xx.xx.200 ※2台目
www2.example.com   123.xx.xx.100 ※1台目



2台目はubuntuをインストールし、httpdはnginxにする。

これも必要性は別になく、違うものを使ってみたかっただけ。



ubuntuをインストールしたばかりなので、

sudo apt-get update

をする。

sudo apt-get upgrade

もする。

これらの必要性もいまいちよくわからないが、一応やっておく。


nginxをインストールする。

sudo apt-get install nginx


firewallを設定する。

sudo ufw allow http



クライアントから www.example.com にアクセスしてみる。

nginxのテストページが表示される。



リバースプロキシの設定の仕方は、検索するとたくさん出てくるが、
設定をどこに書くかが人によって違う。

いろいろ試したが、/etc/nginx/nginx.conf に書いたら動いた。

sudo vi /etc/nginx/nginx.conf


http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
    ...............
}


"http"のところに、下記の内容を追加する。


## reverse proxy
        server {
                server_name     www.example.com;
                location / {
                        proxy_pass http://123.xx.xx.100; ※転送先のWEBサーバのIPアドレス
                }
        }



これでとりあえず、動く。

ほかにもいろいろ設定したほうがよいところなどがあるようだが、
とりあえず下記の2行を追加した。


## reverse proxy
        server {
                server_name     www.example.com;
                location / {
                        proxy_pass http://123.xx.xx.100;
                }
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ※1
                proxy_set_header X-Forwarded-Host $host; ※2
        }
}


これらがないと、転送先のサーバのアクセスログで、アクセス元が全部リバースプロキシになってしまう。


私のWEBサイトには、アクセス者のIPアドレスとホスト名を表示するページがあるのだが、
そこが全部リバースプロキシサーバのIPアドレスとホスト名になってしまう。


※1だけいれれば変わると思ったが、変わらず、
※2をいれてようやく変わった。

※2だけでいいのかと試したらダメで、どうも両方必要なようだ。


nginxの設定を確認したいときは 
$ sudo /etc/nginx$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

サービスの再起動
$ sudo service nginx restart





ubuntuの管理者権限

ubuntuでは基本的に rootにsuしない。

本当はubuntuでなくてもrootにはむやみになるものではないが。


インストールする時にひとつユーザーを作成するが、
それにはsudoできる権限が与えられる。

root に suするには、sudo su をすればよい。


さて、先ほど一つしかないユーザアカウントでsudoしようとしたら、
できません、と言われた。

どうやらグループ設定を上書きしてしまったようだ。

suすらできない。


まだたいした設定はしていないので、OSを再インストールすることにした・・・。

FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

[ 15.968442] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

あと、起動したときにこんなログが記録されている。

気持ち悪いので調べていろいろやってみたが、消えない。


windowsでも、無理やり電源を落とした後に、チェックディスクを実行してください、
となることがあるから、それと似たようなものだと思うのだが、

まず、fsckはマウントしているボリュームをunmountしないといけない。

が、何がマウントされているのか、fsckをする対象となるボリューム(?)はなんなのか、
などがわからない。


あ、raspberrypiの話です。

raspberrypiの無線LAN dhcp

久しぶりにraspberrypiを触った。

前回設定したときに使っていた無線LANルータが違うものになっていたので、
設定しなおしたがうまくいかない。

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 20
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 20
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

こうなってしまう。


調べた結果、
wpa_supplicant.conf を使わず、
/etc/network/interface
に直接SSIDとwpa-pskを書けばよいという情報があったので、
なんでやねんと思いつつやったら確かに行けた。


auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
#wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
wpa-ssid "myssid"
wpa-psk "mypassword"
iface default inet dhcp




・・・バグだろ、こんなの。

2014/11/22

samba

さくらのVPSでwebdavを使えるようにしたが、

sambaが使いたくなった。

あたかもパソコンのローカルドライブであるかのように、
さくらのVPSのファイルを操作できるのである。


sambaの設定自体はたいしたことがない。

が、うまくいかない。



Windowsのコマンドプロンプトで、

\\example.com\samba

とやると、30秒くらいかな、たって、「アクセスできません」となる。



コマンドプロンプトから

net view \\example.com\samba

とやると、

システムエラー53が発生しました。
ネットワークパスが見つかりません

となる。


sambaが動作するために必要なことは、

・ディレクトリが存在している、アクセス権がある
・サーバで必要なポートを開放している
・クライアントで必要なポートを開放している(ファイル共有が有効になっている)

とか、いろいろあって、それぞれは問題ない。


が、どうも、一番最初にクライアントから送信される TCP 445の synが、
サーバに届いていない。


まず、クライアントであるWindows7で、wiresharkでキャプチャしてみる。

すると、サーバ宛の、TCP dst port 445のsynが送信されているのが確認できる。
これの応答がない。
2回再送されたのち、なぜかpingが飛ぶ。
これは応答がある。

そのあと、さらに3回再送される。

これを見れば誰もが、「サーバでport 445を待っていないか、firewallで開けてないんでしょ」
と思うだろう。

サーバでnetstatすると、

tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN

が確認できる。


iptablesも設定して問題なく、
さらに、iptables自体を止めてしまってもダメだ。




サーバでtcpdumpしてみる。
自分が接続しているsshとか余計なものを除外して、
さっきの net view をやっても、何も表示されない。

適当なポートを指定してtelnetしてみると、
接続はできないがtcpdumpでsynが見える。

これは、クライアントでもサーバでもない何かがTCP445を止めているとしか思えない。

JCOMのルータだろうか?



風呂に入っているときに、思いついた。
じゃあ、iPhoneでテザリングしてやってみたらどうか。


JCOM回線を使わず、iPhoneテザリングでインターネットにアクセスすると、
パスワードプロンプトが出た。


やった!!


ユーザ登録やフォルダのパス名やアクセス権を直して、
使えるようになった。


さて、jcomルータをどうするかだ・・・。







2014/11/09

さくらのVPS(ubuntu)にhttpdをインストール

httpサーバと言えばapache、というのは昔の話・・・・

と思ったけど調べるとやっぱりapacheが使われているようだ。

でも、apache2。



sudu apt-get install apache2


インストールが終わった。もしかしてもう動いてるのか、とアクセスしてみるが、ダメ。

ファイアウォールだ。

sudo ufw allow http


つまり、2行のコマンド入力で httpサーバ構築が完了するのである。

さくらのVPSにGNS3をインストール(ubuntu)

とりあえず動いた・・・。





centosはメモリ1GBだから、GNS3を動かすのはちょっときついかな。

基本的に下記のガイドのとおり。

https://community.gns3.com/servlet/JiveServlet/download/38-7963/GNS3%20Getting%20Started%20Guide%201.0.pdf


ubuntuには、pythonは2系と3系が両方入っている。

pycrypto とかいうのがインストールされるところでエラーになって、
python2.7-dev と python3.4-dev をいれた。

たぶん3.4だけでいいのだと思う。


さくらのVPSにGNS3をインストール(centos)

gns3.com にインストールガイドがあるが、ubuntu用である。

centosにいれる。

とにかくいろんなものが必要。というか、足りない。

エラーになるたびメッセージをgoogleで検索して、必要なものをインストールしていった・・・。

どれも、それが何なのか全然わからないまま・・・。


先に結論を言うと、うまくいかなかった。

ので、正式なものは後日書くとして、
メモを残す。



まずdynamips

cmake

libpcap-devel

libuuid-devel.x86_64

libelfとかなんとか

dynamipsはうまくいった。



次に gns3server


python3

distribute

zeromq 4.0.5


Searching for pyzmq>=14.0.0
Reading https://pypi.python.org/simple/pyzmq/
Reading http://github.com/zeromq/pyzmq
Best match: pyzmq 14.4.1
Downloading https://pypi.python.org/packages/source/p/pyzmq/pyzmq-14.4.1.zip#md5=0cab6e0047107badf68a0a0fa4ae30d1
Processing pyzmq-14.4.1.zip
Writing /tmp/easy_install-khz_iw/pyzmq-14.4.1/setup.cfg
Running pyzmq-14.4.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-khz_iw/pyzmq-14.4.1/egg-dist-tmp-xy0lnt
warning: no files found matching 'tools'
no previously-included directories found matching 'docs/build'
no previously-included directories found matching 'docs/gh-pages'
warning: no previously-included files found matching 'bundled/zeromq/src/Makefile*'
warning: no previously-included files found matching 'bundled/zeromq/src/platform.hpp'
warning: no previously-included files found matching 'zmq/libzmq*'
warning: no previously-included files matching '.deps/*' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '.DS_Store' found anywhere in distribution
warning: no previously-included files matching '.mailmap' found anywhere in distribution
warning: no previously-included files matching 'Makefile.am' found anywhere in distribution
warning: no previously-included files matching 'Makefile.in' found anywhere in distribution
Using zmq-prefix /usr/local (found via pkg-config).
************************************************
Configure: Autodetecting ZMQ settings...
    Custom ZMQ dir:
build/temp.linux-x86_64-3.3/scratch/tmp/easy_install-khz_iw/pyzmq-14.4.1/temp/timer_createcmeorh.o: In function `main':
timer_createcmeorh.c:(.text+0x15): undefined reference to `timer_create'
collect2: ld はステータス 1 で終了しました
    ZMQ version detected: 4.0.5
************************************************
error: Setup script exited with error: in 'ext_modules' option (extension 'zmq.devices.monitoredqueue'), 'sources' must be present and must be a list of source filenames


ここでダメ。




GUI




Searching for pycrypto>=2.1,!=2.4
Reading https://pypi.python.org/simple/pycrypto/
Best match: pycrypto 2.6.1
Downloading https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda
Processing pycrypto-2.6.1.tar.gz
Writing /tmp/easy_install-ni0km5/pycrypto-2.6.1/setup.cfg
Running pycrypto-2.6.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ni0km5/pycrypto-2.6.1/egg-dist-tmp-uck3lu
error: Setup script exited with error: in 'ext_modules' option (extension 'Crypto.PublicKey._fastmath'), 'sources' must be present and must be a list of source filenames


ここでダメ。



gns3インストールの記録はあるのだが、
皆バージョンが少し古い。

今gns.comへ行くと、
GNS3-1.1.source.zip

しかない。


これを、centos
Linux xxxxx.sakura.ne.jp 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


に入れねばならない。


いったんあきらめる。

ubuntuでできるか、試してみるか・・・。

さくらのVPSにvnc接続

vncserverをインストールする方法はいろんな人が公開している。


私はこのページを参考にした。

http://shirokuma-industry.com/wordpress/?p=948



そして自宅のWindows7のPCにreal vncをインストールして接続してみると、


「ホストへの接続ができません:接続を拒絶しました(10061)」

というエラーメッセージが表示されて接続できない。


iptablesのせいかと思って無効にしてみたが同じである。


いろいろ調べてみるが、サービスも起動しているし、何もおかしいところは見当たらない。



・・・

原因は、接続するときにホスト名の後に ":1" をつけていないことだった。

example.com:1

のように。

さくらのVPSにvncで接続したことは以前にもあったのだけど、
そうだったっけかな・・・

まあいいや。


2014/10/27

python3ではtweepyが使えない

GNS3のためにpythonを2.x.xから3.x.xにしたら、

今まで動いていた pythonで書いたtwitterのブロックしているユーザ一覧表示スクリプトが

動かなくなった。



調べると、3系ではtweepyは使えず、3系で使える別のライブラリがあるようだ。


作り直しか・・・

2014/10/26

bgp

最近、bgpをやった。

ちょっと整理してみる。


bgpは、egp(exterior gateway protocol)のひとつである。

AS外部との経路の交換をおこなうので、 exteriorというのである。

これに対し、AS内部での経路交換をおこなうルーティングプロトコルは igp(interior gateway protocol) という。OSPFが代表的である。


と言っても、ルーティングプロトコルと言えば、OSPF, static, BGP がほとんどではないだろうか。

egpに関しては、事実上BGPしかなく、egp = bgpと考えてよいだろう。



さて、egpとigpの違いについてまとめてみたい。

googleで検索したり本で調べれば、決まり文句のようにその違いが述べられている。

やれパスベクタ型だの、リンクステートだのなんだの。


私もそのように覚えていたのだが、

ずっと、bgpがなんなのかがよくわからなかった。

単に経路交換の仕組みが違うだけで、ルータに経路とそのネクストホップを知らせる、
という点については変わらないじゃないか、と。



そこで、GNS3で、簡単な構成を作ってみた。


client --- R1(アクセスルータ) --- R2(キャリア) --- R3(キャリア) --- R4(ISP/IX) ---(キャリア) --- Server


インターネットの通信というのは、基本的に上記のような経路を経ている。


client - R1 間は、パソコンとデフォルトゲートウェイである。

ここは経路は一つしかない。どこへ行くにも、R1を経由する。


R1-R2-R3-R4 の間は、igp(OSPF)でよい。

この区間は収容ユーザや回線数の都合、冗長性(耐障害性)の関係で同じ構成が並列にあったりするのでいくつかのノードを経る。


問題はR3とR4の間である。ここでbgpを使う。

clientからキャリアまでの間に選択すべき経路はそれほど多くないが、

ISP/IXからもらう経路は膨大である。



igpとegpを区別する一番の理由は、この経路数の規模である。




あと、bgpにはibgp と ebgpというのがある。

ibgpというのは同じAS同士、ebgpというのは異なるAS同士で使う。


ここで私はふと疑問に感じた。

「同じAS内の経路交換はigpでするんじゃないのか?なぜibgpが必要なのか?ibgpとigp(OSPF)の違いは?」


今日届いた「インターネットルーティング入門」をパラパラとめくっていると、以下のような記述があった。

「eBGPで得た自分以外のASからの経路情報を、さらに自分のAS内の他のBGPスピーカに伝えるときに使われるのがiBGPです。」


私は今まで、下から考えていた。clientがあって、キャリアがあって、ISPがあって、と。

逆に考えるのだ。eBGPでもらった経路を、iBGPでAS内に伝える。


この、AS内でのBGP交換というのは、ちょっと特殊なルーティングと言える。

あまり説明されることもない。



ibgpが必要になる理由は、先ほど言った、「この区間は収容ユーザや回線数の都合、冗長性(耐障害性)の関係で同じ構成が並列にあったりするのでいくつかのノードを経る」ということではないかと思う。



原理的なことだけを考えるなら、client - キャリア - ISP - IX - ISP - キャリア - Server

で済む。ここで登場するキャリア、ISP、IXはすべて異なるASである。


が、ネットワークというものは、複数束ねられているものである。

iBGPというのは、いわば大量の経路の複製である。




まず、2台のルータでBGPを設定する。同じAS、つまりiBGPである。

そこに、もう一台同じASのルータを追加すると、最初の2台で交換された経路が3台目には伝わらない。

ここがOSPFとは違うところである。こうなっているのは、経路交換のループを防ぐためである。

OSPFなら、3台目にも伝わる。(なぜ、OSPFだとループしないのか?は、改めて考える)




また、BGPで交換されているのに、ルーティングテーブルに載らないことがある。

つまり、show ip bgpでは存在しているのに、show ip routeでは存在していない。


いろいろな場合があるが、BGP特有なのは、「next hopへ到達できない経路はルーティングテーブルにのらない」ということである。

そもそもルーティングというのはnext hop情報を伝えることなのだから、「A宛のnexthopは100です」という情報があれば、それをテーブルに載せればいい、載るものだという認識があった。ルーティングテーブルに載っていてその宛先に送って届かないときは仕方がない、と。


だが、BGPでは「到達できないネクストホップ宛の経路情報」というものも交換されるのである。




R2(AS100) --- R3(AS100) --- R4(AS200)



R3とR4の間でBGP(eBGP)による経路交換がおこなわれると、

R3に、R4(の、R3と接続しているinterfaceのアドレス)をnext hopとする大量の経路情報が伝わる。


そして、R2とR3の間ではiBGPにより経路交換がおこなわれる。R3がR4からもらった経路情報はeBGPによる経路なので、R2に伝わる。

しかし、もしR2が、そのネクストホップつまりR4のR3の対向interfaceのアドレスに到達できないと、ルーティングテーブルに載らない。

だから、R2とR3間では、IGP(OSPFやstatic)によって、R3-R4間の経路情報を交換する必要がある。



2014/10/23

行き詰まり

最近行き詰っている。

ルーティングとは何か?ルータとは何か?インターネットとは何か?

TCP/IPとは?ウェブとは?クラウドとは?L3スイッチとは?

BGPとは?OSPFとは?

冗長?経路?アドレス?


一応、どんなものでどんな風に使われどんな風に設定しどんな風に動くのかはなんとなく理解している。

しかし、なぜこうでなくてはならないのか、ほかにもっといい方法がないのか、とか、

どうしてOSPFなのか、どうしてBGPなのか、

なぜ冗長化するのか、なぜcatalystなのか、nexusなのか、という、根拠というか理由というか、
動機というのか、そういうものがわからない。



そもそも、ネットワークとはなんだろう。

そんなことすら考える。


ネットワークとは、「接続」のことか。

一番単純なネットワークは、2点間の間を結ぶことだ。

糸電話のような。


「通信」とはなにか。「接続」と「通信」の何が違うのか。

ルーティングとスイッチングとは、それぞれどういうことか。


両方「ネットワーク」に分類されるが、違うものである。

よく言われるのはL3(えるさん)、L2(えるに、えるつー)であるが、
果たしてそれらはそれぞれどういうものなのか。

本当にみんなわかっているのか?



1秒の通信断が発生すると、何が起きるのか。
パケットが一つ落ちると、どうなるのか。


電車の中でスマホでウェブを見ている人に何が起きるのか。

家のパソコンでオンラインゲームをしている人にどんな影響があるのか。


メールを受信中に、メールサーバとクライアントの間のどこかで0.5秒の通信断が発生したら、
どうなるのか。



「TCPは再送機能があるがUDPにはないからドロップする」というが、
youtubeを視聴中にパケットが一個おちたらどうなるのか。


マルチキャストを利用した通信というかサービスは具体的に何か?


ウェブ(グーグル)で検索して得られる情報、資格試験受験のための参考書に書いてあること、
その他一般的に言われること、

それらと自分がインターネットやATMやiPhoneや漫画喫茶などで通信・サービスを利用していることの間に、もやもやとしたものがある。

もしかして私は重要な誤解をしている、あるいは重大な認識不足があるのではないか?

そんな気がしてならない。


とりあえず、「インターネットルーティング入門」という本を買った。

2014/07/19

自宅ラボ

Cisco

 Catalyst2960

 Catalyst3560 (24ポート)

 Catalyst3560 (48ポート)


NEC

 UNIVERGE IX2004


古川電工

 FITELnet-F-100 (3台)



これで自宅ラボを再構築しよう。

CCIE Writtenはやめて、Routeを取ろうかと思う。


NPを更新するだけなら、TSHOOTが簡単でいいのだが、

Routeは重要かつ最後の受験(まだBSCIだった)からだいぶたっているから。

最近BGPをやっているので、知識を整理したい。



3560はオークションで入手したが、2万円もしなかった。

安くなったなあ・・・・。


が、重い。5kgはあるか?

2014/05/25

logwatchがSPAM扱いされたときの対処法

さくらのVPSでlogwatchを使っているのだが、最近SPAMに分類されてしまうようになった。

あて先はgmailのアドレスである。


gmailでSPAMフォルダを見て、「SPAMではない」を毎度毎度クリックしているのだが、
gmailはどうしてもlogwatchをSPAMと判断して譲らない。

仕方がないので、送信先を変えることにした。

変更は、

/etc/logwatch/conf/logwatch.conf

を開いて、

MailTo=hoge@example.com

を変更する。


ちなみにlogwatch.confには上記以外の設定は何も書かれていなかった。

ほかにも何か設定できるのだろうか?

2014/05/10

canon MP900

もらったプリンタ。

10年ほど使った。

プリンタを使うことはあまりないのだが、必ず使うので、ないと困る。


1年くらい前から、電源が落ちてしまうようになった。

最初はコンセントをさしなおせば電源が入った。

そのうち、なんどかささないと立ち上がらなくなって、

とうとううんともすんとも言わなくなった。


ダメもとで分解してみようと、後ろのカバーをはずしてひっくり返したら、

ACアダプターがユニットになっていて、簡単にはずせた。

K30243と書いてあったので検索すると中古プリンタショップが見つかって、

ACアダプタがたくさんあったが、K30243はなかった。


「同じ電圧のACアダプタを秋葉原で買ってきて・・・」

などと思ったが、OUTPUTが4つも書いてある。

VCC 5V 1.9A
VS 16V 0.72A
VH 16V 1.0A
VM 27V 0.9A


コネクタも10ピンで普通のACアダプタとは違う。

よくわからないけどテスタで電圧を測ってみようとしたら、
バチッ!!と音がして青白い火花が散った。ショートさせてしまったようだ。

これで本格的に葬ってしまったかもしれない。




最近はプリンタも安くなって、1万数千円でおそらくMP900よりも高性能なものが買えるとは思うが・・・

愛着があるというか、なんかもったいない・・・。

2014/05/06

Rasberry Pi

Rasberry Piを買った。

おもしろそうだなと、ずっと興味を持ってはいたのだが、何に使うのか?と自問してみると現在さくらのVPSで使っているような用途以外は思いつかないのだった。

たとえば温度センサーをつけて室温をツイートするとか、カメラをつけて監視カメラにするとかいうことを考えるが、自室の温度や状況を外から見てもしょうがないし・・・

が、本体は5000円もしないから、とりあえず買っていじってみよう、と思い立った。


以前から店頭においてあるのを見ていた末広町ちかくの若松通商にいくと、品切れだった。

千石電商にあるという情報を得て行ってみたが見当たらない。店員に聞くのもなんかイヤだったので、別の店を探すと、あきばお~零号店にあるとのことだった。

地図がわかりにくくてちょっと手間取ったが零号店の2階で買うことができた。

電源ケーブル480円を一緒に買った。OSはSDカードにインストールするということは聞いていたので、SDカードも買う。SDカードなんかすっかり使わなくなっていたが、32GBのものを1630円で買う。

ディスプレイはHDMIで接続できるという。HDMIケーブルは持っている。ディスプレイにHDMIのクチはあったかな?定かではないが多分あるだろうと思い、帰宅。

帰宅の途中で、「SDカードにどうやってOSを入れるんだろう?」と疑問に思い調べると、パソコンでOSをダウンロードしSDカードにインストールするのだという。


帰宅して確認したら、持っているディスプレイにはHDMIインタフェースがなかった。また、パソコンで使えるカードリーダがない。以前はFDドライブについていたのを使っていたことがあったがもう捨ててしまった。

プリンタにカードリーダがついているが、これは古くて調子が悪く、カードを認識できない。


HDMIの変換ケーブルとカードリーダを買ってくる必要がある。


2014/03/20

wordpressとmovabletypeをインストールする

VPSのメジャーな利用用途のひとつはブログサイトである。

有名なのがwordpressとmovabletypeである。

これらはたんなるブログではなく、CMSとか言われるらしい。


ためしにインストールしてみた。


インストールしてわかったのだが、両方ともMySQLを使用していて、
wpはphp、mtはperlで書かれている。

wpのインストールは非常に簡単。30分もかからないくらい。


mtはちょっとめんどくさい。
まず、ダウンロードするのにメールアドレスを登録してパスワードをメールで送ってもらう必要がある。

インストールはいろいろと手間取る。

cgi-binの下だとダメだったり、パーミッションをいじらないとダメだったり、

なんとかインストールし終わって使ってみるが、なんかダサい。
はてなっぽい。

まあ、使っていくうちにわかっていくでしょう。

2014/03/19

iptablesのログを出力する

参考
http://wokowa.net/blog/archives/63
http://blog.jojo.jp/?eid=1424814
http://hanatann.blogspot.jp/2012/02/centos.html


設定すること

</var/log>
出力するログファイルを作る

touch iptables

</etc/sysconfig/iptables>
ブロードキャスト・ユニキャスト・NetBIOS・SMB・Dropboxなどのログは出さないように除外
ログを出力する設定
ログのレベルを debug に設定

#log
-A INPUT -d 255.255.255.255 -j DROP
-A INPUT -d 224.0.0.1 -j DROP
-A INPUT -p udp -m multiport --dport 137,138,139,445 -j DROP
-A INPUT -p udp --dport 17500 -j DROP
-A INPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables firewall] : " --log-level=debug

</etc/rsyslog.conf>
kern.debugは /var/log/iptablesに出力するようにする。

kern.debug /var/log/iptables

</etc/logrotate.d/syslog>
ローテートするログファイルに /var/log/iptables を追加


iptables と rsyslog の再起動


以上。


気になったのは、rsyslog.conf で kern.debug の出力先を /var/log/iptablesにしているが、
もしほかにdebugレベルでログを書いたらそれも iptablesに行ってしまうんじゃないかということだ。

logmettでログを保存

teratermはどこに行ってもみんな使っているが、

同時にインストールされる(最近はされなくなったか?)logmettを使っている人はほとんどいない。


私は職場では使っていないが、自宅では使っている。

要はマクロランチャーか。


ログは自動保存しているつもりだったができていなかった。

設定がどこだか探すのにちょっと時間がかかったのでメモ。


configure... を選んで、該当の設定を選択すると、「Macro」「Popup」「Colors」「Schedule」
というタブが並ぶが、一番下に

「Snippet」「Orphan」「Scheduled execution」「Log session」「Hide from Popup menu」
というチェックボックスがある。

「Log session」をチェックすると、ログを取ってくれる。


Windows7の場合、ログの保存場所は

C:\Users\ユーザー名\AppData\Local\LogMeTT\Logs


ログの名前のフォーマットは変更できたと思ったがどこで変えるのかは後でしらべる。

さくらのVPSのIPv6対応

コントロールパネルを見ていたらv6アドレスが書いてあったので、
「あ、対応してるのか」と気づき、設定してみた。

http://support.sakura.ad.jp/manual/vps/mainte/ipv6-address.html

service network-restart をやると ifconfigでv6アドレス(globalの)が表示された。


# ping ipv6.google.com
ping: unknown host ipv6.google.com


# ping6 ipv6.google.com
PING ipv6.google.com(2404:6800:4004:80b::1007) 56 data bytes
64 bytes from 2404:6800:4004:80b::1007: icmp_seq=1 ttl=52 time=23.4 ms


最初、network unreachableだかなんかになったのだが、
VPSを再起動したら直った。


肝心のクライアントからのアクセスであるが、v6対応している環境がないので未確認である。

あと、DNSのゾーン設定をしないといけない。

とりあえず、AAAAを登録した。



PAM adding faulty module

logwatchが今度は以下のようなログを報告してきた。

 **Unmatched Entries**
    PAM adding faulty module: /lib64/security/pam_fprintd.so: 1 Time(s)
    PAM unable to dlopen(/lib64/security/pam_fprintd.so): /lib64/security/pam_fprintd.so: cannot open shared object file: No such file or directory: 1 Time(s)


1日一回でている。
調べると、バグのようで、以下のコマンドを実行すれば直るとのことである。

authconfig --disablefingerprint --update

2014/03/14

logwatch polkitd mod_proxy

Mar 14 14:40:05 wwwXXXXXui polkitd(authority=local): Operator of unix-session:/org/freedesktop/ConsoleKit/Session1 FAILED to authenticate to gain authorization for action org.freedesktop.packagekit.system-sources-refresh for system-bus-name::1.26 [gpk-update-icon] (owned by unix-user:hoge)

というログが secureに一時間おきに書かれている。

logwatchでも毎日報告されている。

特にそれがあるからどうということはないのだが、ウザい。

polkitdというデーモンが何かにFAILしているということなのだが、desktopとかiconとか、

どうでもいいことにFAILしている。

そもそもGUIは使わないのだ。なんだpolkitdって。消えろ。

yum groupremove Desktop


それから、

Connection attempts using mod_proxy:
1.163.193.119 -> mx2.mail2000.com.tw:25: 1 Time(s)


これも毎日のように記録される。

これも実害はないようだが、ウザい。

結論を言うと、apacheのドキュメントルートに動的コンテンツ(cgiとか)を置くのはよくない、

ということのようだ。

テスト的に作ったphpのスクリプトがいくつかあったので、消した。




明日のlogwatchが楽しみだな~




2014/03/08

Cisco用コンソールケーブルの自作

コンソールケーブルがない。

アキバのどこかで箱にはいって100円とかで売られてないかなと探したが見当たらない。

ヤフオクだと送料がかかってしまう。

検索すると自作が簡単そうなのでやってみた。

(参考)
http://d.hatena.ne.jp/dreamizm/20120416


材料

・DSUB9ピンのオスメスコネクタ(千石電商で50円)
・DSUBカバー(千石電商で150円くらい)
・ストレートLANケーブル(その辺にあったもの)

必要な道具

・はさみ(ケーブルを切る)
・カッターナイフ、ニッパなど(ケーブルの皮をむく)
・半田ごてと半田
・ドライバ(カバーをつけるときにねじを締める)



ケーブルの片側をちょん切る。



皮をむく。あまり長くむくと隣のケーブルに接触するので5mmくらいか。



結線図にしたがい、半田付けする。
LANケーブルの結線は、TIA/EIA-568-A とTIA/EIA-568-B の2種類あるそうで、今回使ったのはBだった。

5番には2本つなぐ。

一度568-Aの結線でやってしまいやり直した。






ここまでできたら動作確認する。
(この写真はAの結線でやってしまったもの。また、ケーブルの皮をむくのが長すぎて後で直した)

Catalyst2960で確認した。




カバーをつけて完成。

これは仕事では使わない。自宅でお勉強するときだけに使う。

そんな人はいないと思いますが、これを参考に作ったケーブルを使って機器が壊れたとか仕事で障害をおこしたとかいう事があっても責任は負いません。

2014/02/23

CCIE 筆記試験

CCNPになって2年が経つ。

CCNPになる必要性はなかったのだが、仕事がマンネリ化してきて、待遇などにも不満があったので、いわゆるキャリアアップのようなつもりでエイヤと取った。

そして職場も変えて、仕事の方向性も変えてみた。

CCNPの価値はあまり高くない。


せっかくCCNPを取って、お金も時間もかけて、そこそこにやれていた仕事も捨てて新しい方向性にチャレンジしたのだがあまりパッとせず、むしろ収入はさがり、一見キャリアダウンしたかのようだ。


でも、この年になっても、私はまだまだ自分が新しい分野に適用し、能力を伸ばし、広げていけることを確認できた。



・・・とかいう抽象的な精神的な話をするのは嫌われるからこのくらいにして、

とにかくCCIEの筆記試験を受けることにした。


Ciscoの資格は今まで全部自腹でやってきたが、CCIEについては難易度はともかく受験料とかそのための準備にかかる費用を考えて到底無理だと思っていたのだが、周囲にCCIEまたは元CCIEが何人もいる職場に来て、『もしかして取れるんじゃないか?』と思い始めた。


あと1年でCCNPは失効してしまうから、それまでにとりあえず筆記を取っておく。

最近、CCIEのバージョンが4.0から5.0に変わった。


フレームリレーとかのレガシーな分野が減ったかなくなったかしたようだ。

5.0対応の公式ガイドはまだ出ていないみたい。

2014/02/22

ディレクトリ・トラバーサル

ディレクトリ・トラバーサル という不正アクセスを受けた。
特に深刻な被害はないようだが、脆弱性があることがわかった。
一応対策した。


あまり詳しいことは書きたくないが、cgiでパラメータを受け取ってそれをファイルとして開いているのだが、
そのパラメータに "../../../../" を含んだファイル名を指定してその内容を表示させようとするのだ。
ミソは "../"である。ディレクトリをさかのぼって表示させるのだ。

こんなことができてしまうとは。

2014/02/19

cronからのエラーメール

私はいつも vi /etc/crontab
でcronの設定をしていた。
が、あるメールアカウントにcronからのエラーメールが1時間おきに届いている。
/etc/crontab には特に問題はない。
が、crontab -e
とやると、そのエラーメールに記されているスクリプトが書かれていた。

削除。

2014/02/15

dovecot 受信時のエラー

さくらのVPSでyum update(だっけ)をやったら、
logwatch(だっけ)からメールが来るようになった。
そしてその中に、メール受信時のエラーが記録されていた。

メールは受信できているのだが、受信時に数秒程度時間がかかるのが気になっていた。

/var/log/secure を見ると、以下のようなログが出ていた。

Feb 15 12:33:38 wwwxxxxui auth: pam_succeed_if(dovecot:auth): error retrieving information about user hoge@example.com
Feb 15 12:34:00 wwwxxxxui auth: pam_unix(dovecot:auth): check pass; user unknown
Feb 15 12:34:00 wwwxxxxui auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=hoge@example.com rhost=xx.xx.xx.xx

調べると、/etc/dovecot/conf.d/10-auth.conf の、
!include auth-system.conf.ext
をコメントアウトすればよいとのことだった。
そのとおりにしてdovecot再起動で治った。
めでたしめでたし。

2014/02/12

cron daemonからのメール

cron daemonから、さくらのVPSで作ったメールアカウントへ、
1時間ごとにメールが送信されている。
「コマンドが見つかりません」


cronで1時間おきに実行するように設定したコマンド名あるいは
スクリプト名が間違っているということなのだろうが、
そんな設定をした覚えはなく、cronの設定を見てもそんな設定はない。
そしてわからないのが、
なんでそのエラーがそのメールアカウントに送信されているのかということだ。
・・・

後日、あらためて調べる。

2014/02/11

さくらのVPSにiPhoneでVPN接続する

下記を参考にして、というかまるまるマネしてやってみた。

http://yourpalm.jubenoum.com/archives/2494

が、うまくいかない。
iPhoneではサーバーが応答しないとなる。

service ipsec start

をやると、エラーのようなメッセージが表示される。
エラーじゃないのかな?

ipsec_setup: Stopping Openswan IPsec...

ipsec_setup: Starting Openswan IPsec U2.6.32/K2.6.32-431.3.1.el6.x86_64...

ipsec_setup: duplicate key 'forceencaps' in conn L2TP-PSK-NAT while processing def L2TP-PSK-noNAT

ipsec_setup: /usr/libexec/ipsec/addconn Non-fips mode set in /proc/sys/crypto/fips_enabled

ipsec_setup: while loading 'L2TP-PSK-NAT': duplicate key 'forceencaps' in conn L2TP-PSK-NAT while processing def L2TP-PSK-noNAT

ipsec_setup: /usr/libexec/ipsec/addconn Non-fips mode set in /proc/sys/crypto/fips_enabled

全然わからない。
またこんど。

2014/02/09

logをmysqlのテーブルにする

perlで書いたcgiでログ解析をしているのだが、現在持っているログを全部読むとcgiがタイムアウトしてしまう。
件数は13万件弱である。

そこで、毎回毎回テキストを全部読んで数えるのは面倒くさいので、
mysqlにDBとして登録してしまえば、と思ってやってみた。
mysqlは別のことで使ったことがあって、
dbを作ってテーブルを作ってそこにperlでレコードを登録する、
という一連のことはやったことがあった。

それを流用してログを登録していると、エラーが発生した。
それは、シングルクォーテーションがデータ区切りとして認識されてしまうために起きていた。
シングルクォーテーションは二つ続けて書くことでエスケープできるようなので、ログファイルのシングルクォーテーションを探してそのようにした。
そんなにたくさんはないので一個ずつ直した。

今回はそれでいいのだが、ゆくゆくはアクセスがあった時点でそのつどログをdbに書こうと思っている。
このログとはいわゆる「掲示板」のようなCGIで、アクセス数は日に数件程度なのでそれでよいのだ。
でも、シングルクォーテーションがあったらそれを2個にするようにいちいちしなければならないのは、ちょっとイヤだな。

とりあえずできた。
12万件を登録するのはけっこう時間がかかった。30分くらい?
select文でいろいろ検索してみる。一発だ。

2014/02/08

アクセス解析



f:id:woniu:20140208185656p:image


私が持っているウェブサイトのアクセスログを解析してみた。
サーチエンジン、ブラウザ、OS、ドメインを集計し、3ヵ月ごとのシェアの推移を見た。

サーチエンジンについてはgoogleが6~7割、yahooが3割でほとんど変わらない。

browserについては、Firefoxがやや減少の傾向とiOSのSafariの増加傾向が見られる。

OSはずっとWindows7がトップだが、iPhoneが確実に増加している。ドコモ効果か。
WindowsXPは明らかな減少傾向が見られる。
Windows8の利用者はなかなか増えない。
androidは横ばい。

ドメイン名には特筆するような変化は見られない。
home.ne.jpが最近増えているという結果になっているが、
たぶんこれは自分自身のアクセスではないか・・・。


この結果から典型的なユーザは、
「モバイルはauのiPhone、パソコンはWindows7でブラウザがChrome、検索はGoogle」
という感じだ。




2014/02/04

検索エンジンのシェア

私のサイトのあるページにアクセスしてくるときの検索エンジンのシェアを調べたら、

googleのシェアが6割から5割へ減っていた。

その分増えたのはyahooである。


> ブラウザはIE9がトップで18%。次がAndroidのMobile Safari、つまりiPhoneでないスマホか。16%。firefoxが14%、Safariが13%。IE8が12%、Chromeが10%。MSIE10.0からのアクセスがあった。

と、2013年3月に書いているのだが、今は以下のような結果だ。

MobileSafari 17.5%
Safari 17.2%
Firefox 10.8%
MSIE 8.0 10.2%
MSIE 10.0 9.8%
MSIE 9.0 9.4%
UPBrowser 8.4%
Chrome 6.0%
MSIE 7.0 4.8%
Others 3.2%
MSIE 6.0 1.6%
Opera 1.0%



Chrome使う人増えない・・・というか、減ってる・・・。
MobileSafariはAndroidなの?なんでわかる・・・?
とにかく、PC以外のいわゆる「スマホ」アクセスが増加している、それだけは確かだ。
そしてこのログ解析は、前回解析したログを含んでいるので、それ以降のログだけで見たら、
よりいっそうスマホユーザーの増加っぷりが顕著になるだろう。
めんどくさいからそれはやらないけど。

2014/01/30

さくらのVPSでメールが受信できない

ほったらかしていたのですっかりどうやるのか、どうなっているのか忘れてしまった。 気づいたのはtwitterのサブアカウントにサインインしたら「メールが送れません」というメッセージが出たことだ。 サーバに入って mail -u hoge とやるが
No mail for hoge
となる。
mail hoge@foo
とやって、自分の持っているほかのアカウントに送信することはできた。 ・・・。 これから原因を突き止め直していく。
/etc/dovecot/passwd
というファイルに、アカウントとパスワードが書いてある。 6個のアカウントがあるので、それらすべてにメールを送信してみると、 1個のアカウントだけはエラーメールが返ってきた。 しかしそれは今回問題になっているアカウントとは違うものだ。
Delivery to the following recipient failed permanently:

hoge@hoge

Technical details of permanent failure:

Google tried to deliver your message, but it was rejected by the server for the recipient domain xxxxxxxxxxx by xxxxxxxxxxx. [xxx.xxx.xxx.xxx].

The error that the other server returned was:

550 5.1.1 <hoge@hoge>: Recipient address rejected: User unknown in virtual mailbox table

ということで、virtual mailboxにそのアカウントがないという理由である。 逆に言うと、今回送れないアカウントはあるということだ。
/etc/postfixを見ると、さっき送れなかったアカウントが書いてない。 書いて、以下を実行する。
postmap /etc/postfix/vmailbox
そしてpostfixを再起動
/etc/init.d/postfix restart
エラーメールは返ってこなくなった。 が、メールを読むことができない。
mailコマンドでは確認できないんだっけ?
Windows7にメールクライアントソフトを入れて受信できているか確認してみよう。
最近はgmailしか使っていないのでメールクライアントなどというものはすっかりごぶさただ。 調べるとWindows Essentialというものの中に含まれているらしい。 ついでなのでムービーメーカーとかメッセンジャーとかskydriveとかなんとか全部いれてみる。 受信してもエラーにもならないがメールは読めない。 gmailのアドレスへの送信はできた。
/var/log/maillog
を見ると特に問題はないようだが・・・
/etc/dovecot/conf.d/10-master.conf
を編集してみる。
imap-loginとpop3-loginのところでport番号が書いてるところがコメントになっているのをはずす。
/etc/dovecot/conf.d/10-mail.conf /etc/dovecot/dovecot.conf
なども見直して、
/etc/rc.d/init.d/dovecot restart
送信したときも受信したときも特に問題はないようだが・・・ わからん。 あきらめた。
icloudとかwindows live とかのアカウントに変える。 バイバイ。 ・・・・と、あきらめかけたが、
メールクライアントの設定で、「受信メールサーバー」の「ユーザー名」に、hoge@example.com のように、ドメイン名をつけたら受信できた! めでたしめでたし!

2014/01/25

Windowsでpython

twitterでブロックしているユーザの一覧表示およびそのunblockをpythonスクリプトで書いて使っていたのだが、Windows7を再インストールしてその実行環境(そんな大げさなものではないが)を復旧したときのメモ。

pythonをインストールする。

windowsの環境変数で、Pathにpythonをインストールしたディレクトリおよびscriptsディレクトリを追加する。

C:\Python27;C:\Python27\Scripts

tweepyをインストールする。

easy_install tweepy

easy_install は C:\Python27\Scriptsにある。

以上。