-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generating cert-file and key-file? #9
Comments
Hi, @richb-hanover! If you want to run
These requirements described here - https://support.apple.com/en-us/HT210176 So in case you can't obtain trusted certificate from any available CA such as letsencrypt, e.g. you plan to setup your own network-quality server for internal use or development purposes, you must create such certificate yourself. That includes creating local CA certificate for signing and adding that CA certificate to macOS keychain as trusted certificate. For convenience, you can use the following scripts that uses Steps are:
Key and certificate you need to provide in
|
BTW, do we really need SSL/TLS for network quality tests? SSL noticeably increases CPU usage. That's a big problem for small/embedded devices such as routers. Recently I've tried to run Go version of network-quality server on my ASUS router based on MIPS 32bit CPU. SSL computations on that device decreases network-quality server throughput by 10 or more times, so server is far behind ability to saturate network connection and unusable in such scenario. Is it possible to add server/client option to run without SSL, is it prohibited by the specification? What about using UDP in addition to TCP/HTTP? BTW, if you plan just to benchmark your private network using simple client/server tools, better look at https://github.com/udhos/goben, it is straightforward, implemented in Go and can use TCP or UDP and does not require SSL/TLS. |
@afedotov Thanks for the link to your two scripts. I will take a look at how these might melded into a Docker container that runs the server. This will still be a challenge because of my desire to have a Dockerfile that can run at a generic IP address (public or private) where the other server config options (Apache, nginx) aren't available, but I now have something to play with. |
@afedotov - you wrote:
Yes, I think so. A few thoughts:
Thanks again |
@richb-hanover - you wrote:
Pay attention to
|
@richb-hanover - you wrote:
Yeah. Same thoughts about availability of RPM server right on the router. I've already tried that. To be honest I have not a fresh device. It is ASUS RT-N66U with single-core 32-bit Broadcom MIPS CPU and 1Gbps LAN / 450Mbps 802.11n:
Software server running directly on that router can't saturate network more than to 250Mbps using UDP protocol. With TCP saturation it is around 200Mbps. Tested with |
Thanks for these suggestions and data points. I'll start to think about them when I return from holiday.
Probably not (I believe an RPi has a gbit ethernet.) However, I'm most interested in examining Wi-Fi now. Wi-Fi is the next frontier of "badly bloated home routers." SQM techniques (cake, fq_codel) have pretty much conquered bad responsiveness for dreadful ISP links varying from 3mbps DSL to normal cable and fiber speeds, and autorate is looking as if it can handle hour-to-hour (or even second-to-second) varying speeds on cable, cell phones, etc. Thanks again. |
Regarding running without SSL/TLS: One issue is that we rely on HTTP/2's multi-stream facility to measure latency on the load-generating connections. With HTTP/1 this is not possible. And, unfortunately there are not many HTTP/2 implementations that allow to run without TLS. |
I'm not suggesting that the client run the test without the HTTP/2. I simply want the test to proceed if the (otherwise well-formed) SSL info is self-signed when the |
BTW, something similar is already committed to the Go client's main branch. However for now it is not an option and hardcoded to always skip verifying of insecure TLS certificates: network-quality/goresponsiveness@3b385ce macOS shipped version of |
Checking in from the client side to see if there is anything that I can do to help on this issue! |
@cpaasch @randall Just noting this message because we talked about it yesterday. |
@cpaasch @randall I'm sorry I missed the meeting earlier this week. I still have questions about self-signed certificates.
Thanks. |
@richb-hanover As you know, the client (by default) supports self-signed certs. Do you think that this should be optional and behind a flag? |
I think the go-client works with self-signed cert's; do the macOS or iOS clients? |
That's correct. I was just asking whether the go-client should support it as an option. It currently always allows connections to servers with self-signed certs. |
The go-client's behavior is correct (provide correct measurements, no matter who signs the certs). An option is not warranted, nor do I believe it is even worth noting (in the output) that the server's certificate is self-signed. This is network monitoring software, not credit card data. It's hard to imagine how such a tool could be misused. (An evil ISP doing a MITM with their own RPM Test server?) Thanks. |
I'm going to close this in favor of #20 |
I would like to create a Dockerfile for the server side that I can run on a VPS out on the internet or a Raspberry Pi in my home. This would work like the Dockerfile that's in the Go RPM client repo to produce an easily-created server instance for testing.
To make the implementation easier, it would help for this repo to include the specification of the cert-file and the key-file required by
networkqualityd
. For example, the go implementation's README simply provides this information:Many thanks!
The text was updated successfully, but these errors were encountered: