web-dev-qa-db-ja.com

複数の外部IP用にDD-WRTを構成しますか?

DD-WRTファームウェアと4つの外部IPを実行しているBroadcomBCM5352ルーターがあります。自宅のネットワーク構成では、最初にルーターがあり、次にルーターに接続されたスイッチがあります(アパート全体で複数のケーブルを使用しないようにするため)。

サーバーがスイッチに接続されているので、可能であれば、そのサーバーに別の外部IPを割り当てたいと思います(つまり、指定された外部IPへのすべてのトラフィックをサーバーにルーティングするようにルーターに指示します)。私は静的IPを持っていません、私のISPはDHCPしか提供していません。

それで、これを構成する方法はありますか?ファームウェアはiptablesをサポートしているので、iptablesで実行できるのであれば、それが解決策です。この機能は双方向NATマッピング(1:1マッピング)と呼ばれるpfで行うことができます。

3
Torandi

まず、別の人が前述したように、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を送信しない場合、メールがバウンスされることです。

2
user13587

Iptablesでできると思いますが、少し難しいでしょう。覚えていませんが、何年も前に調べていたところ、誰かが動的IPを使ったサンプルをいくつか見せてくれました。次に、代わりにいくつかの仮想サーバーファイアウォールインスタンスに切り替えたので、外部動的(dhcp)IPごとに1つあります-すべて単一の外部ホストを介してNIC(はい、Microsoftを実行しますISA現時点では、それは実際には問題ではありません)これははるかに簡単に思えたので、何らかの理由で汎用サーバーOSでファイアウォールとNATルーターを実行するのが好きです;)

スウェーデンの多くのISPは、DHCPを介して複数のパブリックダイナミックIPを配布しています。5は非常に一般的なデフォルトの量ですが、すべてが配布するわけではありません。そうすれば、自宅で複数のホストをサポートするためにNAT)の恐怖に頭を悩ませる必要はありません...ただし、消費者レベルのEdgeファイアウォールは通常それを処理できません。推測...

0
Oskar Duveborn

DD-WRTフォーラムを検索しましたか? ここ
ルーターでDD-WRTを実行していて、5つのDHCPIPを割り当てるISPがあります。しかし、私は別のより単純なルートを取りました。インターネット接続をスイッチに直接接続し、スイッチをサーバーとDD-WRTルーターに接続します。各デバイスは、独自のネットワーク接続上にあるかのように独自のDHCPIPを取得します。ただし、インターネット接続の速度に対して100Mbps(スイッチの速度)でサーバーと通信することはできます。

もう1つのオプションは、サーバーをルーターに接続してDMZサーバーにすることです。これは同様の効果がありますが、ルーターとサーバーはIPを共有します。

これを行う4番目のはるかに複雑な方法は、サーバーで2つのNICを使用し、サーバーに発信接続に仮想インターフェイスを追加させ、その仮想インターフェイスをルーターにブリッジすることです。その場合、両方のデバイスに独自のIPがあります。 (この場合、サーバーは、ルーターに実行させたいと指定したことを実行します)

0
lanrat

はい、iptablesを使用することは可能ですが、ISPから2つのIPを割り当てる必要があります。それを実現する唯一の方法は静的IPを使用することだと99%確信しています。ISPがDHCP経由で2つのIPを提供しているという話は聞いたことがありません。

0
davr