vine-users ML アーカイブ



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

  • From: "K.Tahara" <taharak@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:069760] Re: Vine3.1 にてiptables-nat-O UTPUTが機能しない
  • Date: Mon, 17 Jan 2005 17:55:47 +0900
田原@越谷です。花井様、ありがとうございます。

On Mon, Jan 17, 2005 at 09:51:30AM +0900, K Hanai wrote:
> 花井@京都です。
> 
> From: "K.Tahara" <taharak@xxxxxxxxxxxxxxx>
> > > 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