SRX - 路由子网 - 无 NAT

网络工程 瞻博网络 杜松-srx
2021-07-21 18:50:18

我有一个运行 Junos 12.1XD46-D30.2 的 SRX 220 集群。我的 ISP 为我提供了一个 /27 公共 IP 范围。假设 80.0.0.64/27

其配置方式是它们使用前两个可用 IP 地址进行 VRRP 冗余路由器设置。这些是我们的默认网关 IP 地址。

我已将 SRX 接口 reth0.0 配置为使用 IP 地址 80.0.0.71/27

网络概览


问题

如何将设备放置在 IP 地址为 80.0.0.90 的 DMZ 区域中?


我试过什么?


配置1:

reth0.0 在区域 untrust 中
配置为 80.0.0.71/27 reth1.110 在区域 DMZ 中配置为 80.0.0.89/30
SRX 将 80.0.0.65
服务器的默认网关配置为 80.0.0.90/30,其网关为 80.0000。

测试/结果:

  1. SRX 可以 ping 服务器,反之亦然
  2. 服务器无法 ping SRX 的默认网关 80.0.0.65
  3. 当我从远程设备 ping 服务器 (.90) 时,我看到来自提供商网关 80.0.0.65 的 80.0.0.90 ARP 请求,但我没有看到 SRX 发回任何回复
  4. 当我从远程设备 ping SRX reth1.110 (.89) 地址时,我还看到来自我们的提供商网关 80.0.0.65 的 ARP 请求。我没有看到 SRX 发回任何回复

像这样从 reth0.0 接口捕获流量(通过交换机端口镜像)

13:03:31.967949 arp who-has 80.0.0.89 tell 80.0.0.65
13:03:35.612408 arp who-has 80.0.0.90 tell 80.0.0.65

这清楚地向我表明,SRX 不会代表其较小的 /30 子网发送 ARP 回复,该子网位于 reth0.0 接口之外的不同接口 (reth1.110) 上。

我认为这可能是在 security > nat > proxy-arp 下使用代理 arp 设置的一个很好的理由

检查路由表显示我的流量被路由到正确的接口,所以它不是

inet.0: 258 destinations, 267 routes (258 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

80.0.0.88/30     *[Direct/0] 00:44:23
                  > via reth1.110

配置2:

与配置 1 相同,但添加以下内容

设置安全 nat 代理-arp 接口 reth0.0 地址 80.0.0.88/30

测试/结果:

  1. SRX 可以 ping 服务器,反之亦然
  2. 服务器无法 ping SRX 的默认网关 80.0.0.65,但是我现在看到 ICMP 流量离开外部接口上的 SRX 前往 80.0.0.65。我还看到 80.0.0.65 只是将 ARP 请求发回,而 SRX 没有回应这些请求。
13:17:30.182718 IP 80.0.0.90 > 80.0.0.65: ICMP echo request, id 9514, seq 1, length 64
13:17:30.183316 arp who-has 80.0.0.90 tell 80.0.0.65
13:17:31.240008 IP 80.0.0.90 > 80.0.0.65: ICMP echo request, id 9514, seq 2, length 64
13:17:32.240342 IP 80.0.0.90 > 80.0.0.65: ICMP echo request, id 9514, seq 3, length 64
13:17:32.240990 arp who-has 80.0.0.90 tell 80.0.0.65
13:17:33.239726 IP 80.0.0.90 > 80.0.0.65: ICMP echo request, id 9514, seq 4, length 64
13:17:34.239860 IP 80.0.0.90 > 80.0.0.65: ICMP echo request, id 9514, seq 5, length 64
13:17:34.240758 arp who-has 80.0.0.90 tell 80.0.0.65
  1. 当我从远程设备 ping 服务器 (.90) 时,我看到来自提供商网关 80.0.0.65 的 80.0.0.90 ARP 请求,但我没有看到 SRX 发回任何回复
  2. 当我从远程设备 ping SRX reth1.110 (.89) 地址时,我还看到来自我们的提供商网关 80.0.0.65 的 ARP 请求。我没有看到 SRX 发回任何回复

看起来 SRX 仍然没有代表它的 /30 子网发送 ARP 回复,现在我的路由表看起来有点不同,我认为这取决于代理 arp 配置条目。

inet.0: 258 destinations, 268 routes (258 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

80.0.0.88/30       *[Direct/0] 00:58:45
                    > via reth1.110
                    [Static/1] 00:08:33
                      Receive

配置3:

这次我修改了proxy arp语句,让它只覆盖了服务器IP地址

设置安全 nat 代理-arp 接口 reth0.0 地址 80.0.0.90/32

[edit security nat proxy-arp interface reth0.0 address]
+      80.0.0.90/32;
-      80.0.0.88/30;

测试/结果:

  1. SRX可以ping服务器,反之亦然
# run ping 80.0.0.90
PING 80.0.0.90 (80.0.0.90): 56 data bytes
ping: sendto: Can't assign requested address
ping: sendto: Can't assign requested address

--- 80.0.0.90 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss

现在查看 SRX 上的路由表会显示此条目

inet.0: 259 destinations, 268 routes (259 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

80.0.0.90/32       *[Static/1] 00:00:29
                      Receive
  1. 当我从远程设备 ping 服务器 (.90) 时,我看到来自提供商网关 80.0.0.65 的 80.0.0.90 ARP 请求,现在我看到 ARP 回复
13:23:59.327903 arp who-has 80.0.0.90 tell 80.0.0.65
13:23:59.333994 arp reply 80.0.0.90 is-at 00:00:00:ff:b0:00
  1. 当我从远程设备 ping SRX reth1.110 (.89) 地址时,我看到来自我们的提供商网关 80.0.0.65 的 ARP 请求。我没有看到 SRX 发回任何回复

现在看起来 SRX 正在发送 ARP 回复,但由于代理 arp 条目/路由规则,实际上无法将流量路由到正确的接口。


有趣的是,如果我现在将转换恢复到原始状态,因为上游路由器已经缓存了 80.0.0.90 的 ARP 条目,一切正常,直到超时。

我将在等待 ARP 条目超时的同时发布此信息(希望不是 4 小时!!)。

有谁知道我错过了什么?

通常这并不难,因为您的 ISP 会在您和您之间提供一个 /30 PTP 链接,然后他们只会将所有流量路由到该链接上,让您可以自由地做任何事情!

1个回答

我认为按照您处理路由的方式总是会遇到问题。由于提供商的子网是 80.0.0.64 - 80.0.0.95,并且您想在 SRX 后面的另一个子网中使用 .90,您将遇到 ISP 的 arp 问题或路由问题。当 ISP 路由器想要与 .90 通信时,他们总是假设基于第 2 层相邻的子网。正如您所说,您可以代理 arp,然后删除 arp,它会一直工作,直到 ISP 路由器 arp 表超时。

所以我认为你将被迫以你现在拥有的方式使用带有代理 arp 的静态源 nat。

如果您只想能够在服务器和互联网之间应用安全策略,您实际上可以在第 2 层模式下运行一些 SRX 接口。这样您就可以将 2 个接口放在同一个 VLAN/网桥中,但放在不同的安全区域中。这样您就可以在区域之间编写策略,并且仍然直接在该服务器上拥有该 .90 地址。

http://www.juniper.net/documentation/en_US/junos12.1/topics/example/security-zone-layer2-configuring.html

否则,您将需要与您的 ISP 合作将该块路由到您的 SRX,并在 SRX 和 ISP 路由器之间有另一个子网。在我看来,这是理想的解决方案。