layer3: move from fixed address to fixed hostname #80
|
@ -1,7 +1,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=fff-dhcp
|
PKG_NAME:=fff-dhcp
|
||||||
PKG_RELEASE:=5
|
PKG_RELEASE:=6
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# load uci functions
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
configure() {
|
configure() {
|
||||||
## dns
|
## dns
|
||||||
uci -q del dhcp.@dnsmasq[0].server
|
uci -q del dhcp.@dnsmasq[0].server
|
||||||
|
@ -10,6 +13,48 @@ configure() {
|
||||||
else
|
else
|
||||||
echo "WARNING: No DNS servers set!"
|
echo "WARNING: No DNS servers set!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# remove all domain autogenerated entries
|
||||||
|
remove_domains() {
|
||||||
|
local name="$1"
|
||||||
|
|
||||||
|
case $(uci -q get dhcp."$name".addedbyautoconfig) in
|
||||||
|
/etc/layer3.d/35-dns | /etc/uci-defaults/90-fff-dhcp)
|
||||||
|
uci -q del dhcp."$name" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
config_load dhcp
|
||||||
|
config_foreach remove_domains domain
|
||||||
|
|
||||||
|
local dnsips
|
||||||
|
local have_dns=false
|
||||||
|
|
||||||
|
# gather all ips belonging to the router
|
||||||
|
dnsips=$(
|
||||||
|
uci -q batch <<- EOF | cut -d / -f1 | sort -u
|
||||||
|
get network.client.ip6addr
|
||||||
|
get network.client.ipaddr
|
||||||
|
get gateway.@gateway[0].peer_ip
|
||||||
|
get gateway.@gateway[0].peer_ip6
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
for ip in $dnsips; do
|
||||||
|
ip=$(echo "$ip" | cut -d / -f1)
|
||||||
|
case "$ip" in
|
||||||
|
fe80*) continue ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
have_dns=true
|
||||||
|
uci -q add dhcp domain > /dev/null
|
||||||
|
uci -q set dhcp.@domain[-1].ip="$ip"
|
||||||
|
uci -q set dhcp.@domain[-1].name="local.fff.community"
|
||||||
|
uci -q set dhcp.@domain[-1].addedbyautoconfig="/etc/layer3.d/35-dns"
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! $have_dns; then
|
||||||
|
echo "WARNING: No valid device ip available for local DNS."
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
apply() {
|
apply() {
|
||||||
|
|
|
@ -27,6 +27,16 @@ uci batch >/dev/null <<EOF
|
||||||
set dhcp.client=dhcp
|
set dhcp.client=dhcp
|
||||||
set dhcp.client.interface='client'
|
set dhcp.client.interface='client'
|
||||||
set dhcp.client.leasetime='1h'
|
set dhcp.client.leasetime='1h'
|
||||||
|
|
||||||
|
add dhcp domain
|
||||||
|
set dhcp.@domain[-1].ip="fdff::1"
|
||||||
|
set dhcp.@domain[-1].name="local.fff.community"
|
||||||
jkimmel marked this conversation as resolved
Outdated
|
|||||||
|
set dhcp.@domain[-1].addedbyautoconfig="/etc/uci-defaults/90-fff-dhcp"
|
||||||
|
|
||||||
|
add dhcp domain
|
||||||
|
set dhcp.@domain[-1].ip="0.0.0.0"
|
||||||
|
set dhcp.@domain[-1].name="local.fff.community"
|
||||||
|
set dhcp.@domain[-1].addedbyautoconfig="/etc/uci-defaults/90-fff-dhcp"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
uci commit dhcp
|
uci commit dhcp
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=fff-layer3-config
|
PKG_NAME:=fff-layer3-config
|
||||||
PKG_RELEASE:=6
|
PKG_RELEASE:=7
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
|
|
@ -19,14 +19,10 @@ configure() {
|
||||||
uci set network.client.ip4table='fff'
|
uci set network.client.ip4table='fff'
|
||||||
|
|
||||||
# ip6addr
|
# ip6addr
|
||||||
#remove old ip6addr
|
|
||||||
for ip in $(uci get network.client.ip6addr); do
|
|
||||||
if echo "$ip" | grep -v -e "fdff:" -e "fe80::1/64" > /dev/null; then
|
|
||||||
uci del_list network.client.ip6addr="$ip"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
#set new ip6addr
|
#set new ip6addr
|
||||||
if ip6addr=$(uci -q get gateway.@client[0].ip6addr); then
|
if ip6addr=$(uci -q get gateway.@client[0].ip6addr); then
|
||||||
|
#remove old ip6addr
|
||||||
|
uci delete network.client.ip6addr
|
||||||
fbl
commented
Das hier darf nicht ins if rutschen, sonst werden die Adressen nicht entfernt, wenn keine ip6addr im /etc/config/gateway angegeben sind. Das hier darf nicht ins if rutschen, sonst werden die Adressen nicht entfernt, wenn keine ip6addr im /etc/config/gateway angegeben sind.
|
|||||||
for ip in $ip6addr; do
|
for ip in $ip6addr; do
|
||||||
uci add_list network.client.ip6addr=$ip
|
uci add_list network.client.ip6addr=$ip
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue
fdff::1 oder?
und ggf. /64?
@ChristianD jop, hast recht. Hatte ich auf dem Testrouter schon gefixt und dann vermutlich vergessen. Danke.