ルーターの元のファームウェアで、ポート80からLAN内のサーバーへのポート転送を定義しました。これを外部動的DNSサービスと組み合わせて使用しました。
DD-WRTにアップグレードしましたが、残念ながら、ポート転送はoutside LANからの外部IPへのリクエストに対してのみ機能します。 LANの内部からは、内部IPでのみサーバーにアクセスできます。
inside LANからも外部IP(および動的外部IPに接続されているドメイン名)に適切にアクセスするにはどうすればよいですか?
標準のDD-WRT定義でそれを達成する方法を見つけることを好むが、たとえばiptablesは問題外ではありません。
最近のDD-WRTビルドのバグのようです。
Iptablesを使用します。
iptables -t nat -I POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE
(特定のLANに従ってサブネットを変更します)
UrElの回答の趣旨:さらに調整することなくコピーして貼り付けるだけの自己構成iptables
スクリプトは DD-WRTフォーラム にあります。
insmod ipt_mark
insmod xt_mark
iptables -t mangle -A PREROUTING -i ! `get_wanface` -d `nvram get wan_ipaddr` -j MARK --set-mark 0xd001
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE
ジャレットが述べたように、これはファイアウォールスクリプトとして使用する必要があり、スタートアップスクリプトとして使用する必要はありません。
「セキュリティ」->「ファイアウォール」タブで「フィルタWAN NATリダイレクト)」を無効にしてみてください。ヘルプの説明から:
フィルターWAN NATリダイレクションにより、LAN上のホストがWANルーターのアドレスを使用して、LAN上のサーバーに接続するのを防ぎますポートリダイレクションを使用して設定されています)。
あなたの本当の問題は、DNS Aレコードの2つのビューが必要なことです。外部的に、動的DNSは、ポート80をローカルホストに転送するネットワークパブリックIPを指します。ローカルホストのローカルホストIPに同じ完全修飾ドメイン名を指すAレコードを持つエントリをdnsmasqに追加するだけです。これを行うには、「サービス」ページ/追加のdnsmasqオプションに以下を追加します。
address=/www.mydomain.com./xx.xx.xx.xx
xxをローカルIPに、ドメイン名をドメイン名に置き換えてください。末尾のドットを忘れないでください。ドットを付けると、ローカルドメイン名が追加されます。