静的IPを使用する既存のネットワーク(192.168.1。)を含む物理層でDHCP対応ネットワーク(192.168.2。)を構成する必要があります。 2つのインターフェース(サーバーとインターフェースの両方が仮想的)を持つDebian 7サーバーがあり、IPを自分のネットワークのゲートウェイに設定したいと思います。 eth0を使用して元のネットワーク(192.168.1.5にアクセスするインターネットゲートウェイ)にパケットをルーティングし、eth1を使用して自分のネットワークからの着信トラフィックを処理します。
設定されている場合
eth0 Link encap:Ethernet HWaddr 00:0c:29:d4:02:1b
inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed4:21b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21668983 errors:0 dropped:0 overruns:0 frame:0
TX packets:10044848 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10931368249 (10.1 GiB) TX bytes:2383839079 (2.2 GiB)
eth1 Link encap:Ethernet HWaddr 00:0c:29:d4:02:25
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed4:225/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14113604 errors:0 dropped:0 overruns:0 frame:0
TX packets:11269734 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1871598524 (1.7 GiB) TX bytes:10331981618 (9.6 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8158 errors:0 dropped:0 overruns:0 frame:0
TX packets:8158 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:629690 (614.9 KiB) TX bytes:629690 (614.9 KiB)
路線
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.5 0.0.0.0 UG 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth1
iptables-vL
Chain INPUT (policy ACCEPT 5603K packets, 822M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy DROP 138K packets, 8597K bytes)
pkts bytes target prot opt in out source destination
14M 9542M ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
398K 27M ACCEPT all -- eth1 any anywhere anywhere
Chain OUTPUT (policy ACCEPT 2915K packets, 1432M bytes)
pkts bytes target prot opt in out source destination
iptables-tnat-vL
Chain PREROUTING (policy ACCEPT 607K packets, 49M bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 112K packets, 17M bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 6893 packets, 977K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 2391 packets, 374K bytes)
pkts bytes target prot opt in out source destination
363K 24M MASQUERADE all -- any eth0 anywhere anywhere
その後、eth1で特権DHCPサーバーを有効にしました。
これで問題は、サーバーへの接続が常にうまく機能することです(ここにSamba共有とMySQLサーバーがあります)。ただし、時々(ランダムに見える)クライアント(主にWindows 7またはXP)はさまざまな時間失敗します。インターネットに接続する。この場合、192.168.1.110ではpingできますが、192.168.1.5ではpingできません。
付録
FORWARDチェーンがパケットを破棄するという事実は疑わしいので、そのフィルタリングを一時的に無効にしました。
iptables -A FORWARD -j ACCEPT
この新しいルールを使用すると、すべてが正常です。しかし、まだ正確に何が起こっているのかを明確にする必要があります...
付録2
実際のiptablesルールは次のとおりです。
iptables - 保存
# Generated by iptables-save v1.4.14 on Fri Jun 27 20:53:32 2014
*mangle
:PREROUTING ACCEPT [28129147:14012989399]
:INPUT ACCEPT [8479051:1218948772]
:FORWARD ACCEPT [19639349:12792010625]
:OUTPUT ACCEPT [4434912:3183821941]
:POSTROUTING ACCEPT [23940877:15968783924]
COMMIT
# Completed on Fri Jun 27 20:53:32 2014
# Generated by iptables-save v1.4.14 on Fri Jun 27 20:53:32 2014
*nat
:PREROUTING ACCEPT [931027:74896097]
:INPUT ACCEPT [153578:23398245]
:OUTPUT ACCEPT [9169:1292388]
:POSTROUTING ACCEPT [3186:492868]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Fri Jun 27 20:53:32 2014
# Generated by iptables-save v1.4.14 on Fri Jun 27 20:53:32 2014
*filter
:INPUT ACCEPT [2415796:331288771]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1218435:1654003511]
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -j ACCEPT
COMMIT
# Completed on Fri Jun 27 20:53:32 2014
答え1
iptablesチェーンを介してパケットが流れる場所を診断するのに役立つように-j LOGパラメータを使用し、最後に--log-prefix "kern.logまたはsyslogのログを簡単に識別できるいくつかのテキスト"を使用できますあります。デフォルトのAcceptポリシーを許可できます。ドロップされるパケットの種類をよりよく理解するために、ロギングが有効なFORWARDチェーンの末尾にすべての拒否ルールを追加します。
この回路図を見ることもできます。http://www.linuxnetmag.com/share/issue9/iptables3.jpg、iptables チェーン内のデフォルトのパケットフローを表示します。
より良い答えを提供するために定義した完全なiptableルールを持つことは興味深いでしょう。