diff options
Diffstat (limited to 'tools/multiple-bgpd.sh')
-rw-r--r-- | tools/multiple-bgpd.sh | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/tools/multiple-bgpd.sh b/tools/multiple-bgpd.sh index 40977544..028ad696 100644 --- a/tools/multiple-bgpd.sh +++ b/tools/multiple-bgpd.sh @@ -6,19 +6,24 @@ NUM=5 VTYBASE=2610 ASBASE=64560 BGPD=/path/to/bgpd -PREFIX=192.168.145 +PREFIX=192.168.145. +#PREFIX=3ffe:123:456:: +ADDRPLEN=32 +CONFBASE=/tmp +PIDBASE=/var/run/quagga +CHOWNSTR=quagga:quagga for H in `seq 1 ${NUM}` ; do - CONF=/etc/quagga/bgpd${H}.conf - ADDR=${PREFIX}.${H} + CONF="${CONFBASE}"/bgpd${H}.conf + ADDR=${PREFIX}${H} if [ ! -e "$CONF" ] ; then # This sets up a ring of bgpd peerings NEXT=$(( ($H % ${NUM}) + 1 )) PREV=$(( (($H + 3) % ${NUM}) + 1 )) - NEXTADDR="${PREFIX}.${NEXT}" + NEXTADDR="${PREFIX}${NEXT}" NEXTAS=$((${ASBASE} + $NEXT)) - PREVADDR="${PREFIX}.${PREV}" + PREVADDR="${PREFIX}${PREV}" PREVAS=$((${ASBASE} + $PREV)) # Edit config to suit. @@ -39,17 +44,33 @@ for H in `seq 1 ${NUM}` ; do neighbor ${NEXTADDR} peer-group default neighbor ${PREVADDR} remote-as ${PREVAS} neighbor ${PREVADDR} peer-group default + ! + address-family ipv6 + network 3ffe:${H}::/48 + network 3ffe:${H}:1::/48 pathlimit 1 + network 3ffe:${H}:2::/48 pathlimit 3 + network 3ffe:${H}:3::/48 pathlimit 3 + neighbor default activate + neighbor default capability orf prefix-list both + neighbor default default-originate + neighbor ${NEXTADDR} peer-group default + neighbor ${PREVADDR} peer-group default + exit-address-family + ! + line vty + ! + end EOF - chown quagga:quagga "$CONF" + chown ${CHOWNSTR} "$CONF" fi # You may want to automatically add configure a local address # on a loop interface. # - # Solaris: ifconfig vni${H} plumb ${ADDR}/32 up - # Linux: ip address add ${ADDR}/32 dev lo 2> /dev/null - ${BGPD} -i /var/run/quagga/bgpd${H}.pid \ + # Solaris: ifconfig vni${H} plumb ${ADDR}/${ADDRPLEN} up + # Linux: ip address add ${ADDR}/${ADDRPLEN} dev lo 2> /dev/null + ${BGPD} -i "${PIDBASE}"/bgpd${H}.pid \ -l ${ADDR} \ - -f /etc/quagga/bgpd${H}.conf \ + -f "${CONF}" \ -P $((${VTYBASE}+${H})) \ -d done |