Назад | Перейти на главную страницу

iptables и CONNMARK в ubuntu 12.04

У меня Ubuntu 12.04 на многосетевом хосте. Я пытаюсь использовать iptables для перенаправления HTTP-пакетов, поступающих с определенного IP-адреса, на другой IP-адрес.

Из Googling я считаю, что на многосетевых хостах необходимо использовать CONNMARK для маркировки входящих соединений, чтобы можно было сопоставить соответствующие исходящие пакеты.

Однако, когда я пытаюсь использовать фразу «-j CONNMARK», мне говорят, что такой цепочки нет.

Как я могу использовать -j CONNMARK в Ubuntu 12.04?

Вы должны загрузить connmark Модуль ядра:

sudo modprobe ipt_connmark

Убедитесь, что модуль загружен:

lsmod | grep connmark

Простое перенаправление трафика не требует CONNMARK; скорее, сделайте это с парой DNAT / SNAT, например:

-t nat -A PREROUTING -d 1.2.3.4 -j DNAT --to-destination 5.6.7.8
-t nat -A POSTROUTING -d 5.6.7.8 -j SNAT --to-source 5.6.7.9

где

  • 1.2.3.4 - это IP-адрес, к которому люди подключаются
  • 5.6.7.8 - фактическая цель
  • 5.6.7.9 - это IP-адрес интерфейса, через который достигается цель