#stub
設定がイマイチよくわからないネームサーバ(bind).設定した先輩はとうの昔に卒業していて,でももう古いサーバはリプレースした.~
これを機に新しいドメイン名に変更したい~
そうやって安易にネームサーバを変更すると,ドツボにハマります.個人的にハマった経歴を晒すページ~
あと,大学の研究室向けの情報って意外にないもので,一般的なサーバに対する情報が殆ど~
それを大学の研究室の場合に置き換えて読もうとしても,「うちの研究室の場合,ここどうするの!?」と訳が分からなくなる場合が多々あった.
#contents
*概要 [#uecdb898]
-ネームサーバは研究室で勝手に変更すると,大体大問題になる
-ネームサーバってのは免許みたいなもので,
--免許を持ってる(ネームサーバを有している) のと
--''本当に運転できる''(ネームサーバの設定を変更する) のとでは
--わけが全然違う
-殆どの場合,ネームサーバの変更とは,崖の上の雪道を免許取りたてのドライバーが運転してるようなもの
*前提 [#pfe834c7]
-ネームサーバは公開してる情報とは言え,むやみにネットワーク情報を晒すのもよくないと思うので,
-研究室のドメイン名 ''lab.department.university.ac.jp''
-研究室のネームサーバ ''ns.lab.department.university.ac.jp''
-IPレンジ ''333.222.111.0/24'' ((当然こんなIPアドレスは存在しない))
-とするので,読む人は自分の環境に合わせてIPアドレスや名前を置き換えて下さい
*正引き [#df749bd1]
**正引きとは [#fbc07fea]
-www.lab.department.university.ac.jp -> 333.222.111.2 という具合にFQDNをIPアドレスに変換する作業
-この対応付けの表をもってるのがネームサーバ.
-古いネームサーバから新しいネームサーバに移行する際,新旧両方のネームサーバを生かしてると大体の場合よいことにならない
**勝手に古いネームサーバを落とすと…… [#g3d2ff45]
-何個か大学のネットワーク管理を見てきたけれど,
--大学全体のNS
--学部/学科単位のNS
--研究室単位のNS
-と階層構造で管理を区切られてる場合が殆ど
-この場合,上位のNS,つまり学部/学科で管理してるNSには,自研究室のネームサーバが登録されている
-これを勝手に変えると,正しいクエリが新サーバに届かずに,旧サーバへ問い合わせが行き,ネットワーク上から研究室が消える
-一度消えると,メールのやり取りもできなくなるので,復旧に時間がかかって大変な事故になったりする.
-(詳細を後日追記予定)
**設定確認用スクリプト [#t0b90a85]
-上位のサーバが分からなくても,大学の大本からたどればすぐに分かる
-辿るためのスクリプトを書いてみた
-ファイル2つあるので,両方共同じフォルダに置くこと
-それから各プログラムへのパスは適宜書き換えること
-labdig.sh
#geshi(bash,number){{
#!/bin/bash
DIG=/usr/bin/dig
GREP=/bin/grep
CUT=/usr/bin/cut
SED=/bin/sed
ECHO=/bin/echo
XARGS=/usr/bin/xargs
if [ $# -lt 2 ] ;
then
$ECHO "Use as " $0 " domain school-domain"
exit
fi
listNS(){
if [ $# -lt 2 ] ;
then
exit
fi
UPDOMAIN=`$ECHO $1 | $CUT -f 2- -d .`
if [ -z "$UPDOMAIN" ] ;
then
exit
fi
if [ $1 != $2 ] ;
then
listNS $UPDOMAIN $2
UPDOMAIN=`$ECHO $1 | $CUT -f 2- -d .`
$DIG $UPDOMAIN -t NS | $GREP ^$UPDOMAIN.*IN.NS | $SED -e s/\\t\\+/\\t/g | $SED -e s/\ /\\t/g | $CUT -f 5 | $SED -e s/^/@/g | $XARGS -l1 ./mydig.sh $1
else
$ECHO $2
$DIG $1 -t NS | $GREP ^$1.*IN.NS | $SED -e s/\\t\\+/\\t/g | $SED -e s/\ /\\t/g | $CUT -f 5 | $SED -e s/^/\ /g
fi
}
checkLastPeriod(){
if [ $# -lt 2 ] ;
then
exit
fi
CHECK=`$ECHO $1 | $GREP \\\.$`
if [ -z "$CHECK" ] ;
then
eval $2="${1}."
else
eval $2="$1"
fi
}
checkLastPeriod $1 A
checkLastPeriod $2 B
listNS $A $B
}}
-mydig.sh
#geshi(bash,number){{
#!/bin/bash
DIG=/usr/bin/dig
GREP=/bin/grep
CUT=/usr/bin/cut
SED=/bin/sed
ECHO=/bin/echo
if [ $# -lt 2 ] ;
then
$ECHO "Use as " $0 " domain nameserver"
exit
fi
$ECHO $1 $2
$DIG $1 -t NS $2 | $GREP ^$1.*IN.NS | $SED -e s/\\t\\+/\\t/g | $SED -e s/\ /\\t/g | $CUT -f 5 | $SED -e s/^/\ /g
}}
***使い方 [#u0fcca42]
-研究室のドメイン名と大学のドメイン名の2つを指定する
./labdig.sh lab.department.university.ac.jp university.ac.jp
-こんな感じの出力が帰ってくる
university.ac.jp. <--以下大学のドメインに関する情報
ns0.university.ac.jp. <--大学のネームサーバ1
ns1.university.ac.jp. <--大学のネームサーバ2
ns2.university.ac.jp. <--大学のネームサーバ3
department.university.ac.jp. @ns0.university.ac.jp. <--以下学科のドメインに関する情報
ns.department.university.ac.jp. <--学部/学科のネームサーバ1(大学のネームサーバ1からの返答)
zeus.department.university.ac.jp. <--学部/学科のネームサーバ2(大学のネームサーバ1からの返答)
department.university.ac.jp. @ns1.university.ac.jp.
ns.department.university.ac.jp. <--学部/学科のネームサーバ1(大学のネームサーバ2からの返答)
zeus.department.university.ac.jp. <--学部/学科のネームサーバ2(大学のネームサーバ2からの返答)
department.university.ac.jp. @ns2.university.ac.jp.
ns.department.university.ac.jp. <--学部/学科のネームサーバ1(大学のネームサーバ3からの返答)
zeus.department.university.ac.jp. <--学部/学科のネームサーバ2(大学のネームサーバ3からの返答)
lab.department.university.ac.jp. @ns.department.university.ac.jp. <--以下研究室のドメインに関する情報
ns.lab.department.university.ac.jp. <--研究室のネームサーバ(学部/学科のネームサーバ1からの返答)
lab.department.university.ac.jp. @zeus.department.university.ac.jp.
ns.lab.department.university.ac.jp. <--研究室のネームサーバ(学部/学科のネームサーバ2からの返答)
-可視化してみるとこんな感じ
#ref(ns-list.png)
-下の方で,ns.lab.department.university.ac.jp.と返答してるサーバが上位のサーバ(この場合はns.department.university.ac.jp)
-このリストにおいて,同じドメインに関する返答が,ドメイン内の全てのネームサーバから同じ返答が変えて来ないと事故のもと((こっそりいろんな研究室を覗いてみると,まぁ設定が合ってないこと合ってないこと))
-(詳細を後日追記予定)
*逆引き [#c98770a4]
-333.222.111.1 -> www.lab.department.university.ac.jp という具合にIPアドレスに対応するFQDNを返してくれるサーバ
-正引きは同じ名前に対して複数の番号をつけることができるが,逆引きは1つのアドレスに対して1つの名前しか着けられない
-イメージとして,携帯電話の電話帳に近い
--携帯電話で同じ電話番号を複数の人に割り当てることが可能 (正引きの動作)
--だが,実際電話がかかってきた場合画面に着信表示されるのは1人の名前だけ (逆引きの動作)
-正引きの設定で力尽きて逆引きの設定をおろそかにすると,やっぱり事故が起きる
-(詳細を後日追記予定)