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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.