Убился напрочь, помогите. Есть локальная сеть с двумя подсетями (192.168.0.0/25 и 192.168.0.128/25), 2 провайдера со статическими ip-адресами Надо заставить ходить пользователей из первой подсети через первого провайдера, из 2-й через второго. Ubuntu server 10.10
Шлюзы провайдеров пингуются. Через первого провайдера все идет хорошо (на него установлен шлюз по умолчанию). При попытке выйти в интернет из второй подсети (через второго провайдера) трассировка обрывается на шлюзе.
Трассировка маршрута к ya.ru [77.88.21.3] с максимальным числом прыжков 30:
1 2 ms 1 ms 1 ms 192.168.0.8 2 1 ms 1 ms 1 ms 192.168.2.1 3 * * * Превышен интервал ожидания для запроса. (Если шлюз по умолчанию поменять на второго провайдера - пинги пойдут )
Где недокрутил, подскажите.
#! /bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward
# адреса сетевых карт IP_LOCAL=«192.168.0.8» # локальная сеть IP_INET1=«192.168.1.5» # провайдер 1 IP_INET2=«192.168.2.5» # провайдер 2
IF_LOCAL=«eth0» # локальная сеть IF_INET1=«eth1» # провайдер 1 IF_INET2=«eth2» # провайдер 2
NET_LOCAL=«192.168.0.0/24» # локальная сеть NET_INET1=«192.168.1.0/24» # сеть провайдера 1 NET_INET2=«192.168.2.0/24» # сеть провайдера 2
GW_INET1=«192.168.1.8» # шлюз провайдера 1 GW_INET2=«192.168.2.1» # шлюз провайдера 2
NET_SUB1=«192.168.0.0/25» # подсеть 1 NET_SUB2=«192.168.0.128/25» # подсеть 2
ip route flush table T1 ip route flush table T2
# заполняем таблицу 1 ip route add $NET_INET1 dev $IF_INET1 src $IP_INET1 table T1 ip route add $NET_LOCAL dev $IF_LOCAL table T1 ip route add $NET_INET2 dev $IF_INET2 table T1 ip route add 127.0.0.0/8 dev lo table T1 ip route add default via $GW_INET1 table T1
# заполняем таблицу 2 ip route add $NET_INET2 dev $IF_INET2 src $IP_INET2 table T2 ip route add $NET_LOCAL dev $IF_LOCAL table T2 ip route add $NET_INET1 dev $IF_INET1 table T2 ip route add 127.0.0.0/8 dev lo table T2 ip route add default via $GW_INET2 table T2
# заполняем таблицу main ip route add $NET_INET1 dev $IF_INET1 src $IP_INET1 ip route add $NET_INET2 dev $IF_INET2 src $IP_INET2
# шлюз по умолчанию ip route add default via $GW_INET2
ip rule delete table T1 ip rule delete table T2 ip rule delete table T1 ip rule delete table T2
# заполняем правила ip rule add from $IP_INET1 table T1 ip rule add from $IP_INET2 table T2
ip rule add fwmark 10 table T1 ip rule add fwmark 20 table T2
ip route flush cache
IPT=«/sbin/iptables»
$IPT -F $IPT -t nat -F $IPT -t mangle -F
#$IPT -t mangle -A PREROUTING -s $NET_SUB1 -j MARK --set-mark 10 #$IPT -t mangle -A PREROUTING -s $NET_SUB2 -j MARK --set-mark 20
$IPT -t nat -A POSTROUTING -m mark --mark 10 -j MASQUERADE $IPT -t nat -A POSTROUTING -m mark --mark 20 -j MASQUERADE
# разрешаем форвардинг из локальной сети $IPT -A FORWARD -i $IF_LOCAL -o $IF_INET1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT $IPT -A FORWARD -i $IF_LOCAL -o $IF_INET2 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# разрешаем форвардинг из интернета $IPT -A FORWARD -i $IF_INET1 -m state --state RELATED,ESTABLISHED -j ACCEPT $IPT -A FORWARD -i $IF_INET2 -m state --state RELATED,ESTABLISHED -j ACCEPT
exit 0