LINUX.ORG.RU

Сообщения i82

 

Непонятки с iptables

Форум — Admin

Коллеги, разъясните пожалуйста, что может происходить?

Есть 2 устройства (условно, D63 и D64) - на каждом по одному 1G интерфейсу в общую сеть и по одному 10G интерфейсу, друг на друга. Схема примерно такая:



         D64                                   D63
<=1G=> | eth0 : 172.17.5.202/22    |         | eth1  : 172.17.0.2/16     | <=1G=>
       |                           |         |                           |
       | eth3 : 192.168.100.64/24  | <=10G=> | eth11 : 192.168.100.63/24 |
       |              /            |         |                           |
       |     (tun00e...tun07e)     |
       |              /            |
       |      ping 172.17.0.2      |
              

       # ip route show dev eth3
       172.17.0.0/16  scope link 
       192.168.100.0/24  proto kernel  scope link  src 192.168.100.64

На D64 запускается приложение, которое создаёт 8 (по числу процессоров) TUN-интерфейсов с именами (tun00e..tun07e) после чего происходит хитрая настройка фильтра пакетов так, чтобы локально генерируемый на D64 в сторону D63 (например, с использованием ping) трафик распределялся по tun-устройствам в соответствии с номером обрабатывающего пакет процессора. Пример настройки такой:

	ip link set dev tun00e up
	ip link ...
	ip link set dev tun07e up

	ip route add default dev tun00e table 100
	ip route ...
	ip route add default dev tun07e table 107

	ip rule add fwmark 100 table 100
	ip rule ...
	ip rule add fwmark 107 table 107

	iptables -t mangle -A OUTPUT -o eth3 -m cpu --cpu 0 -j MARK --set-mark 100
	iptables ...
	iptables -t mangle -A OUTPUT -o eth3 -m cpu --cpu 7 -j MARK --set-mark 107

На каждом из tun-устройств сидит поток приложения, который вычитывает оттуда IP-пакет и, далее, инкапсулирует его в UDP-датаграмму (sport:10000, dport=10000, checksum=0) с добавлением нового IP заголовка (saddr:192.168.100.64, daddr:192.168.100.63). После чего заталкивает полученный пакет обратно в стек через это же устройство.

Вот что далее запускается на D64:

	ip route add 172.17.0.2/16 dev eth3
	ping 172.17.0.2

ПРОБЛЕМА в том, что данные через eth3 НЕ ХОДЯТ.

С использованием tcpdump видно, что данные через tun-устройства идут. Более того, tcpdump подтверждает корректность построения новой IP-датаграммы.

Ниже приведу вывод статистики по iptables, из которой видно, что ICMP-пакеты проходят по цепочкам: OUTPUT и POSTROUTING, попадая, очевидно, на tun-устройство. Далее, видно также, что из tun-устройства выходят необходимые UDP-пакеты — цепочка PREROUTING. Но почему-то, далее эти пакеты не идут.

# iptables -t mangle -L -vn
Chain PREROUTING (policy ACCEPT 18685 packets, 1904K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 4278  479K            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000
    0     0            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain INPUT (policy ACCEPT 14997 packets, 1480K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000
    0     0            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 5644 packets, 772K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  650 54600 MARK       all  --  *      eth3    0.0.0.0/0            0.0.0.0/0            cpu 0 MARK set 0x64
  ...
  615 51660 MARK       all  --  *      eth3    0.0.0.0/0            0.0.0.0/0            cpu 7 MARK set 0x6b
 3465  291K            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain POSTROUTING (policy ACCEPT 5644 packets, 772K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:10000
 3449  290K            icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Что смотреть, куда копать? ;)

P.S.

net.ipv4.ip_forward = 1

 ,

i82
()

snmptrapd performance

Форум — Admin

Кто сталкивался,

Сколько может snmptrapd трапов обработать в единицу времени?

Есть ли какие-то ограничения на это количество?

И доп. вопрос: если snmp-агент, отсылающий трапы демону, находится за NAT, то будет ли ему приходить подтверждение того, что трап был получен и обработан менеджером?

:)

 , ,

i82
()

Внутритекстовые ссылки

Форум — General

Всем привет,

Как сделать так, чтобы при цитировании в тексте через

\cite{ivanov}
внутритекстовые ссылки в соответствии с ГОСТ 2008 были вида "(Иванов...)", а не «[20]» ?

[...]
\phantomsection
\begin{singlespacing}
  \bibliographystyle{ugost2008}
  \bibliography{bibliography}
\end{singlespacing}
[...]

:)

Перемещено beastie из talks

 gost2008,

i82
()

emacsclient и тема оформления

Форум — Development

Что-то не могу заставить emacs'клиента подгружать цветовую тему solarized-dark. Emacs'демон стартует, а клиент при запуске какую-то херню показывает цветную - и не дефолт и не solarized-dark :(

 ,

i82
()

Москва, программист Java

Форум — Job

Разработчик программного обеспечения в сфере информационной безопасности (группа компаний «Информзащита», ООО «Код Безопасности») ищет специалиста - Java разработчика с опытом работы от 2-3 лет, знанием технологий сервлетов и апплетов, а также Tomcat. Достойный уровень зарплаты - по результатам собеседования. (оформление согласно ТК РФ, медицинская страховка, офис рядом с метро Электрозаводская, дружный, творческий коллектив).

Резюме направлять: e.rusanova@infosec.ru

 , ,

i82
()

Программист C/C++ Linux

Форум — Job

Всем доброго здравия и отличного настроения!

Очень нужен программист C/C++ знающий и любящий Linux, имеющий склонность и желание к постижению нового в областях системного и прикладного программирования для мобильных платформ (посему, навыки разработки для Android/iOS приветствуются, но не являются ключевыми), а также в области безопасности. Москва.

Интересующихся, прошу обращать на себя внимание:

TO: Rusanova Eleonora <e.rusanova@securitycode.ru>
CC: Matveychikov Ilya <i.matveychikov@securitycode.ru>

 

i82
()

iptables - показатель защищённости по ФСТЭК

Форум — Security

Коллеги,

Подскажите, каков уровень штатного iptables по РД «Средства вычислительной техники. Межсетевые экраны. Защита от несанкционированного доступа к информации» и существуют ли готовые способы (решения) повышения классности решения на этой базе?

Благодарю.

 ,

i82
()

Параметры форматирования emacs-lisp-mode

Форум — Development

Коллеги, подскажите параметры форматирования для emacs-lisp-mode, чтобы в коде не было этих жутких отступов на пол-экрана?

 , emacs-elisp-mode

i82
()

[VLC] RTSP поток + снапшоты

Форум — Multimedia

Всем привет,

Есть RTSP поток с IP-камеры; необходимо:
1) Писать этот поток в файл (файлы — например, по 15минут)
2) По-возможности иметь возможность получать картинку с камеры в данный момент

Частично каждая из задач решается отдельным запуском cvlc. Например, для получения снапшотов использую следующую конструкцию:

cvlc rtsp://stream --vout=dummy --aout=dummy --video-filter=scene --scene-ratio=50 --scene-format=jpeg --scene-replace --scene-prefix=snapshot --scene-path=<...>

Вопрос к знатокам: можно ли некоторым образом объединить две задачи в одну команду запуска приложения? Я тут смотрел в сторону опции --sout='#transcode{ }:duplicate{ }...', однако так и не удалось получить рабочий вариант — либо видео пишется, либо картинки сохраняются.

P.S. Возможно, с использованием ffmpeg или mencoder всё решается просто и непринуждённо. Если так, то пожалуйста, подскажите где посмотреть :)

Спасибо :)

 

i82
()

[awesome] keybindings

Форум — Desktop

Коллеги,

Как в этом прекрасном поделии повесить действие на комбинацию клавиш, например:

[MOD-q-w-f] --> awful.util.spawn(«firefox», false)


Спасибо :)

 

i82
()

Посоветуйте настройки TCP/IP для медленного канала?

Форум — Admin

Здраствуйте, Уважаемые!

Прошу помощи в настройке параметров TCP/IP для медленного канала с задержкой обычных пингов в ~200ms. Для оптимизации трафика, я выключаю tcp_timestamps (0). Кроме того, у интерфейса есть особенность — MTU=228 + включена самописная упаковка IP-заголовков (не путать с SLHC, там пакуются IP+TCP). Проблема такая, что в процессе соединения бывают недопустимые по времени затыки, что снижает и так небольшую полосу канала.

Пытался подобрать параметр tcp_congestion_control (cubic, reno, veno, westwood и пр), однако экспериметны только усугубили непонимание того, как бороться с проблемой.

Спасибо.

i82
()

Можно ли сделать такое с PPP?..

Форум — General

Всем привет, есть такая задача. Есть 2 радио-модема. Хочу организовать PPP-соединение через них, но проблема в том, что при передаче данных используется т.н. «пакетный» режим, смысл которого в том, что передаваемые данные обрамляются специальными тегами, в которых указывается адрес того модема с которым будет устанавливаться соединение. Таким образом, необходимо как-бы туннелировать PPP-трафик в некий простенький модемный протокол. Вопрос в том как это сделать?

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

Если кто-то может подсказать возможные пути решения - буду признателен.

i82
()

emacs + hunspell + utf8

Форум — General

Как их подружить с целью проверки орфографии en_US, ru_RU, en_US + ru_RU ?... Поделитесь кто чем может =)

i82
()

[perl] Как определить длину пересечения строк

Форум — Development

Всем привет. Вот такой вопрос к знатокам...

Предположим есть строки: $s1 = «\x01\x02\x03\x04\x05\x06»; $s2 = «\x04\x05\x06\x07\x08\x09\x0A\x0B»;

Как можно при помощи регулярных выражений определить, что строка $s2 содержит в начале символы конца строки $s1 — «\x04\x05\x06» и подсчитать их количество (3)?..

Спасибо :)

 

i82
()

[mysql] create table on insert

Форум — Development

Всем привет.

Есть таблица (items), в которую методом INSERT добавляются элементы. Можно ли средствами SQL обеспечить создание связанной таблицы для каждого вновь создаваемого элемента с идентификатором items.id? То есть, необходимо, чтобы по событию INSERT таблицы items создавалась таблица с динамическим именем properties_for_{id}, где id - идентификатор из таблицы items.

Я пробовал использовать для этого триггеры, но всё упёрлось в невозможность применения в них динамических конструкций (в том числе в хранимых процедурах, вызываемых из триггеров).

Есть ли какой-нибудь способ решения, или создание таблиц нужно выносить из базы в клиентское приложение?...

Заранее благодарю.

 

i82
()

Perl BigInt

Форум — Development

Всем привет!

Скороее всего всё очень просто, только вот никак не пойму как :) Как преобразовать большое число (64 байта, 512 бит) типа BigInt к обычной 64-байтовой строке, чтобы можно было эти 64 байта записать в двоичный RAW-файл?...

Спасибо :)

i82
()

GIT в качестве удалённого хранилища

Форум — General

Всем привет!

Хочу использовать GIT в качестве удалённого файлового хранилища. Кто знает, подскажите пожалуйста каким образом можно осуществить операцию подобную git hash-object -w <object> без использования локального репозитория? То есть, без создания локальной копии этого репозитория, внесении в него изменений и применения git push. Вообще, это возможно?

Благодарю за ответы.

i82
()

Знатокам Perl. Распаковка данных.

Форум — Development

Здравствуйте, уважаемые!

Кто подскажет, как бы так по «красивше» решить задачу распаковки последовательности двоичных данных в формате: [LEN1][DATA1][LEN2][DATA2][...]?

Пока использую такую конструкцию (режет глаза, однако):

while ($data) {
    my $block_size = unpack("L", $data);
    my $block_data = unpack("x4c$block_size", $data);

    ....

    $data = substr($data, $block_size + 4);
}
Заранее благодарен!

i82
()

Знатокам PERL-CGI: multipart/form-data

Форум — Development

Друзья, доброго здоровья!

Подскажите пожалуйста, каким образом вытащить данные из поля формы, переданного как multipart/form-data? Использую для этого CGI.pm, ничего не выходит...

HTTP-запрос (http-req.txt):

POST /~ilya/cgi-bin/post.pm HTTP/1.0
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: 69

--AaB03x
Content-Disposition: form-data; name="id"

12345
--AaB03x--

CGI-скрипт:

#!/usr/bin/perl -wT

use strict;
use warnings;

use CGI ();

my $query = CGI->new();

print "Content-Type: text/plain; charset=utf-8\n\n";
print "posted data:\n";
print $query->param('id') . "\n";
print "\n";

exit(0);

__END__

# vim: ts=4 filetype=perl

Проверяю с помощью: cat http-req.txt | nc 127.0.0.1 80.

Результат:

HTTP/1.1 200 OK
Date: Mon, 24 Aug 2009 16:22:24 GMT
Server: Apache
Connection: close
Content-Type: text/plain; charset=utf-8

posted data:

Заранее благодарю!

i82
()

чем осуществить запись видео с DVI-камеры?

Форум — General

Друзья, подскажите, чем можно слить видео с DVI-камеры? Система Debian.

i82
()

RSS подписка на новые темы