LINUX.ORG.RU
ФорумAdmin

2 ip, выйти через один


0

2

Есть у igb0 2 айпи

igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
        ether XX:XX:XX:XX:XX:XX
        inet XXX.XXX.X5.66 netmask 0xffffffe0 broadcast XXX.XXX.X5.95
        inet XXX.XXX.X2.224 netmask 0xffffffff broadcast XXX.XXX.X2.224
        media: Ethernet 1000baseT (1000baseT <full-duplex>)
        status: active

Как мне задать какой либо программе через какой айпи адрес ей выходить?

интересует больше всего tcptraceroute, wget

P.S. прав рута нет, можно ли как то без них обойтись?


Можно устроить программно через LD_PRELOAD и iptables. Если подробности интересны, могу поделиться. Как без программирования решить задачу, увы, не знаю.

delete83
()
Ответ на: комментарий от delete83

Как без программирования решить задачу, увы, не знаю.

Маршрут добавить. Но нужны админские права. namespace ( ip netns ) туда же относятся

router 👍👍
()

Вообще, в частных случаях задачу можно решить с помощью route или iptables, но в общем виде нужно что-то еще, что позволит однозначно идентифицировать пакеты, как принадлежащие определенной программе. Я таких утилит не знаю.

delete83
()
Ответ на: комментарий от delete83

Через iptables метишь соединение. Через iptables метишь пакеты меткой соединения. Через ip rule добавляешь правило маршрутизации.

Если destination известен, можно и сразу маршрут задать ( ip r a CIDR net dev igb0 src XXX.XXX.X2.224 ;)

router 👍👍
()
Ответ на: комментарий от delete83

И если программы запускать в определённом namespace ( ip netns exec ), можно в этом namespace установить нужный дефолтный маршрут

router 👍👍
()
Ответ на: комментарий от router

Ну успел удалить комментарий :)

Уже прочитал про неймспейсы. Linux все же классная штука, когда дело касается сети. :)

delete83
()
Ответ на: комментарий от router

спасибо, оказывается в программах wget можно указать --bind-adress и в tcptraceroute можно указать -s source address. Еще меня интересовал curl, но и там, так же можно поменять. Чесно говоря не думал что будет решение в самих программах

ex3me
() автор топика
Ответ на: комментарий от router

Через iptables метишь соединение.

пример в студию, как через iptables метить все соединения производимые wget, например

xtraeft
()
Ответ на: комментарий от ex3me

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

sin_a 👍
()
Ответ на: комментарий от ex3me

lol, своей изящной изначальной формулировкой ты технично уберёг себя от воплейman tcptraceroute, man ping, man blablabla и сошёл за бедолагу с нестандартной задачей

zolden
()
Ответ на: комментарий от xtraeft

пример в студию, как через iptables метить все соединения производимые wget, например

Очевидно же, по адресу назначения. А ты что думал, в сказку попал? ;)

router 👍👍
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.