LINUX.ORG.RU
ФорумAdmin

routing


0

0

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

Ответ на: комментарий от skyfisher

>Хехе, первый раз вижу чтобы спрашивали как создать петлю. man iptables

Не понял что смешного. Это по вашему слишком просто или это никому не нужно?

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

надо сделать интерфейсы в разных подсетях и запретить ip_forward - думаю после этого петля заработает, если роутер настроен.

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

Мне казалось что нужно просто настроить роутинг.

Например есть 2 интерфейса

eth0 - 192.168.2.2/24
eth1 - 192.168.3.2/24

есть роутер с двумя интерфейсами 192.168.2.1/24 и 192.168.3.2/24

Я думал что если сделать так
# route add -net 192.168.2.0/24 gw 192.168.3.1
# route add -net 192.168.3.0/24 gw 192.168.2.1
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 192.168.3.1 255.255.255.0 UG 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo

то при обращении к адресам 192.168.2.2 и 192.168.3.2 трафик будет идти через роутер, но ничего подобного трафик идет напрямую не покидая систему.

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

Это нормально поведение. Система распознает, что адрес пренадлежит ей, и заворачивает пакеты обратно. Только, если через iptables принудительно выставлять.

Valmont ★★★
()
Ответ на: комментарий от andron01

читайте Стивенсона..
как уже сказал Valmont, ip модуль распознает что dest ip
принадлежит одному из своих интерфейсов, и заворачивает пакеты на интерфейс внутренней петли, не отдавая их в сеть..

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

>читайте Стивенсона..

Это который Остров сокровищ написал. :-) Стивенса.

Не то чтобы я не люблю читать, но читать долго, а мне нужно побыстрее. А Стивенс разьве пишет про iptables?

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

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

Попробуйте iptables -j ROUTE. А править надо mangle POSTROUTING, чтоб корректировка маршрутизационных данных пакета выполнялась после принятия решения о маршрутизации (т.е. чтоб изменения были последними и никто их не поломал).

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

Я сделал так

# iptables -t mangle -A OUTPUT -d 192.168.2.0/24 -j ROUTE --gw 192.168.3.1
# iptables -t mangle -A OUTPUT -d 192.168.3.0/24 -j ROUTE --gw 192.168.2.1

Когда делаешь
ping 192.168.3.2
то лампочка на роутере моргает (т.е. пакет наружу вызодит), но ping всеравно не проходит.

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

Запрос ICMP приходит, но ответа нет.

# ping -c 1 192.168.2.2

# tcpdump -n -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
15:46:09.433038 arp who-has 192.168.3.1 tell 192.168.2.2
15:46:09.434455 arp reply 192.168.3.1 is-at 00:61:64:6d:2d:31
15:46:09.434468 IP 192.168.2.2 > 192.168.2.2: ICMP echo request, id 58412, seq 1, length 64

tux ~ # tcpdump -n -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:46:09.437211 arp who-has 192.168.2.2 tell 192.168.2.1
15:46:09.437234 arp reply 192.168.2.2 is-at 00:90:27:57:8b:28
15:46:09.437525 IP 192.168.2.2 > 192.168.2.2: ICMP echo request, id 58412, seq 1, length 64

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

>net.ipv4.conf.all.proxy_arp = 1 на роутере. должно помочь.

А это здесь причем? Вроде с ARP-ом проблем нет.

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