私は3つのインターフェースを備えたLinuxサーバーを持っています-1つはネット用、2つは内部用です。以下に内部のものを示します。
eth1
inet addr:192.168.10.253
Bcast:192.168.255.255
マスク:255.255.0.0eth2
inet addr:10.10.10.253
Bcast:10.10.10.255
マスク:255.255.255.0
ゲート192.168.10.253とそのサブネットからのIPを備えた1台の内部作業マシンと、ゲート10.10.10.253とそのサブネットからのIPを備えたもう1台の内部作業マシンを用意します。これらのマシン間でアクセスできる必要があります。
Linuxボックスには、次のルーティングテーブルがあります。
default via * dev eth0
10.10.10.0/24 dev eth2 proto kernel scope link src 10.10.10.253
* dev eth0 proto kernel scope link src *
192.168.10.0/16 dev eth1 proto kernel scope link src 192.168.10.253
静的ルートを追加しました:
route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.10.253
そしてその結果
10.10.10.0/24経由192.168.10.253deveth1スコープリンク
しかし、eth1から稼働中のインターフェース10.10.10.2にpingを実行しようとすると、常に宛先ホストに到達できなくなります。構成として何が欠けていますか?
基本的な設定を次に示します。
Eth1からpingを実行するとき
ping 10.10.10.2 -I eth1
PING 10.10.10.2 (10.10.10.2) from 192.168.10.253 eth1: 56(84) bytes of data.
From 192.168.10.253 icmp_seq=1 Destination Host Unreachable
eth2からpingを実行すると:
ping 10.10.10.2 -I eth2
PING 10.10.10.2 (10.10.10.2) from 10.10.10.253 eth2: 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=0.547 ms
ネットワーク図によると、192.168.10.253
デバイスから10.10.10.0/24
ネットワークへの物理リンクがないため、10.10.10.2
をpingしたときに応答を期待する方法は地球上にありません。 eth1
の。 10.10.10.2
に正常にpingを実行する唯一の方法は、ping要求をeth2
から送信することです。
これが本当に機能する必要がある場合、解決策は192.168.10.253
を10.10.10.2
に接続し、ルートを作成することです。これをどのように行うかは、2つのボックスの性質によって異なります。サーバーの場合は、接続できる(そして適切に構成できる)2番目のネットワークポートがある可能性があります。彼らが2番目のネットワークインターフェースを持っていない場合は、ネットワーク構成を完全に変更せずに運が悪い可能性があります。私の提案は、おそらく少し XY問題 にあるので、何を達成する必要があるかを説明する新しい質問を投稿することです。それを達成しようとしています。
あなたしないでくださいプライベートサブネットのユーザーが通信できるようにするために別のルートが必要です。次のコマンドのみが必要です。
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
最初の2つのコマンドは、2つのプライベートサブネット間でトラフィックが流れることを許可するようにファイアウォールに指示し、3番目のコマンドはカーネルレベルで同じことを行います。両方が必要です。
それで全部です。