Перейти к содержимому
Калькуляторы

Fedora 13 - полёт нормальный! Немного про автоматизацию...

 

После установки нового ядра, для автоматической сборки модулей isg

в Fedora использую dkms

 

Для начала ставим сам пакет

# yum install -y dkms

 

Беглый анализ показал, что dkms добавил свой сервис в автозапуск:

# chkconfig --list | grep dkms

dkms_autoinstaller 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

Создаем папку для исходников модуля:

В моем случае это будет:

# mkdir /usr/src/lISG

 

Копируем в созданный католог файлы

isg_main.c

isg_main.h

isg_nehash.c

libipt_ISG.c

 

создаем файл конфигурации dkms.conf

Туда вписываем следующее:

PACKAGE_NAME="ipt_ISG"

PACKAGE_VERSION="0.11"

BUILT_MODULE_NAME[0]="ipt_ISG"

DEST_MODULE_LOCATION[0]="/extra/"

AUTOINSTALL="yes"

 

создаем Makefile

Туда вписываем следующее:

#

# Makefile for the ipt_ISG Linux ISG Access Control

#

 

obj-m = ipt_ISG.o

ipt_ISG-objs = isg_main.o isg_nehash.o

 

 

создаем build.h

Туда вписываем следующее:

/* Compilation date.

* Written by Makefile (userspace) */

#define _BUILD_DATE "2010-08-02 15:06:38"

 

 

Теперь добавляем модуль в репозиторий dkms:

# dkms add -m ipt_ISG -v 0.11

 

Собираем модуль:

# dkms build -m ipt_ISG -v 0.11

 

Теперь ставим его в текущее ядро:

# dkms install -m ipt_ISG -v 0.11

 

Все! Теперь после yum update в новом ядре всегда будет isg )

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос не по теме. Что может быть! До того как поставит ISG стояла киска, так как она не стала справляться выбрали бюджетный вариант.

В общем проблема такая на этом шлюзе все как бы хорошо Н пользователи кто пользуется IE говорят все тормозит! Хотя в опере у них же все летает! В чем может быть дело? На циске было все нормально когда она нормально справлялась и в не пики.. не разу проблема не замечалась.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

-> Умник

Есть продвижки по суммарному подсчету/полисингу для подсети ??

Да и L4 редирект неплохо было -бы.

Изменено пользователем kww

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
По моему на проект забили =(

Я бы так не сказал. Сама идея очень хороша, поэтому найдутся люди которые продолжат разработку.

 

Я допустим уже реализовал поддержку 2-ух и более айпи адресов. У нас много клиентов с 2-мя айпи адресами или с сетями /29, поэтому пришлось дописывать их поддержку. Скоро будем тестить.

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Предлагаю выкладывать свои патчи, с описанием.

 

Пользуюсь Fedora 13 и 14. Полёт нормальный.

 

Патч изменяет configure скрипт, чтобы не тянуть исходники ядра и iptables. достаточно поставить devel пакеты.

Изменяет стартовый скрипт, на более подходящий для Fedora

Изменяет Calling-Station-Id на формат IP - MAC

Добавляет параметр конфигурации

#$cfg{nas_ip} = "192.168.0.1"; ## By default equals to hostname

diff -ruN lisg/ISG/bin/ISGd.pl lisg-oct-2-neon/ISG/bin/ISGd.pl
--- lisg/ISG/bin/ISGd.pl	2010-10-02 22:10:08.000000000 +0300
+++ lisg-oct-2-neon/ISG/bin/ISGd.pl	2010-10-27 01:41:59.501692727 +0300
@@ -46,7 +46,11 @@
 exit(0);
}

-$nas_ip = ISG::isg_get_nas_ip();
+if (defined($cfg{nas_ip})) {
+	$nas_ip = $cfg{nas_ip};
+} else {
+	$nas_ip = ISG::isg_get_nas_ip();
+}

if (!length($nas_ip)) {
 do_log("warning", "Unable to get my own IP-address, using 127.0.0.1");
@@ -649,7 +653,7 @@
 }

 $p->set_attr("User-Name", $username);
-	$p->set_attr("Calling-Station-Id", $username);
+	$p->set_attr("Calling-Station-Id", $username . " - " . ISG::format_mac($ev->{'macaddr'}, 2, ":"));

 $p->set_attr("Service-Type", "Framed-User");

@@ -662,7 +666,7 @@
 $p->set_attr("NAS-Port-Type", "Virtual");

 if (defined($ev->{'macaddr'})) {
-	$p->set_vsattr("Cisco", "Cisco-AVPair", "client-mac-address=" . ISG::format_mac($ev->{'macaddr'}, 4));
+	$p->set_vsattr("Cisco", "Cisco-AVPair", "client-mac-address=" . ISG::format_mac($ev->{'macaddr'}, 4, "."));
 }

 if ($code eq "Accounting-Request") {
diff -ruN lisg/ISG/contrib/rc.ISGd lisg-oct-2-neon/ISG/contrib/rc.ISGd
--- lisg/ISG/contrib/rc.ISGd	2010-10-02 22:10:08.000000000 +0300
+++ lisg-oct-2-neon/ISG/contrib/rc.ISGd	2010-08-02 15:41:42.000000000 +0300
@@ -1,44 +1,70 @@
#!/bin/sh
+#
+# Startup script for ISGd
+#
+# chkconfig: 345 86 15
+# description: ISG server
+# processname: ISGd
+# config: /etc/ISG/config.pl

+
+# Source function library.
+. /etc/rc.d/init.d/functions
+# Source networking configuration.
+. /etc/sysconfig/network
+
+RETVAL=0
ulimit -n 8192

-ISGd_RUN="ISGd"
+prog=ISGd
ISGd_RUN="/usr/local/ISG/bin/ISGd.pl"

NAME=`basename $0`

-case $* in
-start)
+start() {
+	# Check that networking is up.
+	[ ${NETWORKING} = "no" ] && exit 1
+
 if pgrep -f $ISGd_RUN > /dev/null; then
	 echo "$NAME: Already running"
	 exit 1
 fi
-
-	echo "$NAME: Starting ISGd"
-
 echo "1048576" > /proc/sys/net/core/rmem_max

-	$ISGd_RUN
+	# Start daemons.
+	echo -n $"Starting $prog: "
+	daemon $ISGd_RUN
+	RETVAL=$?
+	echo
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
+	return $RETVAL
+}
+
+stop() {
+	echo -n $"Stopping $prog: "
+	killproc $ISGd_RUN
+	RETVAL=$?
+	echo
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
+	return $RETVAL
+}

-	echo "$NAME: ISGd started"
+case $* in
+start)
+	start
;;

stop)
-	PID=`cat /var/run/ISGd.pid 2> /dev/null`
-
-	if [ "$PID" = "" ]; then
-		echo "$NAME: Not running"
-		exit 1
-	fi
-
-	echo "$NAME: Stopping ISGd (PID $PID)"
+	stop
+   ;;

-	kill $PID
-	echo "$NAME: ISGd stopped"
+restart)
+	stop
+	start
;;

*)
-	echo "Usage: $0 {start|stop}" >&2
+	echo "Usage: $0 {start|stop|restart}" >&2
 exit 1
;;
esac
diff -ruN lisg/ISG/etc/config.pl lisg-oct-2-neon/ISG/etc/config.pl
--- lisg/ISG/etc/config.pl	2010-10-02 22:10:08.000000000 +0300
+++ lisg-oct-2-neon/ISG/etc/config.pl	2010-10-27 01:42:28.928568147 +0300
@@ -13,6 +13,7 @@
$cfg{radius_auth}{0} = { server => "127.0.0.1:1812", timeout => 5, secret => "apple" };
$cfg{radius_acct}{0} = { server => "127.0.0.1:1813", timeout => 5, secret => "apple" };

+#$cfg{nas_ip} = "192.168.0.1"; ## By default equals to hostname
#$cfg{nas_identifier} = "lISG"; ## By default equals to NAS IP-address

### CoA-related settings
diff -ruN lisg/ISG/lib/ISG.pm lisg-oct-2-neon/ISG/lib/ISG.pm
--- lisg/ISG/lib/ISG.pm	2010-10-02 22:10:08.000000000 +0300
+++ lisg-oct-2-neon/ISG/lib/ISG.pm	2010-10-27 01:43:14.255692743 +0300
@@ -115,14 +115,14 @@
}

sub format_mac {
-	my ($mac, $step) = @_;
+	my ($mac, $step, $dl) = @_;
 my @pts;

 for (my $i = 0; $i <= 8 && $step; $i += $step) {
	push(@pts, substr($mac, $i, $step));
 }

-	return join(".", @pts);
+	return join($dl, @pts);
}

sub hex_session_id_to_llu {
diff -ruN lisg/kernel/configure lisg-oct-2-neon/kernel/configure
--- lisg/kernel/configure	2010-10-02 22:10:08.000000000 +0300
+++ lisg-oct-2-neon/kernel/configure	2010-11-07 23:35:31.829350555 +0200
@@ -9,9 +9,9 @@

iptables_src_version() {
  echo -n "Checking iptables sources version: "
-  SRC="$IPTSRC/Makefile"
-  test -s "$SRC" || error "Please build iptables first."
-  VER=`sed -n 's/^\(IPTABLES_\)\?VERSION[ :]= \?//p' "$SRC"`
+  SRC="$IPTSRC/include/iptables/internal.h"
+  test -s "$SRC" || error "Please build iptables or install iptables-devel first."
+  VER=`sed -n 's/#define IPTABLES_VERSION //p' "$SRC" | tr -d "\""`
  test "$VER" || error "Unknown version of iptables."
  if [ "$VER" = "$IPTVER" ]; then
 echo "$VER (ok)"
@@ -106,6 +106,7 @@
 try_dirg "iptables" && return 0
 try_dirg "../iptables" && return 0
 try_dirg "/usr/src/iptables" && return 0
+	try_dirg "/usr" && return 0
 error "Can not find iptables source directory, try setting it with --ipt-src="
  fi
}

Изменено пользователем SNeon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Позволю себе покритиковать.

Патч изменяет configure скрипт, чтобы не тянуть исходники ядра и iptables. достаточно поставить devel пакеты.
У меня и до этого работало. ЧЯДНТ?
Изменяет стартовый скрипт, на более подходящий для Fedora
В отдельный патч.
Изменяет Calling-Station-Id на формат IP - MAC
В отдельный патч. ISG вообще MAC-и клиентов не должен видеть.
Добавляет параметр конфигурации

#$cfg{nas_ip} = "192.168.0.1"; ## By default equals to hostname

Решать кривую настройку сервера патчем? СильнО. Хотя, в некоторых случаях может пригодиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Позволю себе покритиковать.
У меня и до этого работало. ЧЯДНТ?
Интересно, какая система и откуда тогда берется Makefile из исходников iptables???

 

В отдельный патч.
Кому надо - может выдернуть из общего. Я же просто скинул свои поправки, которые необходимы были лично мне.

Дальше тоже ковыряю и тестирую на подсети. Как будет готово -

 

ISG вообще MAC-и клиентов не должен видеть.
О_О это почему-же??? Наоборот! Как можно лишить себя такой полезной информации?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите дураку, как натить, нифига не понимаю =\

 

До этого просто натил всех на один IP:

iptables -t nat -A POSTROUTING -s 10.112.0.0/16 -j SNAT --to-source 93.x.x.4

 

Теперь пора выдавать юзерам внешники через ISG. В конфиге поставил $cfg{static_nat} = 1;

 

 

Убираю строку из iptables: iptables -t nat -D POSTROUTING -s 10.112.0.0/16 -j SNAT --to-source 93.x.x.4

И те юзеры, которые должны натиться (Framed-IP-Address не выдаётся, либо выдаётся равный серому), натиться перестают =( Хотя вроде бы всё верно:

Chain st_n_src10.112.31.112_28 (1 references)

target prot opt source destination

st_n_src10.112.31.112_30 all -- 10.112.31.112/30 0.0.0.0/0

 

Что я делаю не так? =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ISG вообще MAC-и клиентов не должен видеть.
О_О это почему-же??? Наоборот! Как можно лишить себя такой полезной информации?

Эммм... О L3-свитчах не слышали? Аль у вас локалка прямо через NAS бегает?
Изменено пользователем Abram

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ISG вообще MAC-и клиентов не должен видеть.
О_О это почему-же??? Наоборот! Как можно лишить себя такой полезной информации?

Эммм... О L3-свитчах не слышали? Аль у вас локалка прямо через NAS бегает?

если уж через L3 пускать, да еще и через циску, то зачем тогда этот проект? ;)

Ессно прямо через NAS. Экономия должна быть экономной, как говорит директор =)

Вся сеть сведена через .1q на soft NAS. NAS выступает таким себе 300+ портовым свитчем с ISG.

Всё делалось для того, чтобы убрать VPN(pptp) но оставить мониторинг поклиентно. А тут такой прожект! Почти не надо модернизировать билинг, что удобно для мастеров и ТП. Остается гибкость радиуса и никаких допвложений в железо

Изменено пользователем SNeon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ISG вообще MAC-и клиентов не должен видеть.
О_О это почему-же??? Наоборот! Как можно лишить себя такой полезной информации?

Эммм... О L3-свитчах не слышали? Аль у вас локалка прямо через NAS бегает?

если уж через L3 пускать, да еще и через циску, то зачем тогда этот проект? ;)

Ессно прямо через NAS. Экономия должна быть экономной, как говорит директор =)

Вся сеть сведена через .1q на soft NAS. NAS выступает таким себе 300+ портовым свитчем с ISG.

Фигасе у вас логика.

Каким это раком L3-свитч должен заменить ISG? :)

Он у вас чтоль и учет сессий вести должен?

Изменено пользователем Abram

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ISG вообще MAC-и клиентов не должен видеть.
О_О это почему-же??? Наоборот! Как можно лишить себя такой полезной информации?

Эммм... О L3-свитчах не слышали? Аль у вас локалка прямо через NAS бегает?

если уж через L3 пускать, да еще и через циску, то зачем тогда этот проект? ;)

Ессно прямо через NAS. Экономия должна быть экономной, как говорит директор =)

Вся сеть сведена через .1q на soft NAS. NAS выступает таким себе 300+ портовым свитчем с ISG.

Фигасе у вас логика.

Каким это раком L3-свитч должен заменить ISG? :)

Он у вас чтоль и учет сессий вести должен?

Видимо, на железном L3-роутере default gw -> ISG, а локалку роутит он сам. Очень удобно, но немасштабируемо: как только упираешься в производительность одного компа с ISG - хана =)

Мы пошли другим путём: в каждом абонентском влане есть интерфейсы и ISG, и л3-железки. DHCP раздаёт юзерам дефолт на ISG и локальные маршруты на железку.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ISG вообще MAC-и клиентов не должен видеть.
О_О это почему-же??? Наоборот! Как можно лишить себя такой полезной информации?

Эммм... О L3-свитчах не слышали? Аль у вас локалка прямо через NAS бегает?

если уж через L3 пускать, да еще и через циску, то зачем тогда этот проект? ;)

Ессно прямо через NAS. Экономия должна быть экономной, как говорит директор =)

Вся сеть сведена через .1q на soft NAS. NAS выступает таким себе 300+ портовым свитчем с ISG.

Фигасе у вас логика.

Каким это раком L3-свитч должен заменить ISG? :)

Он у вас чтоль и учет сессий вести должен?

Видимо, на железном L3-роутере default gw -> ISG, а локалку роутит он сам. Очень удобно, но немасштабируемо: как только упираешься в производительность одного компа с ISG - хана =)

Мы пошли другим путём: в каждом абонентском влане есть интерфейсы и ISG, и л3-железки. DHCP раздаёт юзерам дефолт на ISG и локальные маршруты на железку.

PBR спасет мир ;). Дефолт выдаем на железку, а там в зависимости от source разбрасываем next-hop на несколько машин с ISG.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А абонентские роутеры как жуют маршруты выдаваемые по dhcp ?

На мой взгляд первое преимущество L3 это разделение абонентского локального трафика (в том числе и паразитного бродкастного), от "интернетовского",своего рода демилитаризация.

На NAS идёт только то что должно идти через интернеты/пиринг, и там соответствующим образом пользователю отпускается заказанная услуга.

Abram, кстати да, тоже таким образом рулим пользователей на 2 разных NAS'а. Только это немного ресурсоёмко, пытаемся отказаться от этой схемы.

Изменено пользователем pchol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
PBR спасет мир ;). Дефолт выдаем на железку, а там в зависимости от source разбрасываем next-hop на несколько машин с ISG.

Ну кстати да, или так =)

 

 

А роутеры как жуют маршруты выаваемые по dhcp ?

На мой взгляд первое преимущество L3 это разделение абонентского локального трафика (в том числе и паразитного), от "интернетоского", так сказать демилитаризация.

На NAS идёт только то что должно идти через интернеты/пиринг, и там соответствующим образом пользователю отпускается заказанная услуга.

Abram, кстати да, тоже таким образом рулим пользователей на 2 разных NAS'а. Только это немного ресурсоёмко, пытаемся отказаться от этой схемы.

Роутеры, особенно дешёвые, в основном не жуют, но тут уж ничего не попишешь

 

 

 

 

з.ы. Кто-нибуть, кто раздаёт и серые и реальники посредством ISG, покажите пожалуйста config.pl и правила iptables =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
А абонентские роутеры как жуют маршруты выдаваемые по dhcp ?
Смотря какие. Зверьки вроде DIR-100 - нет :).
На мой взгляд первое преимущество L3 это разделение абонентского локального трафика (в том числе и паразитного бродкастного), от "интернетовского",своего рода демилитаризация.

На NAS идёт только то что должно идти через интернеты/пиринг, и там соответствующим образом пользователю отпускается заказанная услуга.

Это, скорее, приятная мелочь :). Главное преимущество - большая часть нагрузки ложится на свитч.
Abram, кстати да, тоже таким образом рулим пользователей на 2 разных NAS'а. Только это немного ресурсоёмко, пытаемся отказаться от этой схемы.
Хм. А почему же ресурсоемко?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По какому принципу создаются правила 1-to-1 nat? Не понимаю... Вот передал единственный Framed-IP-Address, накидало кучу всякого рекурсивно-непонятного сразу:

 

(src_ip = 10.112.31.112, dst_ip = 93.157.238.254)

*nat
:PREROUTING ACCEPT [655:41016]
:OUTPUT ACCEPT [1:273]
:POSTROUTING ACCEPT [1:273]
:s_dst93.157.192.0_18 - [0:0]
:s_dst93.157.224.0_20 - [0:0]
:s_dst93.157.236.0_22 - [0:0]
:s_dst93.157.238.0_24 - [0:0]
:s_dst93.157.238.192_26 - [0:0]
:s_dst93.157.238.240_28 - [0:0]
:s_dst93.157.238.252_30 - [0:0]
:s_dst_skeleton - [0:0]
:s_src10.112.0.0_18 - [0:0]
:s_src10.112.16.0_20 - [0:0]
:s_src10.112.28.0_22 - [0:0]
:s_src10.112.31.0_24 - [0:0]
:s_src10.112.31.112_28 - [0:0]
:s_src10.112.31.112_30 - [0:0]
:s_src10.112.31.64_26 - [0:0]
:s_src_skeleton - [0:0]
-A POSTROUTING -d 192.168.0.3/32 -j MASQUERADE
-A POSTROUTING -d 192.168.0.5/32 -j MASQUERADE
-A POSTROUTING -d 10.10.10.6/32 -j MASQUERADE
-A POSTROUTING -s 10.112.0.0/16 -j SNAT --to-source 93.157.238.4
-A s_dst93.157.192.0_18 -d 93.157.224.0/20 -j s_dst93.157.224.0_20
-A s_dst93.157.224.0_20 -d 93.157.236.0/22 -j s_dst93.157.236.0_22
-A s_dst93.157.236.0_22 -d 93.157.238.0/24 -j s_dst93.157.238.0_24
-A s_dst93.157.238.0_24 -d 93.157.238.192/26 -j s_dst93.157.238.192_26
-A s_dst93.157.238.192_26 -d 93.157.238.240/28 -j s_dst93.157.238.240_28
-A s_dst93.157.238.240_28 -d 93.157.238.252/30 -j s_dst93.157.238.252_30
-A s_dst93.157.238.252_30 -d 93.157.238.254/32 -j DNAT --to-destination 10.112.31.112
-A s_dst_skeleton -d 93.157.192.0/18 -j s_dst93.157.192.0_18
-A s_src10.112.0.0_18 -s 10.112.16.0/20 -j s_src10.112.16.0_20
-A s_src10.112.16.0_20 -s 10.112.28.0/22 -j s_src10.112.28.0_22
-A s_src10.112.28.0_22 -s 10.112.31.0/24 -j s_src10.112.31.0_24
-A s_src10.112.31.0_24 -s 10.112.31.64/26 -j s_src10.112.31.64_26
-A s_src10.112.31.112_28 -s 10.112.31.112/30 -j s_src10.112.31.112_30
-A s_src10.112.31.112_30 -s 10.112.31.112/32 -j SNAT --to-source 93.157.238.254
-A s_src10.112.31.64_26 -s 10.112.31.112/28 -j s_src10.112.31.112_28
-A s_src_skeleton -s 10.112.0.0/18 -j s_src10.112.0.0_18

 

При этом после очистки этой сессии мусор остаётся:

:s_dst93.157.192.0_18 - [0:0]
:s_dst93.157.224.0_20 - [0:0]
:s_dst93.157.236.0_22 - [0:0]
:s_dst93.157.238.0_24 - [0:0]
:s_dst93.157.238.192_26 - [0:0]
:s_dst93.157.238.240_28 - [0:0]
:s_dst93.157.238.252_30 - [0:0]
:s_dst_skeleton - [0:0]
:s_src10.112.0.0_18 - [0:0]
:s_src10.112.16.0_20 - [0:0]
:s_src10.112.28.0_22 - [0:0]
:s_src10.112.31.0_24 - [0:0]
:s_src10.112.31.112_28 - [0:0]
:s_src10.112.31.112_30 - [0:0]
:s_src10.112.31.64_26 - [0:0]
:s_src_skeleton - [0:0]
-A POSTROUTING -d 192.168.0.3/32 -j MASQUERADE
-A POSTROUTING -d 192.168.0.5/32 -j MASQUERADE
-A POSTROUTING -d 10.10.10.6/32 -j MASQUERADE
-A POSTROUTING -s 10.112.0.0/16 -j SNAT --to-source 93.157.238.4
-A s_dst93.157.192.0_18 -d 93.157.224.0/20 -j s_dst93.157.224.0_20
-A s_dst93.157.224.0_20 -d 93.157.236.0/22 -j s_dst93.157.236.0_22
-A s_dst93.157.236.0_22 -d 93.157.238.0/24 -j s_dst93.157.238.0_24
-A s_dst93.157.238.0_24 -d 93.157.238.192/26 -j s_dst93.157.238.192_26
-A s_dst93.157.238.192_26 -d 93.157.238.240/28 -j s_dst93.157.238.240_28
-A s_dst93.157.238.240_28 -d 93.157.238.252/30 -j s_dst93.157.238.252_30
-A s_dst_skeleton -d 93.157.192.0/18 -j s_dst93.157.192.0_18
-A s_src10.112.0.0_18 -s 10.112.16.0/20 -j s_src10.112.16.0_20
-A s_src10.112.16.0_20 -s 10.112.28.0/22 -j s_src10.112.28.0_22
-A s_src10.112.28.0_22 -s 10.112.31.0/24 -j s_src10.112.31.0_24
-A s_src10.112.31.0_24 -s 10.112.31.64/26 -j s_src10.112.31.64_26
-A s_src10.112.31.112_28 -s 10.112.31.112/30 -j s_src10.112.31.112_30
-A s_src10.112.31.64_26 -s 10.112.31.112/28 -j s_src10.112.31.112_28
-A s_src_skeleton -s 10.112.0.0/18 -j s_src10.112.0.0_18

 

Изменено пользователем Wingman

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Wingman,

README спасет мир ;).

Если кратко - это дерево, по которому пакет попадает в нужное правило. Т.е. чтобы не проверять, скажем, 1000 правил - пакет проходит по дереву и достигает нужного правила всего где-то за 10 проверок. Навроде хеш-фильтров в tc.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Abram, благодарю! Всё изумительно логично, всё работает, а я туплю =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Abram, ресурсоёмко с точки зрения загрузки на мой второй сап. Староват он для этих дел =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Видимо, на железном L3-роутере default gw -> ISG, а локалку роутит он сам. Очень удобно, но немасштабируемо: как только упираешься в производительность одного компа с ISG - хана =)

Мы пошли другим путём: в каждом абонентском влане есть интерфейсы и ISG, и л3-железки. DHCP раздаёт юзерам дефолт на ISG и локальные маршруты на железку.

Я в шоке.. Уровень понимания и знания сетей завораживает (с)

 

Имеем - 8 узлов агрегации Л3 в районах, каждый район имеет линк в свой ISG сервер.

То есть 8 штук каталистов имеют дефолты в свой ISG, остальные маршруты получают по BGP от соседей. Так работает локалка.

И уже ISG имеют по 2 BGP сессии в сторону двух бордеров.

Плюс сессии между собой, чтобы трафик наверх не подымался.

И никаких проблем.

 

Больше скажу, на узлах агрегации параллельно стоят циски, которые смотрят во все вланы и раздают pppoe раутерам и прочим желающим.

И даже ppptp сервер есть.

 

На любой вкус, как говорится. И все работает :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Видимо, на железном L3-роутере default gw -> ISG, а локалку роутит он сам. Очень удобно, но немасштабируемо: как только упираешься в производительность одного компа с ISG - хана =)

Мы пошли другим путём: в каждом абонентском влане есть интерфейсы и ISG, и л3-железки. DHCP раздаёт юзерам дефолт на ISG и локальные маршруты на железку.

Я в шоке.. Уровень понимания и знания сетей завораживает (с)

 

Имеем - 8 узлов агрегации Л3 в районах, каждый район имеет линк в свой ISG сервер.

То есть 8 штук каталистов имеют дефолты в свой ISG, остальные маршруты получают по BGP от соседей. Так работает локалка.

И уже ISG имеют по 2 BGP сессии в сторону двух бордеров.

Плюс сессии между собой, чтобы трафик наверх не подымался.

И никаких проблем.

 

Больше скажу, на узлах агрегации параллельно стоят циски, которые смотрят во все вланы и раздают pppoe раутерам и прочим желающим.

И даже ppptp сервер есть.

 

На любой вкус, как говорится. И все работает :)

У меня почти так же. Разве что узлы Л3 в районах между собой общаются по OSPF, а у ISG тупо дефолт на один бордер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Видимо, на железном L3-роутере default gw -> ISG, а локалку роутит он сам. Очень удобно, но немасштабируемо: как только упираешься в производительность одного компа с ISG - хана =)

Мы пошли другим путём: в каждом абонентском влане есть интерфейсы и ISG, и л3-железки. DHCP раздаёт юзерам дефолт на ISG и локальные маршруты на железку.

Я в шоке.. Уровень понимания и знания сетей завораживает (с)

 

Имеем - 8 узлов агрегации Л3 в районах, каждый район имеет линк в свой ISG сервер.

То есть 8 штук каталистов имеют дефолты в свой ISG, остальные маршруты получают по BGP от соседей. Так работает локалка.

И уже ISG имеют по 2 BGP сессии в сторону двух бордеров.

Плюс сессии между собой, чтобы трафик наверх не подымался.

И никаких проблем.

 

Больше скажу, на узлах агрегации параллельно стоят циски, которые смотрят во все вланы и раздают pppoe раутерам и прочим желающим.

И даже ppptp сервер есть.

 

На любой вкус, как говорится. И все работает :)

 

Пока у нас это всё не обкатано -- я не верю, что ISG промолотит всех юзеров, сидящих на одной Л3-железке.

Скажем, на одном 3750G каталисте у нас до 2-4к юзеров. Тарифы - в среднем мбит по 10, есть и сильно больше. Не верю, что один ISG не захлебнётся.

Изменено пользователем Wingman

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Пока у нас это всё не обкатано -- я не верю, что ISG промолотит всех юзеров, сидящих на одной Л3-железке.

Скажем, на одном 3750G каталисте у нас до 2-4к юзеров. Тарифы - в среднем мбит по 10, есть и сильно больше. Не верю, что один ISG не захлебнётся.

Тогда делайте на каталисте PBR и распределяйте на несколько lISG. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас