📄 test_routing2.sh
字号:
med 5 \ nexthop $NH2 \ localpref 100 \ nlri 10.10.10.10/24 \ nlri 20.20.20.20/24 result=$(lookup_route_by_dest4 10.10.10.10 true false) echo $result OIFS=$IFS IFS='=' set $result result=$2 IFS=$OIFS if [ $result != $GW3 ] then echo "Gateway is $result should be $GW3" return 1 fi # Remove IGP state from the RIB delete_route4 is-is true false $NH1/24 delete_route4 is-is true false $NH2/24 delete_route4 is-is true false $NH3/24 delete_igp_table4 is-is isis isis true false}test5(){ echo "TEST5 - Test for deterministic MEDs same as test3 but test all arrival permutations" # Route ASPATH MED IGP DISTANCE # 1 1,2,3 10 10 # 2 1,2,3 5 30 # 3 4,5,6 20 20 # Route 3 should always be the winner regardless of the order of arrival # of the routes. config_peers # Configure IGP routes in the RIB as if IS-IS is running. # This allows us to test varying IGP distances. add_igp_table4 is-is isis isis true false add_route4 is-is true false $NH1/24 $GW1 10 add_route4 is-is true false $NH2/24 $GW2 30 add_route4 is-is true false $NH3/24 $GW3 20 R1="peer1 send packet update origin 2 \ aspath 1,2,3 \ med 10 \ nexthop $NH1 \ localpref 100 \ nlri 10.10.10.10/24 \ nlri 20.20.20.20/24" R2="peer2 send packet update \ origin 2 \ aspath 1,2,3 \ med 5 \ nexthop $NH2 \ localpref 100 \ nlri 10.10.10.10/24 \ nlri 20.20.20.20/24" R3="peer3 send packet update \ origin 2 \ aspath 4,5,6 \ med 20 \ nexthop $NH3 \ localpref 100 \ nlri 10.10.10.10/24 \ nlri 20.20.20.20/24" delete_routes() { WITHDRAW="packet update\ withdraw 10.10.10.10/24 \ withdraw 20.20.20.20/24" coord peer1 send $WITHDRAW coord peer2 send $WITHDRAW coord peer3 send $WITHDRAW } # Try all the permutations of sending in these routes for i in "$R1:$R2:$R3" \ "$R1:$R3:$R2" \ "$R2:$R1:$R3" \ "$R2:$R3:$R1" \ "$R3:$R1:$R2" \ "$R3:$R2:$R1" do OIFS=$IFS IFS=':' set $i IFS=$OIFS coord $1 coord $2 coord $3 # Wait for the route changes to propogate. sleep 2 result=$(lookup_route_by_dest4 10.10.10.10 true false) echo $result OIFS=$IFS IFS='=' set $result result=$2 IFS=$OIFS if [ $result != $GW3 ] then echo "Gateway is $result should be $GW3" return 1 fi delete_routes done # Remove IGP state from the RIB delete_route4 is-is true false $NH1/24 delete_route4 is-is true false $NH2/24 delete_route4 is-is true false $NH3/24 delete_igp_table4 is-is isis isis true false}test6(){ echo "TEST6 - Verify that it is possible add and remove tables in the RIB" add_igp_table4 is-is isis isis true false delete_igp_table4 is-is isis isis true false add_igp_table4 is-is isis isis true false delete_igp_table4 is-is isis isis true false}test7(){ echo "TEST7 - Next hop resolvability on multiple peerings" # Used to trigger a bug in the RIB-OUT config_peers # Configure IGP routes in the RIB as if IS-IS is running. add_igp_table4 is-is isis isis true false # Route 1 coord peer1 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 1 \ nlri 10.10.10.10/24 # Route 2 coord peer2 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 2 \ nlri 10.10.10.10/24 # Route 3 coord peer3 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 3 \ nlri 10.10.10.10/24 add_route4 is-is true false $NH1/24 $GW1 10 coord peer1 assert established coord peer2 assert established coord peer3 assert established}test8(){ echo "TEST8 - Next hop resolvability on multiple peerings" # Used to trigger a bug in the RIB-OUT config_peers # Configure IGP routes in the RIB as if IS-IS is running. add_igp_table4 is-is isis isis true false # Route 1 coord peer1 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ nlri 10.10.10.10/24 # Route 2 coord peer2 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ nlri 10.10.10.10/24 # Route 3 coord peer3 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ nlri 10.10.10.10/24 add_route4 is-is true false $NH1/24 $GW1 10 delete_route4 is-is true false $NH1/24 coord peer1 assert established coord peer2 assert established coord peer3 assert established}test9(){ echo "TEST9 - Next hop resolvability on multiple peerings" # Used to trigger a bug in the RIB-OUT # Same as previous test use the meds to change the priority of the routes. config_peers # Configure IGP routes in the RIB as if IS-IS is running. add_igp_table4 is-is isis isis true false sleep 2 # Route 1 coord peer1 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 3 \ nlri 10.10.10.10/24 # Route 2 coord peer2 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 2 \ nlri 10.10.10.10/24 # Route 3 coord peer3 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 1 \ nlri 10.10.10.10/24 add_route4 is-is true false $NH1/24 $GW1 10 coord peer1 assert established coord peer2 assert established coord peer3 assert established}test10(){ echo "TEST10 - Next hop resolvability on multiple peerings" # Used to trigger a bug in the RIB-OUT config_peers # Configure IGP routes in the RIB as if IS-IS is running. add_igp_table4 is-is isis isis true false add_route4 is-is true false $NH1/24 $GW1 10 # Route 1 coord peer1 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 3 \ nlri 10.10.10.10/24 # Route 2 coord peer2 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 2 \ nlri 10.10.10.10/24 # Route 3 coord peer3 send packet update \ origin 2 \ aspath "1,2,3" \ nexthop $NH1 \ localpref 100 \ med 1 \ nlri 10.10.10.10/24 delete_route4 is-is true false $NH1/24 coord peer1 assert established coord peer2 assert established coord peer3 assert established}test11(){ echo "TEST11 - Bugzilla BUG #139" echo " 1) On two I-BGP peerings send an update with an empty aspath" echo " 2) Used to cause a the BGP decision process to fail." coord reset coord target $HOST $PORT1 coord initialise attach peer1 coord peer1 establish AS $PEER1_AS \ holdtime 0 \ id 10.10.10.1 \ keepalive false coord peer1 assert established coord target $HOST $PORT2 coord initialise attach peer2 coord peer2 establish AS $PEER2_AS \ holdtime 0 \ id 10.10.10.2 \ keepalive false coord peer2 assert established coord target $HOST $PORT3 coord initialise attach peer3 coord peer3 establish AS $PEER3_AS \ holdtime 0 \ id 10.10.10.3 \ keepalive false coord peer3 assert established PACKET1="packet update origin 1 aspath empty nexthop $IF1 med 1 nlri 10.10.10.0/24" PACKET2="packet update origin 1 aspath empty nexthop $IF2 med 1 nlri 10.10.10.0/24" coord peer1 send $PACKET1 coord peer2 send $PACKET1 sleep 2 coord peer1 assert established coord peer2 assert established coord peer3 assert established}# http://www.xorp.org/bugzilla/show_bug.cgi?id=296test12(){ echo "TEST12 - match a BGP route with a static route" config_peers PACKET="packet update origin 2 aspath 1 nexthop $GW1 nlri 10.10.10.0/24" coord peer1 send $PACKET add_igp_table4 static bgp bgp true false add_route4 static true false 10.10.10.0/24 $GW2 1 sleep 5 coord peer1 assert established}TESTS_NOT_FIXED='test12'TESTS='test1 test1_ipv6 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11'# Include command line. ${srcdir}/args.shif [ $START_PROGRAMS = "yes" ]then CXRL="$CALLXRL -r 10" runit $QUIET $VERBOSE -c "$0 -s -c $*" <<EOF ../../libxipc/xorp_finder ../../fea/xorp_fea_dummy = $CXRL finder://fea/common/0.1/get_target_name ../../rib/xorp_rib = $CXRL finder://rib/common/0.1/get_target_name ../xorp_bgp = $CXRL finder://bgp/common/0.1/get_target_name ./test_peer -s peer1 = $CXRL finder://peer1/common/0.1/get_target_name ./test_peer -s peer2 = $CXRL finder://peer2/common/0.1/get_target_name ./test_peer -s peer3 = $CXRL finder://peer3/common/0.1/get_target_name ./coord = $CXRL finder://coord/common/0.1/get_target_nameEOF trap '' 0 exit $?fiif [ $CONFIGURE = "yes" ]then configure_bgp configure_ribfifor i in $TESTSdo# Temporary fix to let TCP sockets created by call_xrl pass through TIME_WAIT TIME_WAIT=`time_wait_seconds` echo "Waiting $TIME_WAIT seconds for TCP TIME_WAIT state timeout" sleep $TIME_WAIT $idone# Local Variables:# mode: shell-script# sh-indentation: 4# End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -