1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-15 03:51:51 +00:00
openmptcprouter-feeds/omr-6in4/files/bin/omr-6in4

67 lines
3.4 KiB
Text
Raw Normal View History

2018-08-02 13:56:42 +00:00
#!/bin/sh
2019-01-19 19:28:05 +00:00
# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
2018-08-02 13:56:42 +00:00
while true; do
if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then
iface=$(uci -q get glorytun.vpn.dev)
addr=$(uci -q get glorytun.vpn.localip)
peer=$(uci -q get glorytun.vpn.remoteip)
elif [ "$(uci -q get glorytun-udp.vpn.enable)" = "1" ]; then
iface=$(uci -q get glorytun-udp.vpn.dev)
addr=$(uci -q get glorytun-udp.vpn.localip)
peer=$(uci -q get glorytun-udp.vpn.remoteip)
2019-08-02 20:37:45 +00:00
elif [ "$(uci -q get dsvpn.vpn.enable)" = "1" ]; then
iface=$(uci -q get dsvpn.vpn.dev)
addr=$(uci -q get dsvpn.vpn.localip)
peer=$(uci -q get dsvpn.vpn.remoteip)
2018-08-02 13:56:42 +00:00
elif [ "$(uci -q get mlvpn.general.enable)" = "1" ]; then
iface=$(uci -q get mlvpn.general.interface_name)
elif [ "$(uci -q get openvpn.omr.enabled)" = "1" ]; then
iface=$(uci -q get openvpn.omr.dev)
fi
[ -z "$addr" ] && addr=$(ubus call network.interface.omrvpn status | jsonfilter -q -e '@["ipv4-address"][0].address' | tr -d "\n")
2019-01-19 19:28:05 +00:00
if [ -n "$iface" ] && [ -d "/sys/class/net/$iface" ]; then
[ -z "$addr" ] && [ -n "$iface" ] && addr=$(ip -4 addr show dev $iface | grep inet | awk '{print $2}' | cut -d/ -f1 | tr -d "\n")
2019-01-17 19:42:14 +00:00
[ -z "$peer" ] && peer=$(ubus call network.interface.omrvpn status | jsonfilter -q -l 1 -e '@.route[@.target="0.0.0.0"].nexthop' | tr -d "\n")
[ -z "$peer" ] && peer=$(ip -4 r list dev $iface | grep via | grep -v default | grep -v metric | grep -v / | awk '{print $1; exit}' | tr -d "\n")
2019-01-17 19:42:14 +00:00
[ -z "$peer" ] && peer=$(ip -4 r list dev $iface | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d "\n")
[ -n "$addr" ] && [ -n "$peer" ] && {
2024-02-22 17:33:47 +00:00
if ([ "$addr" != "$(uci -q get network.omr6in4.ipaddr)" ] || [ "$peer" != "$(uci -q get network.omr6in4.peeraddr)" ]) && [ "$(ip -6 route show default dev 6in4-omr6in4 metric 1 | grep via)" = "" ]; then
logger -t "omr6in4" "Set network for OMR 6in4 to local $addr peer $peer"
uci -q batch <<-EOF
set network.omr6in4.ipaddr=$addr
set network.omr6in4.peeraddr=$peer
2021-02-18 13:35:40 +00:00
set network.omr6in4.metric=1
2019-01-19 19:28:05 +00:00
commit network
EOF
if [ -n "$(ip tunnel | grep omr6in4)" ]; then
2020-11-09 09:57:33 +00:00
ip tunnel change "6in4-omr6in4" mode sit local ${addr} remote ${peer} ttl 64 > /dev/null 2>&1
else
2019-01-19 16:18:01 +00:00
ifup omr6in4 > /dev/null 2>&1
fi
sleep 5
2019-01-27 19:33:21 +00:00
#ipv6_addr=$(ip -6 addr show dev 6in4-omr6in4 | grep inet | awk '{print $2'} | cut -d/ -f1 | tr -d "\n")
#ipv6_gw=$(echo $ipv6_addr | sed 's/1$/2')
2019-03-10 22:23:14 +00:00
ipv6_addr=$(ubus call network.interface.omr6in4 status | jsonfilter -q -l 1 -e '@["ipv6-address"][0].address' | tr -d "\n")
2019-01-27 19:33:21 +00:00
ip -6 addr add $ipv6_addr dev 6in4-omr6in4 > /dev/null 2>&1
2019-01-23 20:09:25 +00:00
ipv6_gw=$(ubus call network.interface.omr6in4 status | jsonfilter -q -l 1 -e '@.route[@.target="::"].nexthop' | tr -d "\n")
2020-05-25 12:04:17 +00:00
[ "$ipv6_gw" = "::" ] && ipv6_gw='fe80::a00:1'
[ -z "$ipv6_gw" ] && ipv6_gw='fe80::a00:1'
2019-01-27 19:33:21 +00:00
#[ -z "$ipv6_gw" ] && ipv6_gw='fe80::aff:ff01'
2020-11-09 18:50:21 +00:00
ip -6 route add ${ipv6_gw} dev 6in4-omr6in4 > /dev/null 2>&1
ip -6 route 2002::/16 dev 6in4-omr6in4 > /dev/null 2>&1
2021-02-18 13:35:40 +00:00
ip -6 route replace default via ${ipv6_gw} dev 6in4-omr6in4 metric 1 > /dev/null 2>&1
2019-01-23 20:09:25 +00:00
if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then
uci -q batch <<-EOF
set network.omr6in4_route6_default=route6
set network.omr6in4_route6_default.interface=omr6in4
set network.omr6in4_route6_default.target='::'
set network.omr6in4_route6_default.gateway=$ipv6_gw
commit network
EOF
fi
fi
}
2018-08-02 13:56:42 +00:00
fi
sleep 10
done