LINUX.ORG.RU
решено ФорумAdmin

Как отключить в Linux хождение пакетов через loopback интерфейс?


0

2

Добрый день.

Есть сервер с двумя 10 Гигабитными карточками. Перед тем как сервер отправиться на площадку хочеться их потестить с помощью iperf . Карточки между собой соеденины патч-кордом. Траффик упорно идет через lo. Так ничего и не вышло с командами route и ip route table local.

Во freebsd было достаточно команды route.



Последнее исправление: nooQu (всего исправлений: 2)

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

# ifconfig eth3 192.168.1.100

# ifconfig eth4 192.168.1.101

# route del -net 192.168.1.0/24 dev eth3

# route del -net 192.168.1.0/24 dev eth4

# route add 192.168.1.100 dev eth4

# route add 192.168.1.101 dev eth3

# ping -I 192.168.1.100 192.168.1.101

PING 192.168.1.101 (192.168.1.101) from 192.168.1.100 : 56(84) bytes of data.

64 bytes from 192.168.1.101: icmp_req=1 ttl=64 time=0.026 ms

# tcpdump -n -i lo

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes

14:01:13.224878 IP 192.168.1.100 > 192.168.1.101: ICMP echo request, id 15769, seq 8, length 64

14:01:13.224888 IP 192.168.1.101 > 192.168.1.100: ICMP echo reply, id 15769, seq 8, length 64

на еth3 и eth4 тишина.

Во FreeBSD трафик уже ходил через ix0 и ix1, а на lo0 нет.

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

Это просто дропит все что проходит через lo, тут можно проще ifconfig lo down.

А мне нужно чтобы пакеты уходили через eth3 в сеть и приходили на eth4.

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

Да, это нормально,даже нужно, иначе как одна сетевуха увидит другую если подлуючение напрямую без маршрутизатора (10 Гигабитных нет, иначе бы я не заморачивался). Я мог бы и сетевуху в другой сервак воткнуть но только не нашлость с PCI-e x8 под рукой.

Я же говорю что во FreeBSD все работает.

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

веришь или нет - я так толсто потроллил, потому что НИ РАЗУ такой фигни не видел

Pinkbyte ★★★★★
()

чувствую что нужно что-то делать с таблицей

# ip route show table local

broadcast 192.168.1.0 dev eth3 proto kernel scope link src 192.168.1.100

broadcast 192.168.1.0 dev eth4 proto kernel scope link src 192.168.1.101

broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1

local 192.168.1.100 dev eth3 proto kernel scope host src 192.168.1.100

local 192.168.1.101 dev eth4 proto kernel scope host src 192.168.1.101

broadcast 192.168.1.255 dev eth3 proto kernel scope link src 192.168.1.100

broadcast 192.168.1.255 dev eth4 proto kernel scope link src 192.168.1.101

broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1

local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1

local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1

Если убрать строки

local 192.168.1.100 dev eth3 proto kernel scope host src 192.168.1.100

local 192.168.1.101 dev eth4 proto kernel scope host src 192.168.1.101

То получиться

# ping -I 192.168.1.100 192.168.1.101

bind: Cannot assign requested address

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

Выше написали
ifconfig lo down
Что в этом случае происходит?

Если убрать строки

Как вариант убрать всё и добавить только два маршрута - с карты на карту.

fractaler ★★★★★
()

Линукс очень сильно страется пустить трафик между двумя адресами, пренадлежащими локальной машине через локальный интерфейс. Вот здесь http://www.linux.org.ru/forum/general/5621014 я предлагал один из вариантов, может у вас что-то другое получится.

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

Все, проблема решена. Чуть голову себе не сломал. Оказывается в Линухе уже давно нужно выкинуть утилиты ifconfig, route, arp, netstat и др. а пользоватся исключително наборами утилилит из iproute2.

Каждый шаг объяснять лень, вот мой листинг команд.

# ip addr add 192.168.1.100/32 dev eth3

# ip addr add 192.168.1.101/32 dev eth4

# ip route add table main 192.168.1.100 dev eth4

# ip route add table main 192.168.1.101 dev eth3

# ip rule add from all lookup local pref 100

# ip rule del pref 0

# ip rule add from 192.168.1.101 to 192.168.1.100 iif eth3 lookup local pref 1

# ip rule add from 192.168.1.100 to 192.168.1.101 iif eth4 lookup local pref 2

# ip rule add from 192.168.1.101 to 192.168.1.100 lookup main pref 3

# ip rule add from 192.168.1.100 to 192.168.1.101 lookup main pref 4

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