路由表

缺省情况下,所有路由都和原来一样加入到“主”路由表中。从配置的角度来看,最大的区别是路由表限制的增加、路由表监控的差异以及如何将路由添加到特定的路由表中(参见下一个示例)。
V7引入了一个新的菜单/路由路由,它显示了所有地址族路由以及具有所有可能路由属性的所有过滤路由。/ ip路由/ ipv6路由菜单是用来添加静态路由的,为了简单起见,它只显示基本的路由属性。

有关路由的更深入信息,请参阅本文(IP路由).

另一个新变化是,大多数常见的路由打印请求都由路由进程处理,与v6相比,这显著提高了速度。

路由表和策略路由的使用


与v6的主要区别是路由表必须添加到/路由表菜单,然后在配置的任何地方引用它。和撒小谎如果路由表打算将路由推送到FIB,则需要指定此参数。
路由规则配置是相同的,除了菜单位置(而不是/ip路由规则,现在是。/路由规则).

让我们考虑一个基本的例子,我们只想在名为myTable的路由表中解析到网关172.16.1.1的8.8.8.8:

/路由表add name=myTable fib /路由规则add dst-address=8.8.8.8 action=lookup-only-in-table table=myTable /ip路由add dst-address=8.8.8.8 gateway=172.16.1.1@main routing-table=myTable . /


代替路由规则,您可以使用mangle用routing-mark标记数据包,与ROSv6中的方式相同。

OSPF配置

OSPFv3和OSPFv2现在合并到一个菜单中/ ospf路由.在撰写本文时,还没有缺省实例和区域。
如果要同时启动OSPFv2和OSPF v3实例,首先需要分别创建一个实例,然后在该实例中加入一个区域。

/routing ospf instance add name=v2inst version=2 router-id=1.2.3.4 add name=v3inst version=3 router-id=1.2.3.4 /routing ospf area add name=backbone_v2 area-id=0.0.0.0 instance=v2inst add name=backbone_v3 area-id=0.0.0.0 instance=v3inst


至此,您就可以在网络接口上启动OSPF了。在IPv6的情况下,您可以添加想要运行OSPF的接口(与ROSv6相同)或IPv6网络。在第二种情况下,OSPF将自动检测该接口。下面是一些接口配置示例:

/routing ospf interface-template add network=192.168.0.0/24 area=backbone_v2 add network=2001:db8::/64 area=backbone_v3 add network=ether1 area=backbone_v3

ROSv7使用模板与模板匹配接口,并应用匹配模板中的配置。OSPF菜单接口邻居包含纯粹用于状态监视的只读条目。

所有的路由分配控制现在都是通过路由过滤器选择完成的,实例中不再有再分配旋钮(由于v7.1beta7重新分配按钮又回来了,您仍然需要使用路由过滤器来设置路由开销和类型(如果需要的话)。这使得您可以更灵活地选择要重新分发的协议路由。
例如,假设您只想重新分发来自192.168.0.0/16网络范围的静态IPv4路由。

/routing ospf instance set backbone_v2 out-filter-chain=ospf_out redistribute=static
/路由过滤规则add chain=ospf_out规则="if (dst在192.168.0.0/16){accept}"

路由过滤器链的默认动作是“drop”。

边界网关协议配置

与ROSv6相比,BGP配置进行了完全的重新设计。第一个最大的区别是没有更多实例同行配置菜单。相反,我们有连接模板会话菜单。
采用这种结构的原因是将负责连接的参数和BGP协议特有的参数严格分离。

让我们从模板开始。包含所有与BGP协议相关的配置选项。它可以用作动态对等体的模板,并将类似的配置应用于一组对等体。请注意,这与Cisco设备上的对等组不同,在Cisco设备上,对等组不仅仅是一个普通配置。

缺省情况下,存在一个默认模板,要求您设置自己的应用服务器。

/routing/bgp/template set default as=65533

从v7.1beta4开始,模板参数在“连接”配置中公开。这意味着模板不再是强制性的,允许更简单的基本BGP连接设置,类似于ROSv6。

大多数参数与ROSv6相似,除了一些被分组在输出和输入部分,使配置更具可读性,更容易理解该选项是应用于输入还是输出。如果您熟悉CapsMan,那么语法是相同的,例如,用于指定您设置的输出选择链output.filter-chain= myBgpChain

你甚至可以从另一个模板中继承模板参数,例如:

/routing/bgp/template add name=myAsTemplate as=65500 output。设置默认模板=myAsTemplate

新路由配置的另一个重要方面是全局Router ID,它在一个实例中设置Router - ID和组对等体。l雷竞技RouterOS添加了一个默认ID,它从任何接口的最高IP中选择instance-id。缺省情况下,BGP的缺省模板使用default ID。
如果出于任何原因需要调整或添加新实例,则可以使用/路由id菜单。

非常有趣的参数是输入。亲和力output.affinity,它们允许控制活动会话的进程输入和输出将被处理;

  • 独自一人-每个会话的输入和输出都在自己的进程中处理,当有很多核心和很多对等体时,这可能是最好的选择
  • Afi, instance, vrf, remote-as-尝试使用类似的参数运行正在处理的新会话的输入/输出
  • 主要-在主进程中运行输入/输出(可以潜在地提高单核甚至可能在多核设备上的性能)
  • 输入—输出与输入在同一进程中运行(只能为输出亲和性设置)

现在我们已经为模板设置了参数,我们可以添加BGP连接。参数的最小集合是remote.address模板,连接local.role

连接和侦听参数指定对等体是尝试连接并侦听远程地址,还是仅仅连接或仅仅侦听。在对等端使用多跳连接的设置中,有可能出现这种情况local.address必须配置太(类似于它是与update-source在ROSv6)。

不强制指定远端自治系统号。ROS v7可以从打开的消息确定远程ASN。只有在希望接受来自该特定AS的连接时,才应该指定远程AS。

对等角色现在是一个强制性参数,对于基本设置,您可以使用ibgp, ebgp(关于可用角色的更多信息可以在相应的RFC草案中找到)https://datatracker.ietf.org/doc/draft-ietf-idr-bgp-open-policy/?include_text=1),请记住,目前草案中描述的功能、社区和过滤尚未实现。

非常基本的iBGP设置,用于监听整个本地网络的连接:

/routing/bgp/connection add remote.address=10.155.101.0/24 listen=yes template=default local.role=ibgp . conf

现在可以监视所有已连接和未连接的对等体的状态/routing BGP会话菜单。

可以监视所有路由进程的其他重要调试信息/路由数据菜单

[admin@v7_ccr_bgp] /routing/stats/process> print interval=1任务、私有内存块、共享内存块、pss、rss、vm、退休、id、pid、rpid、进程时间、内核时间、CUR-B > #任务PRIVATE-M也分享PSS RSS vm RET ID PID R PROCESS-TI KERN > 0路由表83.4 42.2 18.7 12.2 20.0 mib mib mib mib mib 8主要319 0 19 s750ms 8 s50 >肋连接网络> > 1 fib 512.0简约0 83.4 7.4 30.9 mib mib mib fib 384 1 5 s160ms 22 s5 > 2 ospf 83.4 25.9 5.9 1024.0 1024.0简约简约mib mib mib 382 ospf 388 1 1 m42s170ms m31 >连接网络> 3幻想512.0简约0 83.4 2061.0 5.9简约mib mib幻想389 1 870 m > 4 s410ms配置mib和报告40.0 83.4 64.8 512.0 45.0简约mib mib mibstatic 390 1 12s550ms 1s17> 5 rip 768.0KiB 0 5.3MiB 24.7MiB 83.4MiB rip 387 1 1s380ms 1s20> connected networks > 6 routing policy configuration 512.0KiB 256.0KiB 2189.0KiB 6.0MiB 83.4MiB policy 385 1 1s540ms 1s20> 7 BGP service 768.0KiB 0 2445.0KiB 6.2MiB 83.4MiB bgp 386 1 6s170ms 9s38> 8 BGP Input 10.155.101.217 8.8MiB 6.0MiB 15.6MiB 38.5MiB 83.4MiB 20 21338 1 25s170ms 3s23> BGP Output 10.155.101.217 > 9 Global memory 256.0KiB global 0 0 > -- [Q quit|D dump|C-z pause|right]

路由过滤与ROSv6略有不同。现在可以在BGP模板中指定output.filter-chain,输出。filter-selectinput.filter还有几个input.accept -*选项。

现在input.accept -*允许过滤传入的消息直接之前,他们甚至解析和存储在内存中,这种方式显着减少内存使用。常规输入过滤器链只能拒绝前缀,这意味着它仍然会占用内存,并且在/路由路径表为“未活动,已过滤”,

一个非常基本的例子,BGP输入过滤器接受来自192.168.0.0/16子网的前缀,而不修改任何属性。对于其他前缀,从收到的本地前缀值中减去1,并将IGP度量值设置为OSPF ext中的值。此外,我们将只接受地址列表中的特定前缀,以减少内存使用

/ip/firewall/address-list add list=bgp_list st-address=192.168.1.0/24 add list=bgp_list st-address=192.168.0.0/24 add list=bgp_list st-address=172.16.0.0/24 /routing/bgp/template set default input。过滤器= bgp_in .accept-nlri = bgp_list
/routing/filter/rule add chain=bgp_in rule="if (dst in 192.168.0.0/16) {accept}" add chain=bgp_in rule="set bgp-local-pref -1;设置bgp-igp-metric ospf-ext-metric;接受”

如果没有指定路由过滤链,BGP将尝试发布它在路由表中找到的所有活动路由

路由过滤器链的默认动作是“drop”。

监控广告

l雷竞技缺省情况下,RouterOS v7关闭BGP输出监控功能。这允许在具有大型路由表的设置上显著减少资源使用。

为了能够看到输出的广告,应该采取以下几个步骤:

  • 启用“输出。BGP连接配置中的keep-sent-attributes
  • 在BGP会话菜单中执行“dump-saved- ads”命令
  • 查看“/routing/stats/pcap”菜单中保存的输出


[admin@arm-bgp] /routing/bgp/connection> set 0 output。keep-sent-attributes=yes [admin@arm-bgp] /routing/bgp/session> print flag: E - established 0 E remote.address=10.155.101.183 .as=444 .id=192.168.44.2 .refused- capp -opt=no .capabilities=mp,rr,gr,as4 .afi=ip,ipv6 .messages=4 .bytes=219 .eor="" local.address=10.155.101.186 .as=456 .id=10.155.255.186 .capabilities=mp,rr,gr,as4 .afi=ip,ipv6 .messages=1 .bytes=19 .eor="" output。Procid =66 .filter-chain=bgp_out .network= bgp_nets .keep-sent-attributes=yes input。Procid =66 ebgp hold-time=3m keepalive-time=1m uptime=4s30ms [admin@arm-bgp] /routing/bgp/session> dump-saved- ads 0 save-to=test_out.pcap . log . log . log . log . log . log . log . log . log

网络

最后,您可能会注意到网络菜单丢失,可能想知道如何宣传自己的网络。现在网络被添加到防火墙地址列表中,并在BGP配置中被引用。
以下是ROSv6网络配置:

/ route BGP network add network=192.168.0.0/24 synchronize=yes /ip route add dst-address=192.168.0.0/24 type=blackhole

将转换成v7为:

/ip/firewall/address-list/ add list=bgp-networks address=192.168.0.0/24 /ip/route add st-address=192.168.0.0/24 blackhole /routing/bgp/connection set peer_name output.network=bgp-networks

在只添加一个网络时需要进行更多的配置,但是在必须处理大量网络时提供了简单性。v7甚至允许为每个BGP连接指定自己的一组网络。

在v7中,不可能关闭与IGP路由的同步(只有在路由表中存在相应的IGP路由时,网络才会被发布)。

路由过滤器

从ROSv7.1beta4开始,路由过滤器配置被更改为类似脚本的配置。规则现在可以有“如果……”Then”语法,用于根据“if”语句中的条件设置参数或应用操作。

没有操作的多个规则被堆叠在一个规则中,并像防火墙一样按顺序执行,原因是“set”参数的顺序很重要,每行写一个“set”,可以更容易地从上到下理解应用了什么操作。

例如,匹配静态默认路由和应用动作接受可以写在一条配置规则中:

/routing/filter/rule add chain=ospf_in rule="if (dst==0.0.0.0/0 && protocol static) {accept}"


例如,将ROSv6规则“/routing filter add chain=ospf_in prefix=172.16.0.0/16 prefix-length=24 protocol=static action=accept”转换为ROSv7将是:

/routing/filter/rule add chain=ospf_in rule="if (dst in 172.16.0.0/16 && dst-len==24 && protocol static) {accept}"

如匹配172.16.0.0/16范围内的前缀,前缀长度为24,并设置BGP的med值和前缀值

/routing/filter/rule add chain=BGP_OUT rule="if (dst-len==24 && dst in 172.16.0.0/16) {\n set bgp-med 20;设置bgp-path-prepend 2;接受}”


也可以像这样匹配前缀长度范围

/routing/filter/rule add chain=BGP_OUT rule="if (st-len>13 && st-len<31 && dst in 172.16.0.0/16) {accept}"


现在可以使用过滤规则来匹配或设置社区、大型社区和扩展社区:

/routing/filter/rule add chain=bgp_in rule="set bgp-large-communities 200001:200001:10 "

如果有很多社区集,需要在多个规则中应用,那么可以定义社区集并使用它们进行匹配或设置:

/routing/filter/large-community-set add set=myLargeComSet communities=200001:200001:10 /routing/filter/rule add chain=bgp_in rule="append bgp-large-communities myLargeComSet "


由于route-target被编码在扩展团体属性中以改变或匹配RT,因此需要对扩展团体属性进行操作,例如:

/routing/filter/rule add chain=bgp_in rule="set bgp-ext-communities rt:327824:20 "

RPKI

l雷竞技RouterOS实现RTR客户端。您连接到将发送路由有效性信息的服务器。然后,这些信息可以用来在路由过滤器中针对带有“rpki-validate”的组验证路由,并且在过滤器中可以使用“match-rpki”来匹配确切的状态。

有关更多信息,请参阅RPKI文档。

把配置

要启动RIP,必须配置实例。在这里,您应该选择哪些路由将被RIP重新分发,如果它将重新分发缺省路由。

/routing/rip/instance add name=instance1 originate-default=never redistribute=connected,static

此时需要配置interface-template。在ROS版本7中不需要像在版本6中那样定义网络。

/routing/rip/interface-template add interfaces=ether1 instance=instance1

现在,在一台路由器上完成了基本配置。RIP邻居路由器的配置方法与此类似。

在ROS v7中,只有当有路由要发送或/或要接收时,邻居才会出现。


来自ROSv6的前缀列表已被弃用,现在所有的过滤都必须由路由过滤器完成。