Виртуализация SmartOS с одним общедоступным IP-адресом

можно создать сценарий входа в систему, на который каждый диск укажет на различный сервер.

logon.bat

СЕТЕВОЕ ИСПОЛЬЗОВАНИЕ G: \SERVER01\SHARE/PERSISTENT:NO

СЕТЕВОЕ ИСПОЛЬЗОВАНИЕ J: \SERVER02\SHARE/PERSISTENT:NO

4
задан 9 October 2013 в 21:33
3 ответа

Да, вы можете !

Общая справка по SmartOS:

Google рассматривает SmartOS как синоним Solaris. Всегда пользуйтесь поиском на smartos.org; не используйте Google напрямую. #SmartOS на Freenode и список рассылки также являются бесценными ресурсами.

Проблемы безопасности при настройке одного IP-адреса в центре обработки данных:

В SmartOS обычно есть интерфейс администратора (частный / LAN) и общедоступный (общедоступный / WAN). Я понимаю, что это может быть невозможно в вашем развертывании, но это ' Очень важно знать, что виртуальные хосты KVM будут запускать незащищенный VNC в интерфейсе администратора. Вам нужно будет защитить это с помощью брандмауэра или изменения конфигурации.

Что вам нужно сделать, так это настроить зону, которая будет действовать как брандмауэр, шлюз, балансировщик нагрузки и т. Д. Эта зона брандмауэра будет иметь два сетевых интерфейса, один в интерфейсе администратора, один в глобальной сети. Вы можете разместить всех своих гостей на виртуальном коммутаторе, что будет похоже на подключение их к физическому.

Поскольку у вас только один IP-адрес, который я бы попытался исправить, это может быть сложно настроить в зоне , если вы испортите конфигурацию сети, вы можете потерять доступ к машине. Хотя обычно это не рекомендуется, вам может потребоваться запустить брандмауэр в глобальной зоне.

  1. Чтобы гости могли выходить в Интернет, настройте NAT: http: //wiki.smartos. service / website в папках sites-available / sites-enabled. В конфигурация NGINX со SmartOS по умолчанию минималистична и будет не содержат эти папки.

  2. Для входящих служб tcp / udp: Вы можете использовать встроенный межсетевой экран (см. man fwadm) в зоне вашего брандмауэра или используйте HAProxy, если хотите виртуальные хосты. (Вы можете использовать только HAProxy и исключить NGINX)

8
ответ дан 3 December 2019 в 02:21

I mostly agree with Jeffrey's answer.

However I wrote the post you mentioned for that specific purpose (running smartos with 1 public IP) so here my suggestions if you applied my procedure.

http/https traffic:

  • Install nginx in a zone or kvm guest (let's say ip 10.0.0.2 port 80)
  • Add the port redirection in /etc/ipf/ipnat.conf (or NAT section in /opt/custom/share/svc/smartos_setup.sh)

    rdr e1000g0 0/0 port 80 -> 10.0.0.2 port 80 tcp 
    
  • Add the firewall rule in /etc/ipf/ipf.conf (or FW section in /opt/custom/share/svc/smartos_setup.sh)

    pass in quick on e1000g0 from any to e1000g0/32 port=80
    pass in quick on e1000g0 from any to 10.0.0.2 port=80
    
  • Reload ipfilter and ipnat rules:

    $ ipf -Fa -f /etc/ipf/ipf.conf
    $ ipnat -FC -f /etc/ipf/ipnat.conf
    
  • Once you can connect to the nginx instance, you can configure nginx to be a reverse proxy in front of other web servers on others hosts, see: http://wiki.nginx.org/NginxHttpProxyModule#proxy_pass

ssh traffic:

Same as above with port 2222 redirecting to 10.0.0.2:22, 2223 for 10.0.0.3:22 for instance:

rdr e1000g0 0/0 port 2222 -> 10.0.0.2 port 22 tcp
rdr e1000g0 0/0 port 2223 -> 10.0.0.3 port 22 tcp

if needed, be sure root login is enabled on the zone /etc/ssh/sshd_config (PermitRootLogin yes)

4
ответ дан 3 December 2019 в 02:21

Я установил воспроизводимую суть для этого здесь . Это настройка на github с использованием permalinks, и я держу его в курсе, когда связываюсь с хорошими изменениями, так что он не должен никуда идти в ближайшее время.

Сначала, диаграмма того, что вы хотите сделать:

                +------------------------------+
                |             Host             |
+----------+    | +--------+        +--------+ |
| Internet +------+ Ext IF +--------+ Int IF | |
+----------+    | | e1000g |        | gw0    | |
                | +--------+        +---+----+ |
                |                       |      |
                |  +--+-----------+     |      |
                |  |Z1|      VNIC1+-----+      |
                |  +--------------+     |      |
                |  +--------------+     |      |
                |  |Z2|      VNIC2+-----+      |
                |  +--------------+     |      |
                |  +--------------+     |      |
                |  |Z3|      VNIC3+-----+      |
                |  +--+-----------+            |
                |                              |
                +------------------------------+

В общем, сначала вы должны понять, что не существует одного способа установить nat'd внутреннюю сеть на SmartOS, но есть несколько вещей, которые должны быть решены каждым из методов. Вот обзор этих вещей:

  1. Должна быть создана внутренняя сеть, и должна быть задействована глобальная зона, так как она имеет контроль над внешним интерфейсом и ip.
  2. Вы должны решить, использовать эфирный шлейф или нет. Есть "за" и "против" обоих вариантов, но они довольно незначительны. В любом случае, глобальной зоне нужен внутренний ip, который действует как шлюз.
  3. NAT с ipnat невероятно проста и может быть прочитано о здесь... то же самое верно и для правил брандмауэра с ipf. Основная предпосылка здесь в том, что внутренняя переадресация портов использует rdr, а внешнее portmapping (шлюз отображает исходящий порт с внутреннего устройства на другой внешний порт и отслеживает его состояние, так что возвращаемый пакет попадает во внутренний ip, который должен) достигается с помощью строк map.
  4. Убедиться, что ваша конфигурация постоянна во время перезагрузок - это последняя проблема в SmartOS. Самый простой способ - это использование SMF для запуска скрипта, который настраивает ваш брандмауэр и nat правила.
5
ответ дан 3 December 2019 в 02:21

Теги

Похожие вопросы