diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-04-04 13:46:38 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-04-04 13:46:38 +0200 |
commit | 8dcf042a7f58dfac590b28174dc1d9b87ce5a893 (patch) | |
tree | 74acfbd69639855780f9b4608d36c48002434230 /src/conf_mode/interfaces-pppoe.py | |
parent | 926eaabc283dabc1b2db0bafbb41bc71f9766f05 (diff) | |
download | vyos-1x-8dcf042a7f58dfac590b28174dc1d9b87ce5a893.tar.gz vyos-1x-8dcf042a7f58dfac590b28174dc1d9b87ce5a893.zip |
pppoe: T2219: move adding of default route to ip-(up|down) script
As PPPoE interfaces should be part of a VRF it is required that the default
can also be set into the specified VRF. The default way of PPP by setting the
"defaultroute" option does not take a VRF into account. In this case PPP
installs a Kernel route forwarding all default traffic over this interface.
This change installs a static route with metric 1 instead into the routing
table via FRR. This is not the same as a Kernel route in terms of metric 1
compared to 0 but it should do the trick.
Diffstat (limited to 'src/conf_mode/interfaces-pppoe.py')
-rwxr-xr-x | src/conf_mode/interfaces-pppoe.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/conf_mode/interfaces-pppoe.py b/src/conf_mode/interfaces-pppoe.py index 66f7ed5fd..3b79795d7 100755 --- a/src/conf_mode/interfaces-pppoe.py +++ b/src/conf_mode/interfaces-pppoe.py @@ -168,9 +168,12 @@ def generate(pppoe): intf = pppoe['intf'] config_pppoe = f'/etc/ppp/peers/{intf}' script_pppoe_pre_up = f'/etc/ppp/ip-up.d/1000-vyos-pppoe-{intf}' - script_pppoe_ipv6_up = f'/etc/ppp/ipv6-up.d/1000-vyos-pppoe-autoconf-{intf}' + script_pppoe_ip_up = f'/etc/ppp/ip-up.d/1000-vyos-pppoe-{intf}' + script_pppoe_ip_down = f'/etc/ppp/ip-down.d/1000-vyos-pppoe-{intf}' + script_pppoe_ipv6_up = f'/etc/ppp/ipv6-up.d/1000-vyos-pppoe-{intf}' - config_files = [config_pppoe, script_pppoe_pre_up, script_pppoe_ipv6_up] + config_files = [config_pppoe, script_pppoe_pre_up, script_pppoe_ip_up, + script_pppoe_ip_down, script_pppoe_ipv6_up] # Ensure directories for config files exist - otherwise create them on demand for file in config_files: @@ -201,6 +204,18 @@ def generate(pppoe): with open(script_pppoe_pre_up, 'w') as f: f.write(config_text) + # Create script for ip-up.d + tmpl = env.get_template('ip-up.script.tmpl') + config_text = tmpl.render(pppoe) + with open(script_pppoe_ip_up, 'w') as f: + f.write(config_text) + + # Create script for ip-down.d + tmpl = env.get_template('ip-down.script.tmpl') + config_text = tmpl.render(pppoe) + with open(script_pppoe_ip_down, 'w') as f: + f.write(config_text) + # Create script for ipv6-up.d tmpl = env.get_template('ipv6-up.script.tmpl') config_text = tmpl.render(pppoe) @@ -209,6 +224,8 @@ def generate(pppoe): # make generated script file executable chmod_x_file(script_pppoe_pre_up) + chmod_x_file(script_pppoe_ip_up) + chmod_x_file(script_pppoe_ip_down) chmod_x_file(script_pppoe_ipv6_up) return None |