- Вопрос или проблема
- Ответ или решение
- Перенаправление трафика между интерфейсами в RHEL8
- 1. Настройка интерфейсов
- 2. Включение маршрутизации
- 3. Настройка правил в Firewall
- a) Убедитесь, что зона правил настроена правильно:
- b) Добавление правил для ICMP
- c) Перезагрузите конфигурацию Firewall
- 4. Проверка и отладка
- 5. Тестирование
- 6. Заключение
Вопрос или проблема
ОС: RHEL8.
Цель: Переслать SIP и RTP с основной сетевой интерфейса VM (ens192) на виртуальный, вручную созданный (ens100)
Для тестирования я пытаюсь переслать только пакеты ICMP, но это не работает.
(VM1) –icmp–> ens192(VM2) –forward-icmp–> ens100(VM2)
- Интерфейс был создан командой:
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
- пересылка включена
net.ipv4.ip_forward = 1
- включено маскирование
firewall-cmd --zone=public --add-masquerade --permanent
- два интерфейса в одной зоне
firewall-cmd --zone=public --add-forward --permanent
- добавить правило для icmp
firewall-cmd --zone=public --add-protocol=icmp --permanent
firewall-cmd --reload
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.