The distribute-list performs route filtering based on IP network addresses and netmasks of routes being advertised. The distribute-list refers to an ACL to match networks and netmasks. In fact, the use of distribute-list for a particular BGP neighbor can be in any of particular direction i.e. either in or out.
The filter-list performs route filtering based on the contents of the AS_PATH attribute ie values of autonomous system numbers. To do this, you would configure an as-path ACL that contains one or more regular expressions matching the particular sequence of ASNs in the AS_PATH attribute, and apply it to a neighbor and a particular direction ( in or out) with the filter-list command. Filter-list does not perform route matching/filtering based on IP addresses and netmasks.
Below practical scenario will help us understand in better way of how distribute List and Filter List differ in case of BGPand how implement them.
Router R1 and R2 are connected via FastEthernet ports (Fa0/0 on each side).
Hence , this configuration justifies that distribute list controls which specific prefix / subnet should be allowed entry/exit on the BGP routing table.
NOW, LET’S UNDERSTAND THE BEHAVIOR OF FILTER LIST ON BGP TABLE –
Based on the above lab tested scenarios , it would be rightfully summarized that That Distribute List performs route filtering based on IP network addresses and netmasks while Filter List performs route filtering via AS-PATH attribute of BGP.