From 8dcf042a7f58dfac590b28174dc1d9b87ce5a893 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 4 Apr 2020 13:46:38 +0200 Subject: 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. --- src/conf_mode/interfaces-pppoe.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/conf_mode/interfaces-pppoe.py') 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 -- cgit v1.2.3