所有しているサーバーの構成に問題があります。 Linux Ubuntu Server Edition 10.04 LTSをOSとして使用し、2つのNIC(eth0とeth1)を使用し、OpenVPNを使用します。
eth0は3Gルーター(静的IP:192.168.0.254)に接続されているスイッチに接続され、eth1は(事前に)不明なLANに接続され、DHCPを使用してIPアドレスを取得することがあります。一度にインターネットにアクセスできるのは、これらのインターフェースの1つだけです。つまり、ケーブルがeth1に接続されている場合は、3Gルーターをシャットダウンする必要があります*。
最終的には、すべてのトラフィックがインターネットに接続されているインターフェイスを使用してVPNを通過するだけでなく、特定のIPアドレスとポート(たとえば192.168.45.1:8443)へのすべてのトラフィックがeth1を使用するようにします。
それを設定する過程で、私は最初に3G部分に集中し、eth1のプラグを抜いたままにして、VPNを使用してeth0を介してVPN内の他のサーバーと通信することに成功しました。
/ etc/network/interfacesは次のようになります。
_auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.254
auto eth1
iface eth1 inet dhcp
_
次に、イーサネットケーブルをeth1に接続し、VPNを無効にして、3Gルーターをシャットダウンしました。 eth1が接続されているLANにはDHCPサーバー(192.168.0.254)があり、たまたまeth0に接続されているマシン(192.168.0.x)と同じIP範囲を持っています。将来、両方のサブネットが異なることを保証することはできません。
サーバーはDHCPサーバーからIP(192.168.0.45)を取得しますが、DHCPサーバーインターフェイスで接続されているデバイスのリストにサーバーをpingしたり表示したりすることはできません。
/ etc/network/interfacesでゲートウェイ回線をコメントアウトした後、DHCPサーバーとLAN内の他のサーバーにpingを実行できますが、その逆はできません。また、pingに使用するインターフェイスを指定した場合にのみ機能します。
ping 192.168.0.254
_PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
From 192.168.0.100 icmp_seq=1 Destination Host Unreachable
From 192.168.0.100 icmp_seq=3 Destination Host Unreachable
From 192.168.0.100 icmp_seq=4 Destination Host Unreachable
^C
--- 192.168.0.254 ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5007ms, pipe 3
_
ping 192.168.0.254 -I eth1
_PING 192.168.0.254 (192.168.0.254) from 192.168.0.100 eth1: 56(84) bytes of data.
64 bytes from 192.168.0.254: icmp_seq=1 ttl=255 time=0.738 ms
64 bytes from 192.168.0.254: icmp_seq=2 ttl=255 time=0.832 ms
64 bytes from 192.168.0.254: icmp_seq=3 ttl=255 time=0.809 ms
64 bytes from 192.168.0.254: icmp_seq=4 ttl=255 time=0.795 ms
--- 192.168.0.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.738/0.793/0.832/0.044 ms
_
Eth1はアドレスではないため、pingを実行しても_from 192.168.0.100
_と表示される理由がわかりません。
私はIPポリシールーティングについて読みましたが、それは私が最終的に望むものを達成するために向かうべき方法のようでした(とりわけ、eth1を介して特定のIP /ポートとの間のトラフィックを強制します)。私が正しく理解している場合、LAN内の他のマシンからサーバーにpingを実行できない原因は、デフォルトルートの場合にトラフィック全体をeth0経由で返すことです。
しかし、route
の出力を見ると、デフォルトルートはeth1にあるように見えますか?
_Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.0.254 0.0.0.0 UG 100 0 0 eth1
_
私は この投稿 を読み、それにリンクされているものを、eth0に入るすべてのトラフィックがeth0に出て、eth1にも同じになるように適応させようとしました。
_ip route add default dev eth0 table 3G
ip route add default dev eth1 table LAN
ip rule add fwmark 0x1 table 3G
ip rule add fwmark 0x2 table LAN
iptables -A OUTPUT -t mangle -o eth0 -j MARK --set-mark 1
iptables -A OUTPUT -t mangle -o eth1 -j MARK --set-mark 2
_
しかし、それは機能せず、その後、DHCPサーバーにpingを実行できなくなります。私はそれがどのように機能するかを誤解したと思います...
私は何をすべきか?
また、今のところVPNの部分は省略していますが、率直に思ったように機能しないのではないかと少し心配です。ルートとVPNはどのように相互作用しますか? eth1が接続されていない場合、eth1を介して特定のIP /ルートとの間のすべてのトラフィックを強制するルートを解決できないことを確認する必要があります。
よろしくお願いします。必要に応じて、他の情報を提供させていただきます。質問がすでにどこかで回答されている場合、私がそれを見つけられなかった場合(またはそれがあまりにも基本的である場合)、すみません。
*ケーブルが接続されている場合、IPアドレスのサブセットとの間を除くすべてのトラフィックがeth1を通過するように構成できれば、さらに良いでしょう。
編集>
eth0はサブネット10.13.37.0/255.255.255.248にあり、サーバーにはIPとして10.13.37.2があります。
すべてのトラフィックはVPNを通過しますが、ポート443で192.168.45.1(192.168.45.0/24はOpenVPNサブネット)へのトラフィックは、VPNを介して転送されたものを使用しながら、eth1のみを使用します(したがって、到達できない場合は到達不能になります)接続が存在します)、ポート8443の192.168.45.1へのトラフィックはeth0のみを使用します。それは可能ですか?
_ip route add default dev eth0 table 3G
ip route add default dev eth1 table LAN
ip rule add fwmark 0x1 table 3G
ip rule add fwmark 0x2 table LAN
iptables -A OUTPUT -t mangle -o eth0 --dst 192.168.45.1 --dport 8443 -j MARK --set-mark 1
iptables -A OUTPUT -t mangle -o eth1 --dst 192.168.45.1 --dport 443 -j MARK --set-mark 2
_
しかし、iptrafを使用すると、443または8443のいずれかで何かを取得するときに、eth1のみが使用されることがわかります。
ありがとう!
正しいケーブルを差し込んでよろしいですか? 192.168.0.xlanのケーブルをeth0ではなくeth1に接続しているように見えます。
そうでない場合は、両方のケーブルを抜いて、1本のケーブルだけを差し込んだ状態でpingを実行しようとしましたか?お気に入り:
ところで、1つのLAN設定を変更してください! eth1 lan構成を変更できない場合は、3Gルーターでeth0を192.168.0.xから192.168.1.x(そのLAN内のすべてのコンピューターに対して)に変更してください。そうしないと、同じIPLANで常に問題が発生します。