Двойной трафик

Технические вопросы по UTM 5.0
Ответить
AlexeyIvanov
Сообщения: 8
Зарегистрирован: Чт окт 13, 2005 10:32
Откуда: Апатиты
Контактная информация:

Двойной трафик

Сообщение AlexeyIvanov »

Дано - Win2003SP1+UTM5.1.12.
Две сетевые сконфигурированы "мостом", один воткнут ethernet'ом к провайдеру, другой - в локалку. Трафик считается дважды - один раз на внутреннем интерфейсе локалки, другой раз - на "внешнем" - у провайдера. Почему такое происходит, собственно, понятно - в режиме "моста" два сетевых адаптера стали как бы единым целым. Вопрос в другом - как отучить netup считать вдвойне?

P.S. В принципе это решается поднятием нормального роутинга, но на той машинке это сделать не представляется возможным :(
С уважением,
Алексей Иванов

kalex
Сообщения: 47
Зарегистрирован: Пт авг 19, 2005 15:08
Откуда: Первоуральск

Сообщение kalex »

Ndsad настраивать нужно правильно, вот мой пример в системе 4 интерфейса, xl0, xl1, xl3 внутренние сети xl2 - внешний и с него снимается статистика. Почему с него а не с пользоваательских? там просто еще vpn запущен и если снимать с внутренних то внешнего трафика нет. Поэтому снимается с внешнего. А для обсчета межсетевого трафика, приходится поднимать еще шлюзы, чтоб трафик проходил через внешний. Конфиг для FreeBSD поэтому немного подправь для своей нужды.
====ndsad.cfg====
# Data stream collector ip
ip 172.16.0.2
# Data stream collector port
port 9996
# Forced faces - these faces
# will be processed even if dummy family is specified
# in configuration file.
force xl2

# Dummy iface - these faces
# will be traced but data stream won't be generated
# Multiply faces may be specified
ignore all

# Dummy iface family - faces from this family
# will be traced but data stream won't be generated
dummy all

# Promisc device - specify string if You want
# device to be put in promisc mode.
# Note.
# Device may be in promisc mode even if promisc string is not specified.
# For example if tcpdump is running on it.
promisc xl2

# Hash size for the family. # Value must be a power of 2
# Default is 128 buckets for all families.
hash xl2 64

# Default hash size may be changed when family is specified as `all'
#hash all 64
# Heap size in bytes.
heap 65536

# Periodical statistic dump delay.
# If no dump is expected specify 0
# Default:
#dump 0
# Example:
#dump 60

# Specify log file. Otherwise logging will be done to stderr.
# Default:
#log (null)
# Example:
log /usr/utm5_log/ndsad.log

AlexeyIvanov
Сообщения: 8
Зарегистрирован: Чт окт 13, 2005 10:32
Откуда: Апатиты
Контактная информация:

Сообщение AlexeyIvanov »

kalex писал(а):Ndsad настраивать нужно правильно, вот мой пример в системе 4 интерфейса, xl0, xl1, xl3 внутренние сети xl2 - внешний и с него снимается статистика. Почему с него а не с пользоваательских? там просто еще vpn запущен и если снимать с внутренних то внешнего трафика нет. Поэтому снимается с внешнего. А для обсчета межсетевого трафика, приходится поднимать еще шлюзы, чтоб трафик проходил через внешний. Конфиг для FreeBSD поэтому немного подправь для своей нужды.
====ndsad.cfg====
# Data stream collector ip
ip 172.16.0.2
# Data stream collector port
port 9996
# Forced faces - these faces
# will be processed even if dummy family is specified
# in configuration file.
force xl2

# Dummy iface - these faces
# will be traced but data stream won't be generated
# Multiply faces may be specified
ignore all

# Dummy iface family - faces from this family
# will be traced but data stream won't be generated
dummy all

# Promisc device - specify string if You want
# device to be put in promisc mode.
# Note.
# Device may be in promisc mode even if promisc string is not specified.
# For example if tcpdump is running on it.
promisc xl2

# Hash size for the family. # Value must be a power of 2
# Default is 128 buckets for all families.
hash xl2 64

# Default hash size may be changed when family is specified as `all'
#hash all 64
# Heap size in bytes.
heap 65536

# Periodical statistic dump delay.
# If no dump is expected specify 0
# Default:
#dump 0
# Example:
#dump 60

# Specify log file. Otherwise logging will be done to stderr.
# Default:
#log (null)
# Example:
log /usr/utm5_log/ndsad.log
Пробовал и так - не работает. Проблема в "мосте", при котором 2 карточки как бы становятся "одним целым", поэтому dummy, ignore не действуют :(
С уважением,
Алексей Иванов

AlexeyIvanov
Сообщения: 8
Зарегистрирован: Чт окт 13, 2005 10:32
Откуда: Апатиты
Контактная информация:

Сообщение AlexeyIvanov »

Неужели в самом деле никто не сталкивался?
С уважением,
Алексей Иванов

aospan
NetUP Team
Сообщения: 1639
Зарегистрирован: Чт янв 13, 2005 20:30

Сообщение aospan »

Есть вариант попробовать решить задачу фильтрами. Попробуйте при помощи еcpdump и ключей к нему добиться того, что бы трафик не удваивался. Если удастся, то попробуйте эти фильтры применить в ndsad.

Так же можно попробовать сделать divert нужного трафика в ipfw на порт где висит ipacct и далее загружать в биллинг эти логи (например при помощи утилиты get_xyz).

AlexeyIvanov
Сообщения: 8
Зарегистрирован: Чт окт 13, 2005 10:32
Откуда: Апатиты
Контактная информация:

Сообщение AlexeyIvanov »

aospan писал(а):Есть вариант попробовать решить задачу фильтрами. Попробуйте при помощи еcpdump и ключей к нему добиться того, что бы трафик не удваивался. Если удастся, то попробуйте эти фильтры применить в ndsad.

Так же можно попробовать сделать divert нужного трафика в ipfw на порт где висит ipacct и далее загружать в биллинг эти логи (например при помощи утилиты get_xyz).
У меня версия биллинга под Win32, в ней нет нет команд divert и ipfw.
С уважением,
Алексей Иванов

Torro
Сообщения: 10
Зарегистрирован: Вт окт 25, 2005 01:34

Сообщение Torro »

aospan писал(а):Есть вариант попробовать решить задачу фильтрами. Попробуйте при помощи еcpdump и ключей к нему добиться того, что бы трафик не удваивался. Если удастся, то попробуйте эти фильтры применить в ndsad.

Так же можно попробовать сделать divert нужного трафика в ipfw на порт где висит ipacct и далее загружать в биллинг эти логи (например при помощи утилиты get_xyz).
Уважаемый aospan! Помогите решить таки проблему с двойным трафиком.

2 интерфейса, eth0 наружу, eth1 внутрь, ip-шники реальные везде. + ndsad

ndsad.cfg##
ip 127.0.0.1
port 9996
ulog_group 2
hash lo 64
hash all 32
heap 65536
ignore all
dummy all
log /tmp/ndsad.log

в iptables.conf

[4092:370086] -A INPUT -i eth0 -j ULOG --ulog-nlgroup 2 --ulog-cprange 100 --ulog-qthreshold 30

[9890:30900816] -A FORWARD -d 82.193.138.0/255.255.255.0 -i eth0 -j ULOG --ulog-nlgroup 2 --ulog-cprange 100 --ulog-qthreshold 30

СТАТИСТИКА ДВОЙНАЯ :cry:

Временно решил проблемку маскарадом.

[0:0] -A PREROUTING -s 80.53.48.0/255.255.255.128 -i eth0 -j DROP
[7:501] -A POSTROUTING -o eth0 -j MASQUERADE

Трафик нормально считается - однократно, но это же криво!

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

jack7
Сообщения: 73
Зарегистрирован: Пн июн 06, 2005 10:56

Сообщение jack7 »

Torro писал(а): ndsad.cfg##
ip 127.0.0.1
port 9996
ulog_group 2
hash lo 64
hash all 32
heap 65536
ignore all
dummy all
log /tmp/ndsad.log
может я недогоняю, но зачем в конфиге

ignore all ?????

надо

ignore eth1 <--- (та сетевая которую не надо обсчитывать)

у меня именно так - все считает нормально (3 интерфейса: 2 - с внешними ip, 1 - с внутренними)

Torro
Сообщения: 10
Зарегистрирован: Вт окт 25, 2005 01:34

Сообщение Torro »

jack7 писал(а):
Torro писал(а): ndsad.cfg##
ip 127.0.0.1
port 9996
ulog_group 2
hash lo 64
hash all 32
heap 65536
ignore all
dummy all
log /tmp/ndsad.log
может я недогоняю, но зачем в конфиге

ignore all ?????

надо

ignore eth1 <--- (та сетевая которую не надо обсчитывать)

у меня именно так - все считает нормально (3 интерфейса: 2 - с внешними ip, 1 - с внутренними)
Меняю

ip 127.0.0.1
port 9996
force_family ppp
ulog_group 2
hash lo 64
hash all 32
heap 65536
#dummy lo
ignore eth1
dummy all
log /tmp/ndsad.log

РЕСТАРТУЕМ ndsad

[root@ns3 utm5]# killall ndsad
[root@ns3 utm5]# killall ndsad
ndsad: no process killed
[root@ns3 utm5]# /netup/utm5/bin/ndsad -d -w
[root@ns3 utm5]# ndsad[3553]: Child process started.
Processing `/netup/utm5/ndsad.cfg' config file.

[root@ns3 utm5]# ps ax |grep ndsad 3553 pts/0 S 0:00 /netup/utm5/bin/ndsad -d -w
3554 pts/0 S 0:00 /netup/utm5/bin/ndsad -d -w
3566 pts/0 S 0:00 grep ndsad
[root@ns3 utm5]# tcpdump -p port 9996
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:27:03.076875 IP 195.64.215.154.41677 > ns3.delnet.ru.9996: UDP, length 216
12:27:05.096566 IP 195.64.215.154.41677 > ns3.delnet.ru.9996: UDP, length 72
12:27:05.553451 IP 195.64.215.130.32769 > ns3.delnet.ru.9996: UDP, length 120

3 packets captured
6 packets received by filter
0 packets dropped by kernel
[root@ns3 utm5]#

На всякий случай

[root@ns3 utm5]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:20:ED:6B:29:9C
inet addr:195.64.215.62 Bcast:195.64.215.63 Mask:255.255.255.252
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6252682 errors:194 dropped:0 overruns:0 frame:0
TX packets:6799288 errors:0 dropped:0 overruns:0 carrier:0
collisions:758890 txqueuelen:1000
RX bytes:2590300286 (2470.3 Mb) TX bytes:2674198141 (2550.3 Mb)
Interrupt:17 Base address:0x2000

[root@ns3 utm5]# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:D0:B7:52:03:8B
inet addr:82.193.138.1 Bcast:82.193.138.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6202622 errors:0 dropped:0 overruns:0 frame:0
TX packets:6872235 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:591808703 (564.3 Mb) TX bytes:1827255171 (1742.6 Mb)
Interrupt:19 Base address:0xe400 Memory:ed205000-ed205038

[root@ns3 utm5]#

ПРОВЕРЯЕМ ТАК: качаем файлик на клиентской машинке из чужой сетки весом 3.4 метра

Смотрим детальный отчет:

Входящий внешний трафик (10) 212.48.138.18 82.193.138.3 1 40 80 1242
Входящий внешний трафик (10) 212.48.138.18 82.193.138.3 1 40 80 1243
Интернет внутригородской трафик (30) 82.193.133.4 82.193.138.3 6 775 80 1250
Входящий внешний трафик (10) 83.222.30.60 82.193.138.3 5 1513 80 1248
Входящий внешний трафик (10) 83.222.30.60 82.193.138.3 5 1513 80 1249
Интернет внутригородской трафик (30) 195.58.1.45 82.193.138.3 2503 3659984 50867 1245
Исходящий трафик (20) 82.193.138.3 195.58.1.45 1438 61832 1245 50867
Исходящий трафик (20) 82.193.138.3 83.222.30.60 3 144 1240 80
Исходящий трафик (20) 82.193.138.3 83.222.30.60 3 144 1241 80
Интернет внутригородской трафик (30) 195.58.1.45 82.193.138.3 2503 3659984 50867 1245
Локальный трафик (1000) 195.64.215.130 82.193.138.3 1 40 80 1239
Локальный трафик (1000) 195.64.215.130 82.193.138.3 1 40 80 1239
Интернет внутригородской трафик (30) 82.195.2.189 82.193.138.3 5 1653 443 1229
Исходящий трафик (20) 82.193.138.3 82.195.2.189 11 1145 1229 443
Интернет внутригородской трафик (30) 82.195.2.189 82.193.138.3 5 1653 443 1229


БРИТВА :shock:

aospan
NetUP Team
Сообщения: 1639
Зарегистрирован: Чт янв 13, 2005 20:30

Сообщение aospan »

У вас в конфиге указано ulog_group 2 - есть вероятность, что из iptables по ULOG сокету приходят те же самые данные ?

Torro
Сообщения: 10
Зарегистрирован: Вт окт 25, 2005 01:34

Сообщение Torro »

aospan писал(а):У вас в конфиге указано ulog_group 2 - есть вероятность, что из iptables по ULOG сокету приходят те же самые данные ?
Спасибо. Закомментировал ULOG.

Большое спасибо Serge A. Akhmanov <supinfo@netup.ru>. Вроде заработало. Дублирования строк пока нет.

На всякий случай конфиг.

ip 127.0.0.1
port 9996
force_family ppp
#force eth0
#force eth1
#force lo
# входящий трафик
filter eth1 not net 82.193.138.0/24 ## адреса на этом роутере
filter eth1 not net 82.193.138.192/26 ## свои адреса на удаленном роутере
filter eth1 not net 82.193.138.128/26 ## свои адреса на удаленном роутере
filter eth1 not net 195.64.215.60/30 ## адреса на этом роутере
filter eth1 not net 195.64.197.224/29 ## адреса на этом роутере

filter net 82.193.138.0/24 not eth1
filter net 82.193.138.192/26 not eth1
filter net 82.193.138.128/26 not eth1
filter net 195.64.215.60/30 not eth1
filter net 195.64.197.224/29 not eth1

#ignore eth0
#promisc eth0
#ulog_group 2
hash lo 64
hash all 32
heap 65536
#dummy lo
ignore eth1
dummy all
log /tmp/ndsad.log

Ответить