Hey there,

I’m somewhat green to JunOS coming from a primarily IOS/IOS XR background.  IOS 
XR’s route-policy language supports the use of variables, or parameters, which 
essentially allows me to create a template that accepts some variables, and 
adjust the parameters that set those variables at various levels in the config.

For example:

!
route-policy GLOBAL-POLICY($LP, $MED, $SERVICE)
  set local-preference $LP
  set med $MED
  set community (21949:$SERVICE) additive
end-policy
!
route-policy IXP-OUT($IXP, $IXP_RTBH_ASN, $IXP_RTBH_ID)
  apply GLOBAL-FILTER
  if community matches-any ANNOUNCE--UPSTREAM then
    pass
    if community matches-any (21949:666) then
      set community ($IXP_RTBH_ASN:$IXP_RTBH_ID)
      done
    elseif community matches-any (21949:2000) then
      drop
    elseif community matches-any (21949:$IXP) then
      drop
    else
      delete community all
      done
    endif
    drop
  endif
end-policy
!
route-policy IXP-IN($IXP, $LP, $MED, $SERVICE)
  set community (21949:$IXP)
  apply GLOBAL-FILTER
  apply GLOBAL-POLICY($LP, $MED, $SERVICE)
end-policy
!
neighbor-group IXP-V4
  address-family ipv4 unicast
   route-policy IXP-IN($IXP, $LP, $MED, $SERVICE) in
   maximum-prefix 100000 90 restart 5
   route-policy IXP-OUT(2010, 0, 0) out
  !
 !
…
…
…
neighbor 1.2.3.4 
 remote-as 1234
 use neighbor-group IXP-V4(2010, 390, 0, 2000)
neighbor 2.3.4.5
 remote-as 2345
 route-policy IXP-V4(2020, 190, 0, 3000) in
 route-policy IXP-OUT(2020, 2345, 666) out
…
…


I don’t believe JunOS supports the same functionally directly, so I think I’d 
have to use commit scripts to accomplish something similar.  As I’m trying to 
familiarize myself with it all, I can’t seem to determine the various ways that 
the parameters could be pulled from the config for the commit scripts to 
utilize.

2 possibilities come to mind:

- Create a BGP group for each different set of parameter combinations and have 
the commit script set parameters for the neighbor based on what group they are 
in.
or,
- Come up with a standard convention for defining the neighbor description, 
such that the parameters could be encoded into the description.  The commit 
script could then set parameters based on the values in the appropriate 
positions within the description.

Both of these seem somewhat complex, but perhaps only because they are 
unfamiliar.  Are there other ways of doing this that might prove to be (more) 
effective?

Thanks in advance.
_______________________________________________
juniper-nsp mailing list [email protected]
https://puck.nether.net/mailman/listinfo/juniper-nsp

Reply via email to