Как перенаправить конкретный трафик между двумя интерфейсами на одной машине RHEL8

Вопрос или проблема

ОС: RHEL8.
Цель: Переслать SIP и RTP с основной сетевой интерфейса VM (ens192) на виртуальный, вручную созданный (ens100)
Для тестирования я пытаюсь переслать только пакеты ICMP, но это не работает.
(VM1) –icmp–> ens192(VM2) –forward-icmp–> ens100(VM2)

  1. Интерфейс был создан командой:
    nmcli connection add type macvlan dev ens192 ifname ens100 mode bridge ethernet.cloned-mac-address 00:50:56:95:19:67 ipv4.method manual ipv4.addresses 1.1.1.1
  2. пересылка включена net.ipv4.ip_forward = 1
  3. включено маскирование firewall-cmd --zone=public --add-masquerade --permanent
  4. два интерфейса в одной зоне firewall-cmd --zone=public --add-forward --permanent
  5. добавить правило для icmp firewall-cmd --zone=public --add-protocol=icmp --permanent
  6. firewall-cmd --reload
  7. firewall-cmd --list-all
public (активно)
  цель: ACCEPT
  инверсия блокировки icmp: нет
  интерфейсы: ens100 ens192
  источники:
  службы: cockpit dhcpv6-client ssh zabbix-agent zabbix-server
  порты: 8443/tcp
  протоколы: icmp
  пересылка: да
  маскирование: да
  пересылаемые порты:
  исходные порты:
  блокировки icmp:
  богатые правила:

Но если я пингую с другой машины IP ens192, на ens100 нет ICMP, icmp есть только на ens192. Помогите, что не так?

Ответ или решение

Перенаправление трафика между интерфейсами в RHEL8

Для успешного перенаправления специфического трафика между двумя интерфейсами на одной машине с операционной системой RHEL8, необходимо правильно настроить маршрутизацию и параметры сетевых интерфейсов. В вашем случае, цель заключается в том, чтобы перенаправить ICMP пакеты, которые поступают на интерфейс ens192, к интерфейсу ens100.

Давайте рассмотрим шаги, которые необходимо выполнить для достижения этой цели.

1. Настройка интерфейсов

Интерфейс ens100 был создан с помощью команды nmcli. Убедитесь, что оба интерфейса активны и настроены правильно:

nmcli connection show

Проверьте, что интерфейсы ens192 и ens100 находятся в статусе connected.

2. Включение маршрутизации

Вы уже включили маршрутизацию в ядре, установив net.ipv4.ip_forward = 1. Убедитесь, что это изменение было применено:

sysctl net.ipv4.ip_forward

Если вывод показывает 1, значит маршрутизация активирована.

3. Настройка правил в Firewall

a) Убедитесь, что зона правил настроена правильно:

Убедитесь, что обе сетевые интерфейсы, ens192 и ens100, находятся в одной и той же зоне. В вашем случае это зона public.

Чтобы проверить это, выполните:

firewall-cmd --get-active-zones

b) Добавление правил для ICMP

Вы правильно добавили правила для протокола ICMP. Теперь вам необходимо убедиться, что правила о перенаправлении также установлены правильно. Попробуйте явно указать правила для перенаправления ICMP:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" service name="ping" accept' --permanent

c) Перезагрузите конфигурацию Firewall

Обязательно перезагрузите конфигурации после применения изменений:

firewall-cmd --reload

4. Проверка и отладка

После выполнения всех предыдущих шагов, выполните следующие команды для проверки состояния и конфигурации:

firewall-cmd --list-all

Эта команда должна подтверждать, что ICMP и маскарад включены, а также что оба интерфейса находятся в зоне public.

5. Тестирование

Теперь вы можете протестировать, отправив ICMP запрос с другой машины на IP-адрес интерфейса ens192 и наблюдая за трафиком, получаемым на ens100.

Для проверки трафика можно использовать утилиты, такие как tcpdump:

tcpdump -i ens100 icmp

Если ICMP пакеты не поступают на ens100, следует удостовериться, что трафик действительно поступает на ens192. Это можно проверить с помощью:

tcpdump -i ens192 icmp

6. Заключение

Если после выполнения всех шагов проблема все еще сохраняется, проверьте настройки виртуальных машин и их маршрут. Также стоит убедиться, что другие сетевые настройки, такие как сетевые политики или дополнительные правила firewall, не блокируют ICMP пакеты.

Следуя этим рекомендациям, вы сможете успешно перенаправить ICMP трафик между интерфейсами на вашей машине с RHEL8.

Оцените материал
Добавить комментарий

Капча загружается...