物好き者

物好き者が行ったことを載せています。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

PPPoEマルチセッションを使い始めました

DD-WRTでのPPPoEマルチセッションへの挑戦での成果を元に、WZR-G144Nをインターネット接続用ルーターとしてPPPoEマルチセッションで使い始めました。

インターネットへのアクセスは問題なかったのですが、公開サーバーへのアクセスが出来なくなっていました。

iptableの設定を確認したところ、ポートフォワードではnatテーブルのPREROUTINGでDNAT設定が行われますが、受け付けるパケットのdestinationアドレスが、WANインターフェースのeth1 IPとなっていました。
このため、PPPoE接続時のIP宛てパケットを受け取らないようになっていました。

Chain PREROUTING (policy ACCEPT 44 packets, 2381 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT icmp -- any any anywhere 192.168.1.2 to:ルーターIP
0 0 DNAT tcp -- any any anywhere 192.168.1.2 tcp dpt:ポート1 to:サーバーIP:ポート1
0 0 DNAT tcp -- any any anywhere 192.168.1.2 tcp dpt:ポート2 to:サーバーIP:ポート2
0 0 TRIGGER 0 -- any any anywhere 192.168.1.2 TRIGGER type:dnat match:0 relate:0

このため、PREROUTINGに設定を追加することにしました。
追加する場合、destinationIPとしてPPPoE接続時のローカルIPが必要なので、ip-upで設定するようにしました。
ip-upで追加するだけだと、切断・接続が繰り返されるとiptableがたくさん設定されてしまいます。このため、フレッツでないPPPoE接続の時に既存IPの設定を削除・PPPoE接続時のローカルIPの設定を追加、という処理にしました。
フレッツのPPPoE接続である・ないは、フレッツ接続時のルーティングテーブル追加で条件分岐をしているので、ここにelse処理に追加します。

既存IPの設定削除は、プロセスIDファイルのように接続IPファイルを、PPPoE接続時に/tmp/pppに作成して、次回PPPoE接続時にこのIPの設定を削除します。
PPPoE接続時のローカルIPでの設定追加は、DD-WRTでのPPPoEマルチセッションへの挑戦17 で調べたPPPoE接続時に渡される環境変数IPLOCALを使って設定を追加します。

ip-upには次を追加しました。
 else
  export PREIP=`cat /tmp/ppp/preip`
  iptables -t nat -D PREROUTING -d $PREIP -j TRIGGER --trigger-type dnat
  iptables -t nat -D PREROUTING -p tcp -d $PREIP --dport ポート2 -j DNAT --to サーバーIP:ポート2
  iptables -t nat -D PREROUTING -p tcp -d $PREIP --dport ポート1 -j DNAT --to サーバーIP:ポート1
  iptables -t nat -D PREROUTING -p icmp -d $PREIP -j DNAT --to ルーターIP

  iptables -t nat -I PREROUTING 4 -d $IPLOCA -j TRIGGER --trigger-type dnat
  iptables -t nat -I PREROUTING 3 -p tcp -d $IPLOCA --dport ポート2 -j DNAT --to サーバーIP:ポート2
  iptables -t nat -I PREROUTING 2 -p tcp -d $IPLOCA --dport ポート1 -j DNAT --to サーバーIP:ポート1
  iptables -t nat -I PREROUTING 1 -p icmp -d $IPLOCA -j DNAT --to ルーターIP
  echo $IPLOCAL > /tmp/ppp/preip

これで外部からのアクセスも出来るようになりました。

スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。