Mikrotik 和 NAT/路由问题

Mikrotik 和 NAT/路由问题

我在 Mikrotik RB750 上遇到了基本的 NAT/路由问题,过去几天一直无法解决。从我们的 ISP 我们有 26 个 IP 地址:10.10.10.192/27, 和10.10.10.193是网关,10.10.10.194 是第一个可用 IP。

我需要的是与以太2从 DHCP 服务器获取公共 IP,并且所有连接到以太3从另一个 DHCP(192.168.100.0/24)获取本地 IP。所有客户端都应该可以访问互联网(稍后我将研究带宽限制),并且最好只是“看到”彼此(所有机器都是 Win7,我猜这最终可以通过 VPN 来解决)。

这是我的设置: 以太1(10.10.10.194)直接连接到 ISP。

20 个客户端已连接到以太2(10.10.10.195),另外还有 20 个以太3(10.10.10.196)(均通过相同的 24 端口交换机)。

这是我的设置,不起作用,所有 20 个客户端都来自以太2可以访问互联网,尽管所有通信似乎都来自 10.10.10.194(这是由于 ether1 上的伪装吗?),并且以太3根本无法访问互联网。

我认为我需要伪装以太3以及 SNAT/DNAT 或 NETMAP以太2但这也不起作用,我想我需要以某种方式“连接”两者乙醚2+3以太1

地址列表:

 #   ADDRESS            NETWORK         INTERFACE                                                          
 0   ;;; public
     10.10.10.194/32  10.10.10.192  ether1-gateway
 1   ;;; inner DHCP
     192.168.100.0/24   192.168.100.0   ether3-private
 2   ;;; public
     10.10.10.195/32  10.10.10.192  ether2-pub
 3   ;;; public
     10.10.10.196/32  10.10.10.192  ether3-private

NAT

 0   ;;; ether3 nat
     chain=srcnat action=src-nat to-addresses=10.10.10.196 
     src-address=192.168.100.0/24 out-interface=ether3-private 

 1   ;;; ether3 nat
     chain=dstnat action=dst-nat to-addresses=192.168.100.0/24 
     in-interface=ether3-private 

 2   ;;; ether1 masquerade
     chain=srcnat action=masquerade to-addresses=10.10.10.194 
     out-interface=ether1-gateway 

路线:

 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 A S  0.0.0.0/0                          ether1-gateway            1
 2 A S  10.10.10.192/27  10.10.10.195  ether2-pub                1
 3 ADC  10.10.10.192/32  10.10.10.195  ether2-pub                0
                                           ether1-gateway    
                                           ether3-private    
 4 ADC  192.168.100.0/24   192.168.100.0   ether3-private            0

IP 池:

 # NAME             RANGES                         
 0 public-pool     10.10.10.201-10.10.10.220  
 1 private-pool    192.168.100.2-192.168.100.254

DHCP 配置:

 #   NAME               INTERFACE              RELAY           ADDRESS-POOL              LEASE-TIME ADD-ARP
 0   public-dhcp        ether2-pub                             public-pool               3d        
 1   private-dhcp       ether3-private                         private-pool              3d

谢谢!

答案1

您必须做出决策并设计您的网络。

以太1连接到您的ISP,您应该定义一个较小的网络。例如/30(说实话,如果您从ISP请求一个更小的范围比分割您现在拥有的范围要容易得多)。

很快以太110.10.10.192/30 您的网关是 10.10.10.193,10.10.10.194/30 是您的 IP(在 mikrotik - ether1 上)。然后您要求您的 ISP 进行路由

  • 10.10.10.196/30
  • 10.10.10.200/29
  • 10.10.10.208/28

到地址 10.10.10.194,并在他们那边设置与您自己那边相同的 /30 网络掩码。

然后以太2您可以配置上面显示的一个或多个地址范围。在此界面上,您可以执行任何 NAT。您可以根据接口上配置的地址范围来设置池。

以太3您可以根据需要配置私有地址。您提供的示例看起来不错。您在这里进行了设置MASQUERADE,这是您唯一拥有 NAT 的地方。

您原来的设置有什么问题?

  • 您不应该按照原来的方式分配 /32 网络。
  • ISP 会将所有人都视为位于同一网络上,但事实并非如此。
  • 您不能在一个接口上同时执行 SNAT 和 DNAT。在这种情况下,您只能执行 SNAT,这会改变来源地址。当数据包返回时,netfilter 子系统会记住它所做的操作,并自动进行反向转换。(MASQUERADE 是 SNAT 的一个特例)

编辑如果你不想让你的 ISP 参与其中,那么你可以执行相同的操作并启用代理 arp,这里对此有详细描述:http://wiki.mikrotik.com/wiki/Manual:IP/ARP#Proxy_ARP

答案2

  1. 您在设置前缀为 32 的 ether3 IP 时出错。它必须是 24。

  2. 我不明白,你说的 dst-nat 什么意思?看起来它阻止了 ether3 中的互联网 1 ;;; ether3 nat chain=dstnat action=dst-nat to-addresses=192.168.100.0/24 in-interface=ether3-private

  3. 当你改变IP时,通常关闭网络字段并让其自动计算。例如 address=10.10.10.195/32 network=10.10.10.195 interface=ether2-pub

  4. 您可以尝试从伪装规则 src-address=!10.10.10.192/27 中排除您的公共网络,并在 ether1-public 上启用代理 arp。也许这样可行。我不确定,因为我最近使用了这种“奇怪”的配置。

PS. 对我来说,最好在 ether2 上提供私有子网,并设置 1 对 1 nat(src-nat 和 dst-nat)

答案3

为什么不简单地将路由器配置为在 Ether1 上接收 ISP 的 IP,桥接 Ether 2 和 3,然后在桥接器上为内部客户端应用 DHCP 服务器...假设您的内部 IP 需要更改,但更简单,您甚至可以将旧网关和范围添加为绑定到桥接器的静态 IP,直到让每个人都使用 DHCP...并且如果您在 24 端口交换机之间运行了一条额外的电缆,这也可能为您提供一些故障转移冗余(您需要查看交换机文档以了解它支持什么)然后您将桥接器伪装成 NAT 到网络,它还会将您自己的流量保持在内部并允许您进行一些防火墙等。

相关内容