ELB V3 ip_target_enable / host unreachable
anton-sidelnikov opened this issue · comments
I created a landing-vpc
and a DLB (ELB V3) inside a class A subnet (10.0.0.0
).
There is a peering to the working-vpc
with a class C subnet.
Also the routes in both directions are established.
The DLB (ELB V3) should connect to an ECS inside the working-vpc
.
For this we need the TF parameter: ip_target_enable = true
as documented.
And yes, the DLB (ELB V3) gets created with the correct backend server as IP entry correctly.
Everything looks quite good. But it is just not working. I can not access the ECS from the DLB (ELB V3).
When I deploy the DLB (ELB V3) without parameter ip_target_enable
and without backend server
and then enable IP as backend
by hand and add backend server by hand... it's just working perfectly.
So it seems that there is a difference somewhere inside ip_target_enable
which is not visible inside the GUI.
Here's working solution:
resource "opentelekomcloud_ecs_instance_v1" "name" {
name = "server_backend_test"
image_id = var.image_id
flavor = var.flavor_name
vpc_id = opentelekomcloud_vpc_v1.working_vpc.id
nics {
network_id = opentelekomcloud_vpc_subnet_v1.working_subnet.network_id
}
availability_zone = "eu-de-01"
key_name = var.keypair_name
}
resource "opentelekomcloud_lb_loadbalancer_v3" "loadbalancer_1" {
name = "loadbalancer_landing_vpc"
router_id = opentelekomcloud_vpc_v1.landing_vpc.id
network_ids = [opentelekomcloud_vpc_subnet_v1.landing_subnet.network_id]
availability_zones = ["eu-de-01"]
ip_target_enable = true
public_ip {
id = opentelekomcloud_networking_floatingip_v2.fip_1.id
}
}
resource "opentelekomcloud_lb_listener_v3" "listener_1" {
protocol = "HTTP"
protocol_port = 8080
loadbalancer_id = opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1.id
default_pool_id = opentelekomcloud_lb_pool_v3.pool.id
}
resource "opentelekomcloud_lb_pool_v3" "pool" {
name = "pool_1"
loadbalancer_id = opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1.id
lb_algorithm = "ROUND_ROBIN"
protocol = "HTTP"
session_persistence {
type = "HTTP_COOKIE"
persistence_timeout = "30"
}
}
resource "opentelekomcloud_lb_member_v3" "member" {
name = "member-1"
pool_id = opentelekomcloud_lb_pool_v3.pool.id
address = opentelekomcloud_ecs_instance_v1.name.nics[0].ip_address
protocol_port = 8080
}
resource "opentelekomcloud_networking_floatingip_v2" "fip_1" {}
resource "opentelekomcloud_vpc_v1" "landing_vpc" {
name = "landing_vpc"
cidr = "10.5.0.0/16"
}
resource "opentelekomcloud_vpc_subnet_v1" "landing_subnet" {
name = "landing_subnet"
cidr = "10.5.0.0/16"
gateway_ip = "10.5.0.1"
vpc_id = opentelekomcloud_vpc_v1.landing_vpc.id
availability_zone = "eu-de-01"
}
resource "opentelekomcloud_vpc_v1" "working_vpc" {
name = "working_vpc"
cidr = "192.168.0.0/16"
}
resource "opentelekomcloud_vpc_subnet_v1" "working_subnet" {
name = "working_subnet"
cidr = "192.168.0.0/16"
gateway_ip = "192.168.0.1"
vpc_id = opentelekomcloud_vpc_v1.working_vpc.id
availability_zone = "eu-de-02"
}
resource "opentelekomcloud_vpc_peering_connection_v2" "peering_1" {
name = "opentelekomcloud_peering_1"
vpc_id = opentelekomcloud_vpc_v1.landing_vpc.id
peer_vpc_id = opentelekomcloud_vpc_v1.working_vpc.id
}
resource "opentelekomcloud_vpc_route_table_v1" "table_2" {
name = "peering-table-forward"
vpc_id = opentelekomcloud_vpc_v1.working_vpc.id
subnets = [opentelekomcloud_vpc_subnet_v1.working_subnet.id]
route {
destination = "10.5.0.0/16"
type = "peering"
nexthop = opentelekomcloud_vpc_peering_connection_v2.peering_1.id
description = "peering rule 2"
}
}
resource "opentelekomcloud_vpc_route_table_v1" "table_1" {
name = "peering-table-backward"
vpc_id = opentelekomcloud_vpc_v1.landing_vpc.id
subnets = [opentelekomcloud_vpc_subnet_v1.landing_subnet.id]
route {
destination = "192.168.0.0/16"
type = "peering"
nexthop = opentelekomcloud_vpc_peering_connection_v2.peering_1.id
description = "peering rule"
}
}
If you want to use config with old route table resources please change 2 opentelekomcloud_vpc_route_table_v1
resources to the next ones:
resource "opentelekomcloud_vpc_route_v2" "vpc_route_2" {
type = "peering"
nexthop = opentelekomcloud_vpc_peering_connection_v2.peering_1.id
destination = "10.5.0.0/16"
vpc_id = opentelekomcloud_vpc_v1.working_vpc.id
}
resource "opentelekomcloud_vpc_route_v2" "vpc_route_1" {
type = "peering"
nexthop = opentelekomcloud_vpc_peering_connection_v2.peering_1.id
destination = "192.168.0.0/16"
vpc_id = opentelekomcloud_vpc_v1.landing_vpc.id
}