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. |