I am a complete newbie at BGP configurations.Need some clarification on understanding BGP network command.

One of our MPLS site routers have the following config : (Pasting only config snippets ) "

interface Loopback0
 ip address

interface GigabitEthernet0/0
 ip address

interface GigabitEthernet0/1.10
 encapsulation dot1Q 10 native
 ip address

interface GigabitEthernet0/1.20
 encapsulation dot1Q 20
 ip address

router bgp XXXXX
 bgp log-neighbor-changes
 neighbor remote-as 7795
 neighbor ebgp-multihop 10
 address-family ipv4
  neighbor activate
  neighbor send-community
  neighbor soft-reconfiguration inbound
  no auto-summary
  no synchronization
  **network mask**
  network mask

When the BGP network command "network mask" was put in , we cud not get connectivity to the loop back address ""and the router from any where else from our network.

but when we split the network command individually

 "network mask"
 " network mask"

every thing worked fine.

Can some body explain me the correct uasge of network command in BGP. Also, When and in what cases do we use the aggregate-address in BGP.

Thanks in advance.

  • Do you have an ip route null0 in there? The network statement will not inject routes that aren't in your route table.
    – Ricky
    Commented Sep 16, 2013 at 22:04
  • 2
    I'm highly opinionated that 'network' statement should never be used, it creates config duplicity and in human-operated network over time rots the config (route is pulled, network-statement not). I'd highly suggest giving tag to static routes, which over redistribute route-map is advertised as desired. This way of config will also model better in multi-vendor networks. Unfortunately for connected networks you cannot set today tag (please do PERS/ER to account team), so in connected networks you'll either match to interface name or create prefix-list, which voids duplicity argument.
    – ytti
    Commented Sep 17, 2013 at 4:45
  • We didn't have a ip route null0 .
    – Indu Reddy
    Commented Sep 17, 2013 at 13:45

2 Answers 2


From an old archive config...

router bgp 7866
 network mask
ip route Null0 200

We controlled exactly what was broadcast using network. Null routes a) prevent flapping (when there's an actual interface for that network -- eg. customer provided block), and b) put networks in the route table that wouldn't be there otherwise.


If you're familiar with IGP's(EIGRP, OSPF), the network command is used for advertising networks and establishing neighbors using multicast addresses. BGP is different because we statically assign neighbors and the network command is used to simply advertise routes.

With IGP's, you will advertise all prefixes within the aggregate network block so if you have:

"network mask"

under say, EIGRP, you will advertise both of the /30's within that network.

BGP works differently in that in that you must have an exact match for you network statement in the RIB. Because you didn't have an exact match for the network, it didn't advertise. Once you added the network statements that matched the RIB, you were good to go.

In some cases, you may prefer to anchor the advertisement with a null route. So you could have:

 ip route null 0

This would place the network route in the routing table and would always advertise the route even if the more specific routes are unavailable. This also helps when you have a flapping link because your advertisements won't withdraw and re-advertise.

The Aggregate-address is different than the network command. With the Aggregate-address command, you need a match in the BGP table and not the RIB. The network doesn't need to be an exact match, there only needs to be a longer prefix within the aggregate address.

Here's a link to an incredibly helpful troubleshooting resource as well.

NANOG BGP troubleshooting


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.