Because the point isn’t to “drop” anything, but rather to generate a routing protocol anouncement, without actually having the subnet attached to a “real interface” on the router.
In the case where you “null route”, you want to attract all traffic for a particular network which does not match any more specific route.
So in the simple loop-prevention case, say you have routes to 1.0.0.0/24 and 1.0.2.0/24, but not to 1.0.1.0/24 or 1.0.3.0/24 (haven’t decided where to use them yet, or whatever). Also say that your upstream sends you packets for the entire 1.0.0.0/22; and they statically route 1.0.0.0/22 to you, and you have a default pointing to them (simple case, no BGP).
Without “sinking” the extra subnets, any packets sent to an address in 1.0.1.0/24 or 1.0.3.0/24 will be sent to you by the upstream, only to be turnned back around and sent (via the default) back to the upstream, who will in turn send them back to you, etc… Thus causing a routing loop, and wasting your bandwidth to the upstream.
In alexfossa’s case, I suspect that he has routes to all of his subnets, but that either they are too small for his upstream(s) to accept in a BGP announcement (usually /24 is the longest mask a transit provider will allow), or he want’s to be a good operator and not polute the global BGP system with excess routes which could be aggregated.
By “null routing” the entire aggregated network, he can make just one announcement, and filter anything longer. Once the packets hit his router, the longer (more specific) matches to the individual subnets will take precedence over the null routed aggregate.
In the “routable loopback” case, you can place a /32 on a “null interface” which cannot go “down”, and then announce that /32 via your IGP routing protocol (works great with OSPF). This gives you the advantage of being able to reach your router via this IP, regardless of which interfaces are up, so long as the router is reachable via some interface.
Personally, I add a “null” or “loopback” bridge to every MT I run, and “sink” all of my address ranges at each router (be it MT, Cisco, AT or whatever). I also put a “routable loopback” address on each of them, makes re-aranging the network much easier, and prevents “false alarms” when only one interface goes down.
This technique, together with the new OSPF NBMA-Neighbor settings in 2.9, should also make some semblance of “unnumbered interfaces” fully workable over non-ppp links. I haven’t tried it yet, but it should work, hopefully.
–Eric