TP-Link 1043ルーターをOpenWrt 14.07にアップグレードしました。すべてが完璧で、WifiとLANがブリッジされています。LANマシンは名前で相互にアクセスでき、ルーターにSSHで接続でき、ルーターはpppoe-wan
インターフェースでインターネットにアクセスできます。
ただし、これは小さな問題の1つです。ルーターはルーティングしません。 LANからインターネットにアクセスできません。面白い例外が1つあります。DNSルックアップは機能します。
/etc/config/firewall
ファイルには、次のセクションが含まれています。
config forwarding
option src 'lan'
option dest 'wan'
option mtu_fix '0'
しかし、iptables
のPOSTROUTINGチェーンをリストすると、何もありません。
# iptables -L POSTROUTING
iptables: No chain/target/match by that name.
# iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
だから私は手動でマスカレードを追加しようとしました、そしてそれはうまくいくようです:
# iptables -t nat -A POSTROUTING -o pppoe-wan -j MASQUERADE
# iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
そして、突然、インターネットがLANから機能するようになりました。しかし、なぜ/et/config/firewall
のUCI構成に基づいてiptablesルールが追加されないのですか?
修正iptablesルールをWebインターフェイスのカスタムルールに追加しました。次に確認したところ、実際に/etc/firewall.user
に含まれている/etc/config/firewall
に挿入されています。しかし、再起動後、ルールはiptablesにリストされません。 LANにはインターネットはありません。 UCI構成解析の問題のようです...
ファイアウォールがまったくないことがわかりました。私の/etc/config/firewall
は完全に無視されます。フィルタールールの欠如に気づくことは難しいだけです。
マスカレーディングは、出力zone
が構成されている場合にのみOpenWrtによってセットアップされます。
例えば:
config zone
option name 'wan'
option masq '1'
#...everything else
またはWebインターフェースで:
UCI構成解析が壊れているようです。 /etc/rc.local
に行を追加して、問題を一時的に修正しました:
iptables -t nat -A POSTROUTING -o pppoe-wan -j MASQUERADE