Mikrotik 和 NAT/路由问题

aru*_*rul 6 nat routing mikrotik

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

我需要的是,连接到ether2 的所有东西都从 DHCP 服务器获取公共 IP,而连接到ether3 的所有东西都从另一个 DHCP (192.168.100.0/24) 获取本地 IP。所有客户端都应该可以访问互联网(我稍后会弄清楚带宽限制)并且最好只是“看到”彼此(所有机器都是 Win7,我想这最终可以通过 VPN 处理)。

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

20个客户端连接到ether2(10.10.10.195),和另外20至ether3(10.10.10.196)(均通过相同的24个端口的交换机)。

这是我的设置,它不起作用,ether2 的所有 20 个客户端可以访问互联网,尽管都是 comm. 似乎来自 10.10.10.194(这是由于 ether1 上的伪装吗?),而ether3根本无法访问互联网。

我认为我需要伪装ether3和 SNAT/DNAT 或 NETMAP ether2,但这也不起作用,我想我需要以某种方式将ether2+3都“连接”到ether1

地址列表:

 #   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
Run Code Online (Sandbox Code Playgroud)

网络地址转换

 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 
Run Code Online (Sandbox Code Playgroud)

路线:

 #      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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

谢谢!

cst*_*mas 3

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

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

因此,在ether1 10.10.10.192/30 上,您的 gw 是 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 网络掩码,就像您在自己这边所做的那样。

然后在ether2上配置一个(或多个)上面看到的地址范围。在此接口上您执行任何 NAT。您可以根据接口上配置的地址范围设置池。

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

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

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

编辑如果您不想让您的 ISP 参与其中,那么您可以执行相同的操作并启用 proxy-arp,这里有很好的描述:http://wiki.mikrotik.com/wiki/Manual :IP/ARP#Proxy_ARP