Skip to content

Commit

Permalink
[syslog] Add default syslog ip to interfaces.j2 (sonic-net#20340)
Browse files Browse the repository at this point in the history
#### Why I did it
This is to make interfaces iprule to align with syslog server ip if exists and goes default if not provided
#### How I did it
Set ip rule when interface up and down. Fix test gap on interfaces.j2 for syslog parsing
#### How to verify it
use j2 tempalte unit test
  • Loading branch information
wen587 authored and mssonicbld committed Nov 6, 2024
1 parent 22c90dd commit dcc9eb0
Show file tree
Hide file tree
Showing 11 changed files with 1,101 additions and 0 deletions.
26 changes: 26 additions & 0 deletions files/image_config/interfaces/interfaces.j2
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,19 @@ iface {{ name }} {{ 'inet' if prefix | ipv4 else 'inet6' }} static
{% for route in MGMT_INTERFACE[(name, prefix)]['forced_mgmt_routes'] %}
up ip {{ '-4' if prefix | ipv4 else '-6' }} rule add pref {{ force_mgmt_route_priority }} to {{ route }} table {{ vrf_table }}
{% endfor %}
{% if SYSLOG_SERVER is defined and SYSLOG_SERVER %}
{% for server in SYSLOG_SERVER %}
{% if server | ipv4 and prefix | ipv4 %}
up ip rule add pref {{ force_mgmt_route_priority }} to {{ server }}/32 table {{ vrf_table }}
{% elif server | ipv6 and prefix | ipv6 %}
up ip -6 rule add pref {{ force_mgmt_route_priority }} to {{ server }}/128 table {{ vrf_table }}
{% endif %}
{% endfor %}
{% else %}
{% if prefix | ipv4 %}
up ip rule add pref {{ force_mgmt_route_priority }} to 10.20.6.16/32 table {{ vrf_table }}
{% endif %}
{% endif %}
{% if prefix | ipv6 and vrf_table == 'default'%}
# IPV6 default table not add to lookup by default, management server need this to access IPV6 address when BGP shutdown
up ip -6 rule add pref {{ force_mgmt_route_priority + 3 }} lookup {{ vrf_table }}
Expand All @@ -99,6 +112,19 @@ iface {{ name }} {{ 'inet' if prefix | ipv4 else 'inet6' }} static
{% for route in MGMT_INTERFACE[(name, prefix)]['forced_mgmt_routes'] %}
pre-down ip {{ '-4' if route | ipv4 else '-6' }} rule delete pref {{ force_mgmt_route_priority }} to {{ route }} table {{ vrf_table }}
{% endfor %}
{% if SYSLOG_SERVER is defined and SYSLOG_SERVER %}
{% for server in SYSLOG_SERVER %}
{% if server | ipv4 and prefix | ipv4 %}
down ip rule delete pref {{ force_mgmt_route_priority }} to {{ server }}/32 table {{ vrf_table }}
{% elif server | ipv6 and prefix | ipv6 %}
down ip -6 rule delete pref {{ force_mgmt_route_priority }} to {{ server }}/128 table {{ vrf_table }}
{% endif %}
{% endfor %}
{% else %}
{% if prefix | ipv4 %}
down ip rule delete pref {{ force_mgmt_route_priority }} to 10.20.6.16/32 table {{ vrf_table }}
{% endif %}
{% endif %}
{% if prefix | ipv6 and vrf_table == 'default'%}
pre-down ip -6 rule delete pref {{ force_mgmt_route_priority + 3 }} lookup {{ vrf_table }}
{% endif %}
Expand Down
2 changes: 2 additions & 0 deletions src/sonic-config-engine/tests/sample_output/py2/interfaces
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,12 @@ iface eth0 inet static
up ip -4 route add default via 10.0.0.1 dev eth0 table default metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table default
up ip -4 rule add pref 32765 from 10.0.0.100/32 table default
up ip rule add pref 32764 to 10.20.6.16/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table default
down ip rule delete pref 32764 to 10.20.6.16/32 table default
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
Expand Down
55 changes: 55 additions & 0 deletions src/sonic-config-engine/tests/sample_output/py2/interfaces_syslog
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#
# =============== Managed by SONiC Config Engine DO NOT EDIT! ===============
# generated from /usr/share/sonic/templates/interfaces.j2 using sonic-cfggen
# file: /etc/network/interfaces
#
# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.255.0.0
scope host
post-up ip addr del 127.0.0.1/8 dev lo
pre-down ip addr add 127.0.0.1/8 dev lo

# The management network interface
auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
########## management network policy routing rules
# management port up rules
up ip -4 route add default via 10.0.0.1 dev eth0 table default metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table default
up ip -4 rule add pref 32765 from 10.0.0.100/32 table default
up ip rule add pref 32764 to 10.3.145.8/32 table default
up ip rule add pref 32764 to 100.127.20.21/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table default
down ip rule delete pref 32764 to 10.3.145.8/32 table default
down ip rule delete pref 32764 to 100.127.20.21/32 table default
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
network 2603:10e2:0:2902::
broadcast 2603:10e2:0:2902:ffff:ffff:ffff:ffff
########## management network policy routing rules
# management port up rules
up ip -6 route add default via 2603:10e2:0:2902::1 dev eth0 table default metric 201
up ip -6 route add 2603:10e2:0:2902::/64 dev eth0 table default
up ip -6 rule add pref 32765 from 2603:10e2:0:2902::8/128 table default
# IPV6 default table not add to lookup by default, management server need this to access IPV6 address when BGP shutdown
up ip -6 rule add pref 32767 lookup default
# management port down rules
pre-down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table default
pre-down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table default
pre-down ip -6 rule delete pref 32765 from 2603:10e2:0:2902::8/128 table default
pre-down ip -6 rule delete pref 32767 lookup default
#
source /etc/network/interfaces.d/*
#

Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,14 @@ iface eth0 inet static
up ip -4 rule add pref 32765 from 10.0.0.100/32 table 5000
up ip -4 rule add pref 32764 to 11.11.11.11 table 5000
up ip -4 rule add pref 32764 to 22.22.22.0/23 table 5000
up ip rule add pref 32764 to 10.20.6.16/32 table 5000
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table 5000
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table 5000
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table 5000
pre-down ip -4 rule delete pref 32764 to 11.11.11.11 table 5000
pre-down ip -4 rule delete pref 32764 to 22.22.22.0/23 table 5000
down ip rule delete pref 32764 to 10.20.6.16/32 table 5000
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ iface eth1 inet static
up ip -4 route add default via 10.0.10.1 dev eth1 table default metric 201
up ip -4 route add 10.0.10.0/24 dev eth1 table default
up ip -4 rule add pref 32765 from 10.0.10.100/32 table default
up ip rule add pref 32764 to 10.20.6.16/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.10.1 dev eth1 table default
pre-down ip -4 route delete 10.0.10.0/24 dev eth1 table default
pre-down ip -4 rule delete pref 32765 from 10.0.10.100/32 table default
down ip rule delete pref 32764 to 10.20.6.16/32 table default
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
Expand All @@ -39,10 +41,12 @@ iface eth0 inet static
up ip -4 route add default via 10.0.0.1 dev eth0 table default metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table default
up ip -4 rule add pref 32765 from 10.0.0.100/32 table default
up ip rule add pref 32764 to 10.20.6.16/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table default
down ip rule delete pref 32764 to 10.20.6.16/32 table default
iface eth1 inet6 static
address 2603:10e2:0:abcd::8
netmask 64
Expand Down
2 changes: 2 additions & 0 deletions src/sonic-config-engine/tests/sample_output/py3/interfaces
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,12 @@ iface eth0 inet static
up ip -4 route add default via 10.0.0.1 dev eth0 table default metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table default
up ip -4 rule add pref 32765 from 10.0.0.100/32 table default
up ip rule add pref 32764 to 10.20.6.16/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table default
down ip rule delete pref 32764 to 10.20.6.16/32 table default
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
Expand Down
55 changes: 55 additions & 0 deletions src/sonic-config-engine/tests/sample_output/py3/interfaces_syslog
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#
# =============== Managed by SONiC Config Engine DO NOT EDIT! ===============
# generated from /usr/share/sonic/templates/interfaces.j2 using sonic-cfggen
# file: /etc/network/interfaces
#
# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.255.0.0
scope host
post-up ip addr del 127.0.0.1/8 dev lo
pre-down ip addr add 127.0.0.1/8 dev lo

# The management network interface
auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
########## management network policy routing rules
# management port up rules
up ip -4 route add default via 10.0.0.1 dev eth0 table default metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table default
up ip -4 rule add pref 32765 from 10.0.0.100/32 table default
up ip rule add pref 32764 to 10.3.145.8/32 table default
up ip rule add pref 32764 to 100.127.20.21/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table default
down ip rule delete pref 32764 to 10.3.145.8/32 table default
down ip rule delete pref 32764 to 100.127.20.21/32 table default
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
network 2603:10e2:0:2902::
broadcast 2603:10e2:0:2902:ffff:ffff:ffff:ffff
########## management network policy routing rules
# management port up rules
up ip -6 route add default via 2603:10e2:0:2902::1 dev eth0 table default metric 201
up ip -6 route add 2603:10e2:0:2902::/64 dev eth0 table default
up ip -6 rule add pref 32765 from 2603:10e2:0:2902::8/128 table default
# IPV6 default table not add to lookup by default, management server need this to access IPV6 address when BGP shutdown
up ip -6 rule add pref 32767 lookup default
# management port down rules
pre-down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table default
pre-down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table default
pre-down ip -6 rule delete pref 32765 from 2603:10e2:0:2902::8/128 table default
pre-down ip -6 rule delete pref 32767 lookup default
#
source /etc/network/interfaces.d/*
#

Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,14 @@ iface eth0 inet static
up ip -4 rule add pref 32765 from 10.0.0.100/32 table 5000
up ip -4 rule add pref 32764 to 11.11.11.11 table 5000
up ip -4 rule add pref 32764 to 22.22.22.0/23 table 5000
up ip rule add pref 32764 to 10.20.6.16/32 table 5000
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table 5000
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table 5000
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table 5000
pre-down ip -4 rule delete pref 32764 to 11.11.11.11 table 5000
pre-down ip -4 rule delete pref 32764 to 22.22.22.0/23 table 5000
down ip rule delete pref 32764 to 10.20.6.16/32 table 5000
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ iface eth0 inet static
up ip -4 route add default via 10.0.0.1 dev eth0 table default metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table default
up ip -4 rule add pref 32765 from 10.0.0.100/32 table default
up ip rule add pref 32764 to 10.20.6.16/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
pre-down ip -4 rule delete pref 32765 from 10.0.0.100/32 table default
down ip rule delete pref 32764 to 10.20.6.16/32 table default
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
Expand Down Expand Up @@ -56,10 +58,12 @@ iface eth1 inet static
up ip -4 route add default via 10.0.10.1 dev eth1 table default metric 201
up ip -4 route add 10.0.10.0/24 dev eth1 table default
up ip -4 rule add pref 32765 from 10.0.10.100/32 table default
up ip rule add pref 32764 to 10.20.6.16/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.10.1 dev eth1 table default
pre-down ip -4 route delete 10.0.10.0/24 dev eth1 table default
pre-down ip -4 rule delete pref 32765 from 10.0.10.100/32 table default
down ip rule delete pref 32764 to 10.20.6.16/32 table default
iface eth1 inet6 static
address 2603:10e2:0:abcd::8
netmask 64
Expand Down
Loading

0 comments on commit dcc9eb0

Please sign in to comment.