summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-04-04 13:46:38 +0200
committerChristian Poessinger <christian@poessinger.com>2020-04-04 13:46:38 +0200
commit8dcf042a7f58dfac590b28174dc1d9b87ce5a893 (patch)
tree74acfbd69639855780f9b4608d36c48002434230 /src
parent926eaabc283dabc1b2db0bafbb41bc71f9766f05 (diff)
downloadvyos-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')
-rwxr-xr-xsrc/conf_mode/interfaces-pppoe.py21
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