Commit 942a98aa authored by nanahira's avatar nanahira

allow no origin

parent d28267b2
......@@ -24,24 +24,27 @@ handle_gateway() {
GATEWAY_ID=$1
GATEWAY_ADDRESS=$2
GATEWAY_MAC=$3
GATEWAY_NO_ORIGIN=$4
GATEWAY_NEXT_HOP_MARK=$[$GATEWAY_ID + 1100]
BRIDGE_IP=$(ip -4 addr show dev "$BRIDGE_NAME" | grep 'inet ' | awk '{print $2}')
if [[ "$GATEWAY_ADDRESS" -eq "_use_first" ]]; then
if [[ "_$GATEWAY_ADDRESS" -eq "__use_first" ]]; then
GATEWAY_ADDRESS=$(subnetcalc "$BRIDGE_IP" -n | grep "Host Range" | awk '{print $5}')
fi
if [[ "$GATEWAY_ADDRESS" -eq "_use_last" ]]; then
if [[ "_$GATEWAY_ADDRESS" -eq "__use_last" ]]; then
GATEWAY_ADDRESS=$(subnetcalc "$BRIDGE_IP" -n | grep "Host Range" | awk '{print $7}')
fi
ip route add default via "$GATEWAY_ADDRESS" table "$GATEWAY_NEXT_HOP_MARK"
ip route add default via "$GATEWAY_ADDRESS" metric "$GATEWAY_NEXT_HOP_MARK"
ip rule add pref 100 fwmark "$GATEWAY_NEXT_HOP_MARK" lookup "$GATEWAY_NEXT_HOP_MARK"
eth_origin -A "$BRIDGE_NAME" "$GATEWAY_ID" "$GATEWAY_ADDRESS" "$GATEWAY_MAC"
if [[ "$GATEWAY_NO_ORIGIN" -eq 0 ]]; then
ip rule add pref 100 fwmark "$GATEWAY_NEXT_HOP_MARK" lookup "$GATEWAY_NEXT_HOP_MARK"
eth_origin -A "$BRIDGE_NAME" "$GATEWAY_ID" "$GATEWAY_ADDRESS" "$GATEWAY_MAC"
fi
}
{% if br.gateways %}
# Gateways
{% for gateway in br.gateways %}
handle_gateway {{gateway.id}} {{gateway.address}}{% if gateway.mac %} {{gateway.mac}} {% endif %}
handle_gateway {{gateway.id}} {{gateway.address}} {% if gateway.mac %}{{gateway.mac}}{% else %}"unknown"{% endif %} {% if gateway.noOrigin %}1{% else %}0{% endif %}
{% endfor %}
{% endif %}
......
......@@ -16,22 +16,26 @@ handle_gateway() {
GATEWAY_ID=$1
GATEWAY_ADDRESS=$2
GATEWAY_MAC=$3
GATEWAY_NO_ORIGIN=$4
GATEWAY_NEXT_HOP_MARK=$[$GATEWAY_ID + 1100]
BRIDGE_IP=$(ip -4 addr show dev "$BRIDGE_NAME" | grep 'inet ' | awk '{print $2}')
if [[ "$GATEWAY_ADDRESS" -eq "_use_first" ]]; then
if [[ "_$GATEWAY_ADDRESS" -eq "__use_first" ]]; then
GATEWAY_ADDRESS=$(subnetcalc "$BRIDGE_IP" -n | grep "Host Range" | awk '{print $5}')
fi
if [[ "$GATEWAY_ADDRESS" -eq "_use_last" ]]; then
if [[ "_$GATEWAY_ADDRESS" -eq "__use_last" ]]; then
GATEWAY_ADDRESS=$(subnetcalc "$BRIDGE_IP" -n | grep "Host Range" | awk '{print $7}')
fi
ip rule del pref 100 fwmark "$GATEWAY_NEXT_HOP_MARK" lookup "$GATEWAY_NEXT_HOP_MARK"
eth_origin -D "$BRIDGE_NAME" "$GATEWAY_ID" "$GATEWAY_ADDRESS" "$GATEWAY_MAC"
if [[ "$GATEWAY_NO_ORIGIN" -eq 0 ]]; then
ip rule del pref 100 fwmark "$GATEWAY_NEXT_HOP_MARK" lookup "$GATEWAY_NEXT_HOP_MARK"
eth_origin -D "$BRIDGE_NAME" "$GATEWAY_ID" "$GATEWAY_ADDRESS" "$GATEWAY_MAC"
fi
}
{% if br.gateways %}
# Gateways
{% for gateway in br.gateways %}
handle_gateway {{gateway.id}} {{gateway.address}}{% if gateway.mac %} {{gateway.mac}} {% endif %}
handle_gateway {{gateway.id}} {{gateway.address}} {% if gateway.mac %}{{gateway.mac}}{% else %}"unknown"{% endif %} {% if gateway.noOrigin %}1{% else %}0{% endif %}
{% endfor %}
{% endif %}
......
......@@ -36,7 +36,7 @@ eth_origin() {
GATEWAY_ADDRESS=$4
GATEWAY_MAC=$5
MARK=$[1100 + $GATEWAY_ID]
if [[ -z "$GATEWAY_MAC" ]]; then
if [[ "$GATEWAY_MAC" -eq "unknown" ]]; then
ping "$GATEWAY_ADDRESS" -c 1
NEIGH_LINE=$(ip neigh show "$GATEWAY_ADDRESS")
GATEWAY_MAC=$(echo $NEIGH_LINE | awk '{print $5}')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment