Home » International » Russian » Один внешний ip и множество контейнеров
Один внешний ip и множество контейнеров [message #38189] |
Thu, 26 November 2009 23:09 |
f1ps
Messages: 8 Registered: February 2008
|
Junior Member |
|
|
Здравсвуйте!
Сейчас у сервера, на котором крутятся четыре контейнера, соответсвтенно, четыре внешних ip адреса. Внутри каждого контейнера стандартный набор программ веб-серверы, базы данных, почтовые сервера итд. Все это хозяйство довольно хорошо функционирует, но меня напрягает переплачивать за каждый ip. Получается, приходится раскошеливаться при запуске каждой новой виртуальной машины.
Есть ли какие-то способы оставив один IP и дальше продолжать пробрасывать сервисы на одинаковых портах в разные машины? Должны быть прочитал на днях заметку на хабре, в которой говорилось о стаде в 100-500 контейнеров.
|
|
|
|
|
Re: Один внешний ip и множество контейнеров [message #38193 is a reply to message #38192] |
Fri, 27 November 2009 04:39 |
RXL_
Messages: 147 Registered: July 2009 Location: Moscow/Russia
|
Senior Member |
|
|
Понятие виртуальных хостов www - это уровень приложения и файрволом и маршрутизацией не решается.
Рекомендую поставить на главную ноду nginx - он будет исполнять роль reverse proxy. В нем настроить все необходимые виртуальные хосты. Для передачи запросов на Апач можно использовать команду proxy_pass. Nginx отличает крайне малое потребление ресурсов.
http://wiki.nginx.org/Main
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|
Re: Один внешний ip и множество контейнеров [message #38203 is a reply to message #38194] |
Fri, 27 November 2009 20:28 |
RXL_
Messages: 147 Registered: July 2009 Location: Moscow/Russia
|
Senior Member |
|
|
Не путайте порты и протоколы!
Nginx - веб-сервер и работает с протоколом HTTP, а порт можете задать любой и не один.
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|
Re: Один внешний ip и множество контейнеров [message #38607 is a reply to message #38606] |
Wed, 06 January 2010 23:07 |
RXL_
Messages: 147 Registered: July 2009 Location: Moscow/Russia
|
Senior Member |
|
|
Тогда поищите подходящий прокси...
Только не представляю себе, как это возможно: конекчусь по SSH к хосту, но волшебным образом оказываюсь подключенным к другому (!) хосту из некоторого набора да еще чтобы угадать с первого раза.
Для немультиплексируемых протоколов протоколов придется задавать разные порты для разных VE. перенаправлять можно через iptables/nat на HN.
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
[Updated on: Wed, 06 January 2010 23:11] Report message to a moderator
|
|
|
Re: Один внешний ip и множество контейнеров [message #38917 is a reply to message #38189] |
Fri, 19 February 2010 13:02 |
Zend
Messages: 5 Registered: February 2010
|
Junior Member |
|
|
Не хотел плодить темы, поэтому спрошу здесь.
А фильтрацию пакетов для контейнеров, которые "за НАТом" (которые "серые" адреса имеют), можно как-то производить iptables на HN, не используя для каждого контейнера свой iptables ?
Нужно, например, на HN открыть доступ только с определенных адресов на порты хх, которые проброшены на "локальный" адрес одного из контейнеров - реально ли это сделать?
[Updated on: Fri, 19 February 2010 14:59] Report message to a moderator
|
|
|
Re: Один внешний ip и множество контейнеров [message #38918 is a reply to message #38917] |
Fri, 19 February 2010 15:56 |
sHaggY_caT
Messages: 144 Registered: August 2008 Location: Moscow, Russian Federatio...
|
Senior Member |
|
|
Zend wrote on Fri, 19 February 2010 08:02 | Не хотел плодить темы, поэтому спрошу здесь.
А фильтрацию пакетов для контейнеров, которые "за НАТом" (которые "серые" адреса имеют), можно как-то производить iptables на HN, не используя для каждого контейнера свой iptables ?
|
Да, можно.
Zend wrote on Fri, 19 February 2010 08:02 |
Нужно, например, на HN открыть доступ только с определенных адресов на порты хх, которые проброшены на "локальный" адрес одного из контейнеров - реально ли это сделать?
|
Да, это возможно сделать. Пример скрипта можно найти в wiki:
http://wiki.openvz.org/Setting_up_an_iptables_firewall
IT-outsource for UNIX servers,
http://ha-systems.ru
|
|
|
|
Re: Один внешний ip и множество контейнеров [message #38928 is a reply to message #38919] |
Sat, 20 February 2010 11:36 |
sHaggY_caT
Messages: 144 Registered: August 2008 Location: Moscow, Russian Federatio...
|
Senior Member |
|
|
Zend wrote on Fri, 19 February 2010 15:46 | Я так понимаю, там PRE\POST-ROUTING не используется вообще?
Т.е., принцип работы немножко другой, чем в http://wiki.openvz.org/NAT ?
Я прошу прощения, опыт работы с Linux и iptables небольшой (работал раньше только с FreeBSD\ipfw), поэтому вопрос может глуповат чуть..
|
Если честно, для меня то, как на самом деле работает сеть в OpenVZ, остается, во многом, загадкой.
Если использовать venet, а не veth (venet более предпочтителен при работах на больших нагрузках, veth поддерживает mac-адреса), то можно увидеть вот такие интересности:
[root@vemail03 /]# ip r ls
192.0.2.0/24 dev venet0 scope host
169.254.0.0/16 dev venet0 scope link
default via 192.0.2.1 dev venet0
[root@vemail03 /]#
При этом, конечно, 192.0.2.1 нет где-либо (ни на venet-интерфейсе в VE0, ни в контейнере)
venet он как-бы точка-точка, но выглядит чуть по-другому.
Для того, что бы из контейнера был доступен внешний мир через venet, не нужно вообще ничего, кроме разрешенных, через ядро, форвардов (разумеется, на ноде должны быть прописаны роуты, и все подряд форварды из секьюрности разрешать нельзя, см. статью в wiki quick start)
Вот veth выглядит немного более по-человечески Он цепляется в обычный бридж с настоящим интерфейсом и себе подобными в VE0, и настраивается один-в-один как Xen, qemu(KVM) виртуалки и вообще linux-bridge
Но, повторюсь, для высоких нагрузок лучше venet
Для ограничения доступа к контейнеру с ноды я использую FORWARD цепочку и соотвествующие правила. Работает. Есть ли способы лучше, не знаю, хотя хотела бы узнать, но в исходниках ковыряться лень.
IT-outsource for UNIX servers,
http://ha-systems.ru
|
|
|
Goto Forum:
Current Time: Fri Nov 08 23:56:04 GMT 2024
Total time taken to generate the page: 0.04345 seconds
|