Рейтинг:0

Как пометить и разделить соединения?

флаг us

у меня есть issabel Linux (на основе Centos 7) с 3 Ethernet, и я хочу этот сценарий:

eth0 с IP 172.16.3.30/16 ----gw(172.16.0.1)----> (я хочу использовать шлюз по умолчанию)

eth1 с IP 10.1.5.102/30 -----gw(10.1.5.101)----> (отметить подключения к 10.10.10.10:5160 для отправки через 10.1.5.101 с собственным src(10.1.5.102))

eth2 с IP 10.1.5.106/30 -----gw(10.1.5.105)----> (отметить подключения к 10.10.10.10:5161 для отправки через 10.1.5.101 с собственным src(10.1.5.106))

внимание : есть один и тот же адрес назначения! (10.10.10.10, но другой порт)

Я использую эти коды:

iptables -A ВЫВОД -t mangle -p udp -d 10.10.10.10/32 --dport 5160 -j MARK --set-mark 1
iptables -A ВЫВОД -t mangle -p udp -d 10.10.10.10/32 --dport 5161 -j MARK --set-mark 2
эхо 100 sip102 >> /etc/iproute2/rt_tables
эхо 101 sip106 >> /etc/iproute2/rt_tables
IP-маршрут добавить по умолчанию dev eth1 таблицу sip102
ip route добавить таблицу eth2 dev по умолчанию sip106
ip правило добавить из всех таблиц fwmark 1 sip102
ip правило добавить из всей таблицы fwmark 2 sip106

Но SIP-транки не могут быть подключены. (Первые две строки были изменены на -A PREROUTING, но это не произошло)

Когда я пытаюсь проверить маршрут таблицы без маркировки следующим образом:

ip правило добавить в таблицу 10.10.10.10 sip102

Я вижу, что подключена одна SIP-магистраль (10.1.5.102 > 10.10.10.10:5160 Connected)

флаг in
Зачем тебе Марк? вместо этого вы можете использовать `ip rule`, чтобы сделать все это с источником, вы также должны добавить некоторые другие маршруты в каждую из таблиц. используйте tcpdump или аналогичные инструменты, чтобы увидеть, что происходит, особенно проверьте, возвращается ли трафик, и убедитесь, что он возвращается в правильном направлении.
erfan mehralizadeh avatar
флаг us
Потому что есть одно dst. Адрес с разными портами и единственный способ разделить и управлять подключением - это пометить, можно ли это сделать с помощью правила ip?
флаг in
Плохо, пропустил часть порта, увидев много (других) вопросов, где iptables не нужен.вашим маршрутам по-прежнему нужен gw, если пункт назначения не находится на ссылке, и снова tcpdump и попробуйте отследить трафик и ответы.
erfan mehralizadeh avatar
флаг us
я не могу использовать tcpdump, потому что это UDP (SIP)
флаг in
Не уверен, что вы имеете в виду, tcpdump показывает UDP, но не стесняйтесь использовать любой удобный инструмент для захвата пакетов, wireshark, если вам нравятся пользовательские интерфейсы.
Martin avatar
флаг kz
Здесь я бы использовал маршрутизацию на основе источника. На мой взгляд, лучший подход, потому что таким образом вам вообще не нужно возиться с iptables... https://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux- политика-маршрутизация/

Ответить или комментировать

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