DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.

DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
The code has been merged into ACS master, so we will be working from that now...
github.com/cloudops/cs_palo_alto
=> 'palo_alto' branch is a work in progress and is the current status of the integration
=> 'master' branch is a point in time of the cloudstack master branch which the 'palo_alto' branch is working from (i pull in changes periodically)
Install instructions below...
Current state of the integration:
WORKING!!!
IN PROGRESS!!!
The goal of this project is to enable basic integration of Palo Alto’s firewall products into the Apache CloudStack 4.x platform.
By leveraging CloudStack extension points, this project will allow configuring a Palo Alto firewall as a service provider to override services typically offered by CloudStack’s virtual routers, such as Firewall, NAT & Port forwarding.
Proper orchestration will be developed so that calling the CloudStack APIs for these services will be transparently routed to the corresponding services on the Palo Alto firewall.
This document is intended to keep the community abreast with the functionality being added with the integration of Palo Alto firewalls as a service provider.
Palo Alto API docs are included at the end of this document.
Here is a basic diagram showing some of the technical detail for the Palo Alto (PA) firewall will handle the CloudStack (CS) networks:
Compile the code with the 'nonoss' flag.
Examples (more in UI flow below):
1 IP Range in CS:
Gateway:172.30.0.1, Netmask:255.255.255.0, IP Range:172.30.0.100-172.30.0.199, VLAN:untagged
=> You would configure an IP on AE1.9999 with something like: 172.30.0.254/24
2 IP Ranges in CS:
Gateway:172.30.0.1, Netmask:255.255.255.0, IP Range:172.30.0.100-172.30.0.199, VLAN:3030
Gateway:172.30.1.1, Netmask:255.255.255.0, IP Range:172.30.1.100-172.30.1.199, VLAN:3031
=> You would configure an IP on AE1.3030 with something like: 172.30.0.2/24
=> You would configure an IP on AE1.3031 with something like: 172.30.1.2/24
Pre-configure the Palo Alto firewall
Initial setup of the Palo Alto interfaces (in this case Aggregate Ethernet)
Initial Public and Private interface config on Palo Alto (does not have to be Aggregate Ethernet)
Initial configuration of CloudStack
Configure service providers
Add Palo Alto as a service provider
Enable the Palo Alto service provider
Add a new Palo Alto network service offering
Enable Palo Alto network service offering
Setup and use a Palo Alto network
Add a new network using the Palo Alto network service offering
Launch a VM on the newly created network
The network details for the newly created VM
Results on the Palo Alto: Sub-interfaces have been created for the Public IP and the Private Gateway
A Source NAT rule has been created to link the sub-interfaces
Egress Firewall Rules
CloudStack config
Resulting Security Policy on the Palo Alto
Ingress Firewall Rules
CloudStack config (for a specific IP)
Resulting Security Policy on the Palo Alto
Port Forwarding Rules (Destination NAT)
View IP addresses for your network.
Acquire an IP
Configure a Port Forwarding rule for this new IP
Resulting Port Forwarding rule on the Palo Alto
Static NAT Rules
View IP addresses for your network
Acquire an IP
Enable Static NAT
Associate the Static NAT rule with a VM
Resulting Static NAT rule on the Palo Alto
CloudStack API commands
#### Palo Alto firewall commands addExternalFirewall=1 deleteExternalFirewall=1 listExternalFirewalls=1 addPaloAltoFirewall=1 deletePaloAltoFirewall=1 configurePaloAltoFirewall=1 listPaloAltoFirewalls=1 listPaloAltoFirewallNetworks=1
I do not intend to use any code outside of CloudStack. I will be using the Palo Alto APIs which is documented in:
XML-API-5-1.0-RevA.pdf
XML_API_Training.pdf
Here is the result of the tests without additional detail: palo_alto_tests_without_logging.txt
Here is the result of the tests with additional detail: palo_alto_tests_with_logging.txt
There is a flag in the unit tests that can be used to turn the detail on and off.
Because this plugin requires communication with a 3rd party API, the detailed view of the tests will show a play-by-play of the API commands being run and their results.
Here is a presentation which was given at the CloudStack Collaboration Conference: CS_PA_Integration.pptx