The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
iptables, iproute, 2 аплинка. Помогите понять приципы., !*! IvanN, 21-Фев-12, 09:55  [смотреть все]
Здравствуйте.

Помогите, пожалуйста, разобраться. Есть два аплинка к одному провайдеру. Необходимо пропорционально поделить между ними трафик. Т.е. балансировку нагрузки. При этом соединения по определенным портам всегда должно идти через тот интерфейс, с которого были установлены. Теряюсь в догадках как такое можно провернуть...

Раньше, при одном аплинке, я пользовал связку iptables+bind+squid+netams. Вот рабочие правила для старой конфигурации:


#!/bin/bash

/sbin/modprobe ip_queue
/sbin/modprobe ip_nat_ftp
/sbin/modprobe nf_conntrack_ftp

IPT="/sbin/iptables"
INET="eth0"
LAN="eth1"
NETWORK="192.168.0.0/24"
SQUID="3128"
WWW="80,81,8080"


$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

$IPT -N INPUT_LAN
$IPT -N INPUT_INET

#================SQUID==================

$IPT -t nat -A PREROUTING -s $NETWORK ! -d $NETWORK -p tcp -m multiport --dport $WWW -j REDIRECT --to-ports $SQUID
$IPT -A OUTPUT -o $LAN -p tcp -m tcp --sport $SQUID -m state --state NEW,RELATED,ESTABLISHED -j QUEUE

#==============NETAMS===================


$IPT -A FORWARD -i $LAN -o $INET -p ALL -j QUEUE
$IPT -A FORWARD -i $INET -o $LAN -p ALL -j QUEUE


#=============SERVER====================
$IPT -A INPUT -i $INET -p icmp -j ACCEPT
$IPT -A INPUT -i $INET -j INPUT_INET
$IPT -A INPUT -i $LAN -j INPUT_LAN
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -j INPUT_INET

$IPT -A OUTPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT
$IPT -A OUTPUT -o $INET -p udp --dport 53 -j ACCEPT
$IPT -A OUTPUT -o $INET -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -o $INET -p tcp --sport 22 -j ACCEPT
$IPT -A OUTPUT -o $INET -p tcp --sport 80 -j ACCEPT
$IPT -A OUTPUT -o $INET -p tcp -m multiport --dport $WWW -j ACCEPT

#++++=============LAN==================

$IPT -A INPUT_LAN ! -s $NETWORK -j DROP
$IPT -A INPUT_LAN -m state --state INVALID -j DROP
$IPT -A INPUT_LAN -s $NETWORK -p icmp -j ACCEPT
$IPT -A INPUT_LAN -p tcp -m tcp --dport $SQUID -m state --state NEW,RELATED,ESTABLISHED -j QUEUE
$IPT -A INPUT_LAN -j ACCEPT

#=================INET=================
$IPT -A INPUT_INET -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT_INET -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT_INET -p tcp --sport 8245 -j ACCEPT
$IPT -A INPUT_INET -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A INPUT_INET -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT_INET -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT_INET -p udp --dport 53 -j ACCEPT
$IPT -A INPUT_INET -p udp --sport 53 -j ACCEPT
$IPT -A INPUT_INET -p tcp --syn -j DROP

#================NAT==================

$IPT -t nat -A POSTROUTING -s $NETWORK -o $INET -j MASQUERADE


Трафик на 80-й порт заворачивается на "прозрачный" сквид, со сквида на биллинг.
Весь FORWARD идет на биллинг, там считается и фильтруется куда можно, куда нельзя.
Сейчас от биллинга можно избавиться... Дайте пинка в нужном направлении =)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру