Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix системы (https://forum.antichat.xyz/forumdisplay.php?f=124)
-   -   Объединение двух каналов интернет в один. (https://forum.antichat.xyz/showthread.php?t=134440)

KIR@PRO 12.08.2009 09:39

Объединение двух каналов интернет в один.
 
Имеется сервер с установленной Debian он подключен к интернету через pppoe, раньше это было одно соединение ppp0 теперь появвилось второе подключение с такойже скоростью ppp1.
Клиенты в интернет выходят через маршрутизацию, но весь трафик идет только через один канал как их можно объеденить программно?


вот скрипт настройки маршрутизации:
Цитата:

#!/bin/sh
function get_addr()
{
IFCONFIG='/sbin/ifconfig';
HEAD='head -2';
TAIL='tail -1';
CUT='cut -d: -f2';
IP=`$IFCONFIG $1 | $HEAD | $TAIL | awk '{print $2}' | $CUT`;
echo $IP;
}

EXTDEV="ppp0"
EXTDEV2="ppp1"

INETWORKIP="10.167.109.0/255.255.255.0"

INTDEV="eth0"

EXTERNALIP=`get_addr $EXTDEV`
ENETWORKIP=$EXTERNALIP+"/255.255.255.255"

EXTERNALIP2=`get_addr $EXTDEV2`
ENETWORKIP2=$EXTERNALIP2+"/255.255.255.255"

INTERNALIP=`get_addr $INTDEV`
LOOPBACK="127.0.0.1"
ANYWHERE="0.0.0.0/0"
PORTS="1024:65535"
INTDEV="ppp+"
/sbin/depmod -a
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $file
done

for file in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $file
done

for file in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $file
done

/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -N ALLOW_ICMP
/sbin/iptables -N ALLOW_PORTS
/sbin/iptables -N CHECK_FLAGS
/sbin/iptables -N DENY_PORTS
/sbin/iptables -N DST_EGRESS
/sbin/iptables -N KEEP_STATE
/sbin/iptables -N SRC_EGRESS

/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
/sbin/iptables -A INPUT -j ACCEPT -s $EXTERNALIP -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $INTDEV
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i lo
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A INPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -p udp -s $INETWORKIP --sport 53 -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -s $EXTERNALIP2 -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $EXTDEV2 -m state --state RELATED,ESTABLISHED


/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $INTDEV
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $EXTERNALIP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o lo
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A OUTPUT -j ACCEPT -p udp -s $EXTERNALIP -d $ANYWHERE --dport 53
/sbin/iptables -A OUTPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A FORWARD -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $INTDEV
/sbin/iptables -A FORWARD -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE -i $INTDEV
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $EXTERNALIP2
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV2 -m state --state RELATED,ESTABLISHED
/sbin/iptables -A OUTPUT -j ACCEPT -p udp -s $EXTERNALIP2 -d $ANYWHERE --dport 53
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV2 -m state --state RELATED,ESTABLISHED


/sbin/iptables -t nat -A POSTROUTING -j SNAT -s 10.167.109.200 -d $ANYWHERE -o $EXTDEV --to $EXTERNALIP
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.167.109.200 -d $ANYWHERE -o $EXTDEV
/sbin/iptables -t nat -A POSTROUTING -j SNAT -s 10.167.109.200 -d $ANYWHERE -o $EXTDEV2 --to $EXTERNALIP2
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.167.109.200 -d $ANYWHERE -o $EXTDEV2

/sbin/iptables -A INPUT -j ACCEPT -s 10.167.109.200 -d 10.167.109.199
/sbin/iptables -A OUTPUT -j ACCEPT -s 10.167.109.199 -d 10.167.109.200
это для меня .... пользователи то же самое тока там подсеть а не конкретный ip и у них тока конкретные порты разрешены

как мне сделать чтоб использоались сразу оба подключения => чтоб возросла скорость?

AlexSatter 12.08.2009 10:06

можно разделить пользователей на две группы, с примерно одинаковой загрузкой
и одну группу направлять через одно соединение, второе через другое.
так же можно разбить по портам, как удобно вам будет.

Чтоб все это было отказоустойчиво можно настроить маршруты на основе метрик.

это все в теории... применяйте на практики :) все будет работать.

правила поправить не могу, т.к. не люблю/не знаю иптейбл

вот тут более полное руководство к действиям:
http://www.opennet.ru/base/net/linux_link_balance.txt.html


Время: 16:57