You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Roting Tables

By default all routes are added in "main" routing table as it was before. From configuration point of view biggest differences are routing table limit increase, routing table monitoring differences and how routes are added to specific routing tables (see next example)
v7 introduces new menu /routing route, which shows all address family routes as well as all fitlered routes with all possible route attributes. /ip route and /ipv6 route menus are used to add static routes and for simplicity shows only basic route attributes.

For more in-depth information on routing see this article (How Packets Are Routed).

Another new change is that most common route print requests are processed by routing process which significantly improves the speed compared to v6.

Use of Routing Tables and Policy Routing


Main difference from v6 is that routing table must be added in /routing table menu and fib parameter should be specified if routing table is intended to push routes to the  FIB.
Routing rule configuration is the same except the menu location (instead of /ip route rule, now it is /routing rule).

Another main difference is how route is added in specific routing table. There is no separate parameter routing-mark as it was in v6, now routing table is specified as part of destination: dst-address=dst@table_name

Lets consider basic example where we want to resolve 8.8.8.8 only in routing table named myTable to the gateway 172.16.1.1:

/routing table add name=myTable fib
/routing rule add dst-address=8.8.8.8 action=lookup-only-in-table table=myTable
/ip route add dst-address=8.8.8.8@myTable gateway=172.16.1.1@main


Instead of routing rules you could use mangle to mark packets with routing-mark, the same way as it was in ROSv6.


OSPF Configuration


OSPFv3 and OSPFv2 is now merged into one single menu /routing ospf. At the time of writing this article there is no default instances and areas.
To start both OSPFv2 and OSPF v3 instances, first you need to create instance for each and then add area to the instance

/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
/rouing 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



At this point you are ready to start OSPF on the network interface. In case of IPv6 you add either interface on which you want to run OSPF (the same as ROSv6) or IPv6 network. In second case OSPF will automatically detect interface. Here are some interface configuration examples:

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

Another big difference is that interface and neighbor menus are purely for configuration, to monitor adjacent neighbors or interface status there are two new menu interface-state and neighbor-state.

All route distribution control is now done purely with routing filter select, no more redistribution knobs in instance. This gives greater flexibility on what routes from which protocols you want to redistribure.
For example lets say you want to redistribute only static ipv4 routes from /192.168.0.0/16 network range.

/routing ospf instance
set backbone_v2 out-filter=ospfv2_out_select
/routing filter select-rule add chain=ospfv2_out_select do-where=ospf_out
/routing filter rule add chain=ospf_out match-prfx-value=dst<subsumes>182.168.0.0/16 action=accept

If routing filter chain is not specified OSPF will try to advertise every active route it can find in routing table

Default action of routing filter chain is "drop"

BGP Configuration

There is complete redesing of BGP configuration compared to ROSv6. First biggest difference is that there is no more instance and peer configuration menus. Instead we have connection, template and peer-cache menus.
THe reason for such structure is to strictly split parameters that are responsible for connection and change of these parameters require immediate connection termination and parameters that that do not tear existing connection when changed.

  • No labels