diff options
| author | Aleksandr V. Piskunov | 2024-07-16 13:44:35 +0000 |
|---|---|---|
| committer | Hauke Mehrtens | 2024-09-22 14:28:51 +0000 |
| commit | 6b5aea74293fe93e8abac411f9d974e8876e3252 (patch) | |
| tree | 3afb599746df7d138b875111c379b9e72dfe88a2 | |
| parent | cdb535ac3231cdcbb15f8682e0f165424e282003 (diff) | |
| download | openwrt-6b5aea74293fe93e8abac411f9d974e8876e3252.tar.gz | |
6in4: Support fqdn as remote tunnel endpoint
Same as fqdn support in GRE (commit a79f3d11b3) and IPIP (commit 311682905e)
Signed-off-by: Aleksandr V. Piskunov <aleksandr.v.piskunov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15961
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
| -rw-r--r-- | package/network/ipv6/6in4/Makefile | 2 | ||||
| -rwxr-xr-x | package/network/ipv6/6in4/files/6in4.sh | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/package/network/ipv6/6in4/Makefile b/package/network/ipv6/6in4/Makefile index edbb7d71a0..3c7dd4609b 100644 --- a/package/network/ipv6/6in4/Makefile +++ b/package/network/ipv6/6in4/Makefile @@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/package.mk define Package/6in4 SECTION:=net CATEGORY:=Network - DEPENDS:=@IPV6 +kmod-sit +uclient-fetch + DEPENDS:=@IPV6 +kmod-sit +uclient-fetch +resolveip TITLE:=IPv6-in-IPv4 configuration support MAINTAINER:=Jo-Philipp Wich <jo@mein.io> PKGARCH:=all diff --git a/package/network/ipv6/6in4/files/6in4.sh b/package/network/ipv6/6in4/files/6in4.sh index 99b2b76312..e500c6dec8 100755 --- a/package/network/ipv6/6in4/files/6in4.sh +++ b/package/network/ipv6/6in4/files/6in4.sh @@ -44,6 +44,7 @@ proto_6in4_setup() { local cfg="$1" local iface="$2" local link="6in4-$cfg" + local remoteip local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey device json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey device @@ -52,11 +53,23 @@ proto_6in4_setup() { [ -n "$device" ] && link="$device" [ -z "$peeraddr" ] && { - proto_notify_error "$cfg" "MISSING_ADDRESS" + proto_notify_error "$cfg" "MISSING_PEER_ADDRESS" proto_block_restart "$cfg" return } + remoteip=$(resolveip -t 10 -4 "$peeraddr") + + if [ -z "$remoteip" ]; then + proto_notify_error "$cfg" "PEER_RESOLVE_FAIL" + return + fi + + for ip in $remoteip; do + peeraddr=$ip + break + done + ( proto_add_host_dependency "$cfg" "$peeraddr" "$tunlink" ) [ -z "$ipaddr" ] && { |