 7d07a6cf50
			
		
	
	
		7d07a6cf50
		
	
	
	
	
		
			
			Those files are actually common for dom0 and VM, but as we splitted the repos, move them accordingly.
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash                              
 | |
| #============================================================================
 | |
| # /etc/xen/vif-route-qubes                                                   
 | |
| #                                                                            
 | |
| # Script for configuring a vif in routed mode.                               
 | |
| # The hotplugging system will call this script if it is specified either in  
 | |
| # the device configuration given to Xend, or the default Xend configuration  
 | |
| # in /etc/xen/xend-config.sxp.  If the script is specified in neither of those
 | |
| # places, then vif-bridge is the default.                                     
 | |
| #                                                                             
 | |
| # Usage:                                                                      
 | |
| # vif-route (add|remove|online|offline)                                       
 | |
| #                                                                             
 | |
| # Environment vars:                                                           
 | |
| # vif         vif interface name (required).                                  
 | |
| # XENBUS_PATH path to this device's details in the XenStore (required).       
 | |
| #                                                                             
 | |
| # Read from the store:                                                        
 | |
| # ip      list of IP networks for the vif, space-separated (default given in  
 | |
| #         this script).                                                       
 | |
| #============================================================================ 
 | |
| 
 | |
| dir=$(dirname "$0")
 | |
| . "$dir/vif-common.sh"
 | |
| 
 | |
| #main_ip=$(dom0_ip)
 | |
| 
 | |
| case "$command" in
 | |
| 	online)
 | |
| 		ifconfig ${vif} up
 | |
| 		echo 1 >/proc/sys/net/ipv4/conf/${vif}/proxy_arp
 | |
| 		ipcmd='add'
 | |
| 		iptables_cmd='-I PREROUTING 1'
 | |
| 		cmdprefix=''
 | |
| 		;;
 | |
| 	offline)
 | |
| 		do_without_error ifdown ${vif}
 | |
| 		ipcmd='del'
 | |
| 		iptables_cmd='-D PREROUTING'
 | |
| 		cmdprefix='do_without_error'
 | |
| 		;;
 | |
| esac
 | |
| 
 | |
| domid=${vif/vif/}
 | |
| domid=${domid/.*/}
 | |
| # metric must be possitive, but prefer later interface
 | |
| #  32752 is max XID aka domid
 | |
| metric=$[ 32752 - $domid ]
 | |
| 
 | |
| if [ "${ip}" ] ; then
 | |
| 	# If we've been given a list of IP addresses, then add routes from dom0 to
 | |
| 	# the guest using those addresses.
 | |
| 	for addr in ${ip} ; do
 | |
| 		${cmdprefix} ip route ${ipcmd} ${addr} dev ${vif} metric $metric
 | |
| 	done
 | |
| 	${cmdprefix} iptables -t raw $iptables_cmd -i ${vif} \! -s ${ip} -j DROP
 | |
| 	back_ip=${ip%.*}.1
 | |
| 	${cmdprefix} ip addr ${ipcmd} ${back_ip}/32 dev ${vif}
 | |
| fi
 | |
| 
 | |
| log debug "Successful vif-route-qubes $command for $vif."
 | |
| if [ "$command" = "online" ]
 | |
| then
 | |
|   success
 | |
| fi
 |