2005年1月17日

[vine-users:069760] Re: Vine3.1にてiptables-nat-OUTPUTが機能しない

田原@越谷です。花井様、ありがとうございます。

On Mon, Jan 17, 2005 at 09:51:30AM +0900, K Hanai wrote:
> 花井@京都です。
>
> From: "K.Tahara" <taharak@xxxxx>
> > > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80
> > > -j REDIRECT --to-port 3128
> > > を使うとしています。こうしてみるとどうでしょうか?
> > 私のネットワークの構成は、

> > [LinuxBox=1台のMac] -> [ADSLモデム(NTTのMN4)] -> [インターネット]
> > となっています。
>
> ということなら、-i で指定するのは、ppp0 になるということはないのですか?
ご指摘のとおり、rp-pppoeを用いていますので、ppp0が正しいようです。
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80
-j REDIRECT --to-port 3128
として再度確認しましたが、やはりだめでした。
# w3mで外部のページを見に行ったとき、/var/log/squid/access.logが更新されませんでした。

さらにパケットのログをとってみて、パケットが各チェインにどのように流れるか確認してみました。
その結果、natテーブルのPREROUTINGチェインにはパケットは流れていないようでした。
さらにVine2.6ではnatテーブルのOUTPUTチェインにもパケットは流れていましたが、
Vine3.1では流れていませんでした。
また[vine-users:069729]のご指摘があり、
この現象は、私の環境独自の現象か、PPC版固有の現象と思われます。
以下、確認結果を示しますが、長文になってしまい申し訳ありません。

#方法
(1)/etc/syslog.confに
kern.=debug /var/log/kern.debug.log
の1行を追加。
(2)iptablesでログのルールを設定した。ログの他のルールは全て無い状態にした。
# iptables -F
# iptables -t nat -F

# iptables -A INPUT -p tcp -j LOG --log-level debug --log-prefix tcp.fil.IN:
# iptables -A OUTPUT -p tcp -j LOG --log-level debug --log-prefix tcp.fil.OUT:
# iptables -t nat -A PREROUTING -p tcp -j LOG --log-level debug --log-prefix tcp.nat.PRE:
# iptables -t nat -A OUTPUT -p tcp -j LOG --log-level debug --log-prefix tcp.nat.OUT:
# iptables -t nat -A POSTROUTING -p tcp -j LOG --log-level debug --log-prefix tcp.nat.POST:

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
LOG tcp -- anywhere anywhere LOG level debug prefix `tcp.fil.IN:'

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
LOG tcp -- anywhere anywhere LOG level debug prefix `tcp.fil.OUT:'

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
LOG tcp -- anywhere anywhere LOG level debug prefix `tcp.nat.PRE:'

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
LOG tcp -- anywhere anywhere LOG level debug prefix `tcp.nat.POST:'

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
LOG tcp -- anywhere anywhere LOG level debug prefix `tcp.nat.OUT:'

#結果
(1)Vine2.6で、w3mで外部のページを見に行ったときのログ。
最初の行でnat-OUTPUTチェインにパケットが流れた。
XXX.XXX.XXX.XXXは私のppp0のinetアドレス、YYY.YYY.YYY.YYYは外部のページのipアドレス。
*** ここから ***
Jan 17 15:45:50 localhost kernel: tcp.nat.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=5656 RES=0x00 SYN URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=5656 RES=0x00 SYN URGP=0
Jan 17 15:45:50 localhost kernel: tcp.nat.POST:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=64564 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=5656 RES=0x00 SYN URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=64 TOS=0x00 PREC=0x00 TTL=56 ID=41315 DF PROTO=TCP SPT=80 DPT=32788 WINDOW=65535 RES=0x00 ACK SYN URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=5656 RES=0x00 ACK URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=284 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=5656 RES=0x00 ACK PSH URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=1452 TOS=0x00 PREC=0x00 TTL=56 ID=41316 DF PROTO=TCP SPT=80 DPT=32788 WINDOW=32900 RES=0x00 ACK URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=8400 RES=0x00 ACK URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=1321 TOS=0x00 PREC=0x00 TTL=56 ID=41317 DF PROTO=TCP SPT=80 DPT=32788 WINDOW=32900 RES=0x00 ACK PSH URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=11200 RES=0x00 ACK URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=52 TOS=0x00 PREC=0x00 TTL=56 ID=41318 DF PROTO=TCP SPT=80 DPT=32788 WINDOW=32900 RES=0x00 ACK FIN URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32788 DPT=80 WINDOW=11200 RES=0x00 ACK FIN URGP=0
Jan 17 15:45:50 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=52 TOS=0x00 PREC=0x00 TTL=56 ID=41319 DF PROTO=TCP SPT=80 DPT=32788 WINDOW=32899 RES=0x00 ACK URGP=0
*** ここまで ***

(2)Vine3.1で、w3mで外部のページを見に行ったときのログ。
nat-OUTPUTチェインにパケットが流れなかった。
*** ここから ***
Jan 17 16:10:30 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32771 DPT=80 WINDOW=5656 RES=0x00 SYN URGP=0
Jan 17 16:10:30 localhost kernel: tcp.nat.POST:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=42572 DF PROTO=TCP SPT=32771 DPT=80 WINDOW=5656 RES=0x00 SYN URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=64 TOS=0x00 PREC=0x00 TTL=56 ID=42379 DF PROTO=TCP SPT=80 DPT=32771 WINDOW=65535 RES=0x00 ACK SYN URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32771 DPT=80 WINDOW=5656 RES=0x00 ACK URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=240 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32771 DPT=80 WINDOW=5656 RES=0x00 ACK PSH URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=1452 TOS=0x00 PREC=0x00 TTL=56 ID=42380 DF PROTO=TCP SPT=80 DPT=32771 WINDOW=32900 RES=0x00 ACK URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32771 DPT=80 WINDOW=8400 RES=0x00 ACK URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=1321 TOS=0x00 PREC=0x00 TTL=56 ID=42381 DF PROTO=TCP SPT=80 DPT=32771 WINDOW=32900 RES=0x00 ACK PSH URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32771 DPT=80 WINDOW=11200 RES=0x00 ACK URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=52 TOS=0x00 PREC=0x00 TTL=56 ID=42382 DF PROTO=TCP SPT=80 DPT=32771 WINDOW=32900 RES=0x00 ACK FIN URGP=0
Jan 17 16:10:30 localhost kernel: tcp.fil.OUT:IN= OUT=ppp0 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY
LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=23130 DF PROTO=TCP SPT=32771 DPT=80 WINDOW=11200 RES=0x00 ACK FIN URGP=0
Jan 17 16:10:31 localhost kernel: tcp.fil.IN:IN=ppp0 OUT= MAC= SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX
LEN=52 TOS=0x00 PREC=0x00 TTL=56 ID=42383 DF PROTO=TCP SPT=80 DPT=32771 WINDOW=32899 RES=0x00 ACK URGP=0
*** ここまで ***
--
K.Tahara

投稿者 xml-rpc : 2005年1月17日 17:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/11584
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。