Imvedansh commented on issue #10445:
URL: https://github.com/apache/cloudstack/issues/10445#issuecomment-2770056502

   Hey @btzq ,
   Yes, I agree — the best approach would be to deploy Suricata as a dedicated 
VM, rather than embedding it in the VR, especially since IPS/IDS workloads are 
resource-intensive and could negatively impact VR performance.
   
   Here’s how I envision the high-level setup:
   
   1)Provision a VM within CloudStack with sufficient CPU and memory resources.
   2)Install a Linux OS on the VM and set up Suricata.
   3)Update Suricata rules to match the tenant's security requirements.
   4)Deploy Suricata in inline (transparent bridge) mode — effectively bridging 
traffic between the VR and the instance network.
   5)Configure two NICs on the Suricata VM:
   ->One connected to the upstream (northbound) side (VR/public/internet).
   ->One connected to the downstream (southbound) side (tenant VM subnet).
   6)Enable IP forwarding and bridging on the Suricata VM to allow seamless 
traffic flow.
   
   For logging and alerting, tenants can integrate Suricata with their own SIEM 
solutions using Suricata's EVE JSON output or socket API.
   ..
   
   However, as far as I understand, CloudStack does not currently support 
native, persistent, tenant-defined static routes inside VPCs. This presents a 
key challenge:
   
   ->If the VR is rebooted or re-deployed (due to scaling, upgrade, or failure 
recovery), any manually configured static routes 
      (used to steer traffic through the Suricata VM) will be lost.
   ->This means that while Suricata as a middlebox VM works in principle, the 
setup is fragile and depends on:
       -Manually re-adding static routes after every VR recreation, or
       -Automating the process using cloud-init, userdata, or an external 
automation script.
   
   Now,
   To make this more robust, we could explore a solution to implement 
persistent, user-defined static routing inside a VPC, possibly by extending the 
VR’s functionality.
   This could either:
    - Be scoped as a separate feature (or project) to enable route persistence 
per tenant, or
    - Be considered as an extension of this project, making 
Suricata-as-a-Service inside CloudStack VPCs more reliable and easier 
      to adopt.
   - That said, designing and implementing a persistent static routing 
mechanism inside CloudStack would likely involve 
      significant development effort and may need deeper discussion with the 
community regarding scope, feasibility, and design.
   
   Please let me know your thoughts and any question about this.
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to