DD-WRTファームウェアと4つの外部IPを実行しているBroadcomBCM5352ルーターがあります。自宅のネットワーク構成では、最初にルーターがあり、次にルーターに接続されたスイッチがあります(アパート全体で複数のケーブルを使用しないようにするため)。
サーバーがスイッチに接続されているので、可能であれば、そのサーバーに別の外部IPを割り当てたいと思います(つまり、指定された外部IPへのすべてのトラフィックをサーバーにルーティングするようにルーターに指示します)。私は静的IPを持っていません、私のISPはDHCPしか提供していません。
それで、これを構成する方法はありますか?ファームウェアはiptablesをサポートしているので、iptablesで実行できるのであれば、それが解決策です。この機能は双方向NATマッピング(1:1マッピング)と呼ばれるpfで行うことができます。
まず、別の人が前述したように、ISPがDHCPを使用して複数のIPを提供しているという話は聞いたことがありません。これを確認することをお勧めします。
これはDD-WRT固有のものではありません。
...それらが実際にDHCPですべてを配布する場合は、1つのインターフェイスカードに複数のMACが必要になるか、4xNICがすべてスイッチに接続されてからISPルーターに接続される必要があります。これは、DHCPサーバーがすべて同じMAC上にある場合でも、同じIPを引き続き提供することを意味します。 Linuxが同じNICで複数のMACを実行する必要があるとは思いません。
この後、それはかなり簡単です:
-必要なIPごとに 'ip addr X.X.X.X dev eth0(またはその側で使用するNIC))を使用します。
Iptablesでは通常どおりNAT)を設定する必要があります
次に、着信トラフィックをサーバーに転送するようにDNAT(ポート転送)を構成する必要があります。サーバーの内部IPに転送するようにこれらのルールを設定します...
そのサーバーが常にそのIPから来るようにしたい場合は、SNATを使用してこれを行う必要があり、マングルテーブルでパケットをマークしてから、そのための「iprule」コマンドを設定する必要があります。
ここのルーターでこれをすべて行います...
2 80 DNAT tcp -- eth2 * 0.0.0.0/0 x.x.x.74 tcp dpt:53 to:10.10.x.5:53
0 0 DNAT udp -- eth2 * 0.0.0.0/0 x.x.x.74 udp dpt:53 to:10.10.x.5:53
1197 60064 DNAT all -- eth2 * 0.0.0.0/0 x.x.x.73 to:10.10.x.9
Chain POSTROUTING(policy ACCEPT 2686 packet、403K bytes) pkts bytes target prot opt in out source destination 14613 903K SNAT all- * eth0 0.0.0.0/00.0。 0.0/0 to:xx.xx75 0 0SNATすべて-* eth2 10.10.x.98 0.0.0.0/0 to:xxx.xxxx.69 178 11500SNATすべて- -* eth2 10.10.x.8 0.0.0.0/0 to:xx.xx.219.xx 0 0SNATすべて-* eth2 10.10.x.9 0.0.0.0/0 to:xxx.xxx .xx.xx 1 60SNATすべて-* eth2 10.10.x.18 0.0.0.0/0 to:xx.xx70 0 0SNATすべて-* eth210.10.x。 5 0.0.0.0/0 to:xxx74 14327 871K SNAT all- * eth2 0.0.0.0/0 0.0.0.0/0 to:xxx66
iproute2のルールは次のようになります。
0:すべてのルックアップローカルから 18:すべてのfwmark0x4ルックアップT1から 19:すべてのfwmark0x3ルックアップT1から 20:すべてのルックアップメインから 21:xxx0/20ルックアップケーブルから 22:xxx64/27ルックアップT1から 1000:すべてのルックアップ110から 2000:すべてのルックアップメインから 32766:すべてのルックアップメイン 32767:すべてのルックアップデフォルト およびマングルテーブルから-これにより、特定のマシンが最初にルールを使用するようになるため、 right IP/interface: Chain PREROUTING(policy ACCEPT 1921K packet、1149M bytes) pkts bytes target prot opt in out source destination 10 1304 MARK tcp- --eth1 * 10.10.x.18 0.0.0.0/0 tcp dpt:25 MARK set 0x3 0 0 MARK tcp--eth1 * 10.10.x.9 0.0.0.0/0 tcp dpts:1719:1720 MARK set 0x4 0 0 MARK tcp --eth1 * 10.10.x.9 0.0.0.0/0 tcp spts:60100:60200 MARK set 0x4 0 0 MARK udp --eth1 * 10.10.x.9 0.0.0.0/0 udp spts:60100:60200 MARK set 0x4
TCP 25を常に特定のルートに送信するようにマークする方法に注意してください。これは、MXレコードが多くの受信SMTPサーバーで示すIPを送信しない場合、メールがバウンスされることです。
Iptablesでできると思いますが、少し難しいでしょう。覚えていませんが、何年も前に調べていたところ、誰かが動的IPを使ったサンプルをいくつか見せてくれました。次に、代わりにいくつかの仮想サーバーファイアウォールインスタンスに切り替えたので、外部動的(dhcp)IPごとに1つあります-すべて単一の外部ホストを介してNIC(はい、Microsoftを実行しますISA現時点では、それは実際には問題ではありません)これははるかに簡単に思えたので、何らかの理由で汎用サーバーOSでファイアウォールとNATルーターを実行するのが好きです;)
スウェーデンの多くのISPは、DHCPを介して複数のパブリックダイナミックIPを配布しています。5は非常に一般的なデフォルトの量ですが、すべてが配布するわけではありません。そうすれば、自宅で複数のホストをサポートするためにNAT)の恐怖に頭を悩ませる必要はありません...ただし、消費者レベルのEdgeファイアウォールは通常それを処理できません。推測...
DD-WRTフォーラムを検索しましたか? ここ
ルーターでDD-WRTを実行していて、5つのDHCPIPを割り当てるISPがあります。しかし、私は別のより単純なルートを取りました。インターネット接続をスイッチに直接接続し、スイッチをサーバーとDD-WRTルーターに接続します。各デバイスは、独自のネットワーク接続上にあるかのように独自のDHCPIPを取得します。ただし、インターネット接続の速度に対して100Mbps(スイッチの速度)でサーバーと通信することはできます。
もう1つのオプションは、サーバーをルーターに接続してDMZサーバーにすることです。これは同様の効果がありますが、ルーターとサーバーはIPを共有します。
これを行う4番目のはるかに複雑な方法は、サーバーで2つのNICを使用し、サーバーに発信接続に仮想インターフェイスを追加させ、その仮想インターフェイスをルーターにブリッジすることです。その場合、両方のデバイスに独自のIPがあります。 (この場合、サーバーは、ルーターに実行させたいと指定したことを実行します)
はい、iptablesを使用することは可能ですが、ISPから2つのIPを割り当てる必要があります。それを実現する唯一の方法は静的IPを使用することだと99%確信しています。ISPがDHCP経由で2つのIPを提供しているという話は聞いたことがありません。