mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	Add DSCP IPv6 rules only if IPv6 is enabled
This commit is contained in:
		
							parent
							
								
									37ac209817
								
							
						
					
					
						commit
						a2af208487
					
				
					 1 changed files with 40 additions and 20 deletions
				
			
		|  | @ -34,17 +34,26 @@ _add_dscp_domains_rules() { | |||
| 		uci -q batch <<-EOF | ||||
| 			set dhcp.omr_dscp_${class}=ipset | ||||
| 			add_list dhcp.omr_dscp_${class}.name="omr_dscp_${class}_4" | ||||
| 			add_list dhcp.omr_dscp_${class}.name="omr_dscp_${class}_6" | ||||
| 			commit dhcp | ||||
| 		EOF | ||||
| 		if [ "$disableipv6" = "0" ]; then | ||||
| 			uci -q batch <<-EOF | ||||
| 				add_list dhcp.omr_dscp_${class}.name="omr_dscp_${class}_6" | ||||
| 				commit dhcp | ||||
| 			EOF | ||||
| 		fi | ||||
| 		uci batch <<-EOF | ||||
| 			set firewall.omr_dscp_${class}_4=ipset | ||||
| 			set firewall.omr_dscp_${class}_4.name="omr_dscp_${class}_4" | ||||
| 			set firewall.omr_dscp_${class}_4.match='dest_ip' | ||||
| 			set firewall.omr_dscp_${class}_6=ipset | ||||
| 			set firewall.omr_dscp_${class}_6.name="omr_dscp_${class}_6" | ||||
| 			set firewall.omr_dscp_${class}_6.match='dest_ip' | ||||
| 		EOF | ||||
| 		if [ "$disableipv6" = "0" ]; then | ||||
| 			uci -q batch <<-EOF | ||||
| 				set firewall.omr_dscp_${class}_6=ipset | ||||
| 				set firewall.omr_dscp_${class}_6.name="omr_dscp_${class}_6" | ||||
| 				set firewall.omr_dscp_${class}_6.match='dest_ip' | ||||
| 			EOF | ||||
| 		fi | ||||
| 		uci -q batch <<-EOF | ||||
| 			set firewall.omr_dscp_rule_${class}_4=rule | ||||
| 			set firewall.omr_dscp_rule_${class}_4.name="omr_dscp_${class}_4" | ||||
|  | @ -53,15 +62,20 @@ _add_dscp_domains_rules() { | |||
| 			set firewall.omr_dscp_rule_${class}_4.target='DSCP' | ||||
| 			set firewall.omr_dscp_rule_${class}_4.src='lan' | ||||
| 			set firewall.omr_dscp_rule_${class}_4.dest='*' | ||||
| 			set firewall.omr_dscp_rule_${class}_6=rule | ||||
| 			set firewall.omr_dscp_rule_${class}_6.name="omr6_dscp_${class}_6" | ||||
| 			set firewall.omr_dscp_rule_${class}_6.ipset="omr_dscp_${class}_6" | ||||
| 			set firewall.omr_dscp_rule_${class}_6.target='DSCP' | ||||
| 			set firewall.omr_dscp_rule_${class}_6.set_dscp="$(echo ${class} | tr '[a-z'] '[A-Z]')" | ||||
| 			set firewall.omr_dscp_rule_${class}_6.src='lan' | ||||
| 			set firewall.omr_dscp_rule_${class}_6.dest='*' | ||||
| 			commit firewall | ||||
| 		EOF | ||||
| 		if [ "$disableipv6" = "0" ]; then | ||||
| 			uci -q batch <<-EOF | ||||
| 				set firewall.omr_dscp_rule_${class}_6=rule | ||||
| 				set firewall.omr_dscp_rule_${class}_6.name="omr6_dscp_${class}_6" | ||||
| 				set firewall.omr_dscp_rule_${class}_6.ipset="omr_dscp_${class}_6" | ||||
| 				set firewall.omr_dscp_rule_${class}_6.target='DSCP' | ||||
| 				set firewall.omr_dscp_rule_${class}_6.set_dscp="$(echo ${class} | tr '[a-z'] '[A-Z]')" | ||||
| 				set firewall.omr_dscp_rule_${class}_6.src='lan' | ||||
| 				set firewall.omr_dscp_rule_${class}_6.dest='*' | ||||
| 				commit firewall | ||||
| 			EOF | ||||
| 		fi | ||||
| 	done | ||||
| } | ||||
| 
 | ||||
|  | @ -114,19 +128,23 @@ _add_fwmark_chain() { | |||
| 	_ipt4 -N dscp_mark | ||||
| 	_ipt4 -A PREROUTING -i "$lan_device" -j dscp_mark | ||||
| 	_ipt4 -A POSTROUTING -j dscp_mark | ||||
| 	_ipt6 -N dscp_mark | ||||
| 	_ipt6 -A PREROUTING -i "$lan_device" -j dscp_mark | ||||
| 	_ipt6 -A POSTROUTING -j dscp_mark | ||||
| 	if [ "$disableipv6" = "0" ]; then | ||||
| 		_ipt6 -N dscp_mark | ||||
| 		_ipt6 -A PREROUTING -i "$lan_device" -j dscp_mark | ||||
| 		_ipt6 -A POSTROUTING -j dscp_mark | ||||
| 	fi | ||||
| 	for class in cs4 cs5 cs6 cs7; do | ||||
| 		# xtun (hex) -> 0x7874756e | ||||
| 		_ipt4 -A dscp_mark \ | ||||
| 			-m comment --comment "$class" \ | ||||
| 			-m dscp --dscp-class "$class" \ | ||||
| 			-j MARK --set-mark 0x7874756e | ||||
| 		_ipt6 -A dscp_mark \ | ||||
| 			-m comment --comment "$class" \ | ||||
| 			-m dscp --dscp-class "$class" \ | ||||
| 			-j MARK --set-mark 0x7874756e | ||||
| 		if [ "$disableipv6" = "0" ]; then | ||||
| 			_ipt6 -A dscp_mark \ | ||||
| 				-m comment --comment "$class" \ | ||||
| 				-m dscp --dscp-class "$class" \ | ||||
| 				-j MARK --set-mark 0x7874756e | ||||
| 		fi | ||||
| 	done | ||||
| } | ||||
| 
 | ||||
|  | @ -147,7 +165,9 @@ _setup_tunnel() { | |||
| 	# tun0: cs0 (default) | ||||
| 	# xtun0: cs6 | ||||
| 	_ipt4 -A dscp_output -o "tun0" -j DSCP --set-dscp-class cs6 | ||||
| 	_ipt6 -A dscp_output -o "tun0" -j DSCP --set-dscp-class cs6 | ||||
| 	if [ "$disableipv6" = "0" ]; then | ||||
| 		_ipt6 -A dscp_output -o "tun0" -j DSCP --set-dscp-class cs6 | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| _cleanup() { | ||||
|  | @ -165,7 +185,7 @@ _cleanup() { | |||
| start_service() { | ||||
| 	# Cleanup | ||||
| 	_cleanup | ||||
| 
 | ||||
| 	disableipv6="$(uci -q get openmptcprouter.settings.disable_ipv6)" | ||||
| 	config_load dscp | ||||
| 	# Add chains | ||||
| 	_add_dscp_domains_rules | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue