
MikroTik Tutorial: show mac address table
Here are the commands to show the mac address table on a MikroTik Router. In addition to using the command line to show the mac address table, this tutorial I will also show you how to search for a specific MAC address and filter the table to show mac addresses learned through a specific port. There are actually several commands that you should know, depending on how your router is configured.
The two types of configuration are software switching (using bridge interfaces) and hardware switching. You can actually have a valid configuration that uses both. And in this scenario, separate mac address tables are maintained.
CLI command to show mac table
interface bridge host print
Flags: X - disabled, I - invalid, D - dynamic, L - local, E - external # MAC-ADDRESS VID ON-INTERFACE BRIDGE AGE 0 DL D4:CA:XX:XX:XX:F6 bridge bridge 1 DL EE:8A:XX:XX:XX:2A loopback0 loopback0 2 D 00:08:XX:XX:XX:A0 ether10 MGMT_br... 3m31s 3 D 00:0C:XX:XX:XX:E3 ether10 MGMT_br... 0s ... 12 D 80:2A:XX:XX:XX:6E ether10 MGMT_br... 21s 13 D 80:2A:XX:XX:XX:03 ether10 MGMT_br... 12s 14 D B4:FB:XX:XX:XX:85 ether10 MGMT_br... 35s 15 D B4:FB:XX:XX:XX:51 ether10 MGMT_br... 35s 16 DL D4:CA:XX:XX:XX:F7 MGMT_bridge MGMT_br... 17 D F0:9F:XX:XX:XX:59 ether10 MGMT_br... 34s 18 D F0:9F:XX:XX:XX:10 ether10 MGMT_br... 8s
This command will print the contents of the mac address table for all bridges. If you have multiple bridge interfaces and want to narrow down the list to a specific bridge, here is the command.
List mac address table for a specific bridge interface
interface bridge host print where bridge=bridge1
where bridge1 is the name of your bridge interface.
Find mac addresses learned through a specific port
interface bridge host print where on-interface=ether10
This will find all mac addresses learned through ether10 across all mac address tables. If you want to target a specific bridge you will use the following command.
Find mac addresses learned through a specific port on a specific bridge
interface bridge host print where on-interface=ether10 bridge=bridge1
Filter out local mac addresses
The results so far will also include the local mac addresses of the bridge interface annotated with the L flag. If you want exclude these local mac addresses from the list just append local=no.
interface bridge host print where local=no
Search for a specific MAC address in the table
interface bridge host print where mac-address=44:D9:E7:36:E1:67
Search for all mac addresses with a specific OUI prefix
interface bridge host print where mac-address~44:D9:E7
show mac address table for hardware switching
interface ethernet switch host print
Flags: D - dynamic, I - invalid # SWITCH MAC-ADDRESS PORTS TIMEOUT DROP MIRROR VLAN-ID 0 D switch1 00:A0:XX:XX:XX:D7 switch1-cpu 3m30s no no 1 1 D switch1 6C:C2:XX:XX:XX:EA switch1-cpu 3m30s no no 1 2 D switch1 84:2B:XX:XX:XX:50 switch1-cpu 3m30s no no 1 3 D switch1 D4:CA:XX:XX:XX:59 switch1-cpu 3m no no 1 4 D switch1 2C:C5:XX:XX:XX:94 switch1-cpu 3m no no 1 ... 15 D switch1 70:56:XX:XX:XX:B1 switch1-cpu 3m30s no no 1 16 D switch1 E4:8D:XX:XX:XX:67 ether2 3m30s no no 1 17 D switch1 C0:EA:XX:XX:XX:BC ether1 3m30s no no 1
Find mac addresses learned from an interface
List all mac addresses learned from ether1
/interface ethernet switch host print where ports=ether1
Search switch mac table for a specific mac address
/interface ethernet switch host print where mac-address=DC:A4:CA:A3:18:21
I hope you have enjoyed this tutorial about how to query the mac address table from the RouterOS command line. Did I miss something? Leave a comment below and checkout my other MikroTik Tutorials.