tos
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 40
TOS 0.0.0.2
TOS is an operating system kernel that is written in a strictly and statically typed assembly language. more>>
TOS is an experimental operating system kernel which is written in our strictly and statically typed assembly language, TALK.
Today, computers (PCs, cell-phones, etc.) are widely used in the world and their network become one of the indispensable social infrastructures.
Therefore, the importance of ensuring safety of software is commonly-recognized and many programs come to be written in strongly-typed languages (Java, C#, Objective Caml). This is because the program that is written in a strongly-typed language and passes its type-check is ensured not to raise errors at runtime.
However, there is one kind of programs that are never written in typed-languages: Operating systems. For example, existing OSes (e.g., Linux, FreeBSD, Windows XP, Solaris, etc.) are written in C and assembly languages.
One of the reason that OSes were not written in typed-languages is that it is believed that OS facilities, such as memory management, multi-thread management and device drivers, cannot be written in the typed-languages.
To break the mistaken belief, we have developed a statically and strictly typed assembly language, called TALK, and implemented a prototype OS kernel, called TOS, in TALK.
So far, the functionality of TOS is very poor (no user programs, no file systems ...), but we plan to extend TOS to have the same facilities as existing OS kernels.
Enhancements:
- Memory management code was rewritten.
<<lessToday, computers (PCs, cell-phones, etc.) are widely used in the world and their network become one of the indispensable social infrastructures.
Therefore, the importance of ensuring safety of software is commonly-recognized and many programs come to be written in strongly-typed languages (Java, C#, Objective Caml). This is because the program that is written in a strongly-typed language and passes its type-check is ensured not to raise errors at runtime.
However, there is one kind of programs that are never written in typed-languages: Operating systems. For example, existing OSes (e.g., Linux, FreeBSD, Windows XP, Solaris, etc.) are written in C and assembly languages.
One of the reason that OSes were not written in typed-languages is that it is believed that OS facilities, such as memory management, multi-thread management and device drivers, cannot be written in the typed-languages.
To break the mistaken belief, we have developed a statically and strictly typed assembly language, called TALK, and implemented a prototype OS kernel, called TOS, in TALK.
So far, the functionality of TOS is very poor (no user programs, no file systems ...), but we plan to extend TOS to have the same facilities as existing OS kernels.
Enhancements:
- Memory management code was rewritten.
Download (0.017MB)
Added: 2005-10-27 License: GPL (GNU General Public License) Price:
1457 downloads
flow-tools 0.68
flow-tools is a set of programs for processing and managing NetFlow exports from Cisco and Juniper routers. more>>
flow-tools is a set of programs for processing and managing NetFlow exports from Cisco and Juniper routers. The tools included are: flow-capture, flow-cat, flow-dscan, flow-expire, flow-export, flow-fanout, flow-filter, flow-gen, flow-header, flow-import, flow-mask, flow-merge, flow-nfilter, flow-print, flow-receive, flow-report, flow-send, flow-split, flow-stat, flow-tag, and flow-xlate.
Flow data is collected and stored by default in host byte ordera nd the files are portable across every endian architectures.
Commands that utilize the network use a localip/remoteip/port designation for communication. "localip" is the IP address the host will use as a source for sending or bind to when receiving NetFlow PDUs (ie the destination address of the exporter. Configuring the "localip" to 0 will force the kernel to decide what IP address to use for sending and listen on all IP addresses for receiving. "remoteip" is the destination IP address used for sending or the expected address of the source when receiving. If the "remoteip" is 0 then the application will accept flows from any source address. The "port" is the UDP port number used for sending or receiving. When using multicast addresses the localip/remoteip/port is used to represent the source, group, and port respectively.
Flows are exported from a router in a number of different configurable versions. A flow is a collection of key fields and additional data. The flow key is {srcaddr, dstaddr, input, output, srcport, dstport, prot, ToS}. Flow-tools supports one export version per file.
Export versions 1, 5, 6, and 7 all maintain {nexthop, dPkts, dOctets, First, Last, flags}, ie the next-hop IP address, number of packets, number of octets (bytes), start time, end time, and flags such as the TCP header bits. Version 5 adds the additional fields {src_as, dst_as, src_mask, dst_mask}, ie source AS, destination AS, source network mask, and destination network mask. Version 7 which is specific to the Catalyst switches adds in addition to the version 5 fields {router_sc}, which is the Router IP address which populates the flow cache shortcut in the Supervisor. Version 6 which is not officially supported by Cisco adds in addition to the version 5 fields {in_encaps, out_encaps, peer_nexthop}, ie the input and output interface encapsulation size, and the IP address of the next hop within the peer. Version 1 exports do not contain a sequence number and therefore should be avoided, although it is safe to store the data as version 1 if the additional fields are not used.
Version 8 IOS NetFlow is a second level flow cache that reduces the data exported from the router. There are currently 11 formats, all of which provide {dFlows, dOctets, dPkts, First, Last} for the key fields.
8.1 - Source and Destination AS, Input and Output interface
8.2 - Protocol and Port
8.3 - Source Prefix and Input interface
8.4 - Destination Prefix and Output interface
8.5 - Source/Destination Prefix and Input/Output interface
8.9 - 8.1 + ToS
8.10 - 8.2 + ToS
8.11 - 8.3 + ToS
8.12 - 8.5 + ToS
8.13 - 8.2 + ToS
8.14 - 8.3 + ports + ToS
Version 8 CatIOS NetFlow appears to be a less fine grained first level flow cache.
8.6 - Destination IP, ToS, Marked ToS,
8.7 - Source/Destination IP, Input/Output interface, ToS, Marked ToS,
8.8 - Source/Destination IP, Source/Destination Port,
Input/Output interface, ToS, Marked ToS,
The following programs are included in the flow-tools distribution.
flow-capture - Collect, compress, store, and manage disk space for exported flows from a router.
flow-cat - Concatenate flow files. Typically flow files will contain a small window of 5 or 15 minutes of exports. Flow-cat can be used to append files for generating reports that span longer time periods.
flow-fanout - Replicate NetFlow datagrams to unicast or multicast destinations. Flow-fanout is used to facilitate multiple collectors attached to a single router.
flow-report - Generate reports for NetFlow data sets. Reports include source/destination IP pairs, source/destination AS, and top talkers. Over 50 reports are currently supported.
flow-tag - Tag flows based on IP address or AS #. Flow-tag is used to group flows by customer network. The tags can later be used with flow-fanout or flow-report to generate customer based traffic reports.
flow-filter - Filter flows based on any of the export fields. Flow-filter is used in-line with other programs to generate reports based on flows matching filter expressions.
flow-import - Import data from ASCII or cflowd format.
flow-export - Export data to ASCII or cflowd format.
flow-send - Send data over the network using the NetFlow protocol.
flow-receive - Receive exports using the NetFlow protocol without storing to disk like flow-capture.
flow-gen - Generate test data.
flow-dscan - Simple tool for detecting some types of network scanning and Denial of Service attacks.
flow-merge - Merge flow files in chronoligical order.
flow-xlate - Perform translations on some flow fields.
flow-expire - Expire flows using the same policy of flow-capture.
flow-header - Display meta information in flow file.
flow-split - Split flow files into smaller files based on size, time, or tags.
<<lessFlow data is collected and stored by default in host byte ordera nd the files are portable across every endian architectures.
Commands that utilize the network use a localip/remoteip/port designation for communication. "localip" is the IP address the host will use as a source for sending or bind to when receiving NetFlow PDUs (ie the destination address of the exporter. Configuring the "localip" to 0 will force the kernel to decide what IP address to use for sending and listen on all IP addresses for receiving. "remoteip" is the destination IP address used for sending or the expected address of the source when receiving. If the "remoteip" is 0 then the application will accept flows from any source address. The "port" is the UDP port number used for sending or receiving. When using multicast addresses the localip/remoteip/port is used to represent the source, group, and port respectively.
Flows are exported from a router in a number of different configurable versions. A flow is a collection of key fields and additional data. The flow key is {srcaddr, dstaddr, input, output, srcport, dstport, prot, ToS}. Flow-tools supports one export version per file.
Export versions 1, 5, 6, and 7 all maintain {nexthop, dPkts, dOctets, First, Last, flags}, ie the next-hop IP address, number of packets, number of octets (bytes), start time, end time, and flags such as the TCP header bits. Version 5 adds the additional fields {src_as, dst_as, src_mask, dst_mask}, ie source AS, destination AS, source network mask, and destination network mask. Version 7 which is specific to the Catalyst switches adds in addition to the version 5 fields {router_sc}, which is the Router IP address which populates the flow cache shortcut in the Supervisor. Version 6 which is not officially supported by Cisco adds in addition to the version 5 fields {in_encaps, out_encaps, peer_nexthop}, ie the input and output interface encapsulation size, and the IP address of the next hop within the peer. Version 1 exports do not contain a sequence number and therefore should be avoided, although it is safe to store the data as version 1 if the additional fields are not used.
Version 8 IOS NetFlow is a second level flow cache that reduces the data exported from the router. There are currently 11 formats, all of which provide {dFlows, dOctets, dPkts, First, Last} for the key fields.
8.1 - Source and Destination AS, Input and Output interface
8.2 - Protocol and Port
8.3 - Source Prefix and Input interface
8.4 - Destination Prefix and Output interface
8.5 - Source/Destination Prefix and Input/Output interface
8.9 - 8.1 + ToS
8.10 - 8.2 + ToS
8.11 - 8.3 + ToS
8.12 - 8.5 + ToS
8.13 - 8.2 + ToS
8.14 - 8.3 + ports + ToS
Version 8 CatIOS NetFlow appears to be a less fine grained first level flow cache.
8.6 - Destination IP, ToS, Marked ToS,
8.7 - Source/Destination IP, Input/Output interface, ToS, Marked ToS,
8.8 - Source/Destination IP, Source/Destination Port,
Input/Output interface, ToS, Marked ToS,
The following programs are included in the flow-tools distribution.
flow-capture - Collect, compress, store, and manage disk space for exported flows from a router.
flow-cat - Concatenate flow files. Typically flow files will contain a small window of 5 or 15 minutes of exports. Flow-cat can be used to append files for generating reports that span longer time periods.
flow-fanout - Replicate NetFlow datagrams to unicast or multicast destinations. Flow-fanout is used to facilitate multiple collectors attached to a single router.
flow-report - Generate reports for NetFlow data sets. Reports include source/destination IP pairs, source/destination AS, and top talkers. Over 50 reports are currently supported.
flow-tag - Tag flows based on IP address or AS #. Flow-tag is used to group flows by customer network. The tags can later be used with flow-fanout or flow-report to generate customer based traffic reports.
flow-filter - Filter flows based on any of the export fields. Flow-filter is used in-line with other programs to generate reports based on flows matching filter expressions.
flow-import - Import data from ASCII or cflowd format.
flow-export - Export data to ASCII or cflowd format.
flow-send - Send data over the network using the NetFlow protocol.
flow-receive - Receive exports using the NetFlow protocol without storing to disk like flow-capture.
flow-gen - Generate test data.
flow-dscan - Simple tool for detecting some types of network scanning and Denial of Service attacks.
flow-merge - Merge flow files in chronoligical order.
flow-xlate - Perform translations on some flow fields.
flow-expire - Expire flows using the same policy of flow-capture.
flow-header - Display meta information in flow file.
flow-split - Split flow files into smaller files based on size, time, or tags.
Download (0.96MB)
Added: 2006-06-22 License: BSD License Price:
1238 downloads
NRL OLSR 7.7
NRL has implemented a link-state routing protocol oriented for mobile ad hoc networks (MANETs). more>>
NRL has implemented a link-state routing protocol oriented for mobile ad hoc networks (MANETs). NRL OLSR is largely based on the Optimized Link State Routing (OLSR) protocol specification (RFC 3626).
Main features:
- Support for IPv6
- Operational in Windows, MacOS, Linux, and various embedded PDA systems such as Zaurus and PocketPC.
- Full link state topology can be distributed including non-MPR cross links
- A "willingness" attribute for localized MPR activation
- Support for several MPR selection protocols (Classical flooding, NS-MPR, S-MPR, MPR-CDS, and E-CDS)
- Neighbor link quality assessed by a smoothed hysteresis function.
- Many run-time parameters available including: HELLO interval, link state update interval, timeout factors, link quality assessment parameters, MPR willingness, and message TOS
- Configureable debugging verboseness
- Experimental features such as fuzzy-sighted routing and support for Simplified Multicast Forwarding
Enhancements:
- NS-2 support and various bugfixes.
<<lessMain features:
- Support for IPv6
- Operational in Windows, MacOS, Linux, and various embedded PDA systems such as Zaurus and PocketPC.
- Full link state topology can be distributed including non-MPR cross links
- A "willingness" attribute for localized MPR activation
- Support for several MPR selection protocols (Classical flooding, NS-MPR, S-MPR, MPR-CDS, and E-CDS)
- Neighbor link quality assessed by a smoothed hysteresis function.
- Many run-time parameters available including: HELLO interval, link state update interval, timeout factors, link quality assessment parameters, MPR willingness, and message TOS
- Configureable debugging verboseness
- Experimental features such as fuzzy-sighted routing and support for Simplified Multicast Forwarding
Enhancements:
- NS-2 support and various bugfixes.
Download (1.5MB)
Added: 2006-04-25 License: BSD License Price:
1283 downloads
AFROS Live CD
AFROS Live CD is a bootable CD with a small collection of GNU/Linux software, ARAnyM and the AFROS. more>>
AFROS Live CD is a bootable CD with a small collection of GNU/Linux software, ARAnyM and the AFROS. AFROS Live CD boots and runs completely from CD, does not write anything to the harddrive and so is safe to try out. It is meant as a demo version of ARAnyM/AFROS. It is not the dreamed Installation CD of ARAnyM yet (although it could be modified to work so).
The underlying Linux kernel and related software provide the CD autoboot, automatic hardware detection, and support for many graphics cards, sound cards, SCSI and USB devices and other peripherals. ARAnyM plus AFROS provide our familiar and favourite TOS/FreeMiNT/GEM operating environment. Its all integrated seamlessly and after PowerOn boots straight to the Teradesk (GEM desktop).
AFROS Live CD is distributed in the form of a CD ISO image which is the usual way of distributing CDs electronically. The ISO image file can be burnt on a CD-R/RW and so youll get an exact copy of the AFROS Live CD I created on my machine.
AFROS Live CD configuration:
fVDI resolution and/or color depth change: open up the C:FVDI.SYS (double click it and select Edit), locate the "01r aranym.sys mode 800x600x16@72" line, comment it out and uncomment one of the other prepared lines (or just make up your own). Then reboot the AFROS.
The ARAnyM Config GUI is unfinished yet so changes to ARAnyM config must be done outside of ARAnyM in the .aranym/config file. When you quit ARAnyM you should be able to edit the file with one of the supplied GNU/Linux editors (in the future this shouldnt be necessary as I am working on the Config GUI as you read this).
DSL site (AFROS Live CD is based on the DSL) might give you some hints about preserving the changes youve made to the AFROS disk image or ARAnyM configuration (you might also want to read File Restoration -> HowTo in the X11 desktop). Note that this is untested by me and might be dangerous. Try it on your own risk only.
<<lessThe underlying Linux kernel and related software provide the CD autoboot, automatic hardware detection, and support for many graphics cards, sound cards, SCSI and USB devices and other peripherals. ARAnyM plus AFROS provide our familiar and favourite TOS/FreeMiNT/GEM operating environment. Its all integrated seamlessly and after PowerOn boots straight to the Teradesk (GEM desktop).
AFROS Live CD is distributed in the form of a CD ISO image which is the usual way of distributing CDs electronically. The ISO image file can be burnt on a CD-R/RW and so youll get an exact copy of the AFROS Live CD I created on my machine.
AFROS Live CD configuration:
fVDI resolution and/or color depth change: open up the C:FVDI.SYS (double click it and select Edit), locate the "01r aranym.sys mode 800x600x16@72" line, comment it out and uncomment one of the other prepared lines (or just make up your own). Then reboot the AFROS.
The ARAnyM Config GUI is unfinished yet so changes to ARAnyM config must be done outside of ARAnyM in the .aranym/config file. When you quit ARAnyM you should be able to edit the file with one of the supplied GNU/Linux editors (in the future this shouldnt be necessary as I am working on the Config GUI as you read this).
DSL site (AFROS Live CD is based on the DSL) might give you some hints about preserving the changes youve made to the AFROS disk image or ARAnyM configuration (you might also want to read File Restoration -> HowTo in the X11 desktop). Note that this is untested by me and might be dangerous. Try it on your own risk only.
Download (42.6MB)
Added: 2005-12-29 License: GPL (GNU General Public License) Price:
1401 downloads
The Wonder Shaper 1.1a
The Wonder Shaper is a very special network shaper script with a lot of features. more>>
The Wonder Shaper is a very special network shaper script with a lot of features. Works on Linux 2.4 & higher.
Goals
I attempted to create the holy grail:
* Maintain low latency for interfactive traffic at all times.
This means that downloading or uploading files should not disturb SSH or even telnet. These are the most important things, even 200ms latency is sluggish to work over.
* Allow surfing at reasonable speeds while up or downloading
Even though http is bulk traffic, other traffic should not drown it out too much.
* Make sure uploads dont harm downloads, and the other way around
This is a much observed phenomenon where upstream traffic simply destroys download speed. It turns out that all this is possible, at the cost of a tiny bit of bandwidth. The reason that uploads, downloads and ssh hurt eachother is the presence of large queues in many domestic access devices like cable or DSL modems.
Why it doesnt work well by default
ISPs know that they are benchmarked solely on how fast people can download. Besides available bandwidth, download speed is influenced heavily by packet loss, which seriously hampers TCP/IP performance. Large queues can help prevent packetloss, and speed up downloads. So ISPs configure large queues.
These large queues however damage interactivity. A keystroke must first travel the upstream queue, which may be seconds (!) long and go to your remote host. It is then displayed, which leads to a packet coming back, which must then traverse the downstream queue, located at your ISP, before it appears on your screen.
This HOWTO teaches you how to mangle and process the queue in many ways, but sadly, not all queues are accessible to us. The queue over at the ISP is completely off-limits, whereas the upstream queue probably lives inside your cable modem or DSL device. You may or may not be able to configure it. Most probably not.
So, what next? As we cant control either of those queues, they must be eliminated, and moved to your Linux router. Luckily this is possible.
Limit upload speed somewhat
By limiting our upload speed to slightly less than the truly available rate, no queues are built up in our modem. The queue is now moved to Linux.
Limit download speed
This is slightly trickier as we cant really influence how fast the internet ships us data. We can however drop packets that are coming in too fast, which causes TCP/IP to slow down to just the rate we want. Because we dont want to drop traffic unnecessarily, we configure a burst size we allow at higher speed.
Now, once we have done this, we have eliminated the downstream queue totally (except for short bursts), and gain the ability to manage the upstream queue with all the power Linux offers.
Let interactive traffic skip the queue
What remains to be done is to make sure interactive traffic jumps to the front of the upstream queue. To make sure that uploads dont hurt downloads, we also move ACK packets to the front of the queue. This is what normally causes the huge slowdown observed when generating bulk traffic both ways. The ACKnowledgements for downstream traffic must compete with upstream traffic, and get delayed in the process.
We also move other small packets to the front of the queue - this helps operating systems which do not set TOS bits, like everything from Microsoft.
Allow the user to specify low priority traffic (new in 1.1!)
Sometimes you may notice low priority OUTGOING traffic slowing down important traffic. In that case, the following options may help you:
NOPRIOHOSTSRC
Set this to hosts or netmasks in your network that should have low priority
NOPRIOHOSTDST
Set this to hosts or netmasks on the internet that should have low priority
NOPRIOPORTSRC
Set this to source ports that should have low priority. If you have an unimportant webserver on your traffic, set this to 80
NOPRIOPORTDST
Set this to destination ports that should have low priority.
See the start of wshaper and wshaper.htb
Results
If we do all this we get the following measurements using an excellent ADSL connection from xs4all in the Netherlands:
Baseline latency:
round-trip min/avg/max = 14.4/17.1/21.7 ms
Without traffic conditioner, while downloading:
round-trip min/avg/max = 560.9/573.6/586.4 ms
Without traffic conditioner, while uploading:
round-trip min/avg/max = 2041.4/2332.1/2427.6 ms
With conditioner, during 220kbit/s upload:
round-trip min/avg/max = 15.7/51.8/79.9 ms
With conditioner, during 850kbit/s download:
round-trip min/avg/max = 20.4/46.9/74.0 ms
When uploading, downloads proceed at ~80% of the available speed. Uploads at around 90%. Latency then jumps to 850 ms, still figuring out why.
What you can expect from this script depends a lot on your actual uplink speed. When uploading at full speed, there will always be a single packet ahead of your keystroke. That is the lower limit to the latency you can achieve - divide your MTU by your upstream speed to calculate. Typical values will be somewhat higher than that. Lower your MTU for better effects!
A small table:
Uplink speed | Expected latency due to upload
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
So to calculate your effective latency, take a baseline measurement (ping on an unloaded link), and look up the number in the table, and add it. That is about the best you can expect. This number comes from a calculation that assumes that your upstream keystroke will have at most half a full sized packet ahead of it.
This boils down to:
mtu * 0.5 * 10
-------------- + baseline_latency
kbit
The factor 10 is not quite correct but works well in practice.
Your kernel
If you run a recent distribution, everything should be ok. You need 2.4 with QoS options turned on.
If you compile your own kernel, it must have some options enabled. Most notably, in the Networking Options menu, QoS and/or Fair Queueing, turn at least CBQ, PRIO, SFQ, Ingress, Traffic Policing, QoS support, Rate Estimator, QoS classifier, U32 classifier, fwmark classifier.
In practice, I (and most distributions) just turn on everything.
The scripts
The script comes in two versions, one which works on standard kernels and is implemented using CBQ. The other one uses the excellent HTB qdisc which is not in the default kernel. The CBQ version is more tested than the HTB one!
See wshaper and wshaper.htb.
Tuning
These scripts need to know the real rate of your ISP connection. This is hard to determine upfront as different ISPs use different kinds of bits it appears. People report success using the following technique:
Estimate both your upstream and downstream at half the rate your ISP specifies. Now verify if the script is functioning - check interactivity while uploading and while downloading. This should deliver the latency as calculated above. If not, check if the script executed without errors.
Now slowly increase the upstream & downstream numbers in the script until the latency comes back. This way you can find optimum values for your connection. If you are happy, please report to me so I can make a list of numbers that work well. Please let me know which ISP you use and the name of your subscription, and its reputed specifications, so I can list you here and save others the trouble.
Installation
If you dial in, you can copy the script to /etc/ppp/ip-up.d and it will be run at each connect.
If you want to remove the shaper from an interface, run wshaper stop. To see status information, run wshaper status.
KNOWN PROBLEMS
If you get errors, add an -x to the first line, as follows:
#!/bin/bash -x
And retry. This will show you which line gives an error. Before contacting me, make sure that you are running a recent version of iproute!
Recent versions can be found at your Linux distributor, or if you prefer compiling, here:
ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz
<<lessGoals
I attempted to create the holy grail:
* Maintain low latency for interfactive traffic at all times.
This means that downloading or uploading files should not disturb SSH or even telnet. These are the most important things, even 200ms latency is sluggish to work over.
* Allow surfing at reasonable speeds while up or downloading
Even though http is bulk traffic, other traffic should not drown it out too much.
* Make sure uploads dont harm downloads, and the other way around
This is a much observed phenomenon where upstream traffic simply destroys download speed. It turns out that all this is possible, at the cost of a tiny bit of bandwidth. The reason that uploads, downloads and ssh hurt eachother is the presence of large queues in many domestic access devices like cable or DSL modems.
Why it doesnt work well by default
ISPs know that they are benchmarked solely on how fast people can download. Besides available bandwidth, download speed is influenced heavily by packet loss, which seriously hampers TCP/IP performance. Large queues can help prevent packetloss, and speed up downloads. So ISPs configure large queues.
These large queues however damage interactivity. A keystroke must first travel the upstream queue, which may be seconds (!) long and go to your remote host. It is then displayed, which leads to a packet coming back, which must then traverse the downstream queue, located at your ISP, before it appears on your screen.
This HOWTO teaches you how to mangle and process the queue in many ways, but sadly, not all queues are accessible to us. The queue over at the ISP is completely off-limits, whereas the upstream queue probably lives inside your cable modem or DSL device. You may or may not be able to configure it. Most probably not.
So, what next? As we cant control either of those queues, they must be eliminated, and moved to your Linux router. Luckily this is possible.
Limit upload speed somewhat
By limiting our upload speed to slightly less than the truly available rate, no queues are built up in our modem. The queue is now moved to Linux.
Limit download speed
This is slightly trickier as we cant really influence how fast the internet ships us data. We can however drop packets that are coming in too fast, which causes TCP/IP to slow down to just the rate we want. Because we dont want to drop traffic unnecessarily, we configure a burst size we allow at higher speed.
Now, once we have done this, we have eliminated the downstream queue totally (except for short bursts), and gain the ability to manage the upstream queue with all the power Linux offers.
Let interactive traffic skip the queue
What remains to be done is to make sure interactive traffic jumps to the front of the upstream queue. To make sure that uploads dont hurt downloads, we also move ACK packets to the front of the queue. This is what normally causes the huge slowdown observed when generating bulk traffic both ways. The ACKnowledgements for downstream traffic must compete with upstream traffic, and get delayed in the process.
We also move other small packets to the front of the queue - this helps operating systems which do not set TOS bits, like everything from Microsoft.
Allow the user to specify low priority traffic (new in 1.1!)
Sometimes you may notice low priority OUTGOING traffic slowing down important traffic. In that case, the following options may help you:
NOPRIOHOSTSRC
Set this to hosts or netmasks in your network that should have low priority
NOPRIOHOSTDST
Set this to hosts or netmasks on the internet that should have low priority
NOPRIOPORTSRC
Set this to source ports that should have low priority. If you have an unimportant webserver on your traffic, set this to 80
NOPRIOPORTDST
Set this to destination ports that should have low priority.
See the start of wshaper and wshaper.htb
Results
If we do all this we get the following measurements using an excellent ADSL connection from xs4all in the Netherlands:
Baseline latency:
round-trip min/avg/max = 14.4/17.1/21.7 ms
Without traffic conditioner, while downloading:
round-trip min/avg/max = 560.9/573.6/586.4 ms
Without traffic conditioner, while uploading:
round-trip min/avg/max = 2041.4/2332.1/2427.6 ms
With conditioner, during 220kbit/s upload:
round-trip min/avg/max = 15.7/51.8/79.9 ms
With conditioner, during 850kbit/s download:
round-trip min/avg/max = 20.4/46.9/74.0 ms
When uploading, downloads proceed at ~80% of the available speed. Uploads at around 90%. Latency then jumps to 850 ms, still figuring out why.
What you can expect from this script depends a lot on your actual uplink speed. When uploading at full speed, there will always be a single packet ahead of your keystroke. That is the lower limit to the latency you can achieve - divide your MTU by your upstream speed to calculate. Typical values will be somewhat higher than that. Lower your MTU for better effects!
A small table:
Uplink speed | Expected latency due to upload
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
So to calculate your effective latency, take a baseline measurement (ping on an unloaded link), and look up the number in the table, and add it. That is about the best you can expect. This number comes from a calculation that assumes that your upstream keystroke will have at most half a full sized packet ahead of it.
This boils down to:
mtu * 0.5 * 10
-------------- + baseline_latency
kbit
The factor 10 is not quite correct but works well in practice.
Your kernel
If you run a recent distribution, everything should be ok. You need 2.4 with QoS options turned on.
If you compile your own kernel, it must have some options enabled. Most notably, in the Networking Options menu, QoS and/or Fair Queueing, turn at least CBQ, PRIO, SFQ, Ingress, Traffic Policing, QoS support, Rate Estimator, QoS classifier, U32 classifier, fwmark classifier.
In practice, I (and most distributions) just turn on everything.
The scripts
The script comes in two versions, one which works on standard kernels and is implemented using CBQ. The other one uses the excellent HTB qdisc which is not in the default kernel. The CBQ version is more tested than the HTB one!
See wshaper and wshaper.htb.
Tuning
These scripts need to know the real rate of your ISP connection. This is hard to determine upfront as different ISPs use different kinds of bits it appears. People report success using the following technique:
Estimate both your upstream and downstream at half the rate your ISP specifies. Now verify if the script is functioning - check interactivity while uploading and while downloading. This should deliver the latency as calculated above. If not, check if the script executed without errors.
Now slowly increase the upstream & downstream numbers in the script until the latency comes back. This way you can find optimum values for your connection. If you are happy, please report to me so I can make a list of numbers that work well. Please let me know which ISP you use and the name of your subscription, and its reputed specifications, so I can list you here and save others the trouble.
Installation
If you dial in, you can copy the script to /etc/ppp/ip-up.d and it will be run at each connect.
If you want to remove the shaper from an interface, run wshaper stop. To see status information, run wshaper status.
KNOWN PROBLEMS
If you get errors, add an -x to the first line, as follows:
#!/bin/bash -x
And retry. This will show you which line gives an error. Before contacting me, make sure that you are running a recent version of iproute!
Recent versions can be found at your Linux distributor, or if you prefer compiling, here:
ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz
Download (MB)
Added: 2007-02-13 License: GPL (GNU General Public License) Price:
994 downloads
CTShaper 1.1.1
CTShaper is a shell-script that helps setting up a traffic shaper. more>>
CTShaper is a shell-script that helps setting up a traffic shaper, using Linuxs built-in network QoS (Quality of Service) infrastructure.
Have you ever noticed how your SSH/gaming sessions become sluggish when you start downloading something, or how your downloads slow down when you start uploading?
Have you ever been annoyed by other peoples downloads forcing you to wait ages while an email is being sent? Or making your web navigation painfully slow?
Well, if your outgoing link is managed by a Linux router/gateway, then you could benefit from using CTShaper.
CTShaper reduces link latency by preventing packet queues from getting too long on your side (your ADSL or Cable modem) and on your ISPs side (their routers). Long packet queues is what makes your uploads interfere with your downloads, and your downloads interfere with your SSH or gaming sessions.
Additionally, CTShaper sets up four traffic queues with different priorities and configurable flow rates (to have minimum bandwidth guarantees for each class). By default, only traffic with ToS (Type of Service) information gets prioritized (which could be enough, if lots of software had support for it, which they dont), but you can use your firewall (iptables, or an iptables frontend like FireHOL) to "mark" traffic.
The traffic shaper will then prioritize (outgoing) traffic based on those "marks". You can, for instance, give priority to SMTP and HTTP traffic. This will only affect outgoing HTTP and SMTP traffic, but thats enough to make your emails go out faster, and your web navigation more responsive.
<<lessHave you ever noticed how your SSH/gaming sessions become sluggish when you start downloading something, or how your downloads slow down when you start uploading?
Have you ever been annoyed by other peoples downloads forcing you to wait ages while an email is being sent? Or making your web navigation painfully slow?
Well, if your outgoing link is managed by a Linux router/gateway, then you could benefit from using CTShaper.
CTShaper reduces link latency by preventing packet queues from getting too long on your side (your ADSL or Cable modem) and on your ISPs side (their routers). Long packet queues is what makes your uploads interfere with your downloads, and your downloads interfere with your SSH or gaming sessions.
Additionally, CTShaper sets up four traffic queues with different priorities and configurable flow rates (to have minimum bandwidth guarantees for each class). By default, only traffic with ToS (Type of Service) information gets prioritized (which could be enough, if lots of software had support for it, which they dont), but you can use your firewall (iptables, or an iptables frontend like FireHOL) to "mark" traffic.
The traffic shaper will then prioritize (outgoing) traffic based on those "marks". You can, for instance, give priority to SMTP and HTTP traffic. This will only affect outgoing HTTP and SMTP traffic, but thats enough to make your emails go out faster, and your web navigation more responsive.
Download (0.011MB)
Added: 2005-11-02 License: GPL (GNU General Public License) Price:
1453 downloads
pmacct-contribs 20051103
pmacct is a small set of passive network monitoring tools to measure, account and aggregate IPv4 and IPv6 traffic. more>>
pmacct is a small set of passive network monitoring tools to measure, account and aggregate IPv4 and IPv6 traffic; aggregation revolves around the key concept of primitives (VLAN id, source and destination MAC addresses, hosts, networks, AS numbers, ports, IP protocol and ToS/DSCP field are supported) which may be arbitrarily combined to build custom aggregation methods; support for historical data breakdown, triggers and packet tagging, filtering and sampling.
Aggregates can be stored into memory tables, SQL databases (MySQL or PostgreSQL) or simply printed to stdout. Data is collected from the network either using libpcap (and optionally promiscuous mode) or reading NetFlow v1/v5/v7/v8/v9 and sFlow v2/v4/v5 datagrams, both unicast and multicast.
IP accounting is the key in ISP/IXP network operations like billing, graphing network resources usage, live or historical traffic analysis, handling of network thresholds, provisioning and SLA monitoring. SNMP counters sometime are not this useful because of their coarse granularity.
Finer granularities become valuable if data are historical and match logical entities of interest such as Autonomous System Numbers, departmental or customer network chunks, specific traffic flows, etc. Further, actual large-scale networks are able to produce, in very short times, high amounts of data that become quickly difficult to be processed in a meaningful way
In this context, traffic aggregation and advanced filtering and sampling capabilities are requirements that cannot be missed anymore.
Either using memory or SQL tables as backend storage, pmacct can easily feed data to tools like MRTG, RRDtool, Cacti and Gnuplot among the others. A little scripting abilities are required to glue pmacct with external tools and a number of sample scripts and some tutorials are already available.
<<lessAggregates can be stored into memory tables, SQL databases (MySQL or PostgreSQL) or simply printed to stdout. Data is collected from the network either using libpcap (and optionally promiscuous mode) or reading NetFlow v1/v5/v7/v8/v9 and sFlow v2/v4/v5 datagrams, both unicast and multicast.
IP accounting is the key in ISP/IXP network operations like billing, graphing network resources usage, live or historical traffic analysis, handling of network thresholds, provisioning and SLA monitoring. SNMP counters sometime are not this useful because of their coarse granularity.
Finer granularities become valuable if data are historical and match logical entities of interest such as Autonomous System Numbers, departmental or customer network chunks, specific traffic flows, etc. Further, actual large-scale networks are able to produce, in very short times, high amounts of data that become quickly difficult to be processed in a meaningful way
In this context, traffic aggregation and advanced filtering and sampling capabilities are requirements that cannot be missed anymore.
Either using memory or SQL tables as backend storage, pmacct can easily feed data to tools like MRTG, RRDtool, Cacti and Gnuplot among the others. A little scripting abilities are required to glue pmacct with external tools and a number of sample scripts and some tutorials are already available.
Download (0.030MB)
Added: 2005-11-04 License: GPL (GNU General Public License) Price:
1450 downloads
codstats.tcl 1.1.2
codstats.tcl is a eggdrop tcl script witch communicates with your Call Of Duty server via RCON commands. more>>
codstats.tcl is a eggdrop tcl script witch communicates with your Call Of Duty server via RCON commands and reads responses from the servers log file. codstats.tcl script has several different modules you can enable:
- codspeak module: if you turn this on youll see the users ingame speech on your IRC channel and the playersll see the messages coming from the IRC channel. COD & mIRC color codes will be converted correctly.
- codstats module: player statistics (frag count, toplist, killratio, weapon usage, etc.)
- codevents module: displays server joins/parts on the IRC channel, periodically announces the number of players on the server (if there are players). Period time can be adjusted with CODANNOUNCETIME setting.
So this script is ideal for your COD clans IRC channel using with your private clan server.
Available channel commands for channel/bot operators: (you can change these bindings at the end of this script)
!cstatus (!cs) - prints out server status
!rcon - sends an rcon command (notice: result of command wont be displayed on the channel!) - only for channel/bot operators
!cseen [nick] - prints out the time when the given user was last seen on the cod server
!ctimespent [nick]: prints out the length of time the user has spent playing cod on the server
!cstat [nick] - prints the given nicks stats
!ftopten (!ftop10, !ctopten, !ctop10) - prints the frag top10
!ktopten (!ktop10) - prints the timeskilled top10
!ftop20 (!ctop20) - prints the frag top20
!ktop20 - prints the timeskilled top20
!weapon [nick] - prints nicks favourite weapons used for killing
!target [nick] - prints nicks favourite deadly targets toplist
!hit [nick] - prints the points where nicks got the most deadly hits
!fraglist - displays the servers current fraglist
!savedb - saves database file - only for channel/bot owners
!loaddb - loads database file - only for channel/bot owners
!cuserdel [nick] (!cdeluser) - deletes given nick from the database - only for channel/bot owners
!weed [days] - deletes users not seen since given days - only for channel/bot owners
!csum [to] [from] - adds froms stats to tos stats and deletes from - only for channel/bot owners
Ive made a tcl script for starting/stopping our COD and Teamspeak server using simple commands on our IRC channel. This script called codmngr.tcl You can download it above at the Download section.
Installation:
1. Download UDP support for TCL from here: http://sourceforge.net/projects/tcludp
This is needed because TCL doesnt have UDP protocol support and the script uses UDP for communicating with the COD server.
2. Extract it, run ./configure, make, make install
If configure displays an error message, make sure you have at least tcl8.4-dev (or similar installed.
3. Edit the codstats.tcl file at the SETTINGS section, set your cod host, port and rcon password, select which modules you want to enable, your IRC channel and edit other settings
4. Copy the tcl to your eggdrops scripts directory
5. Edit your eggdrops config and append this line to the end of the file: source scripts/codstats.tcl
6. Rehash your bots config file (.rehash)
Enhancements:
- The backup file now will be saved only at 5 oclock in the morning.
- Weapons named "none" wont be stored anymore.
- A known issues section has been added to codstats.tcl.
- Sometimes empty names were stored, and because of this frags were not saved; this has been fixed.
<<less- codspeak module: if you turn this on youll see the users ingame speech on your IRC channel and the playersll see the messages coming from the IRC channel. COD & mIRC color codes will be converted correctly.
- codstats module: player statistics (frag count, toplist, killratio, weapon usage, etc.)
- codevents module: displays server joins/parts on the IRC channel, periodically announces the number of players on the server (if there are players). Period time can be adjusted with CODANNOUNCETIME setting.
So this script is ideal for your COD clans IRC channel using with your private clan server.
Available channel commands for channel/bot operators: (you can change these bindings at the end of this script)
!cstatus (!cs) - prints out server status
!rcon - sends an rcon command (notice: result of command wont be displayed on the channel!) - only for channel/bot operators
!cseen [nick] - prints out the time when the given user was last seen on the cod server
!ctimespent [nick]: prints out the length of time the user has spent playing cod on the server
!cstat [nick] - prints the given nicks stats
!ftopten (!ftop10, !ctopten, !ctop10) - prints the frag top10
!ktopten (!ktop10) - prints the timeskilled top10
!ftop20 (!ctop20) - prints the frag top20
!ktop20 - prints the timeskilled top20
!weapon [nick] - prints nicks favourite weapons used for killing
!target [nick] - prints nicks favourite deadly targets toplist
!hit [nick] - prints the points where nicks got the most deadly hits
!fraglist - displays the servers current fraglist
!savedb - saves database file - only for channel/bot owners
!loaddb - loads database file - only for channel/bot owners
!cuserdel [nick] (!cdeluser) - deletes given nick from the database - only for channel/bot owners
!weed [days] - deletes users not seen since given days - only for channel/bot owners
!csum [to] [from] - adds froms stats to tos stats and deletes from - only for channel/bot owners
Ive made a tcl script for starting/stopping our COD and Teamspeak server using simple commands on our IRC channel. This script called codmngr.tcl You can download it above at the Download section.
Installation:
1. Download UDP support for TCL from here: http://sourceforge.net/projects/tcludp
This is needed because TCL doesnt have UDP protocol support and the script uses UDP for communicating with the COD server.
2. Extract it, run ./configure, make, make install
If configure displays an error message, make sure you have at least tcl8.4-dev (or similar installed.
3. Edit the codstats.tcl file at the SETTINGS section, set your cod host, port and rcon password, select which modules you want to enable, your IRC channel and edit other settings
4. Copy the tcl to your eggdrops scripts directory
5. Edit your eggdrops config and append this line to the end of the file: source scripts/codstats.tcl
6. Rehash your bots config file (.rehash)
Enhancements:
- The backup file now will be saved only at 5 oclock in the morning.
- Weapons named "none" wont be stored anymore.
- A known issues section has been added to codstats.tcl.
- Sometimes empty names were stored, and because of this frags were not saved; this has been fixed.
Download (0.011MB)
Added: 2006-10-19 License: GPL (GNU General Public License) Price:
1116 downloads
ActivePython 2.4.3.12
ActivePython is the complete, quality-assured and ready-to-install Python distribution for AIX, HP-UX, Linux, Mac OS X, Solaris. more>>
ActivePython project is the complete, quality-assured and ready-to-install Python distribution for AIX, HP-UX, Linux, Mac OS X, Solaris, and Windows.
Whats included:
- Python core
- Core extensions zlib and bzip2 for data compression
- bsddb database library
- Tix GUI widgets for Tkinter
- Suite of Windows tools developed by Mark Hammond, including the PythonWin IDE, bindings to the Win32 API, and Windows COM
Complete documentation for new and experienced Python users
- Core Python docs
- Whats New in Python
- Dive into Python
- Python FAQs
- How-tos
- Python Enhancement Proposals (PEPs)
<<lessWhats included:
- Python core
- Core extensions zlib and bzip2 for data compression
- bsddb database library
- Tix GUI widgets for Tkinter
- Suite of Windows tools developed by Mark Hammond, including the PythonWin IDE, bindings to the Win32 API, and Windows COM
Complete documentation for new and experienced Python users
- Core Python docs
- Whats New in Python
- Dive into Python
- Python FAQs
- How-tos
- Python Enhancement Proposals (PEPs)
Download (MB)
Added: 2007-01-12 License: Free To Use But Restricted Price:
2087 downloads
Gspoof 3.2.
Gspoof is a GTK+ program which makes easier and accurate the building and the sending of TCP packet with a data-payload or not. more>>
Gspoof is a GTK+ program which makes easier and accurate the building and the sending of TCP packet with a data-payload or not. Its possible to modify TCP/IP fields also Ethernet header working to Link Level.
The program works in two different mode:
The 1st (the standard mode) allow "only" adjustment of IP and TCP headers.
Exactly:
source IP address (if possible is autodetect from available interface) destination IP address TTL time to live (default value is 64) ID (a 16 byte random generate value) TOS type of service (automagically calculated from ECN parameters)
source port
destination port
control flags (you can specify more flags toghether)
sequence number (a 32 byte random generate value)
acknowledgement number (a 32 byte random generate value)
window size (default vale is 32767)
urgent pointer (a 16 byte random generate value)
Enhancements:
- Added Explicit Congestion Notification support (thanks to )
- Fixed a bug in ltostr()
- Cleaned code in console.c
- Fixed some tips
<<lessThe program works in two different mode:
The 1st (the standard mode) allow "only" adjustment of IP and TCP headers.
Exactly:
source IP address (if possible is autodetect from available interface) destination IP address TTL time to live (default value is 64) ID (a 16 byte random generate value) TOS type of service (automagically calculated from ECN parameters)
source port
destination port
control flags (you can specify more flags toghether)
sequence number (a 32 byte random generate value)
acknowledgement number (a 32 byte random generate value)
window size (default vale is 32767)
urgent pointer (a 16 byte random generate value)
Enhancements:
- Added Explicit Congestion Notification support (thanks to )
- Fixed a bug in ltostr()
- Cleaned code in console.c
- Fixed some tips
Download (0.067MB)
Added: 2006-07-04 License: GPL (GNU General Public License) Price:
1207 downloads
IPTables log analizer 0.4
IPTables log analizer displays Linux 2.4 iptables logs in a nice HTML page. more>>
IPTables log analizer displays Linux 2.4 iptables logs (rejected, acepted, masqueraded packets...) in a nice HTML page (it support rough netfilter logs but also Shorewall and Suse Firewall logs).
This page shall be easy to read and understand to reduce the manual analysis time.
This page containts statistics on packets and links to more detailled information on a given host, port, domain and so on.
To convice you, here is a typical syslog entry for iptables :
[IPTABLES DROP] : IN=ppp0 OUT= MAC= SRC=172.186.2.157 DST=193.253.186.217 LEN=36 TOS=0x00 PREC=0x00 TTL=115 ID=4775 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=3663
How does it work ?
A small deamon is launched by a user which can read iptables logs files. Each time a new packet is logged, the daemon insert a new row in the database.
The statistics and so on are elaborated by the PHP page itself.
<<lessThis page shall be easy to read and understand to reduce the manual analysis time.
This page containts statistics on packets and links to more detailled information on a given host, port, domain and so on.
To convice you, here is a typical syslog entry for iptables :
[IPTABLES DROP] : IN=ppp0 OUT= MAC= SRC=172.186.2.157 DST=193.253.186.217 LEN=36 TOS=0x00 PREC=0x00 TTL=115 ID=4775 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=3663
How does it work ?
A small deamon is launched by a user which can read iptables logs files. Each time a new packet is logged, the daemon insert a new row in the database.
The statistics and so on are elaborated by the PHP page itself.
Download (0.30MB)
Added: 2007-02-14 License: GPL (GNU General Public License) Price:
985 downloads
fwsnort 1.0
fwsnort translates snort rules into an equivalent iptables ruleset. more>>
fwsnort parses the rules files included in the snort intrusion detection system and builds an equivalent iptables ruleset for as many rules as possible.
fwsnort accepts command line arguments to restrict processing to any particular class of snort rules such as "ddos", "backdoor", or "web-attacks". Processing can even be restricted to a specific snort rule as identified by its "snort id" or "sid".
fwsnort utilizes the iptables string match module (together with a custom patch that adds a --hex-string option to the iptables user space code) to detect application level signatures.
fwsnort (optionally) makes use of the IPTables::Parse module (to be submitted to CPAN) to translate snort rules for which matching traffic could potentially be passed through the existing iptables ruleset.
Main features:
- Detection for tcp syn, fin, null, and xmas scans as well as udp scans.
- Detection of many signature rules from the snort intrusion detection system.
- Forensics mode iptables logfile analysis (useful as a forensics tool for extracting scan information from old iptables logfiles).
- Passive operating system fingerprinting via tcp syn packets. Two different fingerprinting strategies are supported; a re-implementation of p0f that strictly uses iptables log messages (requires the --log-tcp-options command line switch), and a TOS-based strategy.
- Email alerts that contain tcp/udp/icmp scan characteristics, reverse dns and whois information, snort rule matches, remote OS guess information, and more.
- Content-based alerts for buffer overflow attacks, suspicious application commands, and other suspect traffic through the use of the iptables string match extension and fwsnort.
- Icmp type and code header field validation.
- Configurable scan thresholds and danger level assignments.
- Iptables ruleset parsing to verify "default drop" policy stance.
- IP/network danger level auto-assignment (can be used to ignore or automatically escalate danger levels for certain networks).
- DShield alerts.
- Auto-blocking of scanning IP addresses via iptables and/or tcpwrappers based on scan danger level. (This is NOT enabled by default.)
- Status mode that displays a summary of current scan information with associated packet counts, iptables chains, and danger levels.
Enhancements:
- This is a major update to add the ability to send packets that match content or uricontent criteria to userspace via the iptables QUEUE or NFQUEUE targets.
- This can be used to speed up snort_inline IPS.
- A fwsnort mailing list was added.
- A bug was fixed to remove any existing jump rules from the built-in INPUT, OUTPUT, and FORWARD chains before creating a new jump rules.
- This allows the fwsnort.sh script to be executed multiple times without creating a new jump rule in the fwsnort chains for each execution.
<<lessfwsnort accepts command line arguments to restrict processing to any particular class of snort rules such as "ddos", "backdoor", or "web-attacks". Processing can even be restricted to a specific snort rule as identified by its "snort id" or "sid".
fwsnort utilizes the iptables string match module (together with a custom patch that adds a --hex-string option to the iptables user space code) to detect application level signatures.
fwsnort (optionally) makes use of the IPTables::Parse module (to be submitted to CPAN) to translate snort rules for which matching traffic could potentially be passed through the existing iptables ruleset.
Main features:
- Detection for tcp syn, fin, null, and xmas scans as well as udp scans.
- Detection of many signature rules from the snort intrusion detection system.
- Forensics mode iptables logfile analysis (useful as a forensics tool for extracting scan information from old iptables logfiles).
- Passive operating system fingerprinting via tcp syn packets. Two different fingerprinting strategies are supported; a re-implementation of p0f that strictly uses iptables log messages (requires the --log-tcp-options command line switch), and a TOS-based strategy.
- Email alerts that contain tcp/udp/icmp scan characteristics, reverse dns and whois information, snort rule matches, remote OS guess information, and more.
- Content-based alerts for buffer overflow attacks, suspicious application commands, and other suspect traffic through the use of the iptables string match extension and fwsnort.
- Icmp type and code header field validation.
- Configurable scan thresholds and danger level assignments.
- Iptables ruleset parsing to verify "default drop" policy stance.
- IP/network danger level auto-assignment (can be used to ignore or automatically escalate danger levels for certain networks).
- DShield alerts.
- Auto-blocking of scanning IP addresses via iptables and/or tcpwrappers based on scan danger level. (This is NOT enabled by default.)
- Status mode that displays a summary of current scan information with associated packet counts, iptables chains, and danger levels.
Enhancements:
- This is a major update to add the ability to send packets that match content or uricontent criteria to userspace via the iptables QUEUE or NFQUEUE targets.
- This can be used to speed up snort_inline IPS.
- A fwsnort mailing list was added.
- A bug was fixed to remove any existing jump rules from the built-in INPUT, OUTPUT, and FORWARD chains before creating a new jump rules.
- This allows the fwsnort.sh script to be executed multiple times without creating a new jump rule in the fwsnort chains for each execution.
Download (0.28MB)
Added: 2007-04-22 License: GPL (GNU General Public License) Price:
915 downloads
Traffic Control Super Script 5.1-1-devel
Traffic Control Super Script can manage bandwidth to user-specified speeds based on the u32 classifier. more>>
Traffic Control Super Script implements traffic shaping for IP traffic passing through a NAT/bridge box with a single configuration file with one line per host.
Traffic Control Super Script can manage bandwidth to user-specified speeds based on the u32 classifier, and can identify traffic by source, destination, source and destination port, protocol, and ToS field. It then limits the rate of connection in either a single or a bidirectional fashion.
Enhancements:
- This release adds multiple interface support.
- It adds an option to choose between flat file and MySQL rules databases.
- It fixes bug #1469742 (duplicate group breaking child / parent relationships when direction=bi on group definitions).
- Various minor bugs have been fixed.
- There are major code cleanups, and major documentation updates on the Web site.
<<lessTraffic Control Super Script can manage bandwidth to user-specified speeds based on the u32 classifier, and can identify traffic by source, destination, source and destination port, protocol, and ToS field. It then limits the rate of connection in either a single or a bidirectional fashion.
Enhancements:
- This release adds multiple interface support.
- It adds an option to choose between flat file and MySQL rules databases.
- It fixes bug #1469742 (duplicate group breaking child / parent relationships when direction=bi on group definitions).
- Various minor bugs have been fixed.
- There are major code cleanups, and major documentation updates on the Web site.
Download (0.040MB)
Added: 2006-04-13 License: GPL (GNU General Public License) Price:
748 downloads
IPChains 0.5
IPChains is a Perl module to create and manipulate ipchains via Perl. more>>
IPChains is a Perl module to create and manipulate ipchains via Perl.
SYNOPSIS
use IPChains;
$fw = IPChains->new(-option => value, ... ); $fw->append(chain);
This module acts as an interface to the ipchains(8) userspace utility by Paul "Rusty" Russell (http://www.rustcorp.com/linux/ipchains/). It attempts to include all the functionality of the original code with a simplified user interface via Perl. In addition, plans for log parsing facilities, an integrated interface to ipmasqadm, and possibly traffic shaping are slated for up and coming versions.
The new() and attribute() methods support the following options:
Source
Specifies origination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see SourceMask).
SourceMask
Hostmask for origination address. Can either be in 24 or 255.255.255.0 style.
SourcePort
Specific port or port range (use xxx:xxx to denote range), requires specific protocol specification.
Dest
Specifies destination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see DestMask)
DestMask
Destination address, (see SourceMask).
DestPort
Destination Port, (see SourcePort).
Prot
Protocol. Can be tcp, udp, icmp, or all. Required for specifying specific port(s).
ICMP
ICMP Name/Code (in place of port when ICMP is specified as protocol).
Here is a small table of some of the most common ICMP packets:
Number Name Required by
0 echo-reply ping
3 destination-unreachable Any TCP/UDP traffic.
5 redirect routing if not running
routing daemon
8 echo-request ping
11 time-exceeded traceroute
Rule
Target. Can be ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN, or a user-defined chain. Note: This is case sensitive.
Interface
Specify a specify interface as part of the criteria (ie, eth0, ppp0, etc.).
Fragment
Rule only refers to second and further fragments of fragmented packets (1 or 0).
Bidir
Makes criteria effective in both directions (1 or 0).
Verbose
Set verbose option for setting rules or list() (1 or 0).
Numeric
Show output from list() in numeric format. No DNS lookups, etc.. (1 or 0).
Log
Enable kernel logging (via syslog, kern.info) of matched packets (1 or 0).
Output
Copy matching packets to the userspace device (advanced).
Mark
Mark matching packets with specified number (advanced).
TOS
Used for modifying the TOS field in the IP header. Takes 2 args, AND and XOR masks, (ie, (TOS => ["0x01", "0x10"])). This feature is highly untested.
The first mask is ANDed with the packets current TOS, and the second mask is XORed with it. Use the following table for reference:
TOS Name Value Typical Uses
Minimum Delay 0x01 0x10 ftp, telnet
Maximum Throughput 0x01 0x08 ftp-data
Maximum Reliability 0x01 0x04 snmp
Minimum Cost 0x01 0x02 nntp
Exact
Display exact numbers in byte counters instead of numbers rounded in Ks, Ms, or Gs (1 or 0).
SYN
Only match TCP packets with the SYN bit set and the ACK and FIN bits cleared (1 or 0).
<<lessSYNOPSIS
use IPChains;
$fw = IPChains->new(-option => value, ... ); $fw->append(chain);
This module acts as an interface to the ipchains(8) userspace utility by Paul "Rusty" Russell (http://www.rustcorp.com/linux/ipchains/). It attempts to include all the functionality of the original code with a simplified user interface via Perl. In addition, plans for log parsing facilities, an integrated interface to ipmasqadm, and possibly traffic shaping are slated for up and coming versions.
The new() and attribute() methods support the following options:
Source
Specifies origination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see SourceMask).
SourceMask
Hostmask for origination address. Can either be in 24 or 255.255.255.0 style.
SourcePort
Specific port or port range (use xxx:xxx to denote range), requires specific protocol specification.
Dest
Specifies destination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see DestMask)
DestMask
Destination address, (see SourceMask).
DestPort
Destination Port, (see SourcePort).
Prot
Protocol. Can be tcp, udp, icmp, or all. Required for specifying specific port(s).
ICMP
ICMP Name/Code (in place of port when ICMP is specified as protocol).
Here is a small table of some of the most common ICMP packets:
Number Name Required by
0 echo-reply ping
3 destination-unreachable Any TCP/UDP traffic.
5 redirect routing if not running
routing daemon
8 echo-request ping
11 time-exceeded traceroute
Rule
Target. Can be ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN, or a user-defined chain. Note: This is case sensitive.
Interface
Specify a specify interface as part of the criteria (ie, eth0, ppp0, etc.).
Fragment
Rule only refers to second and further fragments of fragmented packets (1 or 0).
Bidir
Makes criteria effective in both directions (1 or 0).
Verbose
Set verbose option for setting rules or list() (1 or 0).
Numeric
Show output from list() in numeric format. No DNS lookups, etc.. (1 or 0).
Log
Enable kernel logging (via syslog, kern.info) of matched packets (1 or 0).
Output
Copy matching packets to the userspace device (advanced).
Mark
Mark matching packets with specified number (advanced).
TOS
Used for modifying the TOS field in the IP header. Takes 2 args, AND and XOR masks, (ie, (TOS => ["0x01", "0x10"])). This feature is highly untested.
The first mask is ANDed with the packets current TOS, and the second mask is XORed with it. Use the following table for reference:
TOS Name Value Typical Uses
Minimum Delay 0x01 0x10 ftp, telnet
Maximum Throughput 0x01 0x08 ftp-data
Maximum Reliability 0x01 0x04 snmp
Minimum Cost 0x01 0x02 nntp
Exact
Display exact numbers in byte counters instead of numbers rounded in Ks, Ms, or Gs (1 or 0).
SYN
Only match TCP packets with the SYN bit set and the ACK and FIN bits cleared (1 or 0).
Download (0.050MB)
Added: 2007-05-10 License: Perl Artistic License Price:
897 downloads
Advanced Packet Sniffer 0.19
Aps is a small tool for analyzing network traffic. more>>
Aps is a small tool for analyzing network traffic. It prints out a great deal of information about the relevant protocols including TCP, UDP, ARP, and ICMP.
It allows you to filter IP addresses, hardware addresses, ports, and specific protocols. It comes with a little GTK-GUI displaying packet counters for each protocol.
APS tries to print detailed info about network frames that are received from the SOCK_RAW (ETH_P_ALL) socket. I am not sure if this is the clean way, but it works fine. APS prints info about the hardware layer and the IP and TCP/UDP/ICMP header.
The tail of the packet (mostly the data) wich could not be interpreted is written on the screen as ascii/hex-dump or both (your choice).
Example
HW-ADDR: 00:60:8c:f6:40:96 -----> 00:80:ad:30:8f:3b
IP-ADDR: 192.168.17.52 -----> 192.168.17.50
IP-Ver4 || Head:0x0a (bytes) || Service(TOS):16 || Length over all:0061
Fragmentation: ID:0x4079 - Flags: 0 1 0 - Offset:00000
TTL:064 || Protokoll:006 (TCP) || HeaderCRC:0x567b
TCP-HEADER:
Ports: 0023-->1034 (telnet) Seq./Ack. Nr.:0x70843468 / 0xeae29434
Data-Offset:0x05 Reserved-6Bit:00 Flags:-urg-ACK-PSH-rst-syn-fin-
Window:0x7fe0 CRC:0x9420 Urgent-Pointer:0x0000
73 61 74 75 72 6e 32 3a 2f 73 72 76 2f 70 72 69 6e 74 71 23 20
HW-ADDR: 52:54:40:25:8d:88 -----> ff:ff:ff:ff:ff:ff
SAMBA/NetBios
e0 e0 03 ff ff 00 22 00 11 00 00 00 00 ff ff ff ff ff ff 04 52 00 00 00 00 52
40 25 8d 88 40 08 00 03 00 04 20 20 20 20 20 20 20 20 20
HW-ADDR: 00:80:ad:30:8f:3b -----> 00:60:8c:f6:40:96
IP-ADDR: 192.168.17.50 -----> 194.112.123.200
IP-Ver4 || Head:0x0a (bytes) || Service(TOS):0 || Length over all:0029
Fragmentation: ID:0x29ae - Flags: 0 0 0 - Offset:00000
TTL:064 || Protokoll:001 (ICMP) || HeaderCRC:0x411f
echo request CODE:0x0 CRC:0xf9f5 SIG:0x602 NUM:0x0
00 ea
Enhancements:
- added break for Packet-counter and fixed some minor bugs
<<lessIt allows you to filter IP addresses, hardware addresses, ports, and specific protocols. It comes with a little GTK-GUI displaying packet counters for each protocol.
APS tries to print detailed info about network frames that are received from the SOCK_RAW (ETH_P_ALL) socket. I am not sure if this is the clean way, but it works fine. APS prints info about the hardware layer and the IP and TCP/UDP/ICMP header.
The tail of the packet (mostly the data) wich could not be interpreted is written on the screen as ascii/hex-dump or both (your choice).
Example
HW-ADDR: 00:60:8c:f6:40:96 -----> 00:80:ad:30:8f:3b
IP-ADDR: 192.168.17.52 -----> 192.168.17.50
IP-Ver4 || Head:0x0a (bytes) || Service(TOS):16 || Length over all:0061
Fragmentation: ID:0x4079 - Flags: 0 1 0 - Offset:00000
TTL:064 || Protokoll:006 (TCP) || HeaderCRC:0x567b
TCP-HEADER:
Ports: 0023-->1034 (telnet) Seq./Ack. Nr.:0x70843468 / 0xeae29434
Data-Offset:0x05 Reserved-6Bit:00 Flags:-urg-ACK-PSH-rst-syn-fin-
Window:0x7fe0 CRC:0x9420 Urgent-Pointer:0x0000
73 61 74 75 72 6e 32 3a 2f 73 72 76 2f 70 72 69 6e 74 71 23 20
HW-ADDR: 52:54:40:25:8d:88 -----> ff:ff:ff:ff:ff:ff
SAMBA/NetBios
e0 e0 03 ff ff 00 22 00 11 00 00 00 00 ff ff ff ff ff ff 04 52 00 00 00 00 52
40 25 8d 88 40 08 00 03 00 04 20 20 20 20 20 20 20 20 20
HW-ADDR: 00:80:ad:30:8f:3b -----> 00:60:8c:f6:40:96
IP-ADDR: 192.168.17.50 -----> 194.112.123.200
IP-Ver4 || Head:0x0a (bytes) || Service(TOS):0 || Length over all:0029
Fragmentation: ID:0x29ae - Flags: 0 0 0 - Offset:00000
TTL:064 || Protokoll:001 (ICMP) || HeaderCRC:0x411f
echo request CODE:0x0 CRC:0xf9f5 SIG:0x602 NUM:0x0
00 ea
Enhancements:
- added break for Packet-counter and fixed some minor bugs
Download (0.088MB)
Added: 2005-09-21 License: GPL (GNU General Public License) Price:
1512 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above tos search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed