assign-ip-ssid 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/sh
  2. CONFIG=1
  3. source /usr/sbin/helper.sh
  4. DNSMASQ_CONF=/etc/dnsmasq.conf
  5. if [ `cat ${DNSMASQ_CONF} | grep -c "log-dhcp"` -eq 0 ]; then
  6. echo "log-dhcp" >> ${DNSMASQ_CONF}
  7. fi
  8. #$(logger "")
  9. #if [ $? -ne 0 ]; then
  10. # logger () {
  11. # echo "${1}"
  12. # }
  13. #fi
  14. log_err () {
  15. #if [ ${1} -ne 0 ]; then
  16. logger "${2}[${1}] - ${3}"
  17. #fi
  18. }
  19. cmd_run () {
  20. ERR=`${2}`
  21. ERRCODE=$?
  22. log_err ${ERRCODE} "${1}" "${ERR}: ${2}"
  23. return ${ERRCODE}
  24. }
  25. ebt_rule () {
  26. FLAG=${1}
  27. RULE=${2}
  28. #if [ -n "${RULE}" ] && [ `ebtables -t broute -L | grep -ice "${RULE}"` -ne 1 ]; then
  29. cmd_run "ebtables" "ebtables -t broute ${FLAG} BROUTING ${RULE}"
  30. #fi
  31. }
  32. assign_ip () {
  33. IFACE=${1}
  34. IFACE_NWRK_ADDR=${2}
  35. IFACE_INET_ADDR=${3}
  36. IFACE_NETMASK=${4}
  37. DHCP_START=${5}
  38. DHCP_END=${6}
  39. if [ `cat ${DNSMASQ_CONF} | grep -c ${IFACE}` -eq 0 ]; then
  40. killall dnsmasq
  41. logger "dnsmasq-dhcp: Configure ${IFACE} to have special DHCP"
  42. pc_append "interface=${IFACE}" ${DNSMASQ_CONF}
  43. pc_append "dhcp-range=${IFACE},${DHCP_START},${DHCP_END},${IFACE_NETMASK},86400s" ${DNSMASQ_CONF}
  44. pc_append "dhcp-option=${IFACE},3,${IFACE_INET_ADDR}" ${DNSMASQ_CONF}
  45. pc_append "dhcp-option=${IFACE},6,8.8.8.8,8.8.4.4" ${DNSMASQ_CONF}
  46. sleep 1
  47. #service restart_dnsmasq
  48. dnsmasq --log-async
  49. else
  50. _quote "dhcp-range=${IFACE}"
  51. pc_append "dhcp-range=${IFACE},[a-z0-9]+" "dhcp-range=${IFACE},${DHCP_START},${DHCP_END},${IFACE_NETMASK},86400s" ${DNSMASQ_CONF}
  52. fi
  53. cmd_run "ifconfig" "ifconfig ${IFACE} ${IFACE_INET_ADDR} netmask ${IFACE_NETMASK}"
  54. #ip route show table main | grep -Ev ^default | while read ROUTE; do
  55. # if [ `ip route show table 10 | grep -c "${ROUTE}"` -eq 0 ]; then
  56. # cmd_run "ip-route" "ip route add table 10 ${ROUTE}"
  57. # fi
  58. #done
  59. #cmd_run "ip-rule" "ip rule add dev ${IFACE} table 10"
  60. #sleep 1
  61. #if [ `iptables -L -v | grep -c ${IFACE}` -eq 0 ]; then
  62. #cmd_run "iptables" "iptables -D INPUT -i ${IFACE} -j ACCEPT"
  63. #cmd_run "iptables" "iptables -I INPUT -i ${IFACE} -j ACCEPT"
  64. #fi
  65. #ebt_rule "-D" "-p ipv4 -i ${IFACE} -j DROP"
  66. #ebt_rule "-I" "-p ipv4 -i ${IFACE} -j DROP"
  67. #ebt_rule "-D" "-p arp -i ${IFACE} -j DROP"
  68. #ebt_rule "-I" "-p arp -i ${IFACE} -j DROP"
  69. cmd_run "ip-route" "ip route flush cache"
  70. }
  71. assign_ip "vlan1" "192.168.1.0" "192.168.1.1" "255.255.255.0" "192.168.1.1" "192.168.1.127" #/25
  72. assign_ip "wl0.1" "192.168.1.0" "192.168.1.1" "255.255.255.0" "192.168.1.128" "192.168.1.159" #/27
  73. assign_ip "wl1.1" "192.168.1.0" "192.168.1.1" "255.255.255.0" "192.168.1.128" "192.168.1.159" #/27
  74. assign_ip "wl2.1" "192.168.1.0" "192.168.1.1" "255.255.255.0" "192.168.1.128" "192.168.1.159" #/27