この質問は、以下の回答とコメントに関連しています。カーネル IP 転送とは何ですか?
@LawrenceCより
投稿1:
したがって、上記の例では、NIC 2 にインターネット接続がある場合、NIC 2 をデフォルト ルートとして設定し、NIC 1 から着信するトラフィックのうち、192.168.2.0/24 宛てではないものはすべて NIC 2 を通過することになります。
また、投稿2:
インターネットに面したインターフェース(上記のNIC 1)では、チェーン上のiptablesのPOSTROUTINGにMASQUERADEルールが必要です。 revsys.com/writings/quicktips/nat.html
でhttp://www.revsys.com/writings/quicktips/nat.htmlそれはこう言います:
次に、内部ネットワークの /dev/eth1 から外部ネットワークの /dev/eth0 にパケットを転送するように iptables を設定する必要があります。
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
私がFORWARD
(投稿2)転送がすでに設定されている場合はip_forward
(投稿1):
echo 1 > /proc/sys/net/ipv4/ip_forward
答え1
設定ip_forward
によりパケット転送が可能一般的に一部の Linux ディストリビューションでは、エラーによって設定されたiptables
場合など、セキュリティ上の理由から転送されたパケットを許可しない場合があります。ip_forward
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
すでに確立された接続への応答または同様の関連パケットであるeth0
からのパケットを許可するルールを設定します。eth1
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
eth1
からへのパケットを許可する明示的なルールを設定しますeth0
。
これにより、デフォルトの構成に関係なく、クライアントはeth1
背後のサーバーにアクセスできるようになります。eth0
iptables