Skip to content

Instantly share code, notes, and snippets.

@abbyck
Last active November 9, 2020 10:18
Show Gist options
  • Save abbyck/cb5c5b270492349727aaae589877ac46 to your computer and use it in GitHub Desktop.
Save abbyck/cb5c5b270492349727aaae589877ac46 to your computer and use it in GitHub Desktop.
mwan3 config to failover between 3 pppoe interfaces(BSNL FTTH, KeralaVision, BSNL DSL)
config globals 'globals'
option mmx_mask '0x3F00'
option rtmon_interval '5'
config interface 'wan'
option enabled '1'
list track_ip '8.8.4.4'
list track_ip '8.8.8.8'
list track_ip '1.1.1.1'
list track_ip '1.0.0.1'
option family 'ipv4'
option check_quality '1'
option reliability '2'
option count '1'
option timeout '2'
option interval '2'
option failure_latency '400'
option recovery_latency '150'
option initial_state 'offline'
option failure_loss '20'
option recovery_loss '5'
option interval '5'
option down '3'
option up '2'
config interface 'kv'
option enabled '1'
list track_ip '8.8.4.4'
list track_ip '8.8.8.8'
list track_ip '1.1.1.1'
list track_ip '1.0.0.1'
option family 'ipv4'
option check_quality '1'
option reliability '2'
option count '1'
option timeout '2'
option interval '2'
option failure_latency '400'
option recovery_latency '150'
option initial_state 'offline'
option failure_loss '20'
option recovery_loss '5'
option interval '5'
option down '3'
option up '2'
config interface 'dsl'
option enabled '1'
list track_ip '8.8.4.4'
list track_ip '8.8.8.8'
list track_ip '1.1.1.1'
list track_ip '1.0.0.1'
option family 'ipv4'
option check_quality '1'
option reliability '2'
option count '1'
option timeout '2'
option interval '2'
option failure_latency '400'
option recovery_latency '150'
option initial_state 'offline'
option failure_loss '20'
option recovery_loss '5'
option interval '5'
option down '3'
option up '2'
config member 'wan_m1_w3'
option interface 'wan'
option metric '1'
option weight '3'
config member 'wan_m2_w3'
option interface 'wan'
option metric '2'
option weight '3'
config member 'wan_m3_w3'
option interface 'wan'
option metric '3'
option weight '3'
config member 'kv_m1_w3'
option interface 'kv'
option metric '1'
option weight '3'
config member 'kv_m2_w3'
option interface 'kv'
option metric '2'
option weight '3'
config member 'kv_m3_w3'
option interface 'kv'
option metric '3'
option weight '3'
config member 'dsl_m1_w3'
option interface 'dsl'
option metric '1'
option weight '3'
config member 'dsl_m2_w3'
option interface 'dsl'
option metric '2'
option weight '3'
config member 'dsl_m3_w3'
option interface 'dsl'
option metric '3'
option weight '3'
config member 'BSNL_FTTH'
option interface 'wan'
option metric '1'
option weight '1'
config member 'KV_FTTH'
option interface 'kv'
option metric '1'
option weight '1'
config member 'BSNL_DSL'
option interface 'dsl'
option metric '1'
option weight '1'
config policy 'BSNL_FTTH_only'
list use_member 'wan_m1_w3'
config policy 'KV_FTTH_only'
list use_member 'kv_m1_w3'
config policy 'BSNL_DSL_only'
list use_member 'dsl_m1_w3'
config policy 'kv_bsnlftth_dsl'
list use_member 'kv_m1_w3'
list use_member 'wan_m2_w3'
list use_member 'dsl_m3_w3'
config policy 'bsnlftth_kv_dsl'
list use_member 'wan_m1_w3'
list use_member 'kv_m2_w3'
list use_member 'dsl_m3_w3'
config policy 'dsl_bsnlftth_kv'
list use_member 'dsl_m1_w3'
list use_member 'wan_m2_w3'
list use_member 'kv_m3_w3'
config rule 'https'
option sticky '1'
option timeout '4'
option dest_port '443'
option proto 'tcp'
option use_policy 'kv_bsnlftth_dsl'
config rule 'default_rule_v4'
option dest_ip '0.0.0.0/0'
option use_policy 'kv_bsnlftth_dsl'
option family 'ipv4'
@abbyck
Copy link
Author

abbyck commented Nov 9, 2020

With wireguard

config rule 'default_rule_v4'
	option dest_ip '0.0.0.0/0'
	option family 'ipv4'
	option proto 'all'
	option sticky '0'
	option timeout '4'
	option use_policy 'bsnlftth_dsl'

config globals 'globals'
	option mmx_mask '0x3F00'
	option rtmon_interval '1'

config interface 'wan'
	option enabled '1'
	list track_ip '8.8.4.4'
	list track_ip '8.8.8.8'
	list track_ip '1.1.1.1'
	list track_ip '1.0.0.1'
	option family 'ipv4'
	option check_quality '1'
	option reliability '2'
	option count '1'
	option timeout '2'
	option failure_latency '400'
	option recovery_latency '150'
	option initial_state 'offline'
	option failure_loss '20'
	option recovery_loss '5'
	option interval '5'
	option down '3'
	option up '2'

config interface 'kv'
	option enabled '1'
	list track_ip '8.8.4.4'
	list track_ip '8.8.8.8'
	list track_ip '1.1.1.1'
	list track_ip '1.0.0.1'
	option family 'ipv4'
	option check_quality '1'
	option reliability '2'
	option count '1'
	option timeout '2'
	option failure_latency '400'
	option recovery_latency '150'
	option initial_state 'offline'
	option failure_loss '20'
	option recovery_loss '5'
	option interval '5'
	option down '3'
	option up '2'

config interface 'dsl'
	option enabled '1'
	list track_ip '8.8.4.4'
	list track_ip '8.8.8.8'
	list track_ip '1.1.1.1'
	list track_ip '1.0.0.1'
	option family 'ipv4'
	option check_quality '1'
	option reliability '2'
	option count '1'
	option timeout '2'
	option initial_state 'offline'
	option failure_loss '20'
	option recovery_loss '5'
	option interval '5'
	option down '3'
	option up '2'
	option track_method 'ping'
	option size '56'
	option max_ttl '60'
	option failure_latency '800'
	option recovery_latency '400'
	option failure_interval '5'
	option recovery_interval '5'

config member 'wan_m1_w3'
	option interface 'wan'
	option metric '1'
	option weight '3'

config member 'wan_m2_w3'
	option interface 'wan'
	option metric '2'
	option weight '3'

config member 'wan_m3_w3'
	option interface 'wan'
	option metric '3'
	option weight '3'

config member 'kv_m1_w3'
	option interface 'kv'
	option metric '1'
	option weight '3'

config member 'kv_m2_w3'
	option interface 'kv'
	option metric '2'
	option weight '3'

config member 'kv_m3_w3'
	option interface 'kv'
	option metric '3'
	option weight '3'

config member 'dsl_m1_w3'
	option interface 'dsl'
	option metric '1'
	option weight '3'

config member 'dsl_m2_w3'
	option interface 'dsl'
	option metric '2'
	option weight '3'

config member 'dsl_m3_w3'
	option interface 'dsl'
	option metric '3'
	option weight '3'

config member 'BSNL_FTTH'
	option interface 'wan'
	option metric '1'
	option weight '1'

config member 'KV_FTTH'
	option interface 'kv'
	option metric '1'
	option weight '1'

config member 'BSNL_DSL'
	option interface 'dsl'
	option metric '1'
	option weight '1'

config policy 'BSNL_FTTH_only'
	list use_member 'wan_m1_w3'

config policy 'KV_FTTH_only'
	list use_member 'kv_m1_w3'

config policy 'BSNL_DSL_only'
	list use_member 'dsl_m1_w3'

config policy 'kv_bsnlftth_dsl'
	list use_member 'kv_m1_w3'
	list use_member 'wan_m2_w3'
	list use_member 'dsl_m3_w3'

config policy 'bsnlftth_kv_dsl'
	list use_member 'wan_m1_w3'
	list use_member 'kv_m2_w3'
	list use_member 'dsl_m3_w3'
	option last_resort 'default'

config policy 'dsl_bsnlftth_kv'
	list use_member 'dsl_m1_w3'
	list use_member 'wan_m2_w3'
	list use_member 'kv_m3_w3'

config interface 'wg'
	option enabled '1'
	option initial_state 'online'
	option family 'ipv4'
	list track_ip '8.8.8.8'
	list track_ip '8.8.4.4'
	option track_method 'ping'
	option size '56'
	option max_ttl '60'
	option check_quality '0'
	option timeout '2'
	option interval '5'
	option failure_interval '5'
	option down '3'
	option reliability '2'
	option count '3'
	option recovery_interval '1'
	option up '2'

config member 'wg_m1_w3'
	option interface 'wg'
	option metric '1'
	option weight '3'

config member 'wg_m2_w3'
	option interface 'wg'
	option metric '2'
	option weight '3'

config member 'wg_m3_w3'
	option interface 'wg'
	option metric '3'
	option weight '3'

config policy 'wg_bsnlftth_dsl'
	option last_resort 'default'
	list use_member 'wg_m1_w3'
	list use_member 'wan_m2_w3'
	list use_member 'dsl_m3_w3'

config policy 'bsnlftth_dsl'
	list use_member 'wan_m1_w3'
	list use_member 'dsl_m2_w3'
	option last_resort 'default'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment