2015-12-22 2 views
0

Я относительно новичок в Openstack, и я не могу найти, как маршрутизировать 2 подсети одной и той же Сети.OpenStack как маршрутизировать 2 подсети одной и той же сети

Моя топология: 1. 1 Сеть, 2. 2 подсети в сети. sub1 (192.168.10.0/24) и sub2 (192.168.20.0/24)

Экземпляр в первом sub1 не может видеть другой экземпляр в sub2.

Q1: Это нормально? Почему подсеть не маршрутизируется по умолчанию?

Я пытаюсь добавить маршрутизатор, но маршрутизатор возможен только между внутренней сетью и общедоступной сетью, но не между подсетями.

Q2: Какое оптимальное решение для связи между двумя экземплярами в 2 подсетях одной и той же сети?

Многие благодарны заранее.

ответ

0

ОК, после некоторых попыток я наконец нашел решение, и я хочу поделиться им с вами.

Во-первых, как сказал Рон выше маршрутизатора, не требуется шлюз для сетей общего пользования.

Для получения точной точности я хочу иметь только одну сеть с подсетями, а не 2 сети.

Решение состоит в том, чтобы иметь маршрутизатор с интерфейсом в каждой подсети И, чтобы добавить информацию о маршрутизации в каждую подсеть, используя функции «host_routes».

Стек Тепло делает это следующим образом:

subnet_public: 
    type: OS::Neutron::Subnet 
    properties: 
     name: PublicSubnet 
     cidr: 192.168.11.0/24 
     network: { get_resource: network_public } 
     allocation_pools: [ { "start" : '192.168.11.1', "end" : '192.168.11.253'}] 
     dns_nameservers: [ 'xx.xx.xx.xx', ...] 
     enable_dhcp: True 
     gateway_ip: 192.168.11.254 
     host_routes: [ { 'destination' : '192.168.12.0/24', 'nexthop' : '192.168.11.254'}, { 'destination' : '192.168.13.0/24', 'nexthop' : '192.168.11.254'}] 
     ip_version: 4 
     # tenant_id: { get_param: tenantId } 
    subnet_appli: 
    type: OS::Neutron::Subnet 
    properties: 
     name: ApplicationSubnet 
     cidr: 192.168.12.0/24 
     network: { get_resource: network_public } 
     allocation_pools: [ { "start" : '192.168.12.1', "end" : '192.168.12.253'}] 
     dns_nameservers: [ 'xx.xx.xx.xx', ...] 
     enable_dhcp: True 
     gateway_ip: 192.168.12.254 
     host_routes: [ { 'destination' : '192.168.11.0/24', 'nexthop' : '192.168.12.254'}, { 'destination' : '192.168.13.0/24', 'nexthop' : '192.168.12.254'}] 
     ip_version: 4 
     # tenant_id: { get_param: tenantId } 
    subnet_database: 
    type: OS::Neutron::Subnet 
    properties: 
     name: DatabaseSubnet 
     cidr: 192.168.13.0/24 
     network: { get_resource: network_public } 
     allocation_pools: [ { "start" : '192.168.13.1', "end" : '192.168.13.253'}] 
     dns_nameservers: [ 'xx.xx.xx.xx', ...] 
     enable_dhcp: True 
     gateway_ip: 192.168.13.254 
     host_routes: [ { 'destination' : '192.168.11.0/24', 'nexthop' : '192.168.13.254'}, { 'destination' : '192.168.12.0/24', 'nexthop' : '192.168.13.254'}] 
     ip_version: 4 
     # tenant_id: { get_param: tenantId } 
    # 
    # Router 
    router_nat: 
    type: OS::Neutron::Router 
    properties: 
     name: routerNat 
     admin_state_up: True 
     external_gateway_info: { "network": 'ext-net' } 
    gateway_itf: 
    type: OS::Neutron::RouterInterface 
    depends_on: [ network_public, subnet_public, router_nat ] 
    properties: 
     router_id: { get_resource: router_nat } 
     subnet: { get_resource: subnet_public } 
    router_appli_itf: 
    type: OS::Neutron::RouterInterface 
    depends_on: [ network_public, subnet_appli, router_nat ] 
    properties: 
     router_id: { get_resource: router_nat } 
     subnet: { get_resource: subnet_appli } 
    router_database_itf: 
    type: OS::Neutron::RouterInterface 
    depends_on: [ network_public, subnet_database, router_nat ] 
    properties: 
     router_id: { get_resource: router_nat } 
     subnet: { get_resource: subnet_database } 
+0

Более явный документ находится здесь: http://xuhanp.tumblr.com/post/107088879052/openstack-neutron-subnet-extra-routes-usage – jmcollin92

1

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

У вас есть две сети: 192.168.10.0/24 и 192.168.20.0/24. Для того, чтобы либо сеть могла взаимодействовать с другой сетью, вам нужен по крайней мере один маршрутизатор между ними. Один маршрутизатор является самым простым, поскольку он не будет включать протоколы маршрутизации или статически определенные маршруты.

+0

Спасибо за ваш ответ, но я хочу, чтобы маршрут между 2 подсеть 1 сети (а не между 2 подсеть 2 сети). Кстати, вы правы, маршрутизатор предназначен не только для маршрутизации в общедоступной подсети, но и является решением с добавлением host_routes. Ср полный ответ выше. – jmcollin92