LinuxForum.Fans
Тема

Порты

Автор: Lavrentiev 19 сообщений 3683 просмотров
#157232

Собственно есть домен: site.com

Есть 5 серверов у каждого свой IP.

1 сервер стоит DNS главный где site.com (для теста туда впихнули два IP для DNS)
и 4 других.

Надо сделать так чтобы

site.com:1520 - сервер 2
site.com:1620 - сервер 3

и т.д. как организоваться?

#157235

на сервере 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

#157236

Bad argument `1520'

(((

#157237

Ээээй это не весь скрипт 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 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

#157244

Вроде бы хрень, а так трудно :( зачем связал жизнь с этим(((( теперь остановиться не могу :o

#157245
Kettler написал:
Ээээй это не весь скрипт 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 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

А можно как нибудь прокомментировать его?

#157248

Делаем как тут ток вставляем скрипт выше
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

#157263

[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]

#157266

Сделать кстати я сделал запустил указал интерфейс

[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]

и не фига не работает хотя как я понял должно.

#157282

Варианты есть?

#157333

Lavrentiev, у вас правила не правильно как-то сработали:

text
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]

копайте где ошиблись

#157343
Lavrentiev написал:
Сделать кстати я сделал запустил указал интерфейс

[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

после я вам напишу готовое решение

#157370

Предисловие:
ОС: 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

Вот такую систему надо сделать!

#157372

Для начала вы сами нарушаете правила портов как вы хотите работать не будет

пример как ниже
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
туды

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 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

#157387

эх... не работает всеровно пример... но суть уловил куда копать. а как быть с поддоменами надо на каждый поддомен IP?

#157391

Проще использовать разные порты на входе например
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

#157561

ну а если на отдельный поддомен делать то надо IP отдельный?

или идея ещё лучше на основный IP разделать на порты, а на порты повесить поддомены а на них уже делать ротацию!

#157564

второй вариант куда интреснее

#157570

Организовать это можно с помощью DNS и NAT

Войдите или зарегистрируйтесь, чтобы ответить.