Saturday, January 29, 2011

Is it a bad idea to run voice and data over the same bonded T1?

Currently we have a T1 which we use for both our voice and data.
We are looking at getting a bonded T1 but have been told by the provider that it would be a bad idea to run both voice and data on a bonded T1 (Multilink PPP) and that we should either:

A) Put in a bonded T1 for data only and have a 2nd non-bonded T1 for voice, or
B) Put in a 2nd T1 for data only and make the current T1 voice only

We don't use the voice as much and the reason we looked into a bonded T1 is for more internet speed, but obviously we still need to keep voice services with good quality and reliability. Unfortunately T1 is the only thing available to us since all the lines here are copper.

I am not familiar with bonded T1s. Tried googling about bonded T1s and having both data and voice on it but couldn't come up with anything helpful. So my question is, will we lose service quality by getting a bonded T1 and putting both voice and data on it?

  • By voice, do you mean 1.) you're using a MUX to split channels out of the current T1 for voice, or 2.) you've got VOIP as part of your data traffic?

    1. I don't think there would be any difference whether your link was 1 T1 or a MPPP link, as long as all of your MUX and termination equipment supported MPPP. You'd have to confirm that it would work though, so that may be what the mean. Maybe your existing equipment doesn't and they're trying to save you the cost of an upgrade.

    2. If it's all data (VOIP is just data) then it doesn't make a lick of difference what the link is. As long as you're giving priority to the VOIP, you could be using T1, T3, dial-up, cable modems, ham radio, ISDN, carrier pigeons, smoke signals - you just want to give priority to VOIP and ensure that you don't fill the pipe. Of course, you do also need to concern yourself with latency, jitter, etc - but those factors are independent of what the pipe is (although some will be less suitable.)

    Nate Pinchot : Unfortunately I don't know the exact answer to what voice means in this scenario since it is managed by the provider. They send it across the wire and then we have X amount of standard analog lines that we plug into our PBX. I suspect the correct answer is #2 and they probably just want us to spend more money. I spoke with the service provider a few minutes ago and they said they could make the scenario work but they wouldn't guarantee voice quality. Understandably the business group doesn't like that answer so we are probably sticking with a single T1 for now.
    mfinni : In scenario 2, I don't see how you could double the available bandwidth and have worse performance compared to what you have now. Are you having problems now? If not, then I don't see how more bandwidth could hurt you - assuming you don't anticipate an increase in voice usage. If you are seeing problems, then more bandwidth would help, not hurt, regardless. It might not help as much as separating them into different links, but proper QOS would help as well and you can do that on any link.
    mfinni : Get more details from the provider. Don't let them snow you.
    Evan Anderson : +1 - VoIP over smoke signals... heh heh.
    From mfinni

Is there a vmware appliance for software development?

I use Assembla.com and it does everything I need, SVN, bug tracking, ticketing... the only thing I don't like is that the server is not mine, I'm putting all my company property on a server in the coulds. I was wondering if there is an virtual machine to download and put on my server to serve all Assembla does?

  • Hmmm, i can't reach assembla.com right now - seems to be down =)

    I don't know of a VM that contains all these tools, but i'm sure it'll be easy to set one up really fast.

    Another question: Do you think it's such a good idea? I would pick an old pentium 3 from ebay and set it up as dev-server (but remember to make backups, and backups and BACKUPS!).

    Otherwise you'd have a vm running all the time without actually using it all the time. And even a P3 (or whatever you like) with a fast disk or raid controller may be faster than your VM.

    Alternative: rent a virtual Server (Here in Europe: 3 GHz, 1024MB RAM, 30GB disk - 8€/Month).

    Ali Shafai : Main point about assembla is all those tools are connected. there is a lot of setting up I can save if there is a vm image ready. and I already have a VMware server machine and all I have to do is to add this one. 8€/Month sounds great, which company is this?
    lajuette : netcup - a company from karlsruhe/germany. But there are a lot of other comanies with almost equal prices an maybe virtualization technologies better suited for your needs. Hav you searched the VMWare Appliance Marketplace? http://www.vmware.com/appliances/
    Chris Thorpe : Bleh to setting up a cheap old PC as a dev server. Horrible idea. These things are the bane of IT supports life when you're 5 years down the line and you find what has become a 'critical production' server crammed under someone's desk. If you already run a virtual environment within your organisation, VMs are absolutely the way to go in this kind of scenario.
    lajuette : Ali didn't say in what kind of environment he will be using this server. And do you think it's better to run a VM of a dev server instead of a real server? He didn't mention the existing VM host in the first place either. Compared to a service with unexplained downtimes an old machine seems a very good idea to me. A modern and stable (virtual-)machine is the best way to go if you're setting up a dev server in a company. But if you don't have the resources or need the server for yourself a small machine will/has to be enough. And i'm not talking about cheap, but reliable old hardware =)
    Chris Thorpe : Points taken. I wouldn't agree in any professional scenario, but if he's doing home dev with little budget, an old server would be a viable option.
    From lajuette
  • You may want to have a look around the turnkey linux website. When I was looking for an easy way to evaluate an integrated bug tracking/SCM server I found the TRAC and Redmine appliances interesting, if not quite what we needed at the time. Your mileage may vary however.

    Oh, and if you're not absolutely wedded to SVN, you may want to check out Mercurial for your SCM, you'll never want to go back to SVN after trying it. Distributed revision control is a breath of fresh air after years of 'tranditional' source control and if you use TortoiseSVN, then TortoiseHg will be a breeze.

    From Mark Booth

Can i safely block all ports on my sever

I have a web server running pleks and get attacked a lot every day. I configured a firewall, and there are some predefined services such as www, and ftp, etc.

I am planning to block all the ports except for the www port and the PLESK port. When I need ftp or ssh access for example i will open the ports in PLESK and then start to work.

Is this a good thing to do or are there some downsides on doing this.

There are some ports I am not sure of, such as SMTP,POP3,IMAP, DNS. Can i close these ports or is there no need to do so.

  • You will probably be ok, but you might be better off leaving a hole for your IP, just in case something goes wrong. You might also want to make sure you don't block connections from 127.0.0.1, as that is the localhost IP and may be necessary for internal services to connect to themselves to keep things working properly (it depends on what type of stuff you have running on the system).

    As far as the ports you mention, here is what those are, you can close them if you don't use them:

    SMTP: Email (Server to server or incoming) (needed to accept email if this server receives email for your domain)

    POP3: Email clients (needed if this server has email clients that connect to it)

    IMAP: Email clients (needed if this server has email clients that connect to it)

    DNS: Domain Name services (needed if this server acts is the primary for the domains it hosts)

    Good luck,

    --jed

    Saif Bechan : Thank you for the quick response. This was the exactly my guess but i asked just to be sure. I have services running so my internal ports are not blocked. One question tho. "leaving a hole for your IP". Do you mean the ip of the server, or do you mean the remote system I use to log in to the server. The IP's of the remote machines I use are always different, so that is no option for me. And can you explain the point of leaving a hole for the server itself. Can the server connect to itself?
    Jed Daniels : I was referring to the IP of the system you are connecting from at the time you block all the ports. Just in case something goes wrong when you make the edits you want to be able to get back in to fix them. Yes, servers can connect to themselves, and many do (for example, if you have a web server running an application that uses mysql or some other database, the web-server will access the database over a network connection to and from 127.0.0.1). This is why I also recommend making sure you don't accidentally cut off this type of traffic. Cheers, --jed
  • A prudent approach would be to deny all connections by default, and only open up ports when they are demonstrated to be needed for some valid purpose.

    Beware of being too unresponsive to user requests, though: make sure that when any user asks for a port to be opened that the user's request is heeded promptly, visibly, and seriously for all users to see, otherwise you'll just end up with a userbase working around the block list by tunnelling through the ports you do open.

    From bignose
  • why not open ssh for your IP range only.. that way if plesk crashes you aren't locked out..

    Plus you can use ssh keys to make it even more secure and deny password logins.

    From Mike

How to properly remove disk from PERC 6/i RAID controller ?

I have a Dell T710, coming with PERC 6/i RAID controller. The current raid has 2x500 GB hard drives (with the OS), and 6x1000 GB hard drives (in RAID-6, currently empty). I would like to take one 1000 GB disk physically out to keep as an immediate spare in case of a crash, and configure the remaining 5x1000 GB in a single VD RAID-6.

This is all nice and clean and works, until I realized that the display on the machine reports the lack of the 8th disk as an error. It's marked as error, but appears to be a warning, since the machine is fully functional.

My question is: what is the best way to keep one disk as a spare out of the array? should I disassemble the disk from the cradle and insert the empty cradle in the array ? Or should I just silence the error in the display in some way (how?). I know that what I am doing sounds pretty strange, but here is academia and having a spare disk available could take weeks. Better to have one ready in my drawer for any emergency.

  • Putting that spare disk in your drawer doesn't make too much sense. Instead, leave it in the server and mark it as a hot spare. Instructions here. Then, you'll have a OS mirror and a RAID5 array for data and if any of those disks fails, the controller will automatically rebuild with the hot spare.

    As for why you are getting an error about the last disk, you'll have to provide more detail. What is the error? Have you already rebuilt all of the RAID sets so that disk is not currently configured in a RAID set?

    Stefano Borini : I see two problems with the hot spare. The first is that it makes the setup too complex for the environment I'm in (if someone has to put the hands on the server). The second is that I want effectively a cold spare to prevent any type of stress (electric or mechanic) on it. I am rebuilding the array right now. It claims "E1812" on the display, about the missing disk. I assume it's probably a good idea to go for a hot spare as you said, but I've never used this kind of medium irons, so I am quite improvising here. Any more hint very welcome on this regard.
    Insyte : Yeah, you're overthinking this. Hot spares are good. Cold spares are bad. Take icky2000's advice and mark your extra drive as a hot spare. It's a simple configuration, far simpler than expecting someone unfamiliar with your config to get the RAID array to properly rebuild onto a new drive. Then when a drive *does* fail, they have an immediate safety net until they can figure out how to replace a drive.
    : E1812 is an information only "error" - just means no disk is there. Just rebuild the RAID set without it, acknowledge the "alert" and proceed. I understand that you don't have experience with server hardware but you're shooting down good advice with reasons that don't make sense. Put the disk back in and make it a hot spare.
    From

IIS not listening over external network, all other traffic working

Hello there,

I have a very odd situation, I have a server (let's call it X) running 2008 R2 with two NIC's in it, one is connected to the work domain and has a subnet of 192.168.10.0/24 the other is connected to a ADSL connection and has a subnet of 192.168.1.0/24. The server has IIS installed.

On the ADSL connection I have setup a dynamic dns and port forwarding to allow external HTTP, HTTPS, FTP and RDP connections. FTP and RDP are working fine however neither HTTP or HTTPS are working at all.

I can browse the websites by going to localhost on the machine, the HTTP and HTTPS ports appear as "Filtered" when I try to scan them using PortQueryUI and browsers respond with a "Server took too long to load or was not responding" error.

This was working fine just a few days ago, Windows firewall is disabled I don't have any software firewall on it. And I'm really lost.

Any help would be great.

  • Can you try assigning the external IP to IIS and then try accessing the Web site using http://ip_address. Let's see if that works. If that fails, port 80 is blocked on that ip. http://localhost will always. Try netstat -ano and check if you are actually getting connected on port 80 to your external ip.

    Beuy : Hi Vivek thanks for the response, I'm not 100% certain I understand what you are saying but here are my results: 1. Bind IP to external IP 2. iisreset 3. http://externalipaddress = Failed server taking too long to respond 4. http://localhost = Success 5.netstat -ano TCP 0.0.0.0:80 0.0.0.0.0 LISTENING 4 (PID 4 is system) not sure what the deal with that is. This server also has MS SQL2008 and Reporting Services Installed.
    Vivek : when you did netstat -ano, did you see an entry of external ip corresponding to port 80? Basically, when you say "server taking long time to respond" means ultimately it will timeout. IIS is not getting the request and hence the timeout. I will also check IIS logfile to verify if the request actually reached IIS.
    Beuy : I didn't see any entries for the external IP. Which logfile should I be checking? (Sorry bit of an IIS newbie)
    Vivek : IIS logfiles are stored in C:\inetpub\logs\LogFiles. If this is your first site, a folder W3SVC1 will be created to store the logfile.
    Beuy : No sign of the external IP in the logfile.
    Vivek : so as thought, the request is not reaching IIS at all. You have the port blocked. check the firewall again. Make sure you have HTTP enabled on the external NIC.
    Beuy : The thing is that I'm 99.99999% certain that the firewall is not blocking the request. When I do a port scan I get a bizarre situation, the first time around it lists it as being Filtered, the second time it's not listening. Every other port is working fine.
    Beuy : Found the problem, there was an IP address conflict and port 80 was going to a different machine, thanks for the help again Vivek
    Vivek : Nice you found the solution :-)
    From Vivek

Using systeminfo to get the OS Name

I need to find the flavor of Windows that is running using a batch file that will run on anything from Windows NT to Windows 7. I'm using a method based on this page with some minor changes.

Systeminfo gives the flavor of Windows that is running. Is there any authoritative list of names that can be returned? If so where would I find the list?

My intention is to do something like:

 winVer=Unknown

 rem NT doesn't have systeminfo
 ver | find "Windows NT" > nul
 if %errorlevel%==0 set winVer=WinNT

 if exist %SystemRoot%\system32\systeminfo.exe (
  for /f "delims=: tokens=2" %%v in ('sysinfo ^| find "OS Name"') do (
   set verStr=%%v
  )
  echo %verStr% | find "Windows XP" > nul
  if %errorlevel%==0 set winVer=WinXP
  echo %verStr% | find "Windows Vista" > nul
  if %errorlevel%==0 set winVer=WinVista
  ... etc
 )

Thanks

  • Check this thread: http://stackoverflow.com/questions/1792740/how-to-tell-what-version-of-windows-and-or-cmd-exe-a-batch-file-is-running-on

    WileCau : @Sergey, thanks for the link. Using ver was my first thought but it isn't definitive or consistent enough, e.g. NT returns "Windows NT Version 4.0", XP returns "Microsoft Windows XP [Version 5.1.2600]", Server 2008 returns "Microsoft Windows [Version 6.1.7600]". Using the version number to infer the OS Name can result in ambiguity, e.g. the other thread has results like "Windows Vista or Windows Server 2008". The OS Name from systeminfo tells you exactly which one it is, without the need for interpretation. The link told me about %PROCESSOR_ARCHITECTURE% though, which I also need :) Thanks
    From Sergey

Bash script to create mass series of directories

I need to create a Bash script to go into every user's home folder, seek out a wp-content folder, create a directory uploads under it, and then chmod 0756 uploads.

How do I achieve this?

I imagine I need to use find with a regexp/regex, and then tell it to run another bash script on the results.

  • Something like this should work (I haven't tested it)

    dirs=`find /home -type d -name "wp-content"` 
    
    for dir in $dirs; do
        if [ ! -e $dir/uploads ]; then 
            mkdir $dir/uploads
            chmod 0765 $dir/uploads
        fi
    done
    
    Dennis Williamson : That fails if there's a regular file named "uploads".
    ServerChecker : A space is required after the first bracket and before the next. Doublequotes are probably best around $dir/uploads. I only know this because I tested, got errors, and googled.
    ServerChecker : If we use dirs=$(locate -r 'wp-content$' | grep -i '/home'), it's probably going to run faster than find, I found out. The only catch is that one needs to ensure that updatedb has been run in the past 24 hours.
    Dennis Williamson : @Volomike: `locate` requires the filenames to be in a database that's updated by `updatedb` which is typically run once a day by `cron`. Files and directories that have been created since the last run will be missed by your script if you use `locate`.
    Dennis Williamson : Another problem here is that `find` is recursive and will find directories named "wp-content" below the level you intend. You should use the `-maxdepth` option.
    ServerChecker : In our case, locate is best because it reduces server load and because these wp-content dirs will have been created 4 days ago.
    theotherreceive : @Dennis Yes, you're right on the file called uploads, -e would have been better there. However, there's nothing specified in the question as to the max depth wp-content can reside in
    Dan Andreatta : Instead of using `find`, you can also try `for dir in /home/*/wp-content` ... or similar
  • The above answer is a better one, but here is a primitive, but functional, alternative:

    for i in user1 user2;do mkdir $i/wp-content;chmod 0765 $i/wp-content;done
    

    This assumes you are in the parent directory of all your users, and they are in the same directory.

    This will also fail if there is a file named "uploads", but will continue on.

    Good luck,

    --jed

    Dennis Williamson : You forgot to include the "uploads" directory in your command. You should use `&&` instead of `;` between the `mkdir` and the `chmod`. And what if there are hundreds (or more) users?
    Jed Daniels : All excellent points, although I might not use `&&` because if the directory already exists, I still might want to `chmod` it (not sure, the poster wasn't specific). If there are hundreds of users, I'd probably use the answer from the previous poster, which I mentioned is a better answer. But if there were just a few users, and I wanted to quickly get this out of the way without bothering to create a script, make it executable, then run it, I'd use my admittedly primitive one-liner. Thanks, --jed