У меня есть новая установка Xen, на которой я хочу запускать виртуальные машины. Мой хостер предоставил мне два отдельных IP-адреса в разных подсетях, например x.x.x.x и y.y.y.y.
Я хочу настроить pfSense на Xen и назначить ему y.y.y.y, чтобы он служил маршрутизатором и DHCP для других виртуальных машин, давая им адреса в подсети 192.168.0.0/16. Возможно ли это сделать? Как мне настроить сеть на Xen для этого?
Я настроил пересылку пакетов в sysctl
net.ipv4.ip_forward = 1
и теперь pfsense может пинговать и трассировать ресурсы в Интернете. Но очевидно, что он недоступен из Интернета по его ip y.y.y.y
Чтобы уточнить, x.x.x.x и y.y.y.y оба являются общедоступными IP-адресами? поэтому вы будете использовать x.x.x.x в качестве общедоступного IP-адреса, к которому вы можете получить доступ извне, но вы хотите заблокировать доступ к Интернету y.y.y.y?
Хотя здесь это немного оффтоп, я бы посоветовал (если у вас 2 nics) создать связанный канал, чтобы у вас была некоторая избыточность с вашими 2 общедоступными IP-адресами.
Для вашей внутренней стороны, где вы хотите обеспечить «маршрутизацию» (это шлюз nat?) И dhcp, вам, вероятно, следует использовать частный IP-адрес. вам нужно, чтобы они были в одной сети и с двумя IP-адресами, у вас не будет ничего для других ваших виртуальных машин.
Однако на ваш конкретный вопрос ответ - да, вы можете это сделать. когда вы настраиваете pfsense, есть инструмент настройки, который задаст вам несколько вопросов о вашей сети. если вы используете vm ovf, то в «примечаниях» к vm вы узнаете, как его настроить. независимо от того, просто пройдите через веб-интерфейс или вопросы командной строки. укажите свой внешний IP-адрес, внутреннюю подсеть (192.168.0.0/16)
При этом по умолчанию pfsense разрешает исходящий нат между вашей LAN и WAN.
Ниже будут показаны все автоматически созданные правила, которые вы можете удалить, если вам нужно их настроить.
go to Firewall -> NAT -> Outbound, and enable AON / Manual Outbound NAT.
примечание: имейте в виду, что в среде xen, если это не изменится, вы ограничены 100 Мбит / с на получаемых вами виртуальных узлах. Я не уверен, что это все еще корпус, потому что я переключился на esxi из-за этого.
Я хотел бы получить разъяснения. Доступен ли ваш x.x.x.x из Интернета? Я вижу, вы упомянули, что можете уйти. Если вы не можете вернуться, это может быть проблема с брандмауэром.
Можете ли вы получить доступ к внутренним (или внешним) интерфейсам откуда угодно? Под этим я имею в виду, можете ли вы вызвать графический интерфейс? Предполагая, что ваша внутренняя сеть находится в пространстве RFC1918, убедитесь, что ваш внутренний интерфейс pfSense также находится в этой же сети. Подтвердите ping и убедитесь, что вы сообщили pfSense, что это ваш внутренний интерфейс. Вы должны иметь возможность перейти к нему с помощью выбранного вами браузера.
Как только вы войдете в графический интерфейс, вы увидите вещи, похожие на домашние маршрутизаторы. Вы можете настроить переадресацию портов и настроить параметры NAT. По умолчанию pfSense выполняет NAT во внутренней сети, но без перенаправления портов.
Я все еще не понимаю, есть ли у вас внешний доступ? Если вы можете выйти из окна pfSense и проверить связь с внутренней сетью, при условии, что вы не коснулись NAT, он должен работать. Не могли бы вы подробнее рассказать о своей текущей конфигурации? Вы не можете использовать y.y.y.y в качестве внутреннего интерфейса (если вы, возможно, не используете вспомогательный интерфейс, с которым ваш lan может разговаривать, и nat, чтобы y.y.y.y, но это немного смешно)
LAN (192.168.1.0/24) -> pfSense Internal (192.168.1.254) -> NAT -> pfSense External (x.x.x.x) -> Интернет.
обратный трафик будет разрешен только на основании правил вашего входящего брандмауэра и переадресации портов.
чтобы помочь вам, можете ли вы сделать следующее:
из вашего pfSense, вставьте ваш ping на google.com из вашего pfSense, вставьте ping на одну из ваших внутренних LAN-машин
обязательно отредактируйте свой публичный IP :)
Предполагая, что у вас есть только один сетевой интерфейс на этой физической машине, вам придется немного поиграть с маршрутизацией и межсетевым экраном. Это потому, что одна сетевая карта фактически должна будет взаимодействовать с 3 разными сетями: 1. Ваш провайдер; 2. Ваш год является маршрутизатором pfSense / gw для локальной сети; 3. Внутренняя подсеть 192.168.0.0/16, обращенная к локальной сети. Вы можете посмотреть vtun (Debian / Ubuntu) для создания виртуальных сетей.
Вы заявили, что: «pfsense может пинговать и трассировать ресурсы в Интернете. Но очевидно, что он недоступен из Интернета по своему ip y.y.y.y». Это указывает на проблемы с маршрутизацией на сервере x.x.x.x, который, как я полагаю, является физической машиной с виртуальной машиной Xen (и pfSense). Пожалуйста, проверьте, можете ли вы связаться с y.y.y.y из x.x.x.x. Проверьте, настроена ли правильная маршрутизация на хосте и виртуальной машине (если они могут связаться с другими другими) через tcp / udp (пригодится netcat, а также tcpdump, если вам нужно посмотреть, что там происходит). Netstat -rn
дает вам маршрутизацию. Если маршрутизация отсутствует, вы можете сделать это с помощью: ip add route add y.y.y.y dev ethX
Еще одна вещь, которую нужно проверить, - это брандмауэр на вашей машине x.x.x.x. Проверьте, пропускает ли он трафик. "net.ipv4.ip_forward = 1" - это одно, а другое - фильтрация iptables или политика ОТКАЗАТЬ.
Чтобы вся связь работала правильно, каждая машина должна знать, как связаться с другой. Поэтому проверьте различные комбинации и, если вы где-то застряли, проверьте следующий переход, т.е. если виртуальная машина pfSense не может подключиться к Интернету, проверьте, есть ли у нее запись маршрута по умолчанию (скорее всего, через x.x.x.x) и знает ли вообще, как добраться до x.x.x.x.
Эти ссылки, касающиеся маршрутизации, могут быть полезны: http://www.lartc.org/lartc.html так же как http://www.policyrouting.org/iproute2.doc.html