mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +00:00 
			
		
		
		
	Merge branch 'master' of github.com:greearb/lanforge-scripts
This commit is contained in:
		
							
								
								
									
										85
									
								
								arp-flood.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										85
									
								
								arp-flood.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,85 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					echo "----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- "
 | 
				
			||||||
 | 
					echo "      This script will issue local arp flushes. "
 | 
				
			||||||
 | 
					echo "      Those commands cannot be issued against a remote lanforge."
 | 
				
			||||||
 | 
					echo "----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- "
 | 
				
			||||||
 | 
					sleep 2
 | 
				
			||||||
 | 
					mgr=localhost
 | 
				
			||||||
 | 
					port=4001
 | 
				
			||||||
 | 
					station=wlan0
 | 
				
			||||||
 | 
					upstream=eth1
 | 
				
			||||||
 | 
					num_mvlans=20
 | 
				
			||||||
 | 
					cxlist=()
 | 
				
			||||||
 | 
					ports=($station)
 | 
				
			||||||
 | 
					trap do_sigint ABRT
 | 
				
			||||||
 | 
					trap do_sigint INT
 | 
				
			||||||
 | 
					trap do_sigint KILL
 | 
				
			||||||
 | 
					trap do_sigint PIPE
 | 
				
			||||||
 | 
					trap do_sigint QUIT
 | 
				
			||||||
 | 
					trap do_sigint SEGV
 | 
				
			||||||
 | 
					trap do_sigint TERM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function do_sigint() {
 | 
				
			||||||
 | 
					    echo ""
 | 
				
			||||||
 | 
					    for cx in "${cxlist[@]}"; do
 | 
				
			||||||
 | 
					        echo -n "stopping $cx "
 | 
				
			||||||
 | 
					        fire_cmd set_cx_state default_tm $cx STOPPED >/dev/null
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    for cx in "${cxlist[@]}"; do
 | 
				
			||||||
 | 
					        echo -n "removing $cx "
 | 
				
			||||||
 | 
					        fire_cmd rm_cx default_tm $cx STOPPED >/dev/null
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    for cx in "${cxlist[@]}"; do
 | 
				
			||||||
 | 
					        echo -n "removing $cx-A $cx-B "
 | 
				
			||||||
 | 
					        fire_cmd rm_endp ${cx}-A STOPPED >/dev/null
 | 
				
			||||||
 | 
					        fire_cmd rm_endp ${cx}-B STOPPED >/dev/null
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function fire_cmd() {
 | 
				
			||||||
 | 
					    ./lf_firemod.pl --mgr $mgr --mgr_port $port --quiet yes --action do_cmd \
 | 
				
			||||||
 | 
					    --cmd "$*" \
 | 
				
			||||||
 | 
					     &>/dev/null
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function fire_newcx() {
 | 
				
			||||||
 | 
					    local cxname=$1; shift
 | 
				
			||||||
 | 
					    local sta=$1; shift
 | 
				
			||||||
 | 
					    local eth=$1; shift
 | 
				
			||||||
 | 
					    ./lf_firemod.pl --mgr $mgr --mgr_port $port --action create_cx --quiet yes \
 | 
				
			||||||
 | 
					        --cx_name $cxname --use_ports $sta,$eth --use_speeds 2600,2600 --endp_type udp \
 | 
				
			||||||
 | 
					         &>/dev/null
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# create new set of vlans, this will also recreate them using random mac addresses
 | 
				
			||||||
 | 
					for i in `seq 0 $num_mvlans`; do
 | 
				
			||||||
 | 
					    mvlan="${upstream}#${i}"
 | 
				
			||||||
 | 
					    echo -n " $mvlan"
 | 
				
			||||||
 | 
					    fire_cmd rm_vlan 1 1 $mvlan
 | 
				
			||||||
 | 
					    echo -n "-"
 | 
				
			||||||
 | 
					    fire_cmd add_mvlan 1 1 $upstream 'xx:xx:xx:*:*:xx' $i
 | 
				
			||||||
 | 
					    echo -n "+"
 | 
				
			||||||
 | 
					    fire_cmd set_port 1 1 "$mvlan" NA NA NA NA 2147483648 NA NA NA NA 67125250
 | 
				
			||||||
 | 
					    echo -n "."
 | 
				
			||||||
 | 
					    fire_newcx "udp-$i" $station $mvlan
 | 
				
			||||||
 | 
					    echo -n "o"
 | 
				
			||||||
 | 
					    cxlist+=("udp-$i")
 | 
				
			||||||
 | 
					    ports+=($mvlan)
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					sleep 4
 | 
				
			||||||
 | 
					for i in `seq 0 $num_mvlans`; do
 | 
				
			||||||
 | 
					    echo -n "!"
 | 
				
			||||||
 | 
					    fire_cmd set_cx_state default_tm "udp-$i" RUNNING
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sleep 4
 | 
				
			||||||
 | 
					echo ""
 | 
				
			||||||
 | 
					echo -n "Starting arp flushing "
 | 
				
			||||||
 | 
					while : ; do
 | 
				
			||||||
 | 
					    for p in "${ports[@]}"; do
 | 
				
			||||||
 | 
					        ip neigh flush dev $p@$upstream
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    echo -n "."
 | 
				
			||||||
 | 
					    sleep 0.2
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
		Reference in New Issue
	
	Block a user