SSVM: 'allow from' private IP in other SSVMs if the public IP is in allowed internal sites cidrs - #7288
Conversation
…internal sites cidrs This adds the private IP of other SSVM to /var/www/html/copy/.htaccess if the IP is in secstorage.allowed.internal.sites
|
SonarCloud Quality Gate failed. |
Codecov Report
@@ Coverage Diff @@
## 4.18 #7288 +/- ##
============================================
+ Coverage 12.69% 12.93% +0.24%
- Complexity 8655 8941 +286
============================================
Files 2716 2715 -1
Lines 256117 256120 +3
Branches 39927 39940 +13
============================================
+ Hits 32503 33128 +625
+ Misses 219482 218833 -649
- Partials 4132 4159 +27
... and 128 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
|
@blueorangutan package |
|
@harikrishna-patnala a Jenkins job has been kicked to build packages. It will be bundled with SystemVM template(s). I'll keep you posted as I make progress. |
|
Packaging result: ✔️ el7 ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 5658 |
|
@blueorangutan test centos7 kvm-centos7 qemuEv keepEnv |
|
@harikrishna-patnala a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
|
Trillian Build Failed (tid-6241) |
Co-authored-by: dahn <daan.hoogland@gmail.com>
|
SonarCloud Quality Gate failed. |
|
@blueorangutan package |
|
@shwstppr a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result: ✔️ el7 ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 6059 |
|
@blueorangutan test |
|
@DaanHoogland a [SF] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
|
Trillian test result (tid-6555)
|
|
@blueorangutan package |
|
@DaanHoogland a [SF] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el7 ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 6494 |
|
@blueorangutan test |
|
@DaanHoogland a [SF] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
|
[SF] Trillian test result (tid-7116)
|
|
verified in a 3-zone env, merging |
cool, thanks for testing @DaanHoogland |
|
Dear @weizhouapache, I couldn't find any information why this route is necessary: In my setup, both the management server cluster and all System VMs are behind a reverse proxy. I use the secstorage.allowed.internal.sites setting to whitelist these reverse proxies. The reverse proxy serves multiple purposes: WAF, rate-limiting abusive users, DoS/DDoS protection, SSL/TLS termination, etc. It is deployed in the public network, directly connected to the System VMs. However, when the SSVM creates a route via the private (management) network, this results in asymmetric routing, as requests come from the public network but replies are sent via the private NIC. Could you clarify the rationale behind enforcing this route via the private NIC? Is it strictly necessary for the SSVM to behave this way? I appreciate your time and insights. Best regards, |
|
@daviftorres Did you question the route or the configuration (/var/www/html/copy/.htaccess) ? This PR did not touch the routes inside SSVM.
this is by design I think. If it does not work in your environment, you can unset |
|
My question was about the route. I can confirm when I set |
|
@weizhouapache First time I set |
@daviftorres |
|
Yes, I did. But my reverse proxies are on the public network, and since a route is being created that forces traffic through the management network, the issue happens. I’m still trying to understand why that route is added. I know SysVMs aren’t officially meant to be behind a reverse proxy, but I’ve been doing it successfully for six months. Everything works fine except for this routing issue, which affects copying between zones. If you want I can elaborate on it for better official support. |
I think routes are configured based on that internal traffic goes through the private network, while public traffic goes through the public network. it makes sense for me.
You can configure internal cidrs which does not contain the reverse proxy IP. I guess the route might not be an issue then. |
|
I have this issue reported here: #5678 Since SSVM serves client's requests for downloading and uploading ISOs, Templates, etc on the Public network: As you can see, the traffic that comes from the Public is responded via the Private (Management) network, breaking communication. What am I miss understanding from the feature provided by the setting |
@daviftorres IMHO, there is no issue with routes, or |
|
You are absolutely right. The two topics that I am bringing to discussion are directly related but not the same. In #11020, I proposed to make the In this conversations here, I am trying to understand why the route is created because I do not understand its purpose and it ends up breaking my setup (when using But they both compliment each other. |










Description
This PR fixes #5678
Normally SSVMs in multiple zones communicate via the public IPs.
In some cases, the public IPs are in the internal allowed sites. There are some routes in SSVMs which causes the communication to use the private IPs. We need to add the private IP of other SSVM to /var/www/html/copy/.htaccess if the public IP is in secstorage.allowed.internal.sites
Types of changes
Feature/Enhancement Scale or Bug Severity
Bug Severity
Screenshots (if appropriate):
Without this PR, SSVM contains only public IP of another SSVM
With this PR, it has both private and public IP of another SSVM
The SSVM has route to all internal allowed sites via private nic, for example (secstorage.allowed.internal.sites=10.0.0.0/16)
How Has This Been Tested?