これは重複していましたが、以前に提供された解決策は私には効果がありませんでした。すべてが以下に説明されています。
インターネットが接続されている2つのネットワークがあります。両方が機能することを願っています...要求がネットワーク#1に送信されると、ネットワーク#2はゲートウェイを介して要求に応答する必要があります...ネットワーク#2と同じです。ゲートウェイが応答する必要があります。それを介して要求します。
ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:82:ca:0c
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::57ac:b6e:33c1:8bbb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:797 errors:0 dropped:0 overruns:0 frame:0
TX packets:797 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:219915 (214.7 KiB) TX bytes:117516 (114.7 KiB)
wlan0 Link encap:Ethernet HWaddr b8:27:eb:d7:9f:59
inet addr:192.168.2.200 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::6463:5ba:3b28:6d39/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1532 errors:0 dropped:1215 overruns:0 frame:0
TX packets:201 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:364160 (355.6 KiB) TX bytes:29417 (28.7 KiB)
ip route show table main
default via 192.168.1.1 dev eth0 metric 202
default via 192.168.2.1 dev wlan0 metric 303
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.200 metric 202
192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.200 metric 303
部分的に動作する解決策を得ました。
ip route add default via 192.168.1.1 dev eth0 table 100
ip route add default via 192.168.2.1 dev wlan0 table 200
ip rule add from all lookup main suppress_prefixlength 0
ip rule add from 192.168.1.0/24 lookup 100
ip rule add from 192.168.2.0/24 lookup 200
たとえば、これにより、Apache(ルータからのポートリダイレクト後)は両方のネットワークからの要求に応答しますが、外部からのみ応答します。ローカル接続が通過したり動作が停止したり192.168.1.200
...192.168.2.200
私の言葉は...ローカルネットワークからApacheに接続できなくなりました。
誰でも私を助けることができますか?
私も試しましたこれ解決しましたが、うまくいきません...パブリックIPを介してApacheサーバーに接続できませんLINKs2
...おそらく私が何か間違っているのでしょうか?ポート転送が機能しているようですiftop
。それでも答えが得られませんでした。
rt_tables
200 LINK1
201 LINK2
route.sh
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.200 table LINK1
ip route add 192.168.2.0/24 dev wlan0 src 192.168.2.200 table LINK2
ip route add default via 192.168.1.1 table LINK1
ip route add default via 192.168.2.1 table LINK2
ip rule add from 192.168.1.1 table LINK1
ip rule add from 192.168.2.1 table LINK2
以来:
sigma@sigma:~/temp $ ip route show table LINK1
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 scope link src 192.168.1.200
sigma@sigma:~/temp $ ip route show table LINK2
default via 192.168.2.1 dev wlan0
192.168.2.0/24 dev wlan0 scope link src 192.168.2.200
sigma@sigma:~/temp $ ip route show table main
default via 192.168.1.1 dev eth0 metric 202
default via 192.168.2.1 dev wlan0 metric 303
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.200 metric 202
192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.200 metric 303
sigma@sigma:~/temp $ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 202 0 0 eth0
default fiber.home 0.0.0.0 UG 303 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 202 0 0 eth0
192.168.2.0 * 255.255.255.0 U 303 0 0 wlan0
sigma@sigma:~/temp $ ip route show table all
default via 192.168.1.1 dev eth0 table LINK1
192.168.1.0/24 dev eth0 table LINK1 scope link src 192.168.1.200
default via 192.168.2.1 dev wlan0 table LINK2
192.168.2.0/24 dev wlan0 table LINK2 scope link src 192.168.2.200
default via 192.168.1.1 dev eth0 metric 202
default via 192.168.2.1 dev wlan0 metric 303
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.200 metric 202
192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.200 metric 303
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 192.168.1.0 dev eth0 table local proto kernel scope link src 192.168.1.200
local 192.168.1.200 dev eth0 table local proto kernel scope host src 192.168.1.200
broadcast 192.168.1.255 dev eth0 table local proto kernel scope link src 192.168.1.200
broadcast 192.168.2.0 dev wlan0 table local proto kernel scope link src 192.168.2.200
local 192.168.2.200 dev wlan0 table local proto kernel scope host src 192.168.2.200
broadcast 192.168.2.255 dev wlan0 table local proto kernel scope link src 192.168.2.200
local ::1 dev lo proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev wlan0 proto kernel metric 256
unreachable default dev lo table unspec proto kernel metric 4294967295 error -101
local ::1 dev lo table local proto none metric 0
local fe80::57ac:b6e:33c1:8bbb dev lo table local proto none metric 0
local fe80::e94f:8405:bbc7:20f5 dev lo table local proto none metric 0
ff00::/8 dev eth0 table local metric 256
ff00::/8 dev wlan0 table local metric 256
unreachable default dev lo table unspec proto kernel metric 4294967295 error -101
ベストアンサー1
質問を正しく理解していると仮定すると、2つのローカルインターフェイスを介して2つの「インターネット」接続があり、それを介して同じパスを介して応答を受信したいと思います。
2つのクリーンなソリューションを考えることができます。
1) Source IP を基準に Policy Routing を行う。ソースIPがeth0のIPの場合は1つのゲートウェイを使用し、それ以外の場合は別のゲートウェイを使用する必要があります。これはあなたがしたことに似ています。私の頭の上から見ると:
ip route add default via GW1 table gw1
ip route add default via GW2 table gw2
ip rule from IP1 table gw1
ip rule from IP2 table gw2
2) iptables、接続トレース、および CONNMARK 宛先を使用して着信パケットを表示します。このタグは発信するすべてのパケットから復元され、ポリシールーティングはこのタグに基づいて行われます。もう一度、私の頭の上から:
iptables -A INPUT -i wlan0 -t mangle -j MARK --set-mark 1
iptables -A INPUT -i eth0 -t mangle -j MARK --set-mark 2
iptables -A INPUT -j CONNMARK --save-mark
iptables -A OUTPUT -j CONNMARK --restore-mark
ip route add default via GW1 table gw1
ip route add default via GW2 table gw2
ip rule fwmark 1 table gw1
ip rule fwmark 2 table gw2
上記には少し変更が必要な場合がありますが、これは一般的な考えです。