このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

マルチNAT(DMZ)とOSX Serverの設定について

発言者:西尾
( Date Friday, April 26, 2002 18:36:03 )


いつも参考にさせていただいております。

Bフレッツ、ベーシックでOCNアクセス8/16IPを利用して
OSX ServerにてWeb、Mail、などサービスしようとしています。
ルータはオムロンのMR104FHというもので、DMZのマルチNAT
機能を使い、グローバルをローカルに変換してOSX Serverに
接続します。OSX ServerのMac上でDNS、Web、Mail全て
動かしています。
DNSはBIND(OSX Server10.1に入っていたもの)をWeb上の
ページを参考になんとか設定して、OCNのDNSデスクから正常
ですということでした。
なので、DNS自体や、NATはの設定はうまくいっているのでは
と思うのですが、OSX Serverの設定がうまくいきません。
グローバルIPの218.xxx.xxx.242をNATで192.168.x.200に
当てていますが、OSX Server自身はServerAdminでも
「192.xxx.xxx200」としか表示されず、メールアカウントの
設定やWebサイトの設定がうまくいきません。

いろいろ考えてみたのですが、行き詰まってしまいました。
単純な設定ミスなのか、それとも、そもそもNATでグローバル
からローカルに変換してサーバを立てるのが無理なのか・・・
なにか思い当たる点、アドバイスいただければ幸いです。
よろしくお願いします。

たまちゃん さんからのコメント
( Friday, April 26, 2002 23:42:12 )

内部向けに DNS をたてるといけるという話ではないでしょうか。

姉妹製品(?)の ASIP での設定例が

http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/1/wa/showTIL?id=24962JN

に載っています。オムロンではないですが YAMAHA のルータでの
設定例が(OCN エコノミーですが)

http://www.rtpro.yamaha.co.jp/RT/docs/example/ocn-economy6.html

に載っています。

発売されたばかりのブロードバンドルータを使われているんですね。

西尾 さんからのコメント
( Saturday, April 27, 2002 11:40:02 )

たまちゃんさん、ありがとうございます。
ほとんど初心者に近いので、おかしな質問かもしれませんが
よろしくお願いします。ルータは元々用意していたものが
PPPoEでマルチNATが出来なかったので、急遽このルータを
購入したわけです。ただ、PPPoEのunnamberdに対応していない
っていうのが気になっているのですが。OSX Serverにグローバル
IPが振れてしまえば問題解決のような気もしてるんですが・・・。

現在動いているDNS(OSXサーバ内の)=外部DNSで、
それ以外にLAN内の他のPCで内部DNSを立てるということでしょうか。
OCNエコノミーで使っていたQDNSがあるのでこいつを使おうと思いますが
内部DNSは、具体的にはどう設定すればよいのでしょう?
親DNS(OSXのBIND)とどう結んでやればよいのでしょう?

たまちゃん さんからのコメント
( Saturday, April 27, 2002 13:13:41 )

あっ当然 BIND なんですね。

外向けと内向けの DNS を BIND 1つ(?)で運用できるようです
ので BIND 関連の資料をあたってみてください。

西尾 さんからのコメント
( Saturday, April 27, 2002 16:18:05 )

ありがとうございます。
なかなか難しいですね。

BINDのゾーンファイルの中にローカルのアドレス(192.168.x.x)を
入れちゃえばいいか、と思ったんですが、それはマズイとOCNの
DNSデスクの方に言われてしまいました。
BINDのフォワーディングオプションを使用すればいいんでしょうか?

検索&本屋で頑張って調べてみます!

しましま さんからのコメント
( Sunday, April 28, 2002 02:13:13 )

こんばんは!

僕もフレッツADSL+OCNADSLアクセスIP8と西尾さんと、とても似たような環境でMacOSXServer10を運用しています。

今回の件に関しては、やっぱりPPPoEのunnamberd接続可能なルーターを揃えるのが、もっとも確実で楽な方法だと思います。
unnamberd接続のルーターって種類が少ないですが、探せばいくつか見つかるはずです。
ちなみに僕はNTT-ME製のBA5000SOHOを使ってます。
http://www.ntt-me.co.jp/bar/index.html

重松修 さんからのコメント
( Sunday, April 28, 2002 02:45:14 )

BIND のバージョンはいくつをお使いなんですか?
9.x だと、view が使えるので、簡単に内向け、外向けができますよ。
私は、OS X Server を使ってないので、知らないんですけど。
手前ミソですが、ソースから入れる場合のメモです。(VineLinux ですけど)

しましまさん、おそらく、元の質問者の方はサーバはたとえ DMZ においたとしても、
クライアントは NAT 越しだと思いますし、私なら、サーバであったとしても、
DMZ には置きません。DNS の問題だと思いますから、そもそも NAT で
アドレス変換される端末があるのであれば、内向けの設定は必要かと思います。

勘違いだったら、ごめんなさい。


→  http://www.ravi.ne.jp/shige/vinelinux/bind.html

西尾 さんからのコメント
( Tuesday, April 30, 2002 09:31:18 )

ありがとうございます。

>しましまさん
実は元々BA5000Proを注文していたんですが、えらく品薄で
開通に間に合わない事(入荷日未定でした)が発覚して、急遽
すぐに入手可能なオムロンのMR104FHにしたわけです。
(開通前日入手でした)いちおうオムロンに事前確認して
「使えるはず」という回答だったので気楽にしていたんですが、
このありさまです。ルータを再度交換することも念頭におきつつ
とりあえずの現状をなんとかしたいと・・・。

>重松修さん
BINDは8.2.3(OSX Serverに元々入っているVer)です。
(ご紹介のページはNotFoundになっちゃいまして、まだ見ていません
すみません)9を入れるというのはOSXの方に悪影響がありそうで怖いので
考えていないのですが8.2.3で設定するのは難しいんでしょうか?
現状では、とにかくメールサーバ、Webサーバを機能させたいので
LAN内にMacでQuickDNSを立ててみました。しかし、設定が悪いのか
外向けにメールできなかったり、受けられなかったりしてしまいます。
外向けと内向けのDNS設定がきっとうまくいっていないと思いますが
行き詰まってしまいまして・・・

下に設定を書いてみますのでご指摘いただければ幸いです。


西尾 さんからのコメント
( Tuesday, April 30, 2002 10:19:50 )

OCNからもらったIP/218.xxx.xxx.240〜247
サブネットマスク/255.255.255.248
ドメイン名は仮にabcd.co.jp
DNSサーバ/218.xxx.xxx.242=ns.abcd.co.jp
サーバはDNS、mail(mail.abcd.co.jp)、Web(www.abcd.co.jp)
全て1台で稼動
ルータはマルチNAT(DMZ)を使用して
218.xxx.xxx.242を192.168.0.200に変換

218.xxx.xxx.242のDNSサーバの設定(外向け用)
---正引きゾーンファイル
@        IN SOA ns.abcd.co.jp. root.abcd.co.jp. (
               2002042702     ; Serial
                          10800    ; Refresh after 3 hours
                          3600     ; Retry after 1 hour
                          604800   ; Expire after 1 week
                          86400 )  ; Minimum TTL of 1 day
                IN NS  ns.abcd.co.jp.
                IN NS  ns-tk023.ocn.ad.jp.
                IN MX 10 mail.ipns.co.jp.
                IN A   218.44.248.242
ns.abcd.co.jp.          IN A             218.xxx.xxx.242
www.abcd.co.jp.     IN CNAME     ns
ftp.abcd.co.jp.         IN CNAME     ns
mail.abcd.co.jp.       IN A            218.xxx.xxx.242
ns-tk023.ocn.ad.jp. IN A            203.xxx.xxx.105
localhost.               IN A            127.0.0.1
----
---逆引きゾーンファイル
@             IN SOA ns.abcd.co.jp. root.abcd.co.jp. (
               2002042501     ; Serial
                          10800    ; Refresh after 3 hours
                          3600     ; Retry after 1 hour
                          604800   ; Expire after 1 week
                          86400 )  ; Minimum TTL of 1 day
                     IN NS     ns.abcd.co.jp.
                     IN NS     ns-tk023.ocn.ad.jp.
                     IN PTR   abcd.co.jp.
                     IN A       255.255.255.248
242                     IN PTR   ns.abcd.co.jp.
---

(長々すみません内向きは下へ書きます)

西尾 さんからのコメント
( Tuesday, April 30, 2002 10:40:17 )

QuickDNSの設定(192.168.0.201)
---正引き abcd.co.jp
abcd.co.jp.           NS        ns.abcd.co.jp.
abcd.co.jp.           MX       10                         mail.abcd.co.jp.(パラメタ2)
ns.abcd.co.jp.       A         192.168.0.201
ns.abcd.co.jp.       A         218.xxx.xxx.242
mail.abcd.co.jp.   A         192.168.0.200
mail.abcd.co.jp.   A         218.xxx.xxx.242
www.abcd.co.jp.  CNAME mail.abcd.co.jp.
ftp.abcd.co.jp.     CNAME mail.abcd.co.jp.

---逆引き 0.168.192.ni-addr.arpa.
0.168.192.in-addr.arpa.        NS    ns.abcd.co.jp.
201.0.168.192.in-addr.arpa. PTR  ns.abcd.co.jp.
200.0.168.192..in-addr.arpa. PTR  mail.abcd.co.jp.
200.0.168.192..in-addr.arpa. PTR  www.abcd.co.jp.
200.0.168.192..in-addr.arpa. PTR  ftp.abcd.co.jp.

こんな感じの設定です。

OSX Server(218.xxx.xxx.242/192.168.0.200) のTCP/IP
ネットワーク設定、DNSは192.168.0.201のみです。
このQDNSが立っていないとServerAdminは192.168.0.200でしか
ログインできず、QDNSでLAN内のDNSを立てればmail.abcd.co.jp
でログインできるようになります。

長々と申し訳ありません。

稲垣 さんからのコメント
( Wednesday, May 01, 2002 01:03:26 )

 何をどうしたいかですが、マルチNATをした場合、ルーターよりなかは全て
ローカルIPのネットワークで閉じていると言う形になるはずです。

 ですので、サーバ本体で管理するときには、ローカルIPをみていて正しい
はずです。

 ただ、厳密な意味でのサーバ名とIPアドレスは一致しませんので、その辺を
サーバ名で運用するように設定するしか無いはずです。
 全部をバーチャルサーバとして運用する形になりますが・・・。

 もしくは、上記にあるように、内向きにもDNSを立てるかでしょうが・・。

西尾 さんからのコメント
( Wednesday, May 08, 2002 10:07:34 )

稲垣さんありがとうございます。

いちおう上のようなDNS設定で外向きと内向き別のDNSを設定して
みたのですが、どうもうまくいきません。
サーバは内向きのDNSを見てドメイン名を取得できているみたいです。
(ServerAdminでmail.abcd.co.jpと出ます)
AppleファイルサービスやWWW、FTPなど外からも表示されるのですが
Mailについては受信は問題なく出来ている様子ですが、内側から
外側に送信できない状態なんです。Postmasterから帰ってくるメッセージは
>Could not deliver message (ID=2324).
>Local account '相手のメアド.co.jp' contains a routing cycle.
と書いてあるので、内側から外側に送ってやれてない気がするのですが
内側、外側のDNS設定に不備があるのでしょうか?それともOSX Serverの
設定に問題があるのでしょうか?

西尾 さんからのコメント
( Friday, May 10, 2002 10:50:05 )

OSX ServerのMail設定に問題があったようです。
「ホスト設定」の「送信メール」のところの、「すべてのSMTPをリレー
する経由先」で、mail.abcd.co.jpを指定していました(そう設定すると
思いこんでいました)ので、この設定をはずすとOKでした。

内部DNSの設定は、色々いじってみるとグローバルのアドレスがここに
ダブって書かれていなくても大丈夫みたいなので削除しました。

しばらくこれで様子を見てみます。
いろいろヒントありがとうございました。
またよろしくお願いします!

稲垣 さんからのコメント
( Friday, May 10, 2002 11:17:54 )

 多少補足を兼ねて。

> OSX ServerのMail設定に問題があったようです。
> 「ホスト設定」の「送信メール」のところの、「すべてのSMTPをリレー
> する経由先」で、mail.abcd.co.jpを指定していました(そう設定すると
> 思いこんでいました)ので、この設定をはずすとOKでした。

 の設定は、企業や大規模なネットワークで、外部に直接通信できるメール
サーバを制限している、外部への中継専用のサーバを用意している場合に
設定します。
#まあ、メール用のスタティックルートを設定することなんですが、

 直接該当のサーバから直接送信先のサーバと通信する場合は、空欄にして
おく必要があります。

 自分自身を設定していると、ループになって大変なことになるか、何も
しないかのどちらかでしょうけど・・・。



大原(suucess) さんからのコメント
( Wednesday, June 05, 2002 16:20:31 )

 はじめまして、最近 OCN エコノミーから B フレッツ OCN IP8 に
乗り換え、 AppleShareIP v6.x から MacOSX Server に乗り換えたの
ですが、西尾さんと同様のことで悩んでいて、大変参考になしました。
 ところで、 BUILT-IN の Ether の他に PCI の Ether Card を入れ
てグローバルとローカルを完全にわけてしまおうと考えているのです
が、 OSX Serever で問題なく設定できるでしょうか?
僕も素人なので、とんちんかんなことをお話ししているかも、しれま
せん。良きアドバイスをお願いします。

SHOMA さんからのコメント
( Thursday, June 06, 2002 01:05:49 )

西尾さん、こんにちは。
西尾さん、はじめまして。
SHOMAです。

..えと..もし、ns.abcd.co.jpというドメインネームのOS X Serverで
対外(対インターネット?)向けのお使いのドメインを管理するDNSサーバ
を付属のBINDで動かし、インターネットメールを送受信するメールサーバ
も動かすようでしたら、正引きゾーンファイルは、以下のような設定では
いかがでしょう?



@        IN SOA ns.abcd.co.jp. root.abcd.co.jp. (
               2002060601     ; Serial
                          10800    ; Refresh after 3 hours
                          3600     ; Retry after 1 hour
                          604800   ; Expire after 1 week
                          86400 )  ; Minimum TTL of 1 day
                IN NS  ns.abcd.co.jp.
                IN NS  ns-tk023.ocn.ad.jp.
                IN MX 10 ns.abcd.co.jp.
ns.abcd.co.jp.          IN A             218.xxx.xxx.242
www.abcd.co.jp.     IN CNAME     ns
ftp.abcd.co.jp.         IN CNAME     ns


上では、1つのIPアドレスに対して、2つのAレコードが参照されている
ところ、他ドメインのAレコードも参照されているところ、MXレコードで
ns.abcd.co.jpが参照されていないところ..などを直してみました。

-----
逆引きのほうは...named.confで、グローバルなアドレスのゾーンファイル
として宣言してありますよね?だとしたら、大丈夫だとおもいます。


-----
あと、QuickDNSProには、DNS ExpertというDNS設定の検査ソフトが
付いていませんでしたでしょうか?
付いていれば..ですが..検査してみてはいかがでしょう?

また、全体的に、ちょっと、大変かもしれませんが..オライリーという
ところから出ているDNS & BINDという本を先に読まれた方が結果的に
速く^すっきり解決するかも?とも思いますです。


ご参考までに。



→  BIND & DNS

SONATA さんからのコメント
( Tuesday, February 18, 2003 23:52:50 )

はじめまして。ソナタともうします。
いろいろインターネットで調べている中で、ここの会議室を発見しました。

訳あってサーバーを立ち上げようとして詰まっています。
OCNのADSL-IP8を使っています。
ルーターはBA8000Proを使用しています。
サーバーに使うOSは、OSXServer10.1.5です。

詰まっている部分は、
Digを使って調べているんですが、
立ち上げたネームサーバーではちゃんと情報が表示されるんですが、ドメイン名だと情報がうまく表示されないのです。
OSX(10.1.5)のネットワークユーティリティのLooKUpを使ってですが。
友人が同じようにサーバーを立ち上げているんですが、
ドメイン名でLookUpした時に表示される情報と、DNSサーバー名でLookUpした
時の情報が同じ内容にならないといけないんですが。
おそらくは、正引きの部分で間違っていると思うんですが。

えっと
取得ドメインを abc.co.jp とした場合で(DNSは ns.abc.co.jpとします)
Dig abc.c.jp  の場合
; <<>> DiG 8.3 <<>> @(null) abc.co.jp a 
; Bad server: (null) -- using default server and timer opts
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 4
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUERY SECTION:
;;  abc.co.jp, type = A, class = IN

;; Total query time: 62 msec
;; FROM: *****.local. to SERVER: default -- 192.168.1.1
;; WHEN: Tue Feb 18 23:36:57 2003
;; MSG SIZE  sent: 33  rcvd: 33

と情報が返ってきます。

Dig ns.abc.co.jpとした場合

; <<>> DiG 8.3 <<>> @(null) ns.abc.co.jp a 
; Bad server: (null) -- using default server and timer opts
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUERY SECTION:
;;  ns.abc.co.jp, type = A, class = IN

;; ANSWER SECTION:
ns.abc.co.jp.  22h33m26s IN A  219.***.***.162

;; AUTHORITY SECTION:
abc.co.jp.  22h33m26s IN NS  ns-kg021.ocn.ad.jp.
abc.co.jp.  22h33m26s IN NS  ns.abc.co.jp.

;; ADDITIONAL SECTION:
ns-kg021.ocn.ad.jp.  20h6m16s IN A  211.***.***.***
ns.abc.co.jp.  22h33m26s IN A  219.***.***.162

;; Total query time: 30 msec
;; FROM: *****.local. to SERVER: default -- 192.168.1.1
;; WHEN: Tue Feb 18 23:40:55 2003
;; MSG SIZE  sent: 36  rcvd: 128

友人に、友人の運営してるサーバーのを見せてもらったら同じ情報が
表示されてたんです。だから同じ情報にならないといけないって思って
いるんですが。
こんな情報だけで、なにをどう質問すればいいのかわかんないんですが、
もし、ほかに情報がいるのならまた書き込みします。


あとルーターでは
与えられた8つのIPですが、219.***.***.150〜219.***.***.157を割り当てられたとして説明しますが、
ルーターアドレスを、219.***.***.151
DMZネットワークサブネットマスク:255.255.255.248
DMZネットワークの最初のIP:219.***.***.152
DMZネットワークの最後のIP:219.***.***.156
セカンダリLANモードをDMZネットワークのゲートウェイアドレス
セカンダリLAN IPアドレス:ルーターアドレスと同じ

にしています。







SONATA さんからのコメント
( Wednesday, February 19, 2003 00:35:19 )

長々と申し訳ございません。追記です。

traceroute でサーバーを調べたところ、
ネームサーバーでtracerouteした場合は、ネームサーバー(サーバー)
のIPアドレスまでいくのですが、
肝心なドメイン名で行ったところ
traceroute: unknown host ******.co.jp
となってしまいます。

実際、ServerAdmin(OSXServerのユーティリティ)で外部からアクセスしよ
うとすると、****.co.jpではアクセスできず、DNSでアクセスすると接続
できるんです。

上の投稿でも書きましたが、おそらくは正引きファイルで間違っていると思うんですが、どこが間違っているのかわかりません。下にファイル内容をちょっとのせます。

SONATA さんからのコメント
( Wednesday, February 19, 2003 01:02:51 )

ドメイン名は「abc.co.jp」の場合
正引きファイル(db.abc.co.jp)
abc.co.jp. IN SOA ns.abc.co.jp. admin.abc.co.jp.(
                        2003021706      ;Serial
                        10800           ;Refresh after 3 hours
                        3600            ;Retry after 1 hour
                        604800          ;Expire after 1 week
                        86400 )         ;Minimum TTL of 1 day

;
;Name Servers
;
                 IN NS ns.abc.co.jp.
                 IN NS ns-kg021.ocn.ad.jp.
                 IN MX 10 mail

;
;Addresses for the canonical names
;
abc.co.jp.                 IN A 219.***.***.162
localhost.abc.co.jp.      IN A 127.0.0.1
ns.abc.co.jp.             IN A 219.***.***.162
www.abc.co.jp.            IN A 219.***.***.162
ftp.abc.co.jp.            IN A 219.***.***.162
mail.abc.co.jp.           IN A 219.***.***.162
ns-kg021.ocn.ad.jp.             IN A 211.129.14.166

----------------ここまで

逆引きファイル(db.219.***.***.162)

162.***.***.219.in-addr.arpa.  IN SOA ns.abc.co.jp. admin.abc.co.jp. (
                        2003021706      ;Serial
                        10800           ;Refresh after 3 hours
                        3600            ;Retry after 1 hour
                        604800          ;Expire after 1 week
                        86400 )         ;MinimumTTL of 1 day

;
;Name Servers
;
162.***.***.219.in-addr.arpa.    IN NS ns.abc.co.jp.
                                IN NS ns-kg021.ocn.ad.jp
;
;Address point to canonical name
;
162.***.***.219.in-addr.arpa.    IN PTR abc.co.jp.

-------------------ここまで

named.conf の内容
// This BIND 8.2 Config File was installed by Apple Remote Admin.

controls {
//      unix "/var/run/ndc" perm 0600 owner 0 group 0;
        inet 127.0.0.1 port 54 allow {any; };
};

options {
        directory "/var/named";
        notify yes;
        statistics-interval 1;
//stats-file "named-stats";
};

zone "abc.co.jp" in {
        type master;
        file "db.abc.co.jp";
};

zone "162.***.***.219.in-addr.arpa" in {
        type master;
        file "db.219.***.***.162";
};

zone "localhost" in {
        type master;
        file "db.localhost";
};

zone "0.0.127.in-addr.arpa" in {
        type master;
        file "db.127.0.0";
};

zone "." in {
        type hint;
        file "db.cache";
};

こんな感じになっています。
実際、本をみながらなんで不必要に書いてる部分などたくさんありますが。

もしよろしければ私にメールで返答くださってもかまいません。
メールアドレスは
sonata_int@mac.com
です。


SONATA さんからのコメント
( Wednesday, February 19, 2003 09:55:07 )

長々と書き込みしたんですが、解決しました。
すべてのファイルを最初から書き直して、ファイル名もdb.~とかじゃなくて
本に載っているとおりにやったらなおりました。

でも、一つ問題があるんですが。
ルーターに接続されてるクライアントPCからだとwwwサーバーとか、mailサー
ビスを受けることができないんですが、これってlocalhostの設定がおかしい
からなんでしょうか。