У меня есть сеть типа 192.168.0.0/15 со шлюзом по умолчанию, установленным на 192.168.0.1. Все рабочие станции сети используют этот шлюз для всех видов доступа в Интернет. Сейчас я тестирую новое интернет-соединение с другим провайдером, и для этого я использую второй шлюз в той же подсети с 192.168.0.2 в качестве IP-адреса. Я хочу перенаправить только трафик HTTP и HTTPS на этот второй шлюз, не трогая адрес шлюза по умолчанию, установленный на каждой рабочей станции. Как я могу выполнить эту задачу? Что мне нужно изменить в конфигурации или маршрутах межсетевого экрана первого шлюза? Я пробовал с DNAT, например:
DNAT loc:192.168.0.1 loc:192.168.0.2 tcp 80
но ничего не работало. Я использую Shorewall для простоты настройки, но я могу понять даже теоретические ответы, которые я постараюсь адаптировать к своему случаю.
Хорошо, я решил сам, используя маркировку пакетов :-) Я создал два файла в / etc / shorewall, названные tcrules и provider. Вот содержимое обоих:
провайдеры
#NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS
Provider1 1 202 - eth1 192.168.0.2 loose
правила
#MARK SOURCE DEST PROTO DEST
# PORT(S)
202:P eth1:!192.168.0.2 0.0.0.0/0 tcp 80
202:P eth1:!192.168.0.2 0.0.0.0/0 tcp 443
С этой конфигурацией я теперь могу перенаправить все входящие HTTP (S) соединения (сторона LAN) с моего первого шлюза на второй, чтобы я мог протестировать своего нового интернет-провайдера :-P
Спасибо вам всем!