Skip to content
This repository has been archived by the owner on Jul 16, 2020. It is now read-only.

ciao-controller: Add External IP Support - HTTPS Api #532

Closed
obedmr opened this issue Sep 6, 2016 · 3 comments
Closed

ciao-controller: Add External IP Support - HTTPS Api #532

obedmr opened this issue Sep 6, 2016 · 3 comments

Comments

@obedmr
Copy link
Contributor

obedmr commented Sep 6, 2016

Implement HTTPS API for Assignment and release of external IPs

@jorgevgut
Copy link
Contributor

Will floating ip support be exposed via an API? This is for future integration with Web UI.

@leoswaldo
Copy link
Contributor

@jorgevgut yes, the idea is that the API will be exposed, we haven't defined the methods to expose yet

@leoswaldo leoswaldo added the P1 label Sep 8, 2016
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Sep 30, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Sep 30, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Sep 30, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Sep 30, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Sep 30, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Oct 3, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Oct 3, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Oct 3, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Oct 3, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
leoswaldo pushed a commit to leoswaldo/ciao that referenced this issue Oct 4, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
@leoswaldo leoswaldo changed the title networking: Add Floating IP Support networking: Add Floating IP Support - HTTPS Api Oct 17, 2016
@obedmr obedmr modified the milestones: Sprint 4, Sprint 3 Oct 17, 2016
@amyleeland amyleeland added Do First and removed ready labels Oct 24, 2016
@obedmr obedmr removed their assignment Oct 24, 2016
@amyleeland amyleeland added ready and removed Do First labels Oct 24, 2016
mcastelino pushed a commit to mcastelino/ciao that referenced this issue Oct 26, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
mcastelino pushed a commit to mcastelino/ciao that referenced this issue Oct 26, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
@amyleeland amyleeland assigned kaccardi and unassigned leoswaldo Oct 31, 2016
@kaccardi
Copy link
Contributor

The OpenStack APIs for floating IPs don't map well to the ciao external IP architecture. We will not be implementing the OpenStack APIs, and will instead provide a set of ciao specific APIs.

@kaccardi kaccardi changed the title networking: Add Floating IP Support - HTTPS Api ciao-controller: Add External IP Support - HTTPS Api Oct 31, 2016
mcastelino pushed a commit to mcastelino/ciao that referenced this issue Nov 2, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
mcastelino pushed a commit to mcastelino/ciao that referenced this issue Nov 9, 2016
The methods assignPubIP and releasePubIP were missing their implementation.
In order to implement these functions these code relies the corresponding
iptables chains are in the cnci agent.

To assign public IP:
  - Assign the public ip to the iface of the CNCI Agent
  - For incoming traffic we are forwarding of all traffic coming to the
public IP assigned to the cnci node to the private IP address of instance.
we do this by making a DNAT. (ciao-floating-ip-pre chain)
  - For outgoing traffic we are masking the traffic by implementing a nat
rule for SNAT, so the outgoing traffic from the instance will go to the
cnci node and then to the destitation as if it were coming directly from
the instance. (ciao-floating-ip-post chain)
  - Every time we add a new rule, we insert it at the beggining of its
corresponding defined chain.

To release public IP:
  - Remove the public ip from the iface of the CNCI Agent
  - Verify the existing rule for the given IPs (internal and external)
exist in each chain (ciao-floating-ip-pre and ciao-floating-ip-post),
and then delete them, if they don't exist then we just notify.

Fixes ciao-project#532

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants