Переброс пакетов из мира на локаль. [SOLVED]
S-anches 29 октября, 2006 - 07:29
Извините за тупой вопрос, на который можно наверно найти ответ в доках, но всё же.
Есть машина подключена к инету по adsl. Она шлюз, и главный сервер в моей сети. Вот хочу её немного разгрузить. Поднял новый сервак для www, а как теперь с помощью iptables перекинуть все забросы на ip 195.112.247.221 (это инетовский ip адрес, так же у этой машины ip 172.16.0.1) на локальный ip 172.16.0.2. Напишите мне пожалуйста пару волшебных строчек.
И нормально ли apache в таком случае будет работать с виртуальными хостами?
»
- Для комментирования войдите или зарегистрируйтесь
# это для
# это для внешних клиентов
iptables -t nat -A PREROUTING -d 195.112.247.221 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2
# это для внутренних клиентов
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -d 172.16.0.2 -p tcp --dport 80 -j SNAT --to-source 172.16.0.1
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 172.16.0.2 -j ACCEPT
Включить net.ipv4.ip_forward = 1 в /etc/sysctl.conf
Апачь должен нормально работать с виртхостами, если конечно в dns будут указаны имена этих хостов, указывающие на 195.112.247.221 и заходить на них по именам, а не просто по ip.
Ещё, роутер должен стоять шлюзом по умолчанию для всех внутренних клиентов и для веб сервера.
Re: # это для
Спасибо за такой подробный ответ, так то у меня всё работает, и всё понятно, мне нужно было только это одно правило:
iptables -t nat -A PREROUTING -d 195.112.247.221 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2
Блин, не
Блин, не работает. Всё норм. работает, во внутренней сетке то это не проблема, там и переброса не надо, в bind все ip норм. прописанны, а вот сделал iptables -t nat -A PREROUTING -d 195.112.247.221 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2 и с мира не могу зайти. Захожу links'ом говорит устанавливаю соединение и всё. Потом тайм аут. iptables весь сброшен, всё разрешенно. В /etc/sysctl всё норм. Что за беда может быть???
Может кто
Может кто поможет?