Skip to content

Commit ee7eb5d

Browse files
author
Ritwick DSouza
committed
[raspbian] Added support for ipv6 static routes
1 parent c864d22 commit ee7eb5d

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

netjsonconfig/backends/raspbian/converters/interfaces.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ def to_intermediate(self):
3333
route['dest'] = dest
3434
route['dest_mask'] = dest_mask
3535
del route['destination']
36-
new_interface.update({'route': route})
36+
elif ip_network(route.get('next')).version == 6:
37+
route['version'] = 6
38+
new_interface.update({'route': route})
3739
mac = interface.get('mac', False)
3840
if mac:
3941
new_interface.update({'mac': mac})

netjsonconfig/backends/raspbian/templates/interfaces.jinja2

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@
3636
{% if address.get('gateway', None) != None %}
3737
gateway {{ address.get('gateway') }}
3838
{% endif %}
39+
{% if interface.get('route') != None %}
40+
{% set route = interface.get('route')%}
41+
up ip -6 route add {{ route.get('destination') }} via {{ route.get('next')}} dev eth0
42+
down ip -6 route del {{ route.get('destination') }} via {{ route.get('next')}} dev eth0
43+
{% endif %}
3944
{% if interface.get('mtu', None) != None %}
4045
mtu {{ interface.get('mtu') }}
4146
{% endif %}
@@ -62,6 +67,11 @@
6267
{% endif %}
6368
{% elif address.get('family') == 'ipv6' %}
6469
iface {{ interface.get('ifname') }} inet6 {{ address.get('proto') }}
70+
{% if interface.get('route') != None %}
71+
{% set route = interface.get('route') %}
72+
up ip -6 route add {{ route.get('destination') }} via {{ route.get('next')}} dev eth0
73+
down ip -6 route del {{ route.get('destination') }} via {{ route.get('next')}} dev eth0
74+
{% endif %}
6575
{% if interface.get('mtu', None) != None %}
6676
pre-up /sbin/ifconfig $IFACE mtu {{ interface.get('mtu') }}
6777
{% endif %}
@@ -76,10 +86,13 @@
7686
auto {{ interface.get('ifname') }}
7787
{% if interface.get('iftype') in ['ethernet', 'wireless'] and interface.get('mode') != 'adhoc' %}
7888
iface {{ interface.get('ifname') }} inet manual
79-
{% if interface.get('route') != None %}
8089
{% set route = interface.get('route')%}
90+
{% if interface.get('route') != None and route.get('version') == 4 %}
8191
post-up route add -net {{ route.get('dest') }} netmask {{ route.get('dest_mask') }} gw {{ route.get('next') }}
8292
pre-up route del -net {{ route.get('dest') }} netmask {{ route.get('dest_mask') }} gw {{ route.get('next') }}
93+
{% elif interface.get('route') != None and route.get('version') == 6 %}
94+
up ip -6 route add {{ route.get('destination') }} via {{ route.get('next')}} dev eth0
95+
down ip -6 route del {{ route.get('destination') }} via {{ route.get('next')}} dev eth0
8396
{% endif %}
8497
{% endif %}
8598
{% if interface.get('iftype') == 'bridge' %}

0 commit comments

Comments
 (0)