从多个上行链路拆分访问

从多个上行链路拆分访问

我们的设置如下:

                                    +---------+    +------------+        /
                                    |         |    |  Modem     |       /
                 +-----------+------| Firewall|----+ Provider 1 +-------
        __       |           |      |         |    |            |    /
    ___/  \_     |    +------+----+ +---------+    +------------+   |
  _/        \__  |    |     p4p1  |                               /
 /             \ |    |           |                              |
| Local network -+    |Ubuntu srv |                              |Internet
 \_           __/     |           |                              |
   \__     __/        |     em1   |                               \
      \___/           +------+----+     +------------+             |
                             |          |  Router    |              \
                             +----------+ Provider 2 +----------------
                                        |            |                |
                                        +------------+         

我们希望 Ubuntu 服务器能够使用该em1界面,特别是用于 ftp 流量。

我认为这会让事情变得更加困难,因为 FTP 在被动模式下创建的连接应该通过 正确路由em1。我在这里发出警告是不是错了?

我们不需要也不想要负载平衡,并且 LAN 不会通过 访问互联网em1,因此这会让事情变得更容易,因为 Ubuntu 服务器不必重新路由来自 的任何内容em1

我们为防火墙提供了静态公共地址,但提供商 2 的路由器将具有动态地址,我们必须将其用于 DynDNS 或类似的东西。

我找到了这个如何这个 stackoverflow 问题但我对那个脚本值感到困惑。

IP1 和 IP2 值到底是多少?哪个将是来自 ubuntu 服务器的数据包的默认路由?默认路由在哪里设置,设置为哪个值?在我的情况下 P0_NET 是不必要的吗?

我该如何修改该脚本以适应我的情况?我认为应该至少

#!/bin/bash -v
#IPs of device connected to the internet
IP1=192.168.30.240 (or is it the public ip 85.12.34.56?)
#static IP provided by ISP2
IP2=192.168.0.10 (or is it the dynamic ip 190.12.34.56?)

#Your Gateways (type route in terminal it should be in the same line as default)
P1=192.168.30.1 #gateway provided by ISP1
P2=192.168.0.254 #gateway provided by ISP2

#Your Subnets
P1_NET=192.168.30.0/24 #local network subnet + p4p1
P2_NET=192.168.0.0/24 #em1 LAN
# NICs your internet interfaces
IF1=p4p1
IF2=em1

ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip route add $P2_NET dev $IF2 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add $P1_NET dev $IF1 table T2
ip route add 127.0.0.0/8 dev lo table T2

答案1

这不是路由问题。路由在第 3 层(即 IP 地址)上起作用,但要整理 FTP 流量,您需要第 4 层信息。

确保将 FTP 服务器仅绑定到 em1 的 IP 地址,并且只能在该端访问,同时还使用该 IP 地址上的被动端口。

对于 vsftpd,IP 绑定描述如下https://askubuntu.com/questions/301028/how-to-use-specific-ip-with-vsftpd

答案2

我必须像这样设置适当的路由,不需要过滤,因为我们没有为服务器发起的连接设置路由。

您必须设置表名称/etc/iproute2/rt_tables

255     local
254     main
253     default
0       unspec
200 wan3table
201 wan1table

然后添加以下路线:

ip route add 192.168.30.0/24 dev p4p1 table wan1table
ip route add default via 192.168.30.1 table wan1table

ip route add 192.168.0.0/24 dev em1 table wan3table
ip route add default via 192.168.0.254 table wan3table

ip rule  add from 192.168.30.240 table wan1table
ip rule  add from 192.168.0.10 table wan3table
ip route add 127.0.0.0/8 dev lo table wan1table
ip route add 127.0.0.0/8 dev lo table wan3table
ip route add 192.168.0.0/24 dev em1 table wan1table
ip route add 192.168.30.0/24 dev p4p1 table wan3table

相关内容