008 1999/8/31 Firewall-1とbindのお話

[ 前回 ] [ 次回 ] [ 戻る ]


時は2000年問題。FirewallなどのUNIX機にもpatchなどを当てないとならないということで、いろいろと動いていた(のは私ではない)のだが、ようやく実施することになった。SunOS4.x系は、最初は怪しかったが、結局patchがでた(さすがだね。>Sun)。とはいっても4.1.3系と4.1.4だけだけどまだ良い方か。
問題はFirewallマシン。これもSunOS4.xにFirewall-1 ver.1.0(!)を入れている。

ver.1はNAT機能すらなかった。時代を感じさせるものではある。

「えーと、Firewall-1の場合は、ver.4に上げろだあ?」出費確定。
「ん?バージョンは…」

Solaris2.5以降。

をい。でも、Solaris7については何も書いていないところがお茶目である>checkpoint
FreeBSDにでもした方がよっぽど安上がりだろうなあ、と感じながら、Firewallの設置をする某X社と打ち合わせ。

bind(DNS)、sendmailの作業はやりませーん」←本当に一字一句こう言ったのではない。念のため。
Firewall-1はサポートできませーん(Sunがサポートしなくなったらしいので…ってぉぃ)」
HDDが足りないので追加してくださーい」

ぬぬぬ。あこぎな商売である。sendmailとbindは自力でコンパイルするか。一応テストコンパイルでもしておこう。

ちなみに、UNIXのハードウェア情報はX社の元にすでに渡っているのでまあなんかあれば連絡してくれるだろう…。それは甘かったのだが。

作業の前日。

「追加のHDDが届きません。」…前日に言うか?普通。
「今の状態でインストールできますか?」…先日HDDが足りないと言ったのはどなた?
「他のUNIXのHDDを使ってできませんか?」…普通、そんなこと頼むか?

でも、作業は予定通りやりたい、ときた。結局、HDDを借りて、あとで追加分が届いたときに交換&ファイル転送するということで妥協した。

作業日(は、土曜日)。

Firewall用のUNIXは、あらかじめX社に持っていってそれなりに設定してくれたので、実際の作業はそれなりの時間で終わりそうだった。
Firewall-1のある設定で、この設定の方が良いといわれたので、とりあえずそうしてもらった。(…伏線…)
設定については日本語のマニュアルがついてくるので、何とかなるだろう。
Firewall-1のテストは、こちらがsendmai、bindをコンパイルしてからでないとできない(いきなりネットワークにつなげたらやばい)ので、いったん帰ってもらって待機していただくことにした。
さて、bindのコンパイル。昔と比べて、コンパイルの準備が簡単になっているのはありがたい。うっ、SS5だと遅い…。その間に昼食。まあ、どっちにしても15:00頃には終わるだろう。

…………(古典的表現)…………。

よし、終わり。インストールして、テスト。……あれ……おや、responseが返ってこない。…どーもいかん。sendmailをコンパイルしながらテスト。……うりゃ……うりゃ、やっぱりだめだ。テストコンパイル時にはうまくいっていたのだが…。何にもresponseが返ってこないのはおかしい。やっぱりFirewall-1の設定の問題か?しょーがない、Xの人を呼び戻そう。

約10分後。

X「Firewallのリゾルバの設定ってこれで良いんですか?」
わし「は?(設定って、以前の設定をそのまま持ってきたはずだけど)」
X「リゾルバの設定が全部中向き(社内、private address)になっていますけど」
わし「???(それで良いはずだけど)」

説明が面倒だなあ。※リゾルバ:マシンがDNSを引くときに、最初に聞きにいくhostのIPアドレス。
別に、リゾルバがどうなんて問題じゃないと思うのだが。bindで外のhostに聞きに行くときはdbファイル(例えばdb.cacheのようなファイル)を見に行くのに。(多分設定を誤解しているのだろう)
(わけわかんない方はDNSの本を読みませう :-p)

約1時間後。(上の文の斜体文字を読み直すこと:-p)

X「Firewall-1の設定ですけど」
わし「はいはい」
X「とある設定でこう設定したのがまずかったみたいです」
わし「(をい)」

それならちゃんとそのままの設定にしておけい。(これでbind&Firewallのスキルがないことが判明。)
んで、社内からはDNSがちゃんと動作することを確かめ、一応外部からのDNSテストを、バリア・セグメント上のUNIXマシンで(X社が)テストしてうちのドメインが引けたのでOK、ということなので、終わりとした。
このとき、19:00。はぅ。sendmailもテストして、終わったのは19:30であった。



なに?斜体の文字がある?そう、これで終わりではないのである。

翌週月曜日。

一応、インストールのチェックをしていると、某プロバイダから、DNSが引けないとの連絡が入る。このままでは全世界からうちの会社のホストを引けなくなってしまうらしい。ちなみに、某プロバイダはうちの会社のセカンダリDNSをたててもらっている。
※要するに、うちの会社のDNSサーバが落っこちたときには、セカンダリDNSが代わって仕事をしてくれるようなものである。

ということは、今まではセカンダリDNSが答えてくれたので、なんとかなっていたのか。このままだとセカンダリのキャッシュ期限が切れるとWWWはおろか、メールの配送もできなくなってしまう。
どうせFirewall-1の設定だろ、とパケットをチェックするためのルール設定を見てみると…あ。

DNSのパケットを捨てるような設定になってる。

ログにも、DNS関連のパケットを捨てたという情報がうじゃうじゃ。これじゃあ、当然だめだわな。DNSのパケットをちゃんと受け取るように設定を直して、某プロバイダからもOKをもらった。ログにも出なくなった。これで終わりか?

それにしても、作業日にX社のテストでOKって言ってたような気がするが、、テストしたUNIXマシンの設定が残っているかな?…あ、あった。……………あ?

リゾルバがX社のDNSサーバになっている?

テスト時の動作を想像してみよう。

  1. バリア・セグメント上のUNIXからDNSを聞きに行く。リゾルバの設定により、聞きにいく先はX社のDNSサーバ。
  2. X社のDNSサーバは、DNSのルートサーバに聞きにいき、…最後にうちの会社のDNSサーバのIPアドレスを探してくる。
  3. X社のDNSサーバがうちの会社のDNSサーバにアクセスしにいく。そのときのFirewall-1の設定ではパケットを捨てられるので応答がない。ここからが問題。
  4. X社のDNSサーバは、仕方がないのでセカンダリDNSに聞きにいく。このアクセスは正常に行われる。
  5. IPアドレスがひける。おしまい。

つまり、セカンダリDNSからひいたのにもかかわらずOKをだしていたわけだX社は。

ちなみに、作業当時のFirewall-1のログをみると、見事にDNSパケットを捨てていることが分かった。

はっはっは。…もう頼まないかも。

しかし、まだHDDの交換といういや〜な作業が待ち構えていたりするのである。
いつやるんだろう…。

(とりあえず完)…修正するかも

追伸。

作業当日になって「32MBだと動かないかも」とかのたまった挙げ句、やっぱり動作が不安定になり、そこらのSIMMを引っこ抜いて継ぎ足して64MBにしたのは内緒だ。 ^^;
…最初から危ないと言え。なんのためにハードウェアの情報を渡してあるんだか…>X
ちなみに、メモリを引っこ抜いたUNIXはメモリがないので当然動かない ;_;