Ну, это будет длинный ответ на ваш вопрос. Для начала, я полагаю, вы понимаете, что это внешняя/внутренняя сеть по OpenStack Нейтрон и имеют рабочую установку (с уш-ех/внешний мост, а)
Так первая часть для SNATing
Первая вещь для простота, следующие действия в администратора арендатора/пользователя администратора с помощью Dashboard
1- создать одну внутреннюю сеть
2- Создать маршрутизатор
3- Добавить ВМ/экземпляр внутренней сети
4- Добавить интерфейс шлюза подсети на маршрутизаторе
5- Теперь в качестве администратора, создание внешней сети.
Внешняя сеть может быть создана только администратором.
6 Теперь добавьте эту внешнюю сеть в качестве интерфейса маршрутизатора шлюза
Так что теперь у вас есть один VM во внутренней сети. Subnet интерфейс шлюза на маршрутизатор и маршрутизатор шлюза интерфейса от внешней сети
Вот это от OpenStack точки зрения
Вот он список команд, чтобы сделать то же самое с CLI
$ Источник keystone_admin
Здесь keystone_admin - это мой файл RC
Выполните следующие команды для включения ping и ssh на виртуальной машине, а также из внешней сети напрямую без ключевой пары
$ сверхновой --no-кэша secgroup-надстройка правило ICMP по умолчанию -1 -1 0.0.0.0/0
$ Нова --no-кэш secgroup-надстройка правило по умолчанию TCP 22 22 0.0.0.0/ 0
$ нейтрон сетчатой создать external_network --shared --router: внешний = True
$ нейтрон подсеть создать external_network --name external_subnet --allocation-бассейн старт = 192.168.122.2, конец = 192.168. 122.20 --disable-dhcp - gateway 192.168.122.1 192.168.122.0/24
$ neutron net-create internal_network
$ нейтронная подсеть-create internal_network --name internal_subnet -allocation-pool start = 10.10.1.2, end = 10.10.1.20 --disable---gateway DHCP 10.10.1.1 10.10.1.0/24
$ нейтрон нетто-лист
$ нейтрон подсеть список
$ нейтрон маршрутизатор-маршрутизатор создать
$ нейтрон маршрутизатор-интерфейс, добавить маршрутизатор internal_subnet
$ нейтронного маршрутизатора-лист
$ нейтрон маршрутизатор-интерфейс, добавить маршрутизатор internal_subnet
$ нейтрон маршрутизатор-шлюз-маршрутизатор набор external_network
Запуск ВМ из горизонта (его длинная команда из CLI)
Здесь я предположил, что внешняя сеть 192.168.122.0/24 и внутренняя сеть 10.10.1.0/24
Итак, у вас есть готовая настройка с точки зрения Openstack для SNAT. Теперь нам нужно добавить физический интерфейс (ethx) в BR-EX, чтобы проверить его.
Так все, что вам нужно сделать, это добавить физический интерфейс на мосту и изменить «ifcfg» файлы
Ниже приведены шаги для RHEL 6.5- (Для других, вы должны будете смотреть на net- поиск чего-то, как добавить физический интерфейс к OVS моста в Ubuntu, и т.д ..)
$ кд/и т.д./sysconfig/сети-скрипты/
в этом каталоге создать эти два файла, если не уже настоящее другое изменить существующее-
$ VI ifcfg-уш-ех
УСТРОЙСТВО = уш-ех
DeviceType = ОВС
ТИП = OVSBridge
BOOTPROTO = статическая
IPADDR = например, 192.168.122.153
NETMASK = например. 255.255.255.0 для нашего случая - 192.168.122.0/24 для внешней сети
GATEWAY = например. 192.168.122.1
ONBOOT = да
$ VI ifcfg-ethx
DEVICE = ethx
TYPE = OVSPort
DeviceType = не OVS
ONBOOT = нет
NM_CONTROLLED = да
BOOTPROTO = статическая
OVS_BRIDGE = уш-ех
теперь работают
$ рестарт сетевой службы
Просто, чтобы быть уверенным, что установка и работает
$ ifup br-ex
$ ifup eth2
также делать
$ овс-ofctl шоу уш-ех
он должен отображать "ethx" на выходе
Так что теперь у вас есть работающая настройка SNAT. Вы можете попробовать следующее в VM/например, из консоли в Dashboard-
$ пинг 8.8.8.8
Теперь DNAT-
запустить следующие команды
$ нейтрон floatingip создать external_network
Это создает плавающий IP и отображает "идентификатор" (floatingip_id)
$ нейтрон порт-лист
Из этого списка, принеси "ID" из виртуальной машины (port_id_of_instance)
$ нейтрон floatingip свяжите
И BAM теперь вы имеете DNAT готовы.
Чтобы проверить DNAT, попробуйте сделать что-то вроде
$ пинг
от внешней сети машины
Я пытался держать его прямой, но конечно это требует своего рода понимания OpenStack Neutron и Linux !!: Р :)
Вы можете обратиться to-https://openstack.redhat.com/Networking_in_too_much_detail
Спасибо большое Piyush, что было очень полезно. По внешней сети вы имеете в виду общественную сеть, верно? – NewStacker