ข่าว: ข่าวประกาศ

  • 19 เมษายน 2024, 20:30:07

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ผู้เขียน หัวข้อ: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet  (อ่าน 50975 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 3820
    • ดูรายละเอียด
    • อีเมล์
MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« เมื่อ: 12 กรกฎาคม 2008, 09:41:13 »
ตั้งกระทู้ไว้ สำหรับผู้ที่มีข้อสงสัยเกี่ยวกับ

- การ config การ update ใช้งาน 3WAN, 4WAN หรือมากกว่า
- อ่านเอกสารแล้วยังไม่เข้าใจ มีข้อสงสัยสอบถามเพิ่มเติม
- ต้องการแลกเปลี่ยนความคิดเห็น config เพิ่มเติม
- สอบถามแก้ไขปัญหาที่เกิดขึ้น

<a href="http://www.hadyaiinternet.com/images/inetcafe.swf" target="_blank" rel="noopener noreferrer" class="bbc_link bbc_flash_disabled new_win">http://www.hadyaiinternet.com/images/inetcafe.swf</a>

modtanoii

  • Newbie
  • *
  • กระทู้: 40
    • ดูรายละเอียด
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #1 เมื่อ: 13 กรกฎาคม 2008, 17:31:21 »
พอดีผมไปเจอสคริปนี้มา ท่านคิดว่าเป็นไงครับ ต้องมีแก้ไขยังไงบ้างมั้ย ถ้าเกิดผมจะมาปรับให้เข้ากะระบบตัวเอง ก้อคือ เนต 2 สาย ทำงานแบบ loadbalance เส้นไหนหลุดก้อสลับไปอีกเส้น แล้วเส้นที่หลุดก้อต่อใหม่เอง แยกเนตแยกเกม
อ้างถึง
#!/bin/bash

#############################################################
# PPP Load Balancer Script                                  #
#                                                           #
# Author: Neutron Soutmun                                   #
# Created: 2008-04-28                                       #
# Copyright: © 2008 Neutron Soutmun <neo.neutron@gmail.com> #
# License: GPL-2                                            #
#############################################################

VERSION=0.1.1

##
# LOG_DIR : Store the neccessary log files for ppp load balance processing.
##
LOG_DIR=/var/log/ppp-balance

##
# TABLE_PREFIX : The prefix for the table name that specified in
#                /etc/iproute2/rt_tables for identification of route.
##
TABLE_PREFIX=isp

##
# GAMEONLINE_ROUTE_TO_IFNO : The interface number which desired to be the
#                            GameOnline routing path.
#                            You must set the netfilter rules for this function
#                            will work properly.
#                            To disable this, set it to -1
#
# Example netfilter rules:
#
# # iptables -t mangle -A PREROUTING -i eth0 -p tcp \
#     -m multiport --dports 1025:65535 -j MARK --set-mark 0x4
# # iptables -t mangle -A PREROUTING -i eth0 -p udp \
#     -m multiport --dports 1025:65535 -j MARK --set-mark 0x4
#
##
GAMEONLINE_ROUTE_TO_IFNO=3

##
# RELOAD_SQUID : Force to reload the squid config, workaround for the system
#                that running squid process, disable set it to 0
##
RELOAD_SQUID=1

##
# VERBOSE : Verbose mode, display all logs and errors
#           disable set it to 0.
##
VERBOSE=1

###################################
### Do not need to change below ###
###################################

IP=/sbin/ip
IFCONFIG=/sbin/ifconfig
SQUID=/etc/init.d/squid3

RT_TABLES=/etc/iproute2/rt_tables

OLD_IF_FILE=${LOG_DIR}/old-if.log
OLD_IF_COUNT_FILE=${LOG_DIR}/old-if-cnt.log
OLD_RULE_FILE=${LOG_DIR}/old-rule.log
NEXTHOP_FILE=${LOG_DIR}/nexthop.log
REDIAL_LOG_FILE=${LOG_DIR}/redial.log
TEMP_FILE=${LOG_DIR}/temp.log
LOG_FILE=${LOG_DIR}/ppp-balance.log

log() {
  timestamp=`date`
  if [ ${VERBOSE} -gt 0 ]; then
    echo "${timestamp}: $1"
  fi
  echo "${timestamp}: $1" >> ${LOG_FILE}
}

error() {
  timestamp=`date`
  if [ ${VERBOSE} -gt 0 ]; then
    echo "${timestamp}: ERROR! - $1"
  fi
  echo "${timestamp}: ERROR! - $1" >> ${LOG_FILE}
  exit $2
}

### Check if the system ready ###

# Check log dir
if [ ! -d ${LOG_DIR} ]; then
  mkdir -p ${LOG_DIR} || exit 1
fi

# Check neccessary program
if [ ! -f ${IP} ]; then
  error "The 'iproute2' package is not installed properly ?!!" 1
fi

# Check pre-defined tables name
rt_tables=`cat ${RT_TABLES} | grep "200   ${TABLE_PREFIX}0" | wc -l`
if [ $rt_tables -eq 0 ]; then
  ## Create the route tables name from prefix
  echo ""  >> ${RT_TABLES}
  echo "#" >> ${RT_TABLES}
  echo "# Added by PPP Load Balancer" >> ${RT_TABLES}
  echo "#" >> ${RT_TABLES}

  for (( i = 0; i < 10; i++ )); do
    echo "20${i}   ${TABLE_PREFIX}${i}" >> ${RT_TABLES}
  done
fi


# Clear the temporary files
echo "" > ${TEMP_FILE}

del_old_rule () {
  log "Removing old rules ..."
  ${IP} rule show | grep ${TABLE_PREFIX} | grep -v "all to" > ${OLD_RULE_FILE}

  while read line
  do
    #echo $line
    line_ip=`echo $line | cut -d' ' -f3`
    line_table=`echo $line | cut -d' ' -f5`
   
    check=`echo ${line_table} | grep ${TABLE_PREFIX}`
    if [ $? -eq 0 ]; then
      log "${IP} rule del from ${line_ip} table ${line_table}"
      ${IP} rule del from ${line_ip} table ${line_table}

      log "${IP} route flush table ${line_table}"
      ${IP} route flush table ${line_table}
    fi

  done < ${OLD_RULE_FILE}
}

update_route () {
  log "Updating new route ..."
  echo "" > ${NEXTHOP_FILE}

  for PPP in ${PPP_LIST}
  do
    new_ppp=`cat ${TEMP_FILE} | grep ${PPP}`
    new_ip=`echo ${new_ppp} | cut -d':' -f2`
    new_tab=`echo ${new_ppp} | cut -d':' -f3`
 
    log "${IP} route add ${new_ip}/32 dev ${PPP} src ${new_ip} table ${new_tab}"
    ${IP} route add ${new_ip}/32 dev ${PPP} src ${new_ip} table ${new_tab}

    log "${IP} route add default via ${new_ip} table ${new_tab}"
    ${IP} route add default via ${new_ip} table ${new_tab}

    log "${IP} rule add from ${new_ip} table ${new_tab}"
    ${IP} rule add from ${new_ip} table ${new_tab}

    log "nexthop via ${new_ip} dev ${PPP} weight 1"
    echo "nexthop via ${new_ip} dev ${PPP} weight 1 " >> ${NEXTHOP_FILE} 2>&1
  done
}

update_default_route () {
  log "Updating default route ..."
  nexthop=`cat ${NEXTHOP_FILE}`
  check=`echo $nexthop | grep nexthop | wc -l`
  if [ $check -gt 0 ]; then
    default_gw="${IP} route add default scope global equalize "
    log "${default_gw} ${nexthop}"
    ${IP} route del default
    ${default_gw} ${nexthop}

    # Game online and other ports 1025:65535 go through the specified game path
    if [ ${GAMEONLINE_ROUTE_TO_IFNO} -gt -1 ]; then
      log "Adding GameOnline interception ..."
      ${IP} rule del fwmark 4 table ${TABLE_PREFIX}${GAMEONLINE_ROUTE_TO_IFNO}
      ${IP} rule add fwmark 4 table ${TABLE_PREFIX}${GAMEONLINE_ROUTE_TO_IFNO}
    fi
  fi
}

### MAIN ###
changes=0

# Gathering current PPP list
PPP_LIST=`${IFCONFIG} | grep ppp | cut -d' ' -f1`
IF_COUNT=`${IFCONFIG} | grep ppp | cut -d' ' -f1 | wc -l`

for PPP in ${PPP_LIST}
do
  if_ip=`${IFCONFIG} ${PPP} | grep inet | cut -d':' -f2 | cut -d' ' -f 1`
  table_id=`echo ${PPP} | cut -d'p' -f4`
  check_old=`cat ${OLD_IF_FILE} | grep ${PPP}`
  check_ip=`echo ${check_old} | grep ${if_ip}`
  if [ $? -eq 1 ]; then
    # Some change in this device do update routing
    log "${PPP} Routing change...."
    changes=1
  fi
  echo ${PPP}:${if_ip}:${TABLE_PREFIX}${table_id} >> ${TEMP_FILE}
done

if [ -f ${OLD_IF_COUNT_FILE} ]; then
  OLD_IF_COUNT=`cat ${OLD_IF_COUNT_FILE}`
else
  OLD_IF_COUNT=0
fi

if [ ${OLD_IF_COUNT} != ${IF_COUNT} ]; then
  log "Links size changed!"
  changes=1
fi

if [ ${changes} -eq 1 ]; then
  del_old_rule
  update_route
  update_default_route
 
  ${IP} route flush cache

  if [ ${RELOAD_SQUID} -gt 0 ]; then
     log "Reloading SQUID config ..."
     ${SQUID} reload
  fi
  date >> ${REDIAL_LOG_FILE}

  success=`${IP} route | grep nexthop | wc -l`
  if [ ${success} -gt 0 ]; then
    cp ${TEMP_FILE} ${OLD_IF_FILE}
    echo ${IF_COUNT} > ${OLD_IF_COUNT_FILE}
    log "Updated!"
  else
    rm -f ${OLD_IF_FILE}
    rm -f ${OLD_IF_COUNT_FILE}
    log "Update Pending! - Retry in the next time."
  fi
fi

### END ###


admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 3820
    • ดูรายละเอียด
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #2 เมื่อ: 13 กรกฎาคม 2008, 21:35:59 »
ก็คล้ายกันครับ

แต่ของผมจะเข้าใจง่ายกว่า

และไม่มีปัญหากรณี มีการเปลี่ยนแปลง route table เนื่องจาก MARK RULES จะทำการเปลี่ยนแปลง เฉพาะ State NEW

ส่วน State RELATED,ESTABLISHED จะไม่มีการเปลี่ยนแปลง เพื่อป้องกันการหลุดของเกมส์ที่เล่นอยู่ในขณะเส้น เวป มีปัญหา

เป็นต้น

ซึ่งในไฟล์ /etc/init.d/tableroute.sh จะมีบรรทัด

# MARK RULE FOR NEW PACKET
iptables -t mangle -A PREROUTING -i eth0 -m state --state NEW -j MARK_RULES
iptables -t mangle -A PREROUTING -i eth0 -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark

เป็นตัวกำหนดเงื่อนไข ก่อนทำการ MARK Packet
« แก้ไขครั้งสุดท้าย: 13 กรกฎาคม 2008, 21:40:20 โดย admin »
<a href="http://www.hadyaiinternet.com/images/inetcafe.swf" target="_blank" rel="noopener noreferrer" class="bbc_link bbc_flash_disabled new_win">http://www.hadyaiinternet.com/images/inetcafe.swf</a>

modtanoii

  • Newbie
  • *
  • กระทู้: 40
    • ดูรายละเอียด
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #3 เมื่อ: 14 กรกฎาคม 2008, 04:20:08 »
หุหุ ขอบคุณครับ ช่วยได้มากเลยท่าน

pphat21

  • Customer Lv.1
  • Jr. Member
  • ***
  • กระทู้: 59
    • ดูรายละเอียด
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #4 เมื่อ: 17 กรกฎาคม 2008, 23:37:42 »
scrip ของ ubuntu กับ scrip ของ CC ใช้ตัวเดียวกันได้ไหมครับ

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 3820
    • ดูรายละเอียด
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #5 เมื่อ: 18 กรกฎาคม 2008, 03:19:50 »
ไม่ได้ครับ เพราะ Ubuntu ทำใหม่ขึ้นมาทั้งหมดและเป็น Linux debian

ส่วน CC จะเป็น Linux ตระกูล RedHat จึง config ไม่เหมือนกัน
<a href="http://www.hadyaiinternet.com/images/inetcafe.swf" target="_blank" rel="noopener noreferrer" class="bbc_link bbc_flash_disabled new_win">http://www.hadyaiinternet.com/images/inetcafe.swf</a>

webddgame

  • Newbie
  • *
  • กระทู้: 12
    • ดูรายละเอียด
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #6 เมื่อ: 23 กรกฎาคม 2008, 00:45:57 »
  คงต้องประยุกต์เอานิดหน่อยนะครับ ลองสังเกตุ ดูนะครับ ตำแหน่งของไฟล์ บางครั้งมันจะไม่ตรงกัน

★2@nswεr^^★™`

  • Customer Lv.4
  • Hero Member
  • *****
  • กระทู้: 637
  • Learning By Doing,,,,
    • ดูรายละเอียด
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #7 เมื่อ: 03 กันยายน 2008, 00:59:01 »
อยาก vpn เข้า server แล้วไปอยู่ในวงแลนภายในร้านครับ

เพื่อได้ ip bonus และรีโมทเข้าเครื่องลูกต่างๆ

แล้วก็การ forwardport ด้วยครับ ทำยังไงครับ
SmartCafe Z + Intel® SSD 910

pcdos

  • Newbie
  • *
  • กระทู้: 2
    • ดูรายละเอียด
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #8 เมื่อ: 21 พฤศจิกายน 2008, 22:00:35 »
อ้างถึง
ip route add default equalize scope global  ...

การใช้ค่า weight

บาง script ใช้ 1, 2, 4  เขามีหลักการคิดยังไงครับ

profess_one

  • Newbie
  • *
  • กระทู้: 1
    • ดูรายละเอียด
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #9 เมื่อ: 11 กันยายน 2009, 17:43:51 »
อนาคตหลังจากซื้อ Software จากพี่แล้วผมสามารถปรับเปลี่ยนหน้าตา เพิ่มเติมเองได้ไหมครับ แล้วถ้ามีปัญหาหรือมี Feature เพิ่มเติม พี่สามารถ Remote ช่วยได้ไหม และมีค่าใช้จ่ายอะไรเพิ่มเติมไหม..และเรื่องราคาประมาณเท่าไหร่ครับสำหรับทำ WiFi ได้ด้วยครับ ขอบคุณล่วงหน้าครับ

PoR

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 833
    • ดูรายละเอียด
    • www.hadyaiinternet.com
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #10 เมื่อ: 11 กันยายน 2009, 17:48:25 »
อนาคตหลังจากซื้อ Software จากพี่แล้วผมสามารถปรับเปลี่ยนหน้าตา เพิ่มเติมเองได้ไหมครับ แล้วถ้ามีปัญหาหรือมี Feature เพิ่มเติม พี่สามารถ Remote ช่วยได้ไหม และมีค่าใช้จ่ายอะไรเพิ่มเติมไหม..และเรื่องราคาประมาณเท่าไหร่ครับสำหรับทำ WiFi ได้ด้วยครับ ขอบคุณล่วงหน้าครับ

สามารถปรับเปลี่ยนได้ครับ สมารถ remote ช่วยได้ครับโดยไม่มีค่าใช้จ่ายเพิ่มในครั้งแรก ราคาอยุ่ที่ 4100 บาท รวมค่าจัด่ส่งแล้วนะครับ ถ้าจะเอาตัว wifi ด้วย ราคาจะอยุ่ที่ 15,000 บาท นะครับ สนใจโทรสอบถามที่ 084-9695561 คุณป้อ ครับ
ขอบคุณครับ
Hadyaiinternet R&D LAB ยินดีให้บริการทุกท่าน
Call center โทร 084-9695561
E-mail:por_pk@hotmail.com

storm2nd

  • Customer Lv.1
  • Newbie
  • ***
  • กระทู้: 6
    • ดูรายละเอียด
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #11 เมื่อ: 17 กันยายน 2009, 03:41:26 »
คืองงทุกอย่าง  ที่เป็น Ubuntu ครับ ... 

ผมควรเริ่มจากตรงไหนดี  แนะนำให้หน่อยครับ

thesis555

  • Newbie
  • *
  • กระทู้: 3
    • ดูรายละเอียด
    • รับทำ seo
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #12 เมื่อ: 27 ตุลาคม 2009, 21:01:33 »
ขอบคุณมากเลยครับ ช่วยได้มากเลย
สนับสนุนให้คนไทยรักกัน By seo : รถมือสอง : รับทำบัญชี นนทบุรี

aOfz

  • Customer Lv.3
  • Newbie
  • ****
  • กระทู้: 37
    • ดูรายละเอียด
    • อีเมล์
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #13 เมื่อ: 29 ตุลาคม 2009, 02:10:56 »
ถามหน่อย ถ้าซื้อแผ่นมาทำ  ราคา 4100  แล้วถ้าให้มาทำให้ราคาเท่าไหร่ครับ อยู่ในหาดใหญ่คืออยากจะเปิดร้านอ่ะครับ...
แล้วถ้าให้มาทำให้ได้คู่มือสอนแล้วก็แผ่นเหมือนกับสั่งซื้อราคา 4100 อ่ะป่าวครับ

T@NR@K

  • ตัวแทนที่ได้รับการแต่งตั้ง
  • Hero Member
  • *****
  • กระทู้: 856
  • ทุกอย่างย่อมมีเหตุและผล
    • MSN Messenger - tonrak_ms@hotmail.com
    • ดูรายละเอียด
    • TONRAK Networks : เปิดร้านเน็ต เปิดร้านเกมส์ เปิดร้านอินเตอร์เน็ต ระบบ network ระบบ no hdd
Re: MultiWAN Server โดยใช้ Ubuntu จากทาง Hadyai Internet
« ตอบกลับ #14 เมื่อ: 29 ตุลาคม 2009, 20:35:57 »
ถามหน่อย ถ้าซื้อแผ่นมาทำ  ราคา 4100  แล้วถ้าให้มาทำให้ราคาเท่าไหร่ครับ อยู่ในหาดใหญ่คืออยากจะเปิดร้านอ่ะครับ...
แล้วถ้าให้มาทำให้ได้คู่มือสอนแล้วก็แผ่นเหมือนกับสั่งซื้อราคา 4100 อ่ะป่าวครับ

- คู่มือบอกขั้นตอนละเอียด ทำได้แน่นอนครับ
- ไม่จำเป็นต้องมีความรู้ Linux มากเป็น Auto install ครับ
- ถ้าไม่ได้จริงๆ PM หาพี่ PoR โลดครับ  ;D ;D ;D ;D