layer3: move from fixed address to fixed hostname #80
|
@ -1,7 +1,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff-dhcp
|
||||
PKG_RELEASE:=5
|
||||
PKG_RELEASE:=6
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# load uci functions
|
||||
. /lib/functions.sh
|
||||
|
||||
configure() {
|
||||
## dns
|
||||
uci -q del dhcp.@dnsmasq[0].server
|
||||
|
@ -10,6 +13,48 @@ configure() {
|
|||
else
|
||||
echo "WARNING: No DNS servers set!"
|
||||
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() {
|
||||
|
|
|
@ -27,6 +27,16 @@ uci batch >/dev/null <<EOF
|
|||
set dhcp.client=dhcp
|
||||
set dhcp.client.interface='client'
|
||||
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
|
||||
|
||||
uci commit dhcp
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff-layer3-config
|
||||
PKG_RELEASE:=6
|
||||
PKG_RELEASE:=7
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
|
|
@ -19,14 +19,10 @@ configure() {
|
|||
uci set network.client.ip4table='fff'
|
||||
|
||||
# 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
|
||||
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
|
||||
uci add_list network.client.ip6addr=$ip
|
||||
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.