我们的设置如下:
+---------+ +------------+ /
| | | 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