Skip to content
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

Binding onto interface #2

Open
matthewfcarlson opened this issue Oct 4, 2017 · 9 comments
Open

Binding onto interface #2

matthewfcarlson opened this issue Oct 4, 2017 · 9 comments

Comments

@matthewfcarlson
Copy link

It seems like the binding onto an interface is broken. I can specify the interface alias through compartment but it allows traffic over other interfaces because they're in the same compartment (adding new compartments is currently broken using netsh).

@ghost
Copy link

ghost commented Oct 4, 2017

Thanks for the feedback Matthew. Yeah, I can see how that's confusing. I tried to 'help' with this help text :)

"- specifies the interface alias of the compartment to use for all sockets"

The -compartment param isn't for actually binding to a specific interface, but to the compartment which that interface is apart of. I have another option in another fork (ctsperf_updates) where I expose -ifIndex, where you can restrict all traffic over a specific IP interface.

The reason why we ended up exposing compartments through an interface alias, versus the raw compartment ID, is that the customers who asked for it at the time found that was much simpler in actual deployment.

Thanks!

@jsporbert
Copy link

I am trying to use the tool and run it remotely using powershell to automate network performance test among a lot of servers. Unfortunately, I am not able to do so...Although I see that a ctstraffic process exists on the sender side, I am not able to see anything on the receiver side...it looks like the tool needs a cmd or powershell windows to run correctly...IS there anyway to run it remotely and out of an interactive sessions ? would be great to do so and get an objetc out of it with the different performance measure.

Thanks

@ghost
Copy link

ghost commented Oct 25, 2018

      I am trying to use the tool and run it remotely using powershell to automate network performance test among a lot of servers. Unfortunately, I am not able to do so...Although I see that a ctstraffic process exists on the sender side, I am not able to see anything on the receiver side...it looks like the tool needs a cmd or powershell windows to run correctly...IS there anyway to run it remotely and out of an interactive sessions ? would be great to do so and get an objetc out of it with the different performance measure.

Thanks

Hi there. We have many clients who launch ctsTraffic from Powershell - it definitely does not need a cmd shell :)

If the receiver is not receiving anything, the most common configuration issue is the firewall does not have an ALLOW rule to allow inbound traffic. I would recommend creating an ALLOW rule based off the destination TCP port (by default it's 4444). Can you try that and verify?

Thanks!

@jsporbert
Copy link

jsporbert commented Oct 25, 2018 via email

@ghost
Copy link

ghost commented Oct 25, 2018

Oh, now I see the issue. Yes, Invoke-Command requires a "script block" (note: I'm not a Powershell expert :)

This works (creating a script block with the curly braces):

Invoke-Command {.\ctsTraffic.exe -Listen:* -ServerExitLimit:8 -consoleverbosity:1 -statusfilename:test.log}

Thanks!

@jsporbert
Copy link

jsporbert commented Oct 25, 2018 via email

@ghost
Copy link

ghost commented Oct 26, 2018

Hi there. Can you copy here the command line you are giving? What are you seeing on the server side? Do you see connections working from the client side?

Thanks!

@jsporbert
Copy link

Hi Keith,
Sorry I was on Holiday...Hard to copy past now as the script stayed at my customer but this is what I tried to achieved...I want inside one script to test network performance among several servers (a 10 nodes cluster indeed)..So I need to run those tests in parallel.
What I did so far is I created a script for the receiver side and one for the sender side. Both scripts take an IP address as argument (the receiver one) and will send traffic on the standard 4444 port.
To be able to run the test in parallel, I use the invoke-command command with the as-job parameter...This is where it is not working at all althoug seems to works well in an interactive PS shell.

@ghost
Copy link

ghost commented Nov 12, 2018

Thanks. Without seeing the script, I don't know what the issue might have been. But you shouldn't need to start them up in parallel - you can add as many -target options as you want on the client. So one client can target all servers in a single run :)

That will round-robin between names (and/or round-robin between the resolved IP addresses)

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants