300-115J SWITCH
を受ける。
準備はいつものようにping-tで。
もう3年経ったのか・・・。
前回の更新はrouteでやったが、1回落ちたり、
新試験になることを知らなかったり とゴタゴタしたので
今回は早めに受けることにした。
BCMSNは2007年に一度落ちて翌年passした。
2012年にswitchを受かった。
それからもう5年経つ。
最近は仕事でciscoをいやというほど触っており、
明らかにスキルアップしているのを感じる。
5年も経っているから試験内容はかなり変わって難しくなっているだろう。
油断は禁物だ。
受験料が 38880円になっている・・・。ふざけやがって・・・・。
絶対失敗できないな、これは。
このブログを検索
2017/10/09
2017/05/21
bind@centos6@さくらのVPS キャッシュサーバとして
DNSサーバを自前で建ててみた。
VPSで使っている自分のドメインのネームサーバはさくらインターネットのサービスを利用しており、なんの不都合もないのだが、
DNSサーバってどうやって動いてるのか知りたかったので。
まだちゃんと動いていないのだが、
起動させるだけでけっこう苦労したので
とりあえずそこまでの記録。
インストールしようとしたら、すでに入っていた。
# yum install bind bind-chroot
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
(略)
パッケージ 32:bind-9.8.2-0.62.rc1.el6_9.2.x86_64 はインストール済みか最新バージョンです
パッケージ 32:bind-chroot-9.8.2-0.62.rc1.el6_9.2.x86_64 はインストール済みか最新バージョンです
設定ファイルはnamed.confということはすぐわかったが、
/etc/named.conf
/var/named/chroot/etc/named.conf
の二つがある。
「chroot環境」というものがあり、よくわからないがそっちの方がよいらしく、
すでにそれになっていた。
/etc/sysconfig/named
というファイルもある。書いてあるのは
ROOTDIR=/var/named/chroot
だけである。
WEBの情報をたよりに named.confを設定して起動してみると、エラーが出た。
/etc/named.conf:20: both "recursion no;" and "allow-recursion" active for view external
とりあえず recursion yesにした。
次のエラーは、ファイルが見つからないというものだ。
zone example.com/IN: loading from master file example.com.lan failed: file not found
zone example.com/IN: not loaded due to errors.
これはnamed.confのzoneの部分に書いたファイル名だ。
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type master;
file "example.com.lan";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
view "external" {
match-clients { any; };
match-destinations { any; };
allow-query { any; };
recursion yes;
zone "example.com" IN {
type master;
file "example.com.wan";
allow-update { none; };
};
};
これの置いてある場所が正しくないようだ。
結論から言うと置くべき場所はデフォルト設定のままであれば下記だ。
/var/named/chroot/var/named/
/var/namedが二回も出てきて気持ち悪いが。
どうしてこうなるかというと、
まず/etc/sysconfig/named に書かれている ROOTDIRがあって、
ROOTDIR=/var/named/chroot
そこを起点として、
/var/named/chroot/etc/named.conf に書かれている
directory "/var/named";
これがくっつくので、
/var/named/chroot/var/named/ となる
/var/named/chroot/etc/named.conf に2行のinclude文がある。
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
これらのファイルは、/var/named/chroot/etc にある。
named.rfc1912.zonesの中身
# cat named.rfc1912.zones
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
ここにもzone情報があって、
named.localhost
named.loopback
named.empty
というファイル名が書いてある。
これらのファイルも、
/var/named/chroot/var/named/
にある。
これらのファイルをそろえて、中身についてはさがせば情報があるので
それを書けばとりあえず起動する。
dig yahoo.co.jp @ns.example.com
VPSで引けたので、一応動いている。
自分のパソコンからVPSのサーバーを指定してnslookupしてみるとtimeoutする。
iptablesで開けたはずなのにと思ってみたら tcp 53になっていたので udpにする。
今度は Query refused となる。
/var/named/chroot/etc/named.conf
のallow-なんとかに、自分のIPアドレス(「確認君」で出るやつ)を書いてやると
引けるようになった。
options {
.......
allow-query { localhost; localnets; xx.xx.xx.xx; };
allow-recursion { localhost; localnets; xx.xx.xx.xx; };
allow-query-cache { localhost; localnets; xx.xx.xx.xx; };
forwarders{ 8.8.8.8; 8.8.4.4; };
recursion yes;
.........
};
私がやりたかったのはこれである。
こういう機能をするDNSサーバは「キャッシュサーバ」と言う。
パソコンとかで設定するDNSサーバとはキャッシュサーバのことだ。
でも、ISPとかのDNSサーバのように、だれでもクエリを許可するにはどうすればよいのだろうか?
また、そうすることの危険性ってないのだろうか?
自分のドメインのゾーン設定についてはあらためて。
VPSで使っている自分のドメインのネームサーバはさくらインターネットのサービスを利用しており、なんの不都合もないのだが、
DNSサーバってどうやって動いてるのか知りたかったので。
まだちゃんと動いていないのだが、
起動させるだけでけっこう苦労したので
とりあえずそこまでの記録。
インストールしようとしたら、すでに入っていた。
# yum install bind bind-chroot
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
(略)
パッケージ 32:bind-9.8.2-0.62.rc1.el6_9.2.x86_64 はインストール済みか最新バージョンです
パッケージ 32:bind-chroot-9.8.2-0.62.rc1.el6_9.2.x86_64 はインストール済みか最新バージョンです
設定ファイルはnamed.confということはすぐわかったが、
/etc/named.conf
/var/named/chroot/etc/named.conf
の二つがある。
「chroot環境」というものがあり、よくわからないがそっちの方がよいらしく、
すでにそれになっていた。
/etc/sysconfig/named
というファイルもある。書いてあるのは
ROOTDIR=/var/named/chroot
だけである。
WEBの情報をたよりに named.confを設定して起動してみると、エラーが出た。
/etc/named.conf:20: both "recursion no;" and "allow-recursion" active for view external
とりあえず recursion yesにした。
次のエラーは、ファイルが見つからないというものだ。
zone example.com/IN: loading from master file example.com.lan failed: file not found
zone example.com/IN: not loaded due to errors.
これはnamed.confのzoneの部分に書いたファイル名だ。
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type master;
file "example.com.lan";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
view "external" {
match-clients { any; };
match-destinations { any; };
allow-query { any; };
recursion yes;
zone "example.com" IN {
type master;
file "example.com.wan";
allow-update { none; };
};
};
これの置いてある場所が正しくないようだ。
結論から言うと置くべき場所はデフォルト設定のままであれば下記だ。
/var/named/chroot/var/named/
/var/namedが二回も出てきて気持ち悪いが。
どうしてこうなるかというと、
まず/etc/sysconfig/named に書かれている ROOTDIRがあって、
ROOTDIR=/var/named/chroot
そこを起点として、
/var/named/chroot/etc/named.conf に書かれている
directory "/var/named";
これがくっつくので、
/var/named/chroot/var/named/ となる
/var/named/chroot/etc/named.conf に2行のinclude文がある。
include "/etc/named.root.key";
これらのファイルは、/var/named/chroot/etc にある。
named.rfc1912.zonesの中身
# cat named.rfc1912.zones
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
ここにもzone情報があって、
named.localhost
named.loopback
named.empty
というファイル名が書いてある。
これらのファイルも、
/var/named/chroot/var/named/
にある。
これらのファイルをそろえて、中身についてはさがせば情報があるので
それを書けばとりあえず起動する。
dig yahoo.co.jp @ns.example.com
VPSで引けたので、一応動いている。
自分のパソコンからVPSのサーバーを指定してnslookupしてみるとtimeoutする。
iptablesで開けたはずなのにと思ってみたら tcp 53になっていたので udpにする。
今度は Query refused となる。
/var/named/chroot/etc/named.conf
のallow-なんとかに、自分のIPアドレス(「確認君」で出るやつ)を書いてやると
引けるようになった。
options {
.......
allow-query { localhost; localnets; xx.xx.xx.xx; };
allow-recursion { localhost; localnets; xx.xx.xx.xx; };
allow-query-cache { localhost; localnets; xx.xx.xx.xx; };
forwarders{ 8.8.8.8; 8.8.4.4; };
recursion yes;
.........
};
私がやりたかったのはこれである。
こういう機能をするDNSサーバは「キャッシュサーバ」と言う。
パソコンとかで設定するDNSサーバとはキャッシュサーバのことだ。
でも、ISPとかのDNSサーバのように、だれでもクエリを許可するにはどうすればよいのだろうか?
また、そうすることの危険性ってないのだろうか?
自分のドメインのゾーン設定についてはあらためて。
2016/12/24
spamassassinに学習させる
spamassassinはほぼ完ぺきにspamを駆除していたが、
数か月たつとすり抜けるメールが増えてきたので、
学習させることにした。
#spamを学習
/usr/bin/sa-learn --spam /home/*/Maildir/.INBOX.spam/cur
#spamでないメールを学習
/usr/bin/sa-learn --ham /home/*/Maildir/cur
当然、学習させるspamメールは手動でフォルダに移動させねばならない。
私はspamassassinでspam判定したメールはspamフォルダに移動したりせず
いきなり消している。
誤判定をチェックできないがまあ、ほとんど試験的なアカウントなので。
普通はspamフォルダを作ってそこに移動させると思うが、
そのフォルダを作るには
maildirmake というコマンドを使うらしいが、そんなコマンドがない。
makedirで作ればいいのだろうがわざわざコマンド(スクリプトらしい)を使うくらいだから、
複数作ったり何か規則があったりするのだろう。
面倒くさいのでthunderbirdでspamフォルダを作った。
INBOXのしたに「spam」というフォルダを作った場合、
下記のように指定する。
/home/hoge/Maildir/.INBOX.spam/cur
これを毎日cronで動かすようにする。
0 3 * * * root /home/hoge/spamlearn.sh
中身
------------------------------------------
#! /bin/sh
# スパムメールの学習
/usr/bin/sa-learn --spam /home/*/Maildir/.INBOX.spam/cur
# 通常のメールを学習
/usr/bin/sa-learn --ham /home/*/Maildir/cur
echo done:`date`>> /home/hoge/log.txt
--------------------------------------
最後のechoは実行したかどうかわかるようにするためのもの。
コマンドをバッククォートで囲むと実行結果をechoできる。
最初 ./log.txt としたら書かれなかったのでフルパスを指定した。
2016/10/30
ケースに入れた
ケースに入れた。
持ち歩いて見た。
最初はアンテナバーはケースの長い辺に沿っていたのだが、
この縦長のケースを持ち歩くと縦にポケットに入れることになり、
そうするとアンテナが地面に対して垂直になり、そうすると電波がほとんど入らない。
そこでアンテナの位置を変えて、縦にしたときに地面と並行になるようにした。
また、イヤホンジャックは最初はボリューム・選局のつまみと反対側にあったのだが、
これも持ち歩くときに都合が悪いので同じ側に替えた。
基盤・電池・スピーカーはめんどくさいのでテープでとめている。
外出時に持ち歩いて見たが、思ったより電波が入らない。
特に、駅ではものすごい雑音が入って使い物にならない。
まともに聴けたのは飲食店でテーブルに置いたときくらいだった。
そしてプロ野球の日本シリーズを聴きながら店内のテレビの映像を見ていたら、
映像がラジオより5秒くらい遅い。
BS放送だった。
5秒というのは大きい。せっかくの生中継なのに、5秒もずれているとは。
ラジオは中学生のころはよく聴いていたが最近は全然聴かない。
聴くのはiPhoneに入った音楽ばかり。
インターネットラジオとかは聞かない。
そうそう、ついにニッポン放送が入った。
このラジオは、NHK第一、NHK第二、AFN、TBS、文化放送、ニッポン放送がはいる。
ただしAFNと日本放送は非常にかすか。
あと、ニッポン放送よりさらに高い周波数にあわせると、ピーギャーという雑音がなる。
そして指を触れたり離したりすると音が変わって、テルミンみたいに遊べる。
2016/10/01
奇妙なできごと
ある日、自宅のwindows10でpinでログインできなくなった。
間違っているという。
pinは間違っていない。確信があった。
4桁の数字で、変更したおぼえもない。
なんでだろうと思いつつ、メールアドレスでログインし、pinを再設定した。
ついでに、なんとなくマイクロソフトアカウントのプロフィール画像を設定した。
今までは何も設定していなかった。
翌日、職場のPCにログインしようとしたら、夕べ設定したマイクロソフトアカウントのプロフィール画像が表示されている!
結構大きく表示されるので周りの人に見られてしまう。
もちろん職場のPCにログインするアカウントはマイクロソフトアカウントではない。
なんでだとは思ったがとりあえずマイクロソフトアカウントの画像を消した。
pinが変わっていたのも変だし、乗っ取られ的なことかとも思ったが・・・
最近多忙で寝不足だったり二日酔いだったりしてかついろんなPCやデバイスにいろんなIDやパスワードを入力してガチャガチャやってるから、
自分のミスだと思うんだけど・・・
間違っているという。
pinは間違っていない。確信があった。
4桁の数字で、変更したおぼえもない。
なんでだろうと思いつつ、メールアドレスでログインし、pinを再設定した。
ついでに、なんとなくマイクロソフトアカウントのプロフィール画像を設定した。
今までは何も設定していなかった。
翌日、職場のPCにログインしようとしたら、夕べ設定したマイクロソフトアカウントのプロフィール画像が表示されている!
結構大きく表示されるので周りの人に見られてしまう。
もちろん職場のPCにログインするアカウントはマイクロソフトアカウントではない。
なんでだとは思ったがとりあえずマイクロソフトアカウントの画像を消した。
pinが変わっていたのも変だし、乗っ取られ的なことかとも思ったが・・・
最近多忙で寝不足だったり二日酔いだったりしてかついろんなPCやデバイスにいろんなIDやパスワードを入力してガチャガチャやってるから、
自分のミスだと思うんだけど・・・
特定のアカウントでしか受信できない
postfix + dovecot でメールを使っていて、数個のアカウントがあるのだが、
そのうち一つは送受信できているのだが、
それ以外のアカウントは送信はできるが受信ができない。
それらのアカウントにメールを送るとエラーになって戻ってきたりはせず、
メールボックスには届いているようなのだが、受信ができない。
受信はiphoneでしている。
ほかのメーラーではどうかと、パソコンのthunderbirdで受信してみる。
thunderbirdはメールアドレスを入力すると設定を検索してくれる。
検索されて自動設定された設定だと、受信できた。
じゃあiphoneの設定が間違っているのかと、設定を比較してみると、
port番号はthunderbirdは143でiphoneは993になっていた。
993というのはuse sslを選択すると勝手に設定されたものだ。
use sslをオフにすると143になるがそれだとdisabledとか言われてしまう。
use sslをオンにして、かつ、ポート番号を993から143に変更したら受信できるようになった。
とりあえず解決・・・
と思ったが、もともと受信できていたアカウントのiphoneの設定をもう一度見てみると、
こちらは use ssl でポート番号は993だ。143に変えることもできる。
しかし、これ以外のアカウントは143でしか受信できない。
同じドメインの同じサーバなのに・・・。
何が間違っているのか。
受信できないアカウントは、 メールを送ると /var/mail/アカウント名 が更新されていて
mail -u アカウント名
で読むことができる。
先日spam対策のために設定したprocmailが原因だった。
各ユーザのホームディレクトリに .forward と .procmailrc をコピーして解決。
これがないと、/var/mail/アカウント名 に行ってしまう。
ただし、993/143問題はまだ謎だ。
メール設定は何度も変更したり設定追加したりしているので
自分でも何が何だかわからなくなっている。
一回全部消して作り直したいな・・・
そのうち一つは送受信できているのだが、
それ以外のアカウントは送信はできるが受信ができない。
それらのアカウントにメールを送るとエラーになって戻ってきたりはせず、
メールボックスには届いているようなのだが、受信ができない。
受信はiphoneでしている。
ほかのメーラーではどうかと、パソコンのthunderbirdで受信してみる。
thunderbirdはメールアドレスを入力すると設定を検索してくれる。
検索されて自動設定された設定だと、受信できた。
じゃあiphoneの設定が間違っているのかと、設定を比較してみると、
port番号はthunderbirdは143でiphoneは993になっていた。
993というのはuse sslを選択すると勝手に設定されたものだ。
use sslをオフにすると143になるがそれだとdisabledとか言われてしまう。
use sslをオンにして、かつ、ポート番号を993から143に変更したら受信できるようになった。
とりあえず解決・・・
と思ったが、もともと受信できていたアカウントのiphoneの設定をもう一度見てみると、
こちらは use ssl でポート番号は993だ。143に変えることもできる。
しかし、これ以外のアカウントは143でしか受信できない。
同じドメインの同じサーバなのに・・・。
何が間違っているのか。
受信できないアカウントは、 メールを送ると /var/mail/アカウント名 が更新されていて
mail -u アカウント名
で読むことができる。
先日spam対策のために設定したprocmailが原因だった。
各ユーザのホームディレクトリに .forward と .procmailrc をコピーして解決。
これがないと、/var/mail/アカウント名 に行ってしまう。
ただし、993/143問題はまだ謎だ。
メール設定は何度も変更したり設定追加したりしているので
自分でも何が何だかわからなくなっている。
一回全部消して作り直したいな・・・
2016/09/26
オームの法則すら
ラジオを作るといっても、誰かの設計した回路を、部品も指定されたものを使って、組み立てているだけだ。自分が創意工夫したりすることは一切ない。
この抵抗がなぜ1KΩなのか、このコンデンサがなぜ0.47μFなのか、
などの理由すらわからない。
わかるのは電池のプラスマイナスとか、ダイオードや電解コンデンサには極性があるとか、そんなことでしかない。
頻繁につかわれかつキーとなる部品であるトランジスタについては、何度もその動作原理や効果を調べているのだが、正直言っていまだにさっぱりわからなくて、情けなくなる。
これは、おそらくものすごく基本的なことが欠けているからだと思う。
たとえば、先日、こんな疑問を持った。
オームの法則というのがある。乾電池1個を回路につなぐと1.5Vの電圧がかかる。
そして電流が流れる。
その時流れる電流は、電圧÷抵抗値で求められる。
抵抗が100Ωであれば、1.5/100=0.015Aだ。
しかし、実際にテスターで電流を測ってみると計算通りの値にならない。
テスターが壊れてんのか?
電圧は1.5Vマンタンではないがそれくらいの値を示す。
わたしはテスターを電池切れ確認装置として使っていたから、それはわかっている。
しかし電流を測ることはまずない。
そもそも、抵抗が全くない状態で、電池の両極を電線でつないだらその電線にはどれくらいの電流が流れるのか?
E=I*Rの Rがゼロの場合だ。
数学的に言えば無限大ということになる。
が、実際には抵抗ゼロというのはあり得ず、抵抗をつけていない電線にも抵抗はある。
さらに、電池そのものにも内部抵抗というものがある。
テスターのツマミをDCmAの500にして、電池の両極に触ってみると、
400くらいで止まる。
400mAしか流れていない?電線や電池の内部抵抗があるとはいっても、
400mAしか流れないということはその抵抗は
400mA=0.4A
1.5=0.4*R
R=1.5/0.4=15/4=3.75Ω
そもそもなんでテスターの電流は500mAまでしか測れないのか。
自分の持ってるのは安物だからだろうと買おうとしてわかったのだが、私の持っているのはSANWAのCP-7Dという定番商品で、もう20年以上前に買ったものだが今買うと4000円くらいするそこそこのモノだ。
1000円とかのテスターもあるし、そんなに安物ではない。
先ほどの計算での3.75Ωというのは、大きいのか小さいのか。
内部抵抗など0.01Ωとかだと思っていた。
1.5=A*0.01
A=1.5/0.01
電池を直結したら150Aくらい流れるかと思っていたのだ。
150Aってどれくらいなのか電気の強さはボルトで表すが、電流はなんなのか。
強さではなく量なのか。
・・・・などということを疑問に感じている。
「オームの法則くらい知ってるよ」と思っていたが、それすら危ういのだ。
この抵抗がなぜ1KΩなのか、このコンデンサがなぜ0.47μFなのか、
などの理由すらわからない。
わかるのは電池のプラスマイナスとか、ダイオードや電解コンデンサには極性があるとか、そんなことでしかない。
頻繁につかわれかつキーとなる部品であるトランジスタについては、何度もその動作原理や効果を調べているのだが、正直言っていまだにさっぱりわからなくて、情けなくなる。
これは、おそらくものすごく基本的なことが欠けているからだと思う。
たとえば、先日、こんな疑問を持った。
オームの法則というのがある。乾電池1個を回路につなぐと1.5Vの電圧がかかる。
そして電流が流れる。
その時流れる電流は、電圧÷抵抗値で求められる。
抵抗が100Ωであれば、1.5/100=0.015Aだ。
しかし、実際にテスターで電流を測ってみると計算通りの値にならない。
テスターが壊れてんのか?
電圧は1.5Vマンタンではないがそれくらいの値を示す。
わたしはテスターを電池切れ確認装置として使っていたから、それはわかっている。
しかし電流を測ることはまずない。
そもそも、抵抗が全くない状態で、電池の両極を電線でつないだらその電線にはどれくらいの電流が流れるのか?
E=I*Rの Rがゼロの場合だ。
数学的に言えば無限大ということになる。
が、実際には抵抗ゼロというのはあり得ず、抵抗をつけていない電線にも抵抗はある。
さらに、電池そのものにも内部抵抗というものがある。
テスターのツマミをDCmAの500にして、電池の両極に触ってみると、
400くらいで止まる。
400mAしか流れていない?電線や電池の内部抵抗があるとはいっても、
400mAしか流れないということはその抵抗は
400mA=0.4A
1.5=0.4*R
R=1.5/0.4=15/4=3.75Ω
そもそもなんでテスターの電流は500mAまでしか測れないのか。
自分の持ってるのは安物だからだろうと買おうとしてわかったのだが、私の持っているのはSANWAのCP-7Dという定番商品で、もう20年以上前に買ったものだが今買うと4000円くらいするそこそこのモノだ。
1000円とかのテスターもあるし、そんなに安物ではない。
先ほどの計算での3.75Ωというのは、大きいのか小さいのか。
内部抵抗など0.01Ωとかだと思っていた。
1.5=A*0.01
A=1.5/0.01
電池を直結したら150Aくらい流れるかと思っていたのだ。
150Aってどれくらいなのか電気の強さはボルトで表すが、電流はなんなのか。
強さではなく量なのか。
・・・・などということを疑問に感じている。
「オームの法則くらい知ってるよ」と思っていたが、それすら危ういのだ。

