Собственно есть домен: site.com
Есть 5 серверов у каждого свой IP.
1 сервер стоит DNS главный где site.com (для теста туда впихнули два IP для DNS)
и 4 других.
Надо сделать так чтобы
site.com:1520 - сервер 2
site.com:1620 - сервер 3
и т.д. как организоваться?
Порты
на сервере site.com
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1520 -j DNAT --to-destination 192.168.0.7:1520
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1620 -j DNAT --to-destination 192.168.0.8:1620
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1720 -j DNAT --to-destination 192.168.0.9:1720
Bad argument `1520'
(((
Ээээй это не весь скрипт smile
Тут нет телепатов поэтому даю минимальный скрипт который правьте под себя
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#интернет
inet=ppp0
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1520 -j DNAT --to-destination 192.168.0.7:1520
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1620 -j DNAT --to-destination 192.168.0.8:1620
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1720 -j DNAT --to-destination 192.168.0.9:1720
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Вроде бы хрень, а так трудно :( зачем связал жизнь с этим(((( теперь остановиться не могу :o
Ээээй это не весь скрипт smile
Тут нет телепатов поэтому даю минимальный скрипт который правьте под себя text#!/bin/bash echo "1" > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_dynaddr modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -F iptables -F -t nat iptables -F -t mangleiptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
#интернет inet=ppp0
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1520 -j DNAT --to-destination 192.168.0.7:1520 iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1620 -j DNAT --to-destination 192.168.0.8:1620 iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1720 -j DNAT --to-destination 192.168.0.9:1720 iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
А можно как нибудь прокомментировать его?
Делаем как тут ток вставляем скрипт выше
http://linuxforum.ru/viewtopic.php?pid=165069#p165069
ваш интерфейс смотрящий в инет
inet=ppp0
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1520 -j DNAT --to-destination 192.168.0.7:1520
слушаем порт 1520 и перенаправляем на 192.168.0.7:1520
[console]WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.[/console]
Сделать кстати я сделал запустил указал интерфейс
[console]root@2665-15:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:1521 to:127.0.0.2:1215
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[/console]
и не фига не работает хотя как я понял должно.
Варианты есть?
Lavrentiev, у вас правила не правильно как-то сработали:
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1520 -j DNAT --to-destination 192.168.0.7:1520
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1620 -j DNAT --to-destination 192.168.0.8:1620
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 1720 -j DNAT --to-destination 192.168.0.9:1720
после этого (сам сейчас ввел эти правила) вот что должно быть:
[console]
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:1520 to:192.168.0.7:1520
DNAT tcp -- anywhere anywhere tcp dpt:1620 to:192.168.0.8:1620
DNAT tcp -- anywhere anywhere tcp dpt:1720 to:192.168.0.9:1720
[/console]
копайте где ошиблись
Сделать кстати я сделал запустил указал интерфейс
[console]root@2665-15:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:1521 to:127.0.0.2:1215
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[/console]
и не фига не работает хотя как я понял должно.
Давай те вы напишите какие у вас айпи и какие порты например вот так
ип 192.168.0.7 порт 520
после я вам напишу готовое решение
Предисловие:
ОС: Debian 6 (всё на компе с помощью виртуализации на данный момент)
Есть много игровых серверов, у всех серверов разные IP.
Есть домен который стоит на главном сервере там два IP (192.168.1.1 и 192.168.1.2)
Сам домен зависит от IP (192.168.1.2)
Адаптеры: eth0 = 192.168.1.1 eth0:0 = 192.168.1.2
Надо сделать так чтобы:
css.site.com:27015 = 192.168.1.3:27015
css.site.com:27016 = 192.168.1.4:27015
cs.site.com:27015 = 192.168.1.15:27015
cs.site.com:27016 = 192.168.1.15:27016
cod.site.com:27016 = 192.168.1.8:27015
Вот такую систему надо сделать!
Для начала вы сами нарушаете правила портов как вы хотите работать не будет
пример как ниже
eth0:27015 = 192.168.1.3:27015
eth0:27016 = 192.168.1.4:27015
eth0:0:27015 = 192.168.1.15:27015
eth0:0:27016 = 192.168.1.18:27015
Точто ниже всё из под root
nano /home/firewall.sh
туды
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#Маскардинг в инет и локалку
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A PREROUTING -i eth0 --dport 27015 -j DNAT --to-destination 192.168.1.3:27015
iptables -t nat -A PREROUTING -i eth0:0 --dport 27015 -j DNAT --to-destination 192.168.1.15:27015
iptables -t nat -A PREROUTING -i eth0 --dport 27016 -j DNAT --to-destination 192.168.1.4:27016
iptables -t nat -A PREROUTING -i eth0:0 --dport 27016 -j DNAT --to-destination 192.168.1.18:27016
сохраняем!
даём права
chmod +x /home/firewall.sh
в автозагрузку
nano /etc/rc.local
перед exit0 вставляем
/home/firewall.sh
сохраняем и выполняем
./home/firewall.sh
эх... не работает всеровно пример... но суть уловил куда копать. а как быть с поддоменами надо на каждый поддомен IP?
Проще использовать разные порты на входе например
iptables -t nat -A PREROUTING --dport 27015 -j DNAT --to-destination 192.168.1.3:27015
iptables -t nat -A PREROUTING --dport 27016 -j DNAT --to-destination 192.168.1.5:27016
iptables -t nat -A PREROUTING --dport 27017 -j DNAT --to-destination 192.168.1.6:27017
ну а если на отдельный поддомен делать то надо IP отдельный?
или идея ещё лучше на основный IP разделать на порты, а на порты повесить поддомены а на них уже делать ротацию!
второй вариант куда интреснее
Организовать это можно с помощью DNS и NAT