Ru-Board.club
← Вернуться в раздел «UNIX»

» SQUID и два провайдера

Автор: shewa
Дата сообщения: 03.10.2007 20:20
Доброго всем дня!
Итак есть два провайдера которые подключены к компьютеру на linux redhat 4 через два сетевые интерфейса

eth1 ip - 10.100.128.68
и
eth2 ip - 192.168.1.2
и есть eth0 адрес которого 192.168.0.1 он сморит в мою локальную сеть

в сети есть ip 192.168.0.3 который выходит через интерфейс 192.168.0.1
и пока что настроено SNAT --to-source 10.100.128.68

default gw для компьютера является 10.100.100.1 который облуживает интерфейс eth1

есть squid который нужно настроить так что бы выходить через интерфейс eth2 шлюзом для него является 192.168.1.1

для создания сего удовольствия в squid существует опция tcp_outgoing_address <ip gw>

поєтому прописываем такой код
acl mynet src 192.168.0.0/255.255.255.0
tcp_outgoing_address 192.168.1.1 mynet
http_access allow mynet

в результате чего ,задуманное не работает

может есть какие нибудь другие подводные камни про которые я не знаю?
Автор: vjunk
Дата сообщения: 03.10.2007 21:49
tcp_outgoing_address это не адрес шлюза, а локальный адрес, через который будет идти трафик, должно быть: tcp_outgoing_address 192.168.1.2.
А адрес шлюза нужно через policy routing настраивать, чтобы для адреса 192.168.1.2 шлюз был 192.168.1.1.
Или установить на 192.168.1.1 squid и прописать его как parent для 192.168.1.2 (но это, насколько я понимаю, невозможно т.к. 192.168.1.1 не под твоим контролем).
Автор: shewa
Дата сообщения: 03.10.2007 23:37
понятно спасибо , а плитики роутинга настраивать при помощи iprouting2?
Автор: shewa
Дата сообщения: 05.10.2007 00:13
я сделал так
route add -net 192.168.1.1 netmask 255.255.255.255 dev eth2
всеравно ходит через 10.100.100.1(
Автор: ipmanyak
Дата сообщения: 09.10.2007 06:14
shewa Имея два канала тебе нужно столько сквидом заниматься сколько маршрутизацией по источнику ! Почитай статью: Два канала в Internet - http://www.osp.ru/lan/2002/05/042.htm
Автор: shewa
Дата сообщения: 11.10.2007 09:59
А я не тоже самое делаю? , а ты такой самый умный нарыл длиннющую доку и отправил курить ман? ты то хоть сам понял что там написано
Автор: Dinoll
Дата сообщения: 11.10.2007 18:23
Нет не тоже, Сквид маршрутизацией не занимается, такчто статью всётаки стоит прочитать ИМХО
Автор: Dr_Spectre
Дата сообщения: 11.10.2007 21:00

Цитата:
shewa

еще как занимается.
С помощью tcp_outgoing_address как раз можно c с помощью acl разрулить по какому маршруту пойдет пакет.

shewa

проверьте. Зайдите на www.all-nettools.com там есть проверка прокси. Он вам написать должен сначала один адрес а если сделаете выход по второму маршруту - будет уже адрес второго внешнего интерфейса.
Автор: shewa
Дата сообщения: 12.10.2007 23:29
Dr_Spectre - я тебе премного благодарен за поддержку, но проверять пока что нечего ,
таки не работает єто алгоритм , иначе б я здесь на форуме не тусовался ?

Добавлено:
Dinoll - ты внимательно прочитал первый пост?, если внимательно, то я буду премного благодарен дельному совету
Автор: vjunk
Дата сообщения: 13.10.2007 00:01
Для тех, кому совсем лень разбираться в документации.
[more=Скрипт]
#!/bin/sh
#
# Load complex routing rules using iproute2
#
# chkconfig: 2345 11 89
# description: Load complex routing rules using iproute2
# probe: true

DEFAULT_ROUTE=1.1.1.1

# Source function library.
. /etc/rc.d/init.d/functions

start() {
    echo -n "Starting routemap: "

    # Copy local routes from main table
    ip route show table main | grep -v default | \
        sed -e 's/^/ip route add /' -e 's/$/ table 1/' | $SHELL
    ip route show table main | grep -v default | \
        sed -e 's/^/ip route add /' -e 's/$/ table 2/' | $SHELL

    # Add specific default routes
    ip route add default via $DEFAULT_ROUTE protocol static table main
    ip route add default via 1.1.1.1 protocol static table 1
    ip route add default via 2.2.2.1 protocol static table 2

    # Insert rules
    ip rule add priority 1 from 1.1.1.0/24 table 1
    ip rule add priority 2 from 2.2.2.0/24 table 2
    ip rule add priority 3 from 3.3.3.0/24 table main

    ip route flush cache

    success "Starting routemap: "
    echo

    touch /var/lock/subsys/routemap
    return 0
}    

stop() {
    echo -n "Shutting down routemap: "

    ip route delete default table main

    ip route flush table 1
    ip route flush table 2
    
    ip rule delete priority 1 from 1.1.1.0/24
    ip rule delete priority 2 from 2.2.2.0/24
    ip rule delete priority 3 from 3.3.3.0/24
    
    ip route flush cache
    
    success "Shutting down routemap: "
    echo

    rm -f /var/lock/subsys/routemap
    return 0
}

case "$1" in
start)
    start
    ;;
stop)
    stop
    ;;
status)
    echo "=== RULES ==="
    ip rule show
    echo "=== TABLE 1 ==="
    ip route show table 1
    echo "=== TABLE 2 ==="
    ip route show table 2
    echo "=== TABLE main ==="
    ip route show table main
    ;;
restart|reload)
    stop
    start
    ;;
*)
    echo "Usage: routemap {start|stop|status|reload|restart}"
    exit 1
    ;;
esac
exit $?
[/more]
Подразумевается, что у компьютера три сетевых интерфейса:
1.1.1.0/24 - сеть первого провайдера
2.2.2.0/24 - сеть второго провайдера
3.3.3.0/24 - внутренняя сеть
1.1.1.1 - шлюз первого провайдера
2.2.2.1 - шлюз второго провайдера

Скрипт использует специфическую для RedHat команду success, но её можно выкинуть без потери смысла.

Страницы: 1

Предыдущая тема: VPN соединение устанавливается и сразу падает.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.