Надсилайте пакет по мережі навіть тоді, коли його мета - локальний хост


10

У Linux, якщо ви надсилаєте пакет за адресою одного з його мережевих інтерфейсів , цей пакет направляється внутрішньо, він ніколи не надсилається по мережі. Це правильно в 99,99% випадків.

Іноді під час тестування мережевих конфігурацій корисно надсилати пакет через локальне посилання з самої машини, при цьому сама машина є цільовою. Як я можу це зробити? Принаймні для посилання типу шини, наприклад, Ethernet, якщо не для посилання "точка-точка". Мене цікавлять лише пакети IP (і IPv4, і IPv6).


Випробували сканування nmap?
Рубан Кмітливий

Вас цікавить, як пакет фізично виходить в мережу і повертається назад? Або ви просто хочете, щоб він виглядав так, ніби це було (пройти через стек маршрутизації, iptables тощо)?
Патрік

@Patrick Я хочу, щоб він вийшов і дійшов до локального маршрутизатора. Хоча залишитися в ньому, але виглядати на місцевому рівні так, ніби він вийшов, також може бути корисним за різних обставин.
Жил 'SO- перестань бути злим'

@Gilles Ви коли-небудь мали успіх у цьому? На даний момент я намагаюся зробити це з двома адаптерами TAP та деяким простим мостиковим кодом і не маю успіху. Маршрутизація здається правильною, але, здається, ARP не працює (пакети виходять із src mac == dst mac). Я можу пояснити свою установку, якщо це допоможе.
Джонатан Райнхарт

1
@Gilles Я не пробував нічого з цього, але можу уявити, як реалізувати роутер таким чином, щоб він ніколи нічого не відсилав туди, звідки він взявся, наприклад, щоб запобігти вічному відскоку між двома маршрутизаторами. Просто річ, яку слідкуйте під час тестування на випадок, якщо пакет вийде, але ніколи не повернеться.
Антон

Відповіді:


7

Кожен мережевий адаптер в Linux має булевий параметр sysctl accept_local( /proc/sys/net/ipv4/conf/eth0/accept_local). Спробуйте встановити його на 0 для всіх задіяних адаптерів (додатково, можливо, вам доведеться змінити таблицю маршрутизації відповідно до вашої тестової настройки).

Також переконайтеся, що rp_filter( /proc/sys/net/ipv4/conf/eth0/rp_filter) увімкнено (не 0).

Довідка: http://code.metager.de/source/xref/linux/stable/Documentation/networking/ip-sysctl.txt

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.