Bounce (network)
Encyclopedia
A BNC is a piece of software that is used to relay traffic and connections in computer network
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

s, much like a proxy
Proxy server
In computer networks, a proxy server is a server that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server...

. Using a BNC allows a user to hide the original source of the user's connection, providing privacy
Privacy
Privacy is the ability of an individual or group to seclude themselves or information about themselves and thereby reveal themselves selectively...

 as well as the ability to route traffic through a specific location. A BNC can also be used to hide the true target to which a user connects.

IRC

One common usage is over Internet Relay Chat
Internet Relay Chat
Internet Relay Chat is a protocol for real-time Internet text messaging or synchronous conferencing. It is mainly designed for group communication in discussion forums, called channels, but also allows one-to-one communication via private message as well as chat and data transfer, including file...

 (IRC) via a BNC running on remote server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

s. In such an environment, where it is very easy to ascertain a user's IP address
IP address
An Internet Protocol address is a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing...

 a BNC may help to hide the original connection source, as well as providing the opportunity for fun "vhosts" or "virtual hosts". The use of a vhost does not conceal the connection any better, but merely adds a statement as the hostname.

Many BNCs remain connected to an IRC server in the event the client should disconnect from the Internet. Often state changes are tracked so that they may be relayed to the client upon reconnection. Some implementations opt to store all messages sent across the network that the client would have normally received, and send them upon the clients reconnection; this is often considered to be much too resource dependent for commercial hosting services to provide. Other logging features and bot
IRC bot
thumb|409px|right|An IRC bot performing a simple task.An IRC bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user...

 like functions may be included with various implementations but are not standard.

Example:
User A logs onto IRC directly and appears as USER!user@users.reverse.dns
User A logs onto IRC indirectly through a BNC and appears as USER!user@bnc.net

Software

A list of IRC bouncer software.
  • Bip IRC Proxy maintains a persistent connection and shows a backlog when you reconnect.
  • bnc is the original bouncer.
  • ezbounces features include password protection, remote administration, logging and listening on multiple ports.
  • Irssi
    Irssi
    Irssi is an IRC client program for Linux, Microsoft Windows, and Mac OS X. It was originally written by Timo Sirainen, and released under the terms of the GNU General Public License in January 1999.-Features:...

    supports SSL connections, IPv6 and logging. It's extensible by modules and scripts in Perl
    Perl
    Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

    , Tcl
    Tcl
    Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...

     and C++
    C++
    C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

    .
  • JBouncer written in Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    . Supports logging.
  • muh bnc is a smart and versatile irc-bouncing tool that will also go on IRC as soon as it's launched, guarding or attempting to get your nick.
  • psyBNC is said to be the oldest and most well-known IRC bouncer. It is extremely easy to use, runs on Linux and became popular on FreeBSD, supports IPv4, IPv6, SSL, logging, multiple users and networks etc. Although psyBNC is like any other IRC proxy, it is often installed on compromised systems by the attacker.
  • shroudBNC supports SSL connections and offers a web interface.
  • ZNC
    ZNC
    ZNC is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC...

    supports SSL connections, IPv6 and logging and offers a web interface. It's extendible by modules and scripts in C++
    C++
    C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

    , Python
    Python
    The Pythonidae, commonly known simply as pythons, from the Greek word python-πυθων, are a family of non-venomous snakes found in Africa, Asia and Australia. Among its members are some of the largest snakes in the world...

    , Perl
    Perl
    Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

     and Tcl
    Tcl
    Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...

    .

FTP

BNCs are also often used for FTP
File Transfer Protocol
File Transfer Protocol is a standard network protocol used to transfer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server...

, again to either hide the user
User (computing)
A user is an agent, either a human agent or software agent, who uses a computer or network service. A user often has a user account and is identified by a username , screen name , nickname , or handle, which is derived from the identical Citizen's Band radio term.Users are...

 and server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

 from each other and to route traffic through a specific location. FTP bouncers can be divided into two different categories, entry and traffic.

Entry bouncer acts as a gateway
Gateway (telecommunications)
In telecommunications, the term gateway has the following meaning:*In a communications network, a network node equipped for interfacing with another network that uses different protocols....

 to the server, but it does not hide the existence of the actual server. Entry bouncers, like cubnc can be used in multi-server setup for easy access to each server and load balancing
Load balancing (computing)
Load balancing is a computer networking methodology to distribute workload across multiple computers or a computer cluster, network links, central processing units, disk drives, or other resources, to achieve optimal resource utilization, maximize throughput, minimize response time, and avoid...

. This removes the need to select which FTP server to login to, when trying to access the server farm
Server farm
A server farm or server cluster is a collection of computer servers usually maintained by an enterprise to accomplish server needs far beyond the capability of one machine. Server farms often have backup servers, which can take over the function of primary servers in the event of a primary server...

.

Traffic bouncers relay traffic through the host they are installed on, and when used, it appears as the bouncer is actually the FTP server thus hiding the real location of the server completely. Multiple traffic bouncers can be installed parallel, in order to balance traffic load across different links. Most elaborate bouncers can even bounce secure SSL/TLS
Transport Layer Security
Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet...

connections.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK