我有以下拓扑
.───────────────.
┌──────────────────┐ _.─' `──.
│ │ ,─' '─.
│ ISP Router │ Dynamic IP ; :
│ with NAT ├─────────────────────────────────────────────────────────: Internet ;
│ │ ╲ ╱
└─────────┬────────┘ '─. ,─'
│ `──. _.─'
│ 10.0.0.1 `──────┬──────'
│ │
.──────┴────. .─────┴─────.
,─' '─. ┌─────────────────────────┐ ,─' '─.
,' `. │ │ ,' `.
; LAN : Static DHCP┌──┴───┐ ┌──┴───┐ Static IP ; Public Net :
: ;─────────────┤ eth1 │ My Server │ eth0 ├────────────: ;
╲ 10.0.0.0/24 ╱ 10.0.0.5 └──┬───┘ └──┬───┘ 1.2.3.5 ╲ 1.2.3.4/20 ╱
`. ,' │ Debian Buster │ mydomain.com `. ,'
'─. ,─' │ │ '─. ,─'
`─────────' └─────────────────────────┘ `─────────'
由于历史原因,我的 ISP 使用单独的网络提供静态 IP。这意味着我必须将我的服务器直接连接到一个直接暴露在互联网上的特殊连接(在图中这是eth0
使用 IP 1.2.3.5
)。
但是,我在家里使用这台服务器作为 NAS,因为那是一个完全独立的网络,所以我使用不同的接口连接它,eth1
并使用 address 创建一个静态 DHCP 分配10.0.0.5
。这样,家庭网络中的其他设备可以找到它并访问网络挂载。
最后,我的域有一个 DNS 记录,在这个例子mydomain.com
中,指向1.2.3.5
.
我遇到了几个问题:
- 当我尝试
mydomain.com
从我的局域网访问时,它不起作用。我相信这是因为服务器正在从接口获取数据包,eth0
然后通过回复eth1
,而另一个设备正在丢弃响应,因为它来自不同的 IP。 - 在启动时,服务器应该选择
1.2.3.4
作为网络来引导互联网流量,以便外部访问可以通过mydomain.com
。但是,由于两者eth0
都eth1
可以通过各自的网关访问 Internet,因此有时会启动并选择10.0.0.1
默认网关,然后访问mydomain.com
不起作用。我相信这是一个与交通进入eth0
但离开的类似问题eth1
。
虽然我熟悉基本的网络知识,但我没有像这样将服务器同时连接到多个网络的经验。理想情况下,我想配置服务器,以便:
- 所有互联网流量都通过
eth0
- 所有进入
eth0
的流量都通过回复eth0
- 所有进入
eth1
的流量都通过回复eth1
我的服务器运行 Debian,我将不胜感激。
编辑:所以在禁用 eth1 网关并玩了一下之后,tcpdump
我能够确认流量是从 eth0 进入并离开 eth1。问题是 ISP 没有对流向端点的流量进行 NAT 1.2.3.5
,然后服务器将10.0.0.X
地址识别为位于 interface 上eth1
。