Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
docs:guide-user:network:protocol.dhcp [2023/01/22 08:34] – [IPv6 ISP DNS with DHCPv6] vgaeteradocs:guide-user:network:protocol.dhcp [2023/10/04 01:41] – [Providing ISP DNS with DHCP] update vgaetera
Line 32: Line 32:
 <code bash> <code bash>
 # Logging DHCP client # Logging DHCP client
-cat << "EOF" > /etc/udhcpc.user+cat << "EOF" > /etc/udhcpc.user.d/00-logger
 logger -t ${0##*/} ${@} $(env) logger -t ${0##*/} ${@} $(env)
 EOF EOF
  
 # Logging DHCPv6 client # Logging DHCPv6 client
-cat << "EOF" > /etc/odhcp6c.user+cat << "EOF" > /etc/odhcp6c.user.d/00-logger
 logger -t ${0##*/} ${@} $(env) logger -t ${0##*/} ${@} $(env)
 EOF EOF
Line 59: Line 59:
  
 ===== Extras ===== ===== Extras =====
-==== Default route ====+==== Updating default route ====
 Update default route. Update default route.
  
 <code bash> <code bash>
-cat << "EOF" > /etc/udhcpc.user+cat << "EOF" > /etc/udhcpc.user.d/30-default-route
 DHCPC_EVENT="${1}" DHCPC_EVENT="${1}"
 DHCPC_IF="${interface}" DHCPC_IF="${interface}"
Line 76: Line 76:
 </code> </code>
  
-==== IPv6 default route ====+==== Updating IPv6 default route ====
 Update IPv6 default route. Update IPv6 default route.
  
 <code bash> <code bash>
-cat << "EOF" > /etc/odhcp6c.user+cat << "EOF" > /etc/odhcp6c.user.d/30-default-route
 DHCPC_EVENT="${2}" DHCPC_EVENT="${2}"
 DHCPC_IF="${INTERFACE}" DHCPC_IF="${INTERFACE}"
Line 93: Line 93:
 </code> </code>
  
-==== DHCP server route ====+==== Updating DHCP server route ====
 Update DHCP server route. Update DHCP server route.
  
 <code bash> <code bash>
-cat << "EOF" > /etc/udhcpc.user+cat << "EOF" > /etc/udhcpc.user.d/30-dhcp-route
 DHCPC_EVENT="${1}" DHCPC_EVENT="${1}"
 DHCPC_IF="${interface}" DHCPC_IF="${interface}"
Line 110: Line 110:
 </code> </code>
  
-==== ISP DNS with DHCP ====+==== Providing ISP DNS with DHCP ====
 Announce ISP DNS servers with DHCP. Announce ISP DNS servers with DHCP.
  
 <code bash> <code bash>
-cat << "EOF" > /etc/udhcpc.user+cat << "EOF" > /etc/udhcpc.user.d/50-isp-dns
 DHCP_POOL="lan" DHCP_POOL="lan"
 DHCPC_EVENT="${1}" DHCPC_EVENT="${1}"
Line 125: Line 125:
 do DHCP_OPT="$(uci -q get dhcp.${DHCP_POOL}.dhcp_option)" do DHCP_OPT="$(uci -q get dhcp.${DHCP_POOL}.dhcp_option)"
 for DHCP_OPT in ${DHCP_OPT} for DHCP_OPT in ${DHCP_OPT}
-do if [ "${DHCP_OPT%%,*}" = "6" ] +do case ${DHCP_OPT%%,*} in 
-then uci del_list dhcp.${DHCP_POOL}.dhcp_option="${DHCP_OPT}" +(6|option:dns-server) 
-fi+uci del_list dhcp.${DHCP_POOL}.dhcp_option="${DHCP_OPT}" ;; 
 +esac
 done done
 uci add_list dhcp.${DHCP_POOL}.dhcp_option="6,${DNS_SERV// /,}" uci add_list dhcp.${DHCP_POOL}.dhcp_option="6,${DNS_SERV// /,}"
Line 138: Line 139:
 Reconnect your clients to apply changes. Reconnect your clients to apply changes.
  
-==== IPv6 ISP DNS with DHCPv6 ====+==== Providing IPv6 ISP DNS with DHCPv6 ====
 Announce IPv6 ISP DNS servers with DHCPv6. Announce IPv6 ISP DNS servers with DHCPv6.
  
 <code bash> <code bash>
-cat << "EOF" > /etc/odhcp6c.user+cat << "EOF" > /etc/odhcp6c.user.d/50-isp-dns
 DHCP_POOL="lan" DHCP_POOL="lan"
 DHCPC_EVENT="${2}" DHCPC_EVENT="${2}"
Line 163: Line 164:
 Reconnect your clients to apply changes. Reconnect your clients to apply changes.
  
-==== Resolve WAN/LAN subnet conflicts ====+==== Getting specific WAN IP address ==== 
 +Assuming your ISP provides a dynamic IP address with DHCP. 
 +Reconnect until you get the one matching a specific regexp. 
 +Delay for 10 seconds between reconnects. 
 + 
 +<code bash> 
 +cat << "EOF" > /etc/udhcpc.user.d/10-wan-ipaddr 
 +WAN_ADDR="${ip}" 
 +case ${WAN_ADDR} in 
 +(192.168.*) exit 0 ;; 
 +esac 
 +sleep 10 
 +ifup ${INTERFACE} 
 +EOF 
 +</code> 
 + 
 +==== Resolving WAN/LAN subnet conflicts ==== 
 +Automatically resolve WAN/LAN subnet conflicts. 
 +Change LAN subnet if it overlaps with WAN. 
 <code bash> <code bash>
-cat << "EOF" > /etc/udhcpc.user +cat << "EOF" > /etc/udhcpc.user.d/10-lan-ipaddr 
-LAN_IP="$(uci get network.lan.ipaddr)" +WAN_ADDR="${ip}" 
-case "${ip}in +LAN_IF="lan" 
-(192.168.*.*) NEW_IP="172.16.1.1" ;; +LAN_ADDR="$(uci -q get network.${LAN_IF}.ipaddr)" 
-(*) NEW_IP="192.168.1.1" ;;+case ${WAN_ADDR} in 
 +(192.168.*) NEW_ADDR="172.16.1.1" ;; 
 +(*) NEW_ADDR="192.168.1.1" ;;
 esac esac
-case ${NEW_IP} in +case ${NEW_ADDR} in 
-(${LAN_IP}) exit 0 ;;+(${LAN_ADDR}) exit 0 ;;
 esac esac
-uci set network.lan.ipaddr="${NEW_IP}"+uci set network.${LAN_IF}.ipaddr="${NEW_ADDR}"
 uci commit network uci commit network
-ifup lan+ifup ${LAN_IF}
 EOF EOF
 </code> </code>
  
  • Last modified: 2023/10/06 03:39
  • by vgaetera