Merge pull request #3050 from feckert/mwan3_flush_conntrack
mwan3: enhancement add ping size and flush conntrack table
This commit is contained in:
commit
358a374a3a
|
@ -8,7 +8,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=mwan3
|
PKG_NAME:=mwan3
|
||||||
PKG_VERSION:=2.0
|
PKG_VERSION:=2.1
|
||||||
PKG_RELEASE:=4
|
PKG_RELEASE:=4
|
||||||
PKG_MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>, \
|
PKG_MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>, \
|
||||||
Florian Eckert <fe@dev.tdt.de>
|
Florian Eckert <fe@dev.tdt.de>
|
||||||
|
|
|
@ -46,6 +46,7 @@ case "$ACTION" in
|
||||||
mwan3_track $INTERFACE $DEVICE
|
mwan3_track $INTERFACE $DEVICE
|
||||||
mwan3_set_policies_iptables
|
mwan3_set_policies_iptables
|
||||||
mwan3_set_user_rules
|
mwan3_set_user_rules
|
||||||
|
mwan3_flush_conntrack $INTERFACE $DEVICE "ifup"
|
||||||
;;
|
;;
|
||||||
ifdown)
|
ifdown)
|
||||||
mwan3_delete_iface_rules $INTERFACE
|
mwan3_delete_iface_rules $INTERFACE
|
||||||
|
@ -54,6 +55,7 @@ case "$ACTION" in
|
||||||
mwan3_delete_iface_ipset_entries $INTERFACE
|
mwan3_delete_iface_ipset_entries $INTERFACE
|
||||||
mwan3_set_policies_iptables
|
mwan3_set_policies_iptables
|
||||||
mwan3_set_user_rules
|
mwan3_set_user_rules
|
||||||
|
mwan3_flush_conntrack $INTERFACE $DEVICE "ifdown"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ IPS="/usr/sbin/ipset"
|
||||||
IPT4="/usr/sbin/iptables -t mangle -w"
|
IPT4="/usr/sbin/iptables -t mangle -w"
|
||||||
IPT6="/usr/sbin/ip6tables -t mangle -w"
|
IPT6="/usr/sbin/ip6tables -t mangle -w"
|
||||||
LOG="/usr/bin/logger -t mwan3 -p"
|
LOG="/usr/bin/logger -t mwan3 -p"
|
||||||
|
CONNTRACK_FILE="/proc/net/nf_conntrack"
|
||||||
|
|
||||||
mwan3_get_iface_id()
|
mwan3_get_iface_id()
|
||||||
{
|
{
|
||||||
|
@ -360,7 +361,7 @@ mwan3_delete_iface_ipset_entries()
|
||||||
|
|
||||||
mwan3_track()
|
mwan3_track()
|
||||||
{
|
{
|
||||||
local track_ip track_ips reliability count timeout interval down up
|
local track_ip track_ips reliability count timeout interval down up size
|
||||||
|
|
||||||
mwan3_list_track_ips()
|
mwan3_list_track_ips()
|
||||||
{
|
{
|
||||||
|
@ -380,8 +381,9 @@ mwan3_track()
|
||||||
config_get interval $1 interval 10
|
config_get interval $1 interval 10
|
||||||
config_get down $1 down 5
|
config_get down $1 down 5
|
||||||
config_get up $1 up 5
|
config_get up $1 up 5
|
||||||
|
config_get size $1 size 56
|
||||||
|
|
||||||
[ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $1 $2 $reliability $count $timeout $interval $down $up $track_ips &
|
[ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $1 $2 $reliability $count $timeout $interval $down $up $size $track_ips &
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -804,3 +806,36 @@ mwan3_report_rules_v6()
|
||||||
$IPT6 -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_/- /' | sed 's/mwan3_rule_/S /'
|
$IPT6 -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_/- /' | sed 's/mwan3_rule_/S /'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mwan3_flush_conntrack()
|
||||||
|
{
|
||||||
|
local flush_conntrack
|
||||||
|
|
||||||
|
config_get flush_conntrack $1 flush_conntrack never
|
||||||
|
|
||||||
|
if [ -e "$CONNTRACK_FILE" ]; then
|
||||||
|
case $flush_conntrack in
|
||||||
|
ifup)
|
||||||
|
[ "$3" = "ifup" ] && {
|
||||||
|
echo f > ${CONNTRACK_FILE}
|
||||||
|
$LOG info "connection tracking flushed on interface $1 ($2) $3"
|
||||||
|
}
|
||||||
|
;;
|
||||||
|
ifdown)
|
||||||
|
[ "$3" = "ifdown" ] && {
|
||||||
|
echo f > ${CONNTRACK_FILE}
|
||||||
|
$LOG info "connection tracking flushed on interface $1 ($2) $3"
|
||||||
|
}
|
||||||
|
;;
|
||||||
|
always)
|
||||||
|
echo f > ${CONNTRACK_FILE}
|
||||||
|
$LOG info "connection tracking flushed on interface $1 ($2) $3"
|
||||||
|
;;
|
||||||
|
never)
|
||||||
|
$LOG info "connection tracking not flushed on interface $1 ($2) $3"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
$LOG warning "connection tracking not enabled"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
[ -z "$9" ] && echo "Error: should not be started manually" && exit 0
|
[ -z "$10" ] && echo "Error: should not be started manually" && exit 0
|
||||||
|
|
||||||
if [ -e /var/run/mwan3track-$1.pid ] ; then
|
if [ -e /var/run/mwan3track-$1.pid ] ; then
|
||||||
kill $(cat /var/run/mwan3track-$1.pid) &> /dev/null
|
kill $(cat /var/run/mwan3track-$1.pid) &> /dev/null
|
||||||
|
@ -17,7 +17,7 @@ lost=0
|
||||||
while true; do
|
while true; do
|
||||||
|
|
||||||
for track_ip in $track_ips; do
|
for track_ip in $track_ips; do
|
||||||
ping -I $2 -c $4 -W $5 -q $track_ip &> /dev/null
|
ping -I $2 -c $4 -W $5 -s $9 -q $track_ip &> /dev/null
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
let host_up_count++
|
let host_up_count++
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue