How to use the command 'bgpgrep' (with examples)
The command ‘bgpgrep’ is a tool that allows users to filter and print BGP (Border Gateway Protocol) data within MRT (Multi-Threaded Routing Toolkit) dumps. It supports reading files compressed with gzip, bzip2, and xz. ‘bgpgrep’ is a part of the ubgpSuite, a suite of open-source BGP analysis tools.
Use case 1: Output all routes
Code:
bgpgrep master6.mrt
Motivation: This use case is useful when you need to analyze all the BGP routes within an MRT dump file. By using this command, you can easily obtain a comprehensive list of all the routes contained in the file.
Explanation:
bgpgrep
is the command to execute.master6.mrt
is the filename of the MRT dump file.
Example output:
Route: 192.0.2.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
Route: 198.51.100.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
...
Use case 2: Output all routes received from a specific peer (AS number)
Code:
bgpgrep master4.mrt -peer 64498
Motivation: This use case is helpful for analyzing BGP routes received from a specific peer, identified by their Autonomous System (AS) number. It allows you to focus on the routes received from a specific source.
Explanation:
bgpgrep
is the command to execute.master4.mrt
is the filename of the MRT dump file.-peer 64498
specifies that you want to filter for routes received from the peer with AS number 64498.
Example output:
Route: 192.0.2.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
Route: 203.0.113.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
...
Use case 3: Output all routes received from a specific peer (IP address)
Code:
bgpgrep master4.mrt.bz2 -peer 2001:db8:dead:cafe:acd::19e
Motivation: This use case is useful for filtering BGP routes received from a specific peer, identified by their IP address. It enables you to analyze the routes exchanged with a particular peer.
Explanation:
bgpgrep
is the command to execute.master4.mrt.bz2
is the filename of the compressed MRT dump file.-peer 2001:db8:dead:cafe:acd::19e
specifies that you want to filter for routes received from the peer with the IP address “2001:db8:dead:cafe:acd::19e”.
Example output:
Route: 203.0.113.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
Route: 192.0.2.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
...
Use case 4: Output all routes with certain ASNs in their AS path
Code:
bgpgrep master6.mrt.bz2 -aspath '64498 64510'
Motivation: This use case is helpful when you want to filter BGP routes that contain specific Autonomous System Numbers (ASNs) in their AS path. It helps in identifying routes associated with specific networks.
Explanation:
bgpgrep
is the command to execute.master6.mrt.bz2
is the filename of the compressed MRT dump file.-aspath '64498 64510'
specifies that you want to filter for routes with AS path containing the ASNs “64498” and “64510”.
Example output:
Route: 192.0.2.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
Route: 198.51.100.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
...
Use case 5: Output all routes that lead to a specific address
Code:
bgpgrep master6.mrt.bz2 -supernet '2001:db8:dead:cafe:aef::5'
Motivation: This use case is useful for finding BGP routes that lead to a specific destination address. It helps in understanding the routing paths to a particular network or host.
Explanation:
bgpgrep
is the command to execute.master6.mrt.bz2
is the filename of the compressed MRT dump file.-supernet '2001:db8:dead:cafe:aef::5'
specifies that you want to filter for routes that lead to the supernet IP address “2001:db8:dead:cafe:aef::5”.
Example output:
Route: 2001:db8:dead:cafe:aef::5/128
Next Hop: 203.0.113.1
AS Path: 64498 64510
...
Use case 6: Output all routes that have communities from a specific AS
Code:
bgpgrep master4.mrt -communities \( '64497:*' \)
Motivation: This use case is helpful when you want to identify BGP routes that have communities from a specific Autonomous System (AS). Communities are used to tag and manipulate BGP routes, and this command allows you to filter based on that information.
Explanation:
bgpgrep
is the command to execute.master4.mrt
is the filename of the MRT dump file.-communities \( '64497:*' \)
specifies that you want to filter for routes that have communities from AS 64497, matching any value.
Example output:
Route: 192.0.2.0/24
Next Hop: 203.0.113.1
AS Path: 64498 64510
Community: 64497:12345
Route: 192.0.2.128/25
Next Hop: 203.0.113.1
AS Path: 64498 64510
Community: 64497:54321
...
Conclusion:
The ‘bgpgrep’ command is a versatile tool for filtering and printing BGP data within MRT dumps. It allows you to analyze specific subsets of BGP routes based on various criteria, such as peer AS number, IP address, AS path, supernet, and communities. By understanding the different use cases and examples, you can effectively extract the necessary information from BGP data for analysis and troubleshooting purposes.