nixp.ru v3.0

17 октября 2017,
вторник,
16:08:04 MSK

DevOps с компанией «Флант»
anonymous написал 30 сентября 2004 года в 13:45 (1218 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Пожалуйста срочно, горю!!!!!!!!!!!!!!!

Вопрос в следующем. Имеется две сети 192.168.1.0 и 192.168.2.0 и два канала интернет, на машине с Linux RH Enterprise 3 установлены две сетевые карты с IP и шлюзами обоих сетей, также установлен SQUID. Нужно настроить Squid для работы с двумя каналами тоесть каждая из сетей работает со своим каналом. Есть идея запустить Squid с двумя процессами тоесть для конфигурационных файлов /etc/squid/squid1.conf /etc/squid/squid2.conf для процессов /var/run/squid1.pid /var/runsquid2.pid для логов /var/log/squid1 /var/log/squid2 и для кеша /var/spool/squid1 /var/spool/squid2. Конфигурационные файлы настраиваю каждый на свою сеть соответственно тоесть пишу ACL и в tcp_outgoing_address конфигурационных файлов прописываю IP соответствующих интерфейсов. По моему это должно работать если правильно написать или переписать скрипт в /etc/rc.d/init.d/squid но как это сделать не селён. Если кто знает подскажите как или исправте мой родной скрипт /etc/rc.d/init.d/squid. Заранее благодарен. Ниже привожу родной скрипт

___________________________________________________________________________________________

#!/bin/bash

# squid This shell script takes care of starting and stopping

# Squid Internet Object Cache

#

# chkconfig: — 90 25

# description: Squid — Internet Object Cache. Internet object caching is \

# a way to store requested Internet objects (i.e., data available \

# via the HTTP, FTP, and gopher protocols) on a system closer to the \

# requesting site than to the source. Web browsers can then use the \

# local Squid cache as a proxy HTTP server, reducing access time as \

# well as bandwidth consumption.

# pidfile: /var/run/squid.pid

# config: /etc/squid/squid.conf

PATH=/usr/bin:/sbin:/bin:/usr/sbin

export PATH

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

# check if the squid conf file is present

[ -f /etc/squid/squid.conf ] || exit 0

if [ -f /etc/sysconfig/squid ]; then

. /etc/sysconfig/squid

fi

# don’t raise an error if the config file is incomplete

# set defaults instead:

SQUID_OPTS=${SQUID_OPTS:-«-D»}

SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}

SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}

# determine the name of the squid binary

[ -f /usr/sbin/squid ] && SQUID=squid

[ -z "$SQUID" ] && exit 0

prog=«$SQUID»

# determine which one is the cache_swap directory

CACHE_SWAP=`sed -e ’s/#.*//g' /etc/squid/squid.conf | \

grep cache_dir | awk '{ print $3 }’`

[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/spool/squid

RETVAL=0

start() {

for adir in $CACHE_SWAP; do

if [ ! -d $adir/00 ]; then

echo -n «init_cache_dir $adir… »

$SQUID -z -F -D 2>/dev/null

fi

done

echo -n $"Starting $prog: »

$SQUID $SQUID_OPTS 2> /dev/null

RETVAL=$?

if [ $RETVAL -eq 0 ]; then

timeout=0;

while : ; do

[ ! -f /var/run/squid.pid ] || break

if [ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]; then

RETVAL=1

break

fi

sleep 1 && echo -n «.»

timeout=$((timeout+1))

done

fi

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID

[ $RETVAL -eq 0 ] && echo_success

[ $RETVAL -ne 0 ] && echo_failure

echo

return $RETVAL

}

stop() {

echo -n $"Stopping $prog: »

$SQUID -k check >/dev/null 2>&1

RETVAL=$?

if [ $RETVAL -eq 0 ] ; then

$SQUID -k shutdown &

rm -f /var/lock/subsys/$SQUID

timeout=0

while : ; do

[ -f /var/run/squid.pid ] || break

if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then

echo

return 1

fi

sleep 2 && echo -n «.»

timeout=$((timeout+2))

done

echo_success

echo

else

echo_failure

echo

fi

return $RETVAL

}

reload() {

$SQUID $SQUID_OPTS -k reconfigure

}

restart() {

stop

start

}

condrestart() {

[ -e /var/lock/subsys/squid ] && restart || :

}

rhstatus() {

status $SQUID

$SQUID -k check

}

probe() {

return 0

}

case «$1» in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

restart

;;

condrestart)

condrestart

;;

status)

rhstatus

;;

probe)

exit 0

;;

*)

echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}»

exit 1

esac

exit $?

anonymous

Во ты заморочился !!!

А что acl не помогает???

anonymous

Я имею в виду написать 2 aclя в одном ip одной сети указать в другом другой… и нахрен тут не нужны два конфига