Top過去ログ目次掲示板

作成日:2003年01月10日 作成:おやじ
掲示板で過去に質問された内容です。

No.368 外部DNSへはBINDは53番のみでアクセスしないの?


No.368 投稿時間:2003年01月10日(Fri) 12:58 投稿者名:mmm URL:
タイトル:外部DNSへはBINDは53番のみでアクセスしないの?

よろしくお願い致します。vine2.5でBIND8を使用しています。

ADSLモデム
|
ppp0
vine2.5(host1.dyndns.net)─Win2k(host3.host1.dyndns.net)
eth0
|
eth0
TurboLinuxW8(host2.host1.dyndns.net)

としています。

ADSLモデム-s
DSL形SBユーザユニット1

です。

ポート数…10Base-T × 1ポート
準拠基準…IEEE802.3
MDI/MDI-X…MDI-X
全二重/半二重…半二重
物理インターフェース…RJ45コネクタ
ポート数…1ポート
準拠規格…ITU-T G.992.2 AnnexC
ネットデータレート…下り:64kbit/s〜1536kbit/s
            上り:32kbit/s〜512kbit/s
物理インターフェース…RJ11コネクタ

となってします。NTTからのレンタルのモデムです。
host1はルータの役割を果たしています。

ダイナミックDNSサーバでドメインを取得しました。host1.dyndns.net

host1の/etc/named.confには
options {
directory "/var/named";
pid-file "/var/named/named.pid";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "host1.dyndns.net" {
type master;
file "/var/named/host1.dyndns.net.hosts";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/var/named/192.168.0.rev";
};
};

と記述しています。

/var/named/192.168.0.revには
$ttl 38400
0.168.192.in-addr.arpa. IN SOA localhost. root.host1.dyndns.net (
1034148765
10800
3600
604800
38400 )
0.168.192.in-addr.arpa. IN NS localhost.
1.0.168.192.in-addr.arpa. IN PTR host1.dyndns.net.
89.0.168.192.in-addr.arpa. IN PTR host3.host1.dyndns.net.
33.0.168.192.in-addr.arpa. IN PTR host2.host1.dyndns.net.

/var/named/localhost.zoneには
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

1D IN NS @
1D IN A 127.0.0.1

/var/named/named.localには
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.

1 IN PTR localhost.

/var/named/host1.dyndns.net.hostsには
$ttl 38400
host1.dyndns.net. IN SOA localhost. root.host1.dyndns.net (
1034148339
10800
3600
604800
38400 )
host1.dyndns.net. IN NS localhost.
host1.dyndns.net. IN A 192.168.0.1
host3.host1.dyndns.net. IN A 192.168.0.89
host2.host1.dyndns.net. IN A 192.168.0.33

/etc/resolv.confには
nameserver 127.0.0.1

と記述しています。/var/named/named.caも存在してます。

/etc/named.confを編集して、早速、記述しシリアル番号を大きくて再度実行してみ
ましたら

# /etc/rc.d/init.d/named stop
Shutting named: [OK]
# /etc/rc.d/init.d/named start
Starting named: [OK]

となりました。/var/log/messagesには

Nov 13 16:56:01 host1 named[2768]: Ready to answer queries.
Nov 13 16:56:01 host1 named[2768]: sysquery: sendto([xxx.xxx.xxx.xxx].53):
Operation not permitted

とエラーなっています。それで
/sbin/iptables -A OUTPUT -p udp --dport 53 -d 0/0 -o ppp0 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -s
0/0 --sport 53 -i ppp0 -j ACCEPT

で上手くいきました。

iptablesを
/sbin/iptables -A INPUT -s 0/0 -i ppp0 -j LOG --log-prefix "ppp0 Inbound
Packet : "
/sbin/iptables -A OUTPUT -d 0/0 -o ppp0 -j LOG --log-prefix "ppp0 Outbound
Packet : "
/sbin/iptables -A INPUT -s 0/0 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -d 0/0 -o ppp0 -j ACCEPT

パケットを解析してみましたら
Dec 15 14:40:58 host1 kernel: ppp0 Outbound Packet : IN= OUT=ppp0
SRC=xxx.xxx.xxx.xxx DST=202.12.27.33 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0
DF PROTO=UDP SPT=32838 DPT=53 LEN=64
Dec 15 14:40:58 host1 kernel: ppp0 Inbound Packet : IN=ppp0 OUT= MAC=
SRC=202.12.27.33 DST=xxx.xxx.xxx.xxx LEN=281 TOS=0x00 PREC=0x00 TTL=59
ID=52540 PROTO=UDP SPT=53 DPT=32838 LEN=261

となったのですが自ホストはどうして53ではなく、32838番ポートを使用しているの
でしょうか?
このポートは一体何なのでしょうか?


No.369 投稿時間:2003年01月10日(Fri) 14:48 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:外部DNSへは53番でアクセスしています。

> パケットを解析してみましたら
> Dec 15 14:40:58 host1 kernel: ppp0 Outbound Packet : IN= OUT=ppp0
> SRC=xxx.xxx.xxx.xxx DST=202.12.27.33 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0
> DF PROTO=UDP SPT=32838 DPT=53 LEN=64
> Dec 15 14:40:58 host1 kernel: ppp0 Inbound Packet : IN=ppp0 OUT= MAC=
> SRC=202.12.27.33 DST=xxx.xxx.xxx.xxx LEN=281 TOS=0x00 PREC=0x00 TTL=59
> ID=52540 PROTO=UDP SPT=53 DPT=32838 LEN=261
>
> となったのですが自ホストはどうして53ではなく、32838番ポートを使用しているの
> でしょうか?
> このポートは一体何なのでしょうか?

 一般論として、いろいろなプロトコルが何番ポートを使っていると言っているのは、クラサバシステムのサーバ側のポート、つまりクライアントからのコネクションを待ち受けているポートのことです。(必ずしも待ち受けとはいえませんが。例えば、FTPのデータコネクションのポートの20番はサーバ側ですが、待ち受けではありませんので。)従って、HTTPは80番、FTPの制御コネクションポートは21番というのは、全てサーバ側の話です。クライアント側は、アクセスする時点の自分の環境で空いているポート(1024〜65535)を使用してサーバにアクセスしに行きます。
 今回のケースでは、mmmさんのサーバ機のBINDは外部DNSに対してクライアントとして動いているので32838番ポートとなっていて当然です。値は、たまたまそのポートが空いていたというだけです。一方、家庭内クライアントからmmmさんのBINDにアクセスしてくるケースでは、mmmさんのBINDがサーバになりますので、今までとは逆にサーバ機側が53番になります。こちらをキャプチャして見てみると違いがわかるでしょう。
 FTPの例が下記にありますので、参考にしてください。

  http://www.aconus.com/~oyaji/router/tcp.htm

 なお、おやじのWWWサーバテストやFTPサーバテストのCGIは、クライアントとして動作しますので、サーバにコネクションを張るため、OSに頼んで空いているポートをGETし、それを利用しています。


No.376 投稿時間:2003年01月11日(Sat) 01:16 投稿者名:mmm URL:
タイトル:Re: 外部DNSへは53番でアクセスしています。

ご回答感謝いたします。

>  今回のケースでは、mmmさんのサーバ機のBINDは外部DNSに対してクライアントとし
> て動いているので32838番ポートとなっていて当然です。値は、たまたまそのポート
> が空いていたというだけです。一方、家庭内クライアントからmmmさんのBINDにアク
> セスしてくるケースでは、mmmさんのBINDがサーバになりますので、今までとは逆に
> サーバ機側が53番になります。こちらをキャプチャして見てみると違いがわかるで
> しょう。
納得です。そうですよね。外部にアクセスする時には確かにクライアントになっていますよね。

>  FTPの例が下記にありますので、参考にしてください。
>   http://www.aconus.com/~oyaji/router/tcp.htm
ありがとうございます。

>  なお、おやじのWWWサーバテストやFTPサーバテストのCGIは、クライアントとして
> 動作しますので、サーバにコネクションを張るため、OSに頼んで空いているポートを
> GETし、それを利用しています。
これは空いているポートをOSがランダムに選択するのですね。



掲示板▲頁先頭