这是我的网络拓扑:
我希望每个数据代理传入请求都eth0
通过回复eth0
,并且eth1
也会回复传入的数据eth1
......
活动路线:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.110.1 0.0.0.0 UG 15 0 0 eth2
192.168.110.96 * 255.255.255.248 U 0 0 0 eth2
192.168.200.0 * 255.255.255.248 U 0 0 0 eth0
192.168.200.96 * 255.255.255.248 U 0 0 0 eth1
我尝试了这些命令,但是没有作用... :(
ip route flush table 2002
ip route flush table 2001
ip route add 10.10.8.0/22 dev eth0 src 192.168.200.2 table 2002
ip route add 192.168.100.0/24 dev eth0 src 192.168.200.2 table 2002
ip route add default via 192.168.200.1 table 2002
ip route add 10.10.8.0/22 dev eth1 src 192.168.200.101 table 2001
ip route add 192.168.100.0/24 dev eth1 src 192.168.200.101 table 2001
ip route add default via 192.168.200.100 table 2001
ip rule add from 192.168.200.2 table 2002
ip rule add from 192.168.200.101 table 2001
我该如何继续?
答案1
现在我知道我为什么不明白了……路由是在网络级别而不是端口级别完成的。您需要将网络细分为 3 个独立网络,并将每个网络绑定到每个网卡,然后让路由器将数据包路由到正确的以太网端口。
由于每个网卡都有自己的网络地址,因此任何具有特定地址的传入数据包也将通过该网络返回。
例如:
- eth0:192.168.100.0/24 局域网
- eth1:192.168.101.0/24 接入点
- Eth3:默认网关/24:ADSL 调制解调器
然后,所有不属于 192.168.0.0/16 的流量都将流向互联网,并且所有本地流量将保持本地。
要进行端口转发,您有两个选择:
如果你添加额外的硬件就像 Big-IP在路由器和服务器之间,将能够检查数据包,并根据端口通过动态更改 IP 地址将内容发送到 Eth0 和 Eth1,然后服务器将再次将其发送到正确的接口,然后 BigIP 会将其转换回原来的状态...
你也可以完全放弃路由器,使用服务器作为路由器来完成同样的事情,然后你只需
iptables
检查数据包并对其进行路由。
但是您尝试做的事情是不可能的(仅在服务器中使用硬件路由器和软件路由),因为没有“HTTP / FTP”的概念,因为它处于端口级别...... :-(