[РЕШЕНО] 2 провайдера + проброс портов iptables/iprouting
rayg00n 2 сентября, 2013 - 19:21
Добрый день.
Знаю что тема избитая, но таки хочется понять есть ли возможность пробросить один и тот же порт со стороны 2-х провайдеров на один и тот же внутренний ip. Или это делается другими средствами? Сейчас работает обычные правила iptables для 1-го провайдера где:
$EXTIP1 - ip шлюза смотрящего в 1-го провайдера
$INTIP1 - ip шлюза смотрящий в локалку
$IP - ip внутреннего сервера к которому надо получить доступ
iptables -t nat -A PREROUTING -d $EXTIP1 -p tcp --dport 443 -j DNAT --to-destination $IP:443
iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 443 -j SNAT --to-source $INTIP1
»
- Для комментирования войдите или зарегистрируйтесь
Что именно вам мешает
Что именно вам мешает написать 2 одинаковых правила проброса портов с отличием только в адресе ?
Вот именно, ничего :) Вы так и сделали.
А теперь финт руками: какой дефолт гетвей у "$IP - ip внутреннего сервера к которому надо получить доступ" ? :)
поэтому кроме иптаблесов прйдется скурить еще iproute2 .
Примеров в гугле валом , навалом и еще выше.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Вот в том то вся и фигня, что
Вот в том то вся и фигня, что не получается у мну с этим iprouting'ом. Настраивал по статье http://www.opennet.ru/docs/RUS/LARTC/x348.html Правила маршрутизации могу приложит отдельно. Если с iptables все понятно, то как надо написать правило маршрутизации?
iptables -t nat -A PREROUTING -d $EXTIP1 -p tcp --dport 443 -j DNAT --to-destination $IP:443
iptables -t nat -A PREROUTING -d $EXTIP2 -p tcp --dport 443 -j DNAT --to-destination $IP:443
iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 443 -j SNAT --to-source $INTIP1
freeman
Нашел доку, неужели все так
Нашел доку, неужели все так печально?
http://sys.net.ru/docs/tri-provajdera-i-servera-vnutri-seti/
freeman
Сюрприз! Там еще и SNAT есть!
Сюрприз! Там еще и SNAT есть! А также разные таблицы маршрутизации!.. :)
а вы попробуйте не тупо
а вы попробуйте не тупо копипейстить, а в теории разобраться!.. ;) там ничего особо сложного нет.
Пока читаю, спасибо =) А
Пока читаю, спасибо =) А можно глупый вопрос? Это вообще возможно?
freeman
rayg00n написал(а): Пока
Да, у нас все работает.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Написал скрипт. Все равно не
Написал скрипт. Все равно не получается опубликовать внутренний ресурс через обоих провайдеров
Куда копать?
freeman
a хде маркировка траффа ?
a хде маркировка траффа ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
А как мне промаркировать
А как мне промаркировать трафик который идет от одного и того же внутреннего ресурса и того же порта? Как iproute поймет что надо трафик завернуть в правильную таблицу, а не пустить по дефоулт маршруту?
Допустим я сделаю
В iptables я должен прописать что? о_о Прошу ногами не бить =)
freeman
BGP? :)
BGP? :)
Собрал все в тестовой среде
Собрал все в тестовой среде без маркировки трафика. Проброс портов работает. На всякий случай хотел уточнить - как правильно указывать подсеть провайдера - через ip/префикс или в стандартном виде 255.255.255.240 ?
Конфиг роутинга:
В iptables:
Буду тестить в реальной среде
freeman
ни черта не работает =(
ни черта не работает =(
freeman
.
Стандартный алгоритм отладки правил пакетного фильтра:
Настрой журналирование всех reject'ов и пройди по цепочке.
:wq
--
Live free or die
conntrack
Похоже, ваш случай
Прочитал, промаркировал
Прочитал, промаркировал трафик для одного из провайдеров:
$IPTABLES -t mangle -A PREROUTING -p all -i $LAN_IFACE -m conntrack --ctorigdst $INET_IP1 -j MARK --set-mark 1
Далее:
ip rule add fwmark 1 table P1
Вывод ip route list table P1:
default via x.x.x.153 dev eth1
x.x.x.152/29 dev eth1 scope link src x.x.x.157
127.0.0.0/8 dev lo scope link
198.168.2.0/24 dev eth0 scope link
Ничего не изменилось
freeman
rp_filter не настроен был,
rp_filter не настроен был, всем откликнувшимся спасибо.
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do
echo 0 > $i
done
freeman
ls
задолбало уже читать кописату гугла 10-лей давности ;(
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
/
Предлагаю начать с малого: с написания в ЧаВо заметки относительно истинной сути гугля ☺
По зависимостям по-хорошему тянется вопрос о диалектике, его могу взять я ;)
:wq
--
Live free or die
Бери, пиши. Я только за.
Бери, пиши. Я только за.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
К слову сказать в том же
К слову сказать в том же самом http://lartc.org/lartc.html упоминается всего в двух местах, а гугл на темы 2isp + nat + local, выдает все что угодно, но не "reverse path filtering", что несомненно способствует просветлению пациента. При этом в главе 4.2 четко сказано что:
В чем прикол?
freeman