物好き者

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

スポンサーサイト

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

PageTop

ひかり電話機器->WZR-HP-G54(PPPoE)構成でひかり電話機器にアクセスするには

ひかり電話機器->WZR-HP-G54(PPPoE)->PCという構成で使用しています。

ひかり電話機器の管理画面を開く場合、ひかり電話機器に直接PCを接続しないといけないのが面倒です。
接続変更しないでもひかり電話機器の管理画面にアクセスできるように、WZR-HP-G54にインストールしたDD-WRTの設定を変更しました。

まず、WAN側インターフェースを確認すると、PPPoE設定のためIPが登録されていないので、eth1のエイリアスeth1:0にIPアドレス192.168.1.2を設定しました。
ifconfig eth1:0 192.168.1.2

LAN側からWAN側へはNATが有効なのでそのままアクセスできると思っていましたが、アクセスできません。
iptables -L で設定を確認しましたが、NAT関係が有りません。いろいろ調べたところ、次の情報が見つかりました。

Manpage of IPTABLES のテーブルの欄に、iptableはfilter・nat・mangleというテーブルがあって、-tオプションででテーブル名を指定しないとfilterテーブルが表示される、ということでした。
NAT関係は、natテーブルに登録されているので表示されないということです。

iptables -t nat -L で確認すると、次のように設定されていました。
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT icmp -- anywhere WAN側IP to:LAN側IP
TRIGGER 0 -- anywhere WAN側IP TRIGGER type:dnat match:0 relate:0

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE 0 -- anywhere anywhere
RETURN 0 -- anywhere anywhere PKTTYPE = broadcast
MASQUERADE 0 -- LAN側セグメント LAN側セグメント

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

NATとしてMASQIERADEが設定されていますが、通信できないのを考えると、インターフェースが指定されているのでしょうか。
このため、明示的にeth1:0から出るパケットにMASQIERADEを設定することにしました。

Linux 2.4 Packet Filtering HOWTO: NAT とパケットフィルタリングの混合 のppp0 から出て行くものをマスカレードする、を参考にして次のコマンドを実行しました。
iptables -t nat -A POSTROUTING -o eth1:0 -j MASQUERADE

しかし、エラーが表示されてしまいます。
Warning: weird character in interface `eth1:0' (No aliases, :, ! or *).

インターフェース名にはエイリアス名が使えないようなので、eth1で指定しました。
iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -s LAN側セグメント -d 192.168.1.1 -j MASQUERADE

iptables -t nat -L で確認すると次のようになり、ひかり電話のWeb管理画面にアクセスできるようになりました。
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT icmp -- anywhere WAN側IP to:LAN側IP
TRIGGER 0 -- anywhere WAN側IP TRIGGER type:dnat match:0 relate:0

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE 0 -- anywhere anywhere
RETURN 0 -- anywhere anywhere PKTTYPE = broadcast
MASQUERADE 0 -- LAN側セグメント LAN側セグメント
MASQUERADE 0 -- anywhere anywhere
MASQUERADE tcp -- LAN側セグメント 192.168.1.1 tcp dpt:www

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

あとは起動時に自動実行できるように、Administration>CommandsのStatupにifconfigコマンドを、Firewallにiptablesコマンドを登録して完了です。

IP設定をeth1:0とエイリアスに行いましたが、iptableのことやPPPoEのインターフェースになっていることを考えると、eth1でも問題ないのでは、と考えています。

スポンサーサイト

PageTop

コメント


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

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