BGP on Juniper (JunOS)
http://www.juniper.net/techpubs/software/nog/nog-mpls/html/config-mpls12.html http://www.space.net/~gert/RIPE/ipv6-filters.html
See also:
Powerful BGP commands
What do we advertice to our neighbor
show route advertising-protocol bgp <IP>
What do we get from our neighbor
show route receive-protocol bgp <IP>
Exporting
policy-statement foobar-export { term foobar { from { route-filter x.x.x.0/24 exact accept; } } term rest { then reject; } }
Remember, that you need to have something in the routing table!
routing-options: static { route x.x.x.0/24 discard metric 100; ... }
protocol { bgp { group uplink { type external; description foobar_uplink; export foobar-export; neighbor x.x.x.x { peer-as <ASNUM>; } } }
Remember to also filter the import or your can be flooded
Redistribute routes
Lets say you have set some dynamic routing (RIP,OSPF,BGP,IS-IS..) and you want to redistribute routes into them.
redistribute connected
set policy-options policy-statement Connected term connected { from protocol direct; then accept; }
redistribute static
set policy-options policy-statement Static term static { from protocol static; then accept; }
redistribute local
set policy-options policy-statement Local term local { from protocol local; then accept; }
reject anything else
term else { then reject }
And all the policy will look like:
policy-statement distribute-routes term connected { from protocol direct; then accept; } term static { from protocol static; then accept; } term local { from protocol local; then accept; } term else { then reject }
It looks easy I guess..but what if you want to redistribute ospf routes?
redistribute ospf routes
If you are using OSPF for IGP and BGP as a EGP and you want to export ospf routes to BGP peers then you have to create a policy for that. Something like :
policy-statement ospf-routes { term 1 { from { protocol ospf; area 0.0.0.0; } then accept; } term 2 { then reject; } }
send default route to bgp peer
Lets assume you want to send to send to a BGP peer 0.0.0.0/0 (default route).
First you need to have a route for 0.0.0.0/0 before you can export it to a peer. I guess this is the difference between the Juniper and Cisco configs, Cisco provides you a shortcut with the 'default-originate' keyword which does it all in one step. If you don't have a route for 0.0.0.0/0 defined somewhere that is at least part of the problem.
First we generate the default route (if you dont have one yet) :
routing-options { generate { route 0.0.0.0/0 discard; } }
then we create a policy for 0/0 :
policy-options { policy-statement default-originate { from { route-filter 0.0.0.0/0 exact; } then accept; } }
A simple BGP neighbour will have smthing like:
neighbor aaa.bbb.ccc.ddd { export default-originate; }