Начну как обычно издалека. Стоял себе в конторе срверок-шлюз к нескольким провайдерам. Как ни десять лет пыхтел под пятым альтом ковчегом. Пришла пора его менять. Но я же не школоло какое, ронять всю контору на неделю. Поэтому прикупил железа, разложил дома. Поставил туда диван, аналогичный работающему на домашнем серваке. Далее не спеша туда перенес, все что было наскриптовано на старом. Улучил момент, поставил новую железку. Завелось все, кроме того самого проброса портов. Проброс завелся классически наполовину.
На примере ssh. eth0 - внутренняя сетка. eth1, eth2 - внешние, с публичными адресами.Таблицы маршрутизации созданы. Сервисы самого сервера по обоим внешним адресам доступны. Выставлен ssh порт машины из внутренней сети классическим способом:
Код: Выделить всё
table ip nat {
chain prerouting { type nat hook prerouting priority -100; policy accept;
iifname { eth1, eth2 } tcp dport 222 counter dnat 192.168.1.88:ssh
}
chain postrouting { type nat hook postrouting priority 100; policy accept;
oifname { eth1, eth2 } counter masquerade
}
}
Какашка тоже классическая: Прокинутый порт доступен только на том внешнем интерфейсе, на который установлен умолчательный маршрут в main таблице маршрутизации. С другого интерфейса запись [NEW] ... SYN_SENT ... [UNREPLIED] в conntrack появляется, но дальше дело не идет. Потому что SYN_ACK уносятся в цепочку форвард и далее маскарадятся с умолчательного адреса, понятно не встречая понимания взывающего хоста.
Даже про починку такой бяки гугл знает довольно мало и невразумительно. Еще добавляется обещанная в заголовке мистика. Совместно с эзотерикой и прочей похожей фигней. Эта конфигурация работает на домашнем сервере (откуда и срисована) без вопросов.
Тоже два провайдера, те-же конфиги, но работает. Ядра, модули идентичные. Даже с отчаяния не поленился накидать скрипт, разгребающий содержимое /proc/sys/net/* Сравнил выхлоп - практически одинаковый.
Проблема не в том, что не работает. Я через xinetd накрайняк сделаю, как раньше. Проблема, что идеи кончаются. Ну и в общей недоученности.
Вам есть, что сказать? У настоящего мужчины всегда есть, что сказать! (C)