64 lines
2.9 KiB
Django/Jinja
64 lines
2.9 KiB
Django/Jinja
{#
|
|
# Copyright 2015 Hewlett-Packard Development Company, L.P.
|
|
# Copyright 2016 Rackspace
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#}
|
|
# Generated by Octavia agent
|
|
auto {{ interface }} {{ interface }}:0
|
|
{%- if vrrp_ip %}
|
|
iface {{ interface }} inet{{ '6' if vrrp_ipv6 }} static
|
|
address {{ vrrp_ip }}
|
|
broadcast {{ broadcast }}
|
|
netmask {{ netmask }}
|
|
{%- if gateway %}
|
|
gateway {{ gateway }}
|
|
{%- endif %}
|
|
{%- if mtu %}
|
|
mtu {{ mtu }}
|
|
{%- endif %}
|
|
{%- for hr in host_routes %}
|
|
{%- if ((hr.network.version == 4 and hr.network.prefixlen == 32) or
|
|
(hr.network.version == 6 and hr.network.prefixlen == 128)) %}
|
|
up route add -host {{ hr.network }} gw {{ hr.gw }} dev {{ interface }}
|
|
down route del -host {{ hr.network }} gw {{ hr.gw }} dev {{ interface }}
|
|
{%- else %}
|
|
up route add -net {{ hr.network }} gw {{ hr.gw }} dev {{ interface }}
|
|
down route del -net {{ hr.network }} gw {{ hr.gw }} dev {{ interface }}
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
{%- else %}
|
|
|
|
iface {{ interface }} inet{{ '6' if vip_ipv6 }} {{ 'auto' if vip_ipv6 else 'dhcp' }}
|
|
{%- endif %}
|
|
|
|
iface {{ interface }}:0 inet{{ '6' if vip_ipv6 }} static
|
|
address {{ vip }}
|
|
broadcast {{ broadcast }}
|
|
netmask {{ netmask }}
|
|
# Add a source routing table to allow members to access the VIP
|
|
{%- if gateway %}
|
|
post-up /sbin/ip {{ '-6 ' if vip_ipv6 }}route add {{ network }} dev {{ interface }} src {{ vip }} scope link table 1
|
|
post-up /sbin/ip {{ '-6 ' if vip_ipv6 }}route add default via {{ gateway }} dev {{ interface }} onlink table 1
|
|
post-down /sbin/ip {{ '-6 ' if vip_ipv6 }}route del default via {{ gateway }} dev {{ interface }} onlink table 1
|
|
post-down /sbin/ip {{ '-6 ' if vip_ipv6 }}route del {{ network }} dev {{ interface }} src {{ vip }} scope link table 1
|
|
{%- endif %}
|
|
{%- for hr in host_routes %}
|
|
post-up /sbin/ip {{ '-6 ' if vip_ipv6 }}route add {{ hr.network }} via {{ hr.gw }} dev {{ interface }} onlink table 1
|
|
post-down /sbin/ip {{ '-6 ' if vip_ipv6 }}route del {{ hr.network }} via {{ hr.gw }} dev {{ interface }} onlink table 1
|
|
{%- endfor %}
|
|
post-up /sbin/ip {{ '-6 ' if vip_ipv6 }}rule add from {{ vip }}/32 table 1 priority 100
|
|
post-down /sbin/ip {{ '-6 ' if vip_ipv6 }}rule del from {{ vip }}/32 table 1 priority 100
|
|
post-up /sbin/ip{{ '6' if vip_ipv6 }}tables -t nat -A POSTROUTING -p udp -o {{ interface }} -j MASQUERADE
|
|
post-down /sbin/ip{{ '6' if vip_ipv6 }}tables -t nat -D POSTROUTING -p udp -o {{ interface }} -j MASQUERADE
|