Route maps
Route maps are a powerful tool to apply custom actions to dynamic routing protocols based on specific conditions. They are used primarily in BGP to manipulate routes advertised by the FortiGate (route-map-out) or received routes from other BGP routers (route-map-in).
Route maps can be used in OSPF for conditional default-information-originate, filtering external routes, or matching specific routes for redistribution. Similarly, route maps can be used by RIP to match routes for redistribution.
A route map may have multiple rules that are processed from the top down. Each rule has an action to permit or deny. The rules have criteria for matching a route based on various attributes, or setting attributes based on a matched route.
For example, a route map can be used to match BGP routes with a certain community string, and then set an AS path to the matching route. This can be applied to a BGP neighbor by configuring the route map in setting for that neighbor.
To configure a route map that matches criteria based on other routing objects:
config router route-map
edit <name>
config rule
edit <id>
set action {permit | deny}
set match-as-path <string>
set match-community <string>
set match-ip-address <string>
set match-ip6-address <string>
set match-ip-nexthop <string>
set match-ip6-nexthop <string>
next
end
next
end
|
match-as-path <string> |
Match a BGP AS path list. |
|
match-community <string> |
Match a BGP community list. |
|
match-ip-address <string> |
Match an IPv4 address permitted by |
|
match-ip6-address <string> |
Match an IPv6 address permitted by |
|
match-ip-nexthop <string> |
Match a next hop IPv4 address passed by |
|
match-ip6-nexthop <string> |
Match a next hop IPv6 address passed by |
Route maps can be used by various routing protocols, such as RIP, OSPF, and BGP.
To use a route map with RIP:
config router rip
config redistribute
edit <name>
set routemap <string>
next
end
end
To use a route map with OSPF:
config router ospf
set default-information-route-map <string>
set distribute-route-map-in <string>
config redistribute <string>
set routemap <string>
end
end
|
default-information-route-map <string> |
Enter the default information route map. |
|
distribute-route-map-in <string> |
Enter the route map to filter incoming external routes. |
|
redistribute <string> |
Configure the redistribute protocol. |
To use a route map with BGP:
config router bgp
config neighbor
edit <ip>
set route-map-in <string>
set route-map-in6 <string>
set route-map-in-vpnv4 <string>
set route-map-out <string>
set route-map-out-preferable <string>
set route-map-out6 <string>
set route-map-out6-preferable <string>
set route-map-out-vpnv4 <string>
set route-map-out-vpnv4-preferable <string>
next
end
config network
edit <id>
set prefix <IP/netmask>
set route-map <string>
next
end
config redistribute <string>
set route-map <string>
end
end
|
route-map-in <string> |
Enter the IPv4 inbound route map filter. |
|
route-map-in6 <string> |
Enter the IPv6 inbound route map filter. |
|
route-map-in-vpnv4 <string> |
Enter the VPNv4 inbound route map filter. |
|
route-map-out <string> |
Enter the IPv4 outbound route map filter. |
|
route-map-out-preferable <string> |
Enter the IPv4 outbound route map filter if the peer is preferred. |
|
route-map-out6 <string> |
Enter the IPv6 outbound route map filter. |
|
route-map-out6-preferable <string> |
Enter the IPv6 outbound route map filter if the peer is preferred. |
|
route-map-out-vpnv4 <string> |
Enter the VPNv4 outbound route map filter. |
|
route-map-out-vpnv4-preferable <string> |
Enter the VPNv4 outbound route map filter if the peer is preferred. |
|
route-map <string> |
Enter the route map to modify the generated route. |
|
redistribute <string> |
Configure the redistribute protocol. |
To use a route map with BGP conditional advertisement:
config router bgp
set as <AS_number>
config neighbor
edit <ip>
set remote-as <AS_number>
config conditional-advertise
edit <advertise-routemap>
set condition-routemap <name1>, <name2>, ...
set condition-type {exist | non-exist}
next
end
next
end
end
|
<advertise-routemap> |
Edit the advertising route map. |
|
condition-routemap <name1>, <name2>, ... |
Enter the list of conditional route maps. |