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/09/29 02:54] – [Resolving WAN/LAN subnet conflicts] 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.d/00-log+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.d/00-log+cat << "EOF" > /etc/odhcp6c.user.d/00-logger
 logger -t ${0##*/} ${@} $(env) logger -t ${0##*/} ${@} $(env)
 EOF EOF
Line 63: Line 63:
  
 <code bash> <code bash>
-cat << "EOF" > /etc/udhcpc.user.d/00-default-route+cat << "EOF" > /etc/udhcpc.user.d/30-default-route
 DHCPC_EVENT="${1}" DHCPC_EVENT="${1}"
 DHCPC_IF="${interface}" DHCPC_IF="${interface}"
Line 80: Line 80:
  
 <code bash> <code bash>
-cat << "EOF" > /etc/odhcp6c.user.d/00-default-route+cat << "EOF" > /etc/odhcp6c.user.d/30-default-route
 DHCPC_EVENT="${2}" DHCPC_EVENT="${2}"
 DHCPC_IF="${INTERFACE}" DHCPC_IF="${INTERFACE}"
Line 97: Line 97:
  
 <code bash> <code bash>
-cat << "EOF" > /etc/udhcpc.user.d/00-dhcp-route+cat << "EOF" > /etc/udhcpc.user.d/30-dhcp-route
 DHCPC_EVENT="${1}" DHCPC_EVENT="${1}"
 DHCPC_IF="${interface}" DHCPC_IF="${interface}"
Line 114: Line 114:
  
 <code bash> <code bash>
-cat << "EOF" > /etc/udhcpc.user.d/00-isp-dns+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 142: Line 143:
  
 <code bash> <code bash>
-cat << "EOF" > /etc/odhcp6c.user.d/00-isp-dns+cat << "EOF" > /etc/odhcp6c.user.d/50-isp-dns
 DHCP_POOL="lan" DHCP_POOL="lan"
 DHCPC_EVENT="${2}" DHCPC_EVENT="${2}"
Line 162: Line 163:
  
 Reconnect your clients to apply changes. Reconnect your clients to apply changes.
 +
 +==== 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 ==== ==== Resolving WAN/LAN subnet conflicts ====
 Automatically resolve 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.d/00-lan-addr-fix +cat << "EOF" > /etc/udhcpc.user.d/10-lan-ipaddr 
-LAN_IP="$(uci -q get network.lan.ipaddr)+WAN_ADDR="${ip}" 
-WAN_IP="${ip}+LAN_IF="lan" 
-case ${WAN_IP} in +LAN_ADDR="$(uci -q get network.${LAN_IF}.ipaddr)" 
-(192.168.*.*) NEW_IP="172.16.1.1" ;; +case ${WAN_ADDR} in 
-(*) NEW_IP="192.168.1.1" ;;+(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
-/etc/init.d/network reload+ifup ${LAN_IF}
 EOF EOF
 </code> </code>
  
  • Last modified: 2023/10/06 03:39
  • by vgaetera