<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>yurisk.info &#187; Networking</title>
	<atom:link href="http://yurisk.info/category/networking/feed/" rel="self" type="application/rss+xml" />
	<link>http://yurisk.info</link>
	<description>Yuri Slobodyanyuk&#039;s blog on IT Security and Networking</description>
	<lastBuildDate>Tue, 31 Jan 2012 11:28:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Watch your DNS records day and night with Nagios</title>
		<link>http://yurisk.info/2011/10/09/watch-your-dns-records-day-and-night-with-nagios/</link>
		<comments>http://yurisk.info/2011/10/09/watch-your-dns-records-day-and-night-with-nagios/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 10:11:22 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1722</guid>
		<description><![CDATA[Domain records are most visible vulnerable and many time crucial asset of the company. Attackers need not break your firewall protection, find and develop exploits for software running on your server to cut off your company from mails &#8211; it is enough for them to cause a change of MX record and it&#8217;s done &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Domain records are most visible vulnerable and many time crucial asset of the company.<br />
Attackers need not break your firewall protection, find and develop exploits for software running on your server to cut off your company from mails &#8211; it is enough for them to cause a change of MX record and it&#8217;s done &#8211; no incoming mails.<br />
I&#8217;ve seen real life example of this happening with huge company when due to human error  made to MX record that went unnoticed the company didn&#8217;t get mails.<br />
While  there are companies making millions on protecting domains (do whois on Google.com,Facebook.com to see example) you can at least spot potential problems automatically in no time with Nagios.<br />
The plugin to watch for DNS record is called check_dns and works this way &#8211; you configure which hostname to query and what the IP address for it should be , if the IP return doesn&#8217;t much the one configured the Critical condition occurs and alert is fired.<br />
This is the simplest of possible checks &#8211; to check hostname to IP mapping, more advanced checks are possible with check_dig  plugin.<br />
Example &#8211; if IP of the hostname mx20.013net.net that handles mail for my provider changes from 194.90.9.19, the alert will be sent:<br />
 <strong>check_dns   -H mx20.013net.net -a 194.90.9.19  -s 8.8.8.8</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2011/10/09/watch-your-dns-records-day-and-night-with-nagios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best open source Netflow/sFlow analyzing software</title>
		<link>http://yurisk.info/2010/12/12/best-open-source-netflowsflow-analyzing-software/</link>
		<comments>http://yurisk.info/2010/12/12/best-open-source-netflowsflow-analyzing-software/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 20:47:54 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Fortigate]]></category>
		<category><![CDATA[Netflow]]></category>
		<category><![CDATA[Stories]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1464</guid>
		<description><![CDATA[People ask me frequently what software I would   recommend   for Netflow analysis , especially with security implementations in mind.  I made my choice a long ago and haven&#8217;t been complaining so far &#8211; Nfsen graphical frontend that has Nfdump as its data processing backend . It provides most flexibility, configurability; its filter syntax is very [...]]]></description>
			<content:encoded><![CDATA[<p>People ask me frequently what software I would   recommend   for Netflow analysis , especially with security implementations in mind.  I made my choice a long ago and haven&#8217;t been complaining so far &#8211; <a href="http://nfsen.sourceforge.net/" target="_blank" >Nfsen</a> graphical frontend that has Nfdump as its data processing backend . It provides most flexibility, configurability; its filter syntax is very tcpdump-like; graphic front provides just enough of interactivity; the alerts system is just amazing.Moreover it supports not only Netflow but sFlow as well,so all Fortigate appliances with the last OS can be monitored this way.</p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/12/12/best-open-source-netflowsflow-analyzing-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social networks – your next job search starts and ends there.</title>
		<link>http://yurisk.info/2010/10/23/social-networks-%e2%80%93-your-next-job-search-starts-and-ends-there/</link>
		<comments>http://yurisk.info/2010/10/23/social-networks-%e2%80%93-your-next-job-search-starts-and-ends-there/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 10:06:47 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Stories from the trenches]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1357</guid>
		<description><![CDATA[Few years ago I read somewhere on the Net that only 65% of the open positions were being advertised outside of the companies. Time goes by and things change, and change drastically – today I can assure you that 100% of the good positions are never advertised outside of the companies. I see it happening [...]]]></description>
			<content:encoded><![CDATA[<p>Few years ago I read somewhere on the Net that only 65% of the open positions were being advertised outside of the companies. Time goes by and things change, and change drastically – today I can assure you that 100% of the good positions are never advertised outside of the companies. I see it happening at my work, hear it from my friends working anywhere else. And the pattern is the same &#8211; only the bottom of the corporate ladder/get your foot in the door positions are open to candidates from outside. Any level above that and you get internal corporate classified postings that get duplicated in internal emails sent by HR. Moreover for the most juicy positions it doesn’t get even there – manager of the department having the prospect of the opening and coveted position will speak directly with preferred by him/her candidates and their manager in the company and after closing the deal the HR will take care of technical details.<br />
In the rare cases where no appropriate candidate is found starts the word of mouth recruiting – employees check with their friends/acquaintances/relatives for the references. Most of the time the search ends there – as the rule of numbers increases the chances as number of involved people grows. And here comes the part of the Social networks, cause be it as ridiculous as it is , the term ‘friend’ today encompasses all the people  you hardly know but who happen to be on your friends list in <a href="http://Myspace.com" target="_blank">Myspace.com</a> <a href="http://Facebook.com" target="_blank">Facebook.com</a> <a href="http://Twitter.com" target="_blank">Twitter.com</a> <a href="http://Odnoklassniki.ru" target="_blank">Odnoklassniki.ru</a> <a href="http://www.orkut.com.br" target="_blank"> orkut.com.br </a> and list goes on. So enough for some employee to leak the information to one of the ‘friends’ on the Facebook and it spreads to all the friends of her friends’ friends . Never mind that she might have approved them just because she does it by default, as a habit of being polite.<br />
So what you need to do for your next job search is hang out a lot on the Social cloud ,befriend all the employees for  the company you have plans on joining in and start waiting (fishing comes to mind) . And if you lucky to befriend HR department people … </p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/10/23/social-networks-%e2%80%93-your-next-job-search-starts-and-ends-there/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IP Options are evil &#8211; drop them , drop them on Cisco Asa/IOS Microsoft ISA Juniper or Checkpoint</title>
		<link>http://yurisk.info/2010/01/23/ip-options-are-evil-%e2%80%93-drop-them-drop-them-on-cisco-asaios-microsoft-isa-juniper-or-checkpoint/</link>
		<comments>http://yurisk.info/2010/01/23/ip-options-are-evil-%e2%80%93-drop-them-drop-them-on-cisco-asaios-microsoft-isa-juniper-or-checkpoint/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 19:51:22 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[ASA/PIX Cisco]]></category>
		<category><![CDATA[Checkpoint NG/NGX]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[IOS Cisco]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Checkpoint]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=419</guid>
		<description><![CDATA[As you probably noticed IP header has variable length placeholder for the IP Options field. It has been there since the beginning , once a good idea for debug now turned into trouble. RFC 791 states that hosts/routers supporting IP protocol must implement Ip Options filed . It is up to the vendor to decide [...]]]></description>
			<content:encoded><![CDATA[<p>As you probably noticed IP header has variable length placeholder for the IP Options field. It has been there since the beginning , once a good idea for debug now turned into trouble. RFC 791 states that hosts/routers supporting IP protocol <strong>must</strong> implement Ip Options filed . It is up to the vendor to decide what to do with this optional field, but it must understand it. Still, wouldn’t be a problem if not modern architecture of the routing equipment that was designed to do most efficiently Routing , i.e. pass from interface to interface gigabytes of traffic. Therefore routing functions are highly optimized and most of the time are implemented in hardware . All other types of traffic unfortunately are not, and in most of the cases processing , lets call it Control traffic, is being left to poor router CPU and done in software. That brought the troubles into the IP world – relatively small amounts of control traffic (including Ip Options packets) may bring down otherwise<br />
powerful router in just minutes.<br />
To prevent this attack vendors implemented protection measures to drop entirely or selectively IP packets that has Ip Options filed set. Below is quick cheat sheet how to do it in some gear :<br />
<strong>Checkpoint firewall NG/NGX</strong> &#8211; packets with Ip Options are dropped by default except for the &#8220;Router Alert&#8221; option (0&#215;94) for the IGMPv2 and PIM protocols [or so CP claim, will have to verify later] and not even logged. To start logging dropped packets go to Policy -&gt; Global Properties -&gt; Log and Alerts -&gt; check Ip dropped packets : Log<br />
There is a value related to it that is on by default : Global Properties -&gt; SmartDashboard customization -&gt; Advanced Configuration -&gt; Configure -&gt; Firewall 1 -&gt; Stateful inspection -&gt; enable_ip_options (check/uncheck) but unchecking it removes from firewall VM chain module that inspects these Options at all and all Ip Options packets are dropped . So all packets bearing Ip Options are happily dropped even before security rules , here:</p>
<div class="cmd">[Expert@splat60]# fw ctl chain<br />
in chain (9):<br />
0: -7f800000 (9095dd60) (ffffffff) IP Options Strip (ipopt_strip)<br />
1: &#8211; 1fffff6 (9095ee80) (00000001) Stateless verifications (asm) </div>
<p>Also Checkpoint say you can decide which Ip Options will be allowed later BUT only when installing the firewall: “The set of permitted options must be configured during installation … the enable_ip_options setting in SmartDashboard is then used to enable or disable this functionality. Contact Check Point support for instructions on configuring the set of allowed IP options.”</p>
<div><strong>Microsoft ISA 2000 server:</strong><br />
- If Enable Packet Filtering is not checked then do it in IP Packet Filters -&gt; Properties &#8211; &gt; General tab. On the Packet Filters tab check Enable Filtering IP Options .<br />
<strong>Microsoft ISA 2004 Server:</strong><br />
- IP options filtering is enabled by default<br />
- Go to Configuration node of the server in question in Management console -&gt; General -&gt; Additional Security Policy<br />
Define IP Preferences . Here you will have 3 options to deal with Ip Options packets:<br />
a) Deny packets with any IP options;<br />
b) Deny packets with selected IP options;<br />
c) Deny packets with all except selected IP options<br />
The same options are available in <strong>ISA 2006 </strong>, click on Configure IP Protection link &#8211; &gt; IP Preference settings</div>
<div><strong>IOS Cisco router :</strong></div>
<div><strong>Juniper router:</strong><br />
You just add <strong>ip-options</strong> term to the filter and apply it to the interface of interest. In the example below I block only Route Record type of Ip Options, if you use any then it will block any type:</div>
<div class="cmd">[edit firewall family inet filter NOICMP term 3]</div>
<pre>firewall {
    family inet {
        filter NOICMP {
            term 1 {
                from {
                    address {
                        192.168.2.100/32;
                    }
                }
                then {
                    reject;
                }
            }
            term 2 {
                from {
                    ip-options route-record;
                }
                then {
                    reject;
                }
            }
            term 3 {
                from {
                    address {
                        192.168.2.0/24;
                    }
                }
                then accept;
            }
        }
    }
}</pre>
<p>Apply to the interface:</p>
<div class="coding">
<pre>interfaces {
    em0 {
        unit 0 {
            enable;
            family inet {
                filter {
                    input NOICMP;
                }
                address 192.168.2.133/24;
            }
        }
    }</pre>
</div>
<p>Other possible arguments to ip-options clause:</p>
<div class="cmd">set term 3 from ip-options ?</div>
<p>Possible completions:</p>
<pre>&lt;range&gt;              Range of values
  [                    Open a set of values
  any                  Any IP option
  loose-source-route   Loose source route
  route-record         Route record
  router-alert         Router alert
  security             Security
  stream-id            Stream ID
  strict-source-route  Strict source route
  timestamp            Timestamp</pre>
<p> </p>
<div><strong>Windows 2008.</strong><br />
By default it doesnt allow/forward packets with Source Routing set, and that's good. For completeness<br />
here is how to enable (or check whether it is enabled) source-routed forwarding:<br />
<span class="cmd">BillG&gt; netsh interface ipv4 set global sourceroutingbehavior=drop| forward| dontforward </span><br />
- or-<br />
Registry:<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameter<br />
Key: DisableIPSourceRouting<br />
DWORD value: 0</div>
<div><strong>Verify:</strong><br />
In Security any measure/protection/method is as good as the proof you can present that it actually works.<br />
Windows:<br />
- Ping with Record Route field set:<br />
<span class="cmd">BillG&gt; ping –r 9 192.2.2.1</span><br />
- Ping with Strict Routing field set:<br />
<span class="cmd">BillG&gt; ping –k &lt;1st_hop_router_IP&gt; &lt;2nd_hop_router_IP…&gt; &lt;target&gt;</span><br />
- Ping with Loose Routing field set:<br />
<span class="cmd">BillG&gt; ping -j &lt;1st_hop_router_IP&gt; &lt;2nd_hop_router_IP…&gt; &lt;target&gt;</span><br />
- Ping with Timestamp option set:<br />
<span class="cmd">BillG&gt; ping –s 3 8.8.8.8</span><br />
Linux:<br />
- Ping with Record Route field set:<br />
<span class="cmd">root@darktstar:~/nmap# ping -R 8.8.8.8 </span><br />
- Ping with Timestamp option set:<br />
<span class="cmd">root@darkstar:~/nmap# ping -T tsonly 8.8.8.8</span><br />
Linux,BSD,Unix :<br />
This handy utility sends bunch of packets to the target to test what Ip Options the target supports:<br />
<span class="cmd">freebsd# fragtest ip-opt 192.168.2.133</span><br />
ip-opt: sec lsrr ts esec cipso satid ssrr<br />
I run fragroute above against Juniper (8.3) that was configured in the example earlier to block only Record Route option, as you can see it is indeed missing in the output list that enumerates what Ip Options the target supports [ see Reference for fragroute details]</div>
<p>References for further details:<br />
Juniper: <a href="http://www.amazon.com/JUNOS-Enterprise-Routing-Practical-Certification/dp/0596514425/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1264336662&amp;sr=1-1" target="_blank">JUNOS Enterprise Routing, 1st Edition, By Doug Marschke; Harry Reynolds, 2008</a><br />
Microsoft ISA : <a href="http://www.amazon.com/Microsoft-ISA-Server-2006-Unleashed/dp/0672329190" target="_blank">Microsoft® ISA Server 2006 Unleashed ,By Michael Noel, 2007</a><br />
Fragroute <a href="http://monkey.org/~dugsong/fragroute/" target="_blank">http://monkey.org/~dugsong/fragroute/</a><br />
Windows 2008: <a href="http://www.microsoft.com/learning/en/us/book.aspx?ID=11630&amp;locale=en-us" target="_blank">Windows® Server 2008 TCP/IP Protocols and Services,By Joseph Davies, 2008 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/01/23/ip-options-are-evil-%e2%80%93-drop-them-drop-them-on-cisco-asaios-microsoft-isa-juniper-or-checkpoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ping – setting don&#8217;t fragment bit in Linux/FreeBSD/Solaris/Cisco/Juniper</title>
		<link>http://yurisk.info/2009/09/01/ping-setting-dont-fragment-bit-in-linuxfreebsdsolarisciscojuniper/</link>
		<comments>http://yurisk.info/2009/09/01/ping-setting-dont-fragment-bit-in-linuxfreebsdsolarisciscojuniper/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 08:42:46 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Awk weekly]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Fortigate]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[awk weekly]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=201</guid>
		<description><![CDATA[Ping. Many times while debugging network problems of various kinds you need to send some packets of desirable size  and don’t fragment bit being set. Below I list how to do it for  the different equipment/OSes. Let’s start with the  most popular operating system among network folks – Linux: Linux By default ping in any [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Ping.</strong></p>
<p>Many times while debugging network problems of various kinds you need to send some packets<br />
of desirable size  and don’t fragment bit being set. Below I list how to do it for  the different<br />
equipment/OSes.<br />
Let’s start with the  most popular operating system among network folks – Linux:</p>
<p><strong><span style="text-decoration: underline;">Linux</span></strong></p>
<p>By default ping in any Linux-based system (It also means any distribution – Slackware, Ubuntu, CentOS etc) is sent with<br />
Don’t fragment (df) bit set . You don’t need to add any command line switches for that.<br />
Here is what you get by default ping in Linux:<br />
Defaults:<br />
Don’t fragment bit  (in echo request)  &#8211; set<br />
Ip packet size – 84 bytes<br />
Sending interval  &#8211; 1 second</p>
<p>Some examples.<br />
- sending pings station:<br />
[root@lonestar ~]# ping 191.91.21.41<br />
-   receiving station:<br />
[root@darkstar ~]# tcpdump -s 1500 -n -vv icmp<br />
21:23:51.598641 IP (tos 0&#215;0, ttl  61, id 20, offset 0, <span style="color: #0000ff;">flags [DF]</span>, proto: ICMP (1), length: <span style="color: #0000ff;">84</span>) 112.225.125.100 &gt; 10.99.99.150: ICMP echo request, id 5392, seq 20, length 64<br />
21:23:51.598817 IP (tos 0&#215;0, ttl  64, id 7135, offset 0, flags [none], proto: ICMP (1), length: 84) 10.99.99.150 &gt; 112.225.125.100: ICMP echo reply, id 5392, seq 20, length 64<br />
To change sent packet size:<br />
<strong> -s  &lt;size&gt; , bytes</strong> (8 bytes of ICMP header will be added automatically).</p>
<p>Sending host:<br />
[root@darkstar ~]# ping 10.99.99.158 -s 1300<br />
PING 10.99.99.158 (10.99.99.158) 1300(1328) bytes of data.<br />
1308 bytes from 10.99.99.158: icmp_seq=1 ttl=64 time=1.65 ms</p>
<p>Receiving host:<br />
freeBSD# tcpdump -n -v -s 1500 icmp<br />
16:15:11.901787 IP (tos 0&#215;0, ttl 64, id 0, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto ICMP (1), length <span style="color: #0000ff;">1328</span>) 10.99.99.150 &gt; 10.99.99.158: ICMP echo request, id 44399, seq 63, length 1308<br />
To change sending interval (mostly used together with large packet size) :<br />
<strong>-i  &lt;secs&gt;</strong></p>
<p>Sending host:<br />
[root@darkstar ~]# ping -s 1300 -i 0.2 10.99.99.158</p>
<p>Receiving host:<br />
freeBSD# tcpdump -n -v -s 1500 icmp<br />
16:20:11.223481 IP (tos 0&#215;0, ttl 64, id 0, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto ICMP (1), length <span style="color: #0000ff;">1328</span>) 10.99.99.150 &gt; 10.99.99.158: ICMP echo request, id 1136, seq 396, length 1308<br />
16:20:11.223496 IP (tos 0&#215;0, ttl 64, id 805, offset 0, flags [DF], proto ICMP (1), length 1328) 10.99.99.158 &gt; 10.99.99.150: ICMP echo reply, id 1136, seq 396, length 1308</p>
<p>To force Linux to send pings with DF bit cleared (i.e. not set):<br />
<strong>ping –M don’t</strong></p>
<p>Sending host:</p>
<p>[root@darkstar ~]# ping -s 1300 -M dont  10.99.99.158<br />
PING 10.99.99.158 (10.99.99.158) 1300(1328) bytes of data.<br />
1308 bytes from 10.99.99.158: icmp_seq=1 ttl=64 time=0.560 ms</p>
<p>Receiving host:</p>
<p>freeBSD# tcpdump -n -v -s 1500 icmp<br />
16:28:33.111903 IP (tos 0&#215;0, ttl 64, id 41857, offset 0, <span style="color: #0000ff;">flags [none],</span> proto ICMP (1), length 1328) 10.99.99.150 &gt; 10.99.99.158: ICMP echo request, id 33136, seq 6, length 1308<br />
16:28:33.111920 IP (tos 0&#215;0, ttl 64, id 9425, offset 0, flags [none], proto ICMP (1), length 1328) 10.99.99.158 &gt; 10.99.99.150: ICMP echo reply, id 33136, seq 6, length 1308</p>
<p><strong>SideNote:</strong> FreeBSD ping has a nice add-on (see below) – sweeping size of the packets, while Linux doesn’t have such extra feature,<br />
Below is script to emulate it on Linux:<br />
awk  &#8216; BEGIN  {for (size=100;size&lt;1470;size++)  {<br />
cmd = (&#8220;ping –c 3 –I 0.5 –s  &#8221; size  &#8220;  &#8220;  &#8220;10.99.99.158&#8243;)<br />
print cmd | &#8220;/bin/bash&#8221;<br />
close(&#8220;/bin/bash&#8221;)  } } &#8216;</p>
<p>Here:<br />
<em> size</em> – size of data in ICMP packet (bytes);<br />
<em>-I 0.5</em> – interval of 5 seconds (optional);<br />
<em>-c 3</em> &#8211; number of pings in each size session (NOT optional – or you will enter an endless loop which even Ctrl-C won’t be able<br />
to stop )</p>
<p>See it in action:<br />
[root@darkstar ~]# awk  &#8216; BEGIN  {for (size=100;size&lt;1470;size++)  {<br />
cmd = (&#8220;ping -c 3 -i 0.5 -s  &#8221; size  &#8220;  &#8220;  &#8220;10.99.99.158&#8243;)<br />
print cmd | &#8220;/bin/bash&#8221;<br />
close(&#8220;/bin/bash&#8221;)  } } &#8216;<br />
PING 10.99.99.158 (10.99.99.158) 100(128) bytes of data.<br />
108 bytes from 10.99.99.158: icmp_seq=1 ttl=64 time=1.75 ms<br />
108 bytes from 10.99.99.158: icmp_seq=2 ttl=64 time=0.276 ms<br />
108 bytes from 10.99.99.158: icmp_seq=3 ttl=64 time=0.201 ms</p>
<p>&#8212; 10.99.99.158 ping statistics &#8212;<br />
3 packets transmitted, 3 received, 0% packet loss, time 1002ms<br />
rtt min/avg/max/mdev = 0.201/0.742/1.750/0.713 ms<br />
PING 10.99.99.158 (10.99.99.158) 101(129) bytes of data.<br />
109 bytes from 10.99.99.158: icmp_seq=1 ttl=64 time=0.185 ms<br />
109 bytes from 10.99.99.158: icmp_seq=2 ttl=64 time=0.253 ms<br />
109 bytes from 10.99.99.158: icmp_seq=3 ttl=64 time=0.230 ms</p>
<p>&#8212; 10.99.99.158 ping statistics &#8212;<br />
3 packets transmitted, 3 received, 0% packet loss, time 1000ms<br />
rtt min/avg/max/mdev = 0.185/0.222/0.253/0.033 ms<br />
PING 10.99.99.158 (10.99.99.158) 102(130) bytes of data.<br />
110 bytes from 10.99.99.158: icmp_seq=1 ttl=64 time=0.118 ms<br />
110 bytes from 10.99.99.158: icmp_seq=2 ttl=64 time=0.201 ms<br />
110 bytes from 10.99.99.158: icmp_seq=3 ttl=64 time=0.343 ms</p>
<p>&#8212; 10.99.99.158 ping statistics &#8212;<br />
3 packets transmitted, 3 received, 0% packet loss, time 1001ms<br />
rtt min/avg/max/mdev = 0.118/0.220/0.343/0.094 ms<br />
PING 10.99.99.158 (10.99.99.158) 103(131) bytes of data.<br />
111 bytes from 10.99.99.158: icmp_seq=1 ttl=64 time=0.565 ms<br />
111 bytes from 10.99.99.158: icmp_seq=2 ttl=64 time=0.182 ms<br />
111 bytes from 10.99.99.158: icmp_seq=3 ttl=64 time=0.329 ms<br />
<strong><span style="text-decoration: underline;">FreeBSD</span></strong></p>
<p>Defaults:<br />
Don’t fragment bit &#8211; not set   ; use –D  option to set<br />
IP Packet size:  84 bytes  ;  use –s option to change<br />
Sending interval:  1 sec  ;   use  –I  &lt;secs&gt; to change<br />
e.g. Sending pings  of data size 1300 bytes with interval 0.2 seconds with df bit set:</p>
<p>Sending host[10.99.99.158]:<br />
freeBSD# ping -D -s 1300 -i 0.2 10.99.99.150</p>
<p>Receiving host[10.99.99.150]:<br />
[root@darkstar ~]# tcpdump -n -v -s 1500  host 10.99.99.158<br />
20:42:57.816697 IP (tos 0&#215;0, ttl  64, id 11630, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">1328</span>) 10.99.99.158 &gt; 10.99.99.150: ICMP echo request, id 10770, seq 23, length 1308<br />
20:42:57.816914 IP (tos 0&#215;0, ttl  64, id 33327, offset 0, flags [none], proto: ICMP (1), length: 1328) 10.99.99.150 &gt; 10.99.99.158: ICMP echo reply, id 10770, seq 23, length 1308</p>
<p><strong>SideNote:</strong> *BSD family  has  a nice additional option  not found in most other systems  – you can  order ping to sweep size of sent packets .<br />
Example follows:</p>
<p>Here sweep range is from 20 bytes up to 1400 bytes, increase step is 300 bytes.</p>
<p>Sending host[10.99.99.158]:<br />
freeBSD# ping -D <span style="color: #0000ff;">-<span style="color: #0000ff;">g 20 -G 1400</span></span><span style="color: #0000ff;"> -h 300</span> 10.99.99.150<br />
PING 10.99.99.150 (10.99.99.150): (20 &#8230; 1400) data bytes<br />
28 bytes from 10.99.99.150: icmp_seq=0 ttl=64 time=1.313 ms<br />
328 bytes from 10.99.99.150: icmp_seq=1 ttl=64 time=0.531 ms<br />
628 bytes from 10.99.99.150: icmp_seq=2 ttl=64 time=0.581 ms<br />
928 bytes from 10.99.99.150: icmp_seq=3 ttl=64 time=0.362 ms<br />
1228 bytes from 10.99.99.150: icmp_seq=4 ttl=64 time=0.223 ms</p>
<p>&#8212; 10.99.99.150 ping statistics &#8212;<br />
5 packets transmitted, 5 packets received, 0.0% packet loss<br />
round-trip min/avg/max/stddev = 0.223/0.602/1.313/0.377 ms<br />
Receiving host[10.99.99.150]:<br />
[root@darkstar ~]# tcpdump -n -v -s 1500  host 10.99.99.158<br />
21:50:06.942165 IP (tos 0&#215;0, ttl  10.99.99.150 64, id 12828, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">48</span>) 10.99.99.158 &gt; 10.99.99.150: ICMP echo request, id 50962, seq 0, length 28<br />
21:50:06.944098 IP (tos 0&#215;0, ttl  64, id 43255, offset 0, flags [none], proto: ICMP (1), length: 48) 10.99.99.150 &gt; 10.99.99.158: ICMP echo reply, id 50962, seq 0, length 28<br />
21:50:07.944761 IP (tos 0&#215;0, ttl  64, id 12831, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">348</span>) 10.99.99.158 &gt; 10.99.99.150: ICMP echo request, id 50962, seq 1, length 328<br />
21:50:07.944826 IP (tos 0&#215;0, ttl  64, id 43256, offset 0, flags [none], proto: ICMP (1), length: 348) 10.99.99.150 &gt; 10.99.99.158: ICMP echo reply, id 50962, seq 1, length 328<br />
21:50:08.945815 IP (tos 0&#215;0, ttl  64, id 12833, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">648</span>) 10.99.99.158 &gt; 10.99.99.150: ICMP echo request, id 50962, seq 2, length 628<br />
21:50:08.945890 IP (tos 0&#215;0, ttl  64, id 43257, offset 0, flags [none], proto: ICMP (1), length: 648) 10.99.99.150 &gt; 10.99.99.158: ICMP echo reply, id 50962, seq 2, length 628<br />
21:50:09.946724 IP (tos 0&#215;0, ttl  64, id 12835, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">948</span>) 10.99.99.158 &gt; 10.99.99.150: ICMP echo request, id 50962, seq 3, length 928<br />
21:50:09.946819 IP (tos 0&#215;0, ttl  64, id 43258, offset 0, flags [none], proto: ICMP (1), length: 948) 10.99.99.150 &gt; 10.99.99.158: ICMP echo reply, id 50962, seq 3, length 928</p>
<p><strong><span style="text-decoration: underline;">SOLARIS</span></strong><br />
Defaults:<br />
Don’t fragment bit    - <span style="text-decoration: underline;"> not set</span> , and not changeable , yes , it sounds strange but Solaris doesn’t<br />
support  df bit in its ping utility. You may set df bit in their traceroute program , but it has no provision for changing size of the packet and therefore is of no value for our case.</p>
<p>Non-verbose ; use –s to override<br />
IP packet size:  84 bytes</p>
<p>Pinging with defaults:<br />
<a href="mailto:root@opensolaris">root@solaris</a>:~# ping -s 10.99.99.150<br />
PING 10.99.99.150: 56 data bytes<br />
64 bytes from 10.99.99.150: icmp_seq=0. time=0.759 ms</p>
<p>Receiving host:<br />
[root@darkstar ~]# tcpdump -n -v -s 1500  host 10.99.99.159<br />
20:50:08.084364 IP (tos 0&#215;0, ttl 255, id 8020, offset 0, <span style="color: #0000ff;">flags [none],</span> proto: ICMP (1), length: <span style="color: #0000ff;">84</span>) 10.99.99.159 &gt; 10.99.99.150: ICMP echo request, id 9096, seq 7, length 64<br />
20:50:08.084538 IP (tos 0&#215;0, ttl  64, id 52389, offset 0, flags [none], proto: ICMP (1), length: 84) 10.99.99.150 &gt; 10.99.99.159: ICMP echo reply, id 9096, seq 7, length 64</p>
<p>To change size of sent packet, to say 1300 bytes of data:</p>
<p><a href="mailto:root@opensolaris">root@solaris</a>:~# ping -s 10.99.99.150  <span style="color: #0000ff;">1320</span><br />
PING 10.99.99.150: 1320 data bytes<br />
1328 bytes from 10.99.99.150: icmp_seq=0. time=1.610 ms<br />
1328 bytes from 10.99.99.150: icmp_seq=1. time=0.335 ms<br />
<strong>SideNote:</strong> There is no size sweeping capability built-in , so I wrote  this script to   emulate this feature  in Solaris as well:<br />
<a href="mailto:root@opensolaris">root@solaris</a>:~# awk  &#8216; BEGIN  {for (size=100;size&lt;1470;size=size+10)  {<br />
cmd = (&#8220;ping   -s &#8220;    &#8220;10.99.99.158 &#8221; size  &#8221; 3&#8243;)<br />
print cmd | &#8220;/bin/bash&#8221;<br />
close(&#8220;/bin/bash&#8221;)  } } &#8216;</p>
<p>Here :<br />
<em>size </em> -  size of date in ICMP packet , starts at 10 bytes ends at 170 bytes<br />
<em>size+10</em> – size incrementing by 10 bytes each series of pings<br />
<em>3</em> &#8211; number of pings in each size set.</p>
<p>Results:<br />
<a href="mailto:root@opensolaris">root@solaris</a>:~# awk  &#8216; BEGIN  {for (size=100;size&lt;1470;size=size+10)  {<br />
cmd = (&#8220;ping   -s &#8220;    &#8220;10.99.99.158 &#8221; size  &#8221; 3&#8243;)<br />
print cmd | &#8220;/bin/bash&#8221;<br />
close(&#8220;/bin/bash&#8221;)  } } &#8216;<br />
PING 10.99.99.158: 100 data bytes<br />
108 bytes from 10.99.99.158: icmp_seq=0. time=0.319 ms<br />
108 bytes from 10.99.99.158: icmp_seq=1. time=0.460 ms<br />
108 bytes from 10.99.99.158: icmp_seq=2. time=0.328 ms</p>
<p>&#8212;-10.99.99.158 PING Statistics&#8212;-<br />
3 packets transmitted, 3 packets received, 0% packet loss<br />
round-trip (ms)  min/avg/max/stddev = 0.319/0.369/0.460/0.079<br />
PING 10.99.99.158: 110 data bytes<br />
118 bytes from 10.99.99.158: icmp_seq=0. time=0.371 ms<br />
118 bytes from 10.99.99.158: icmp_seq=1. time=0.370 ms<br />
118 bytes from 10.99.99.158: icmp_seq=2. time=0.477 ms</p>
<p>&#8212;-10.99.99.158 PING Statistics&#8212;-<br />
3 packets transmitted, 3 packets received, 0% packet loss<br />
round-trip (ms)  min/avg/max/stddev = 0.370/0.406/0.477/0.061<br />
PING 10.99.99.158: 120 data bytes<br />
128 bytes from 10.99.99.158: icmp_seq=0. time=0.395 ms<br />
128 bytes from 10.99.99.158: icmp_seq=1. time=0.361 ms<br />
128 bytes from 10.99.99.158: icmp_seq=2. time=0.264 ms</p>
<p><strong><span style="text-decoration: underline;"> CISCO routers (IOS)</span></strong></p>
<p>Defaults:<br />
IP packet size : 100 bytes ;  use <strong>size &lt;size&gt;</strong> to change<br />
Don’t fragment bit &#8211; not set  ;  use <strong>df-bit</strong> to set</p>
<p>Running with defaults:<br />
Tokyo#ping 191.91.21.41<br />
Type escape sequence to abort.<br />
Sending 5, 100-byte ICMP Echos to 191.91.21.41, timeout is 2 seconds:<br />
!!!!!<br />
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms</p>
<p>Receiving host:<br />
[root@darkstar ~]# tcpdump -n -v  -s 1500 icmp<br />
22:16:53.758056 IP (tos 0&#215;0, ttl 253, id 11, offset 0, <span style="color: #0000ff;">flags [none],</span> proto: ICMP (1), length: <span style="color: #0000ff;">100</span>) 174.93.31.134 &gt; 10.99.99.150: ICMP echo request, id 4, seq 0, length 80<br />
22:16:53.758246 IP (tos 0&#215;0, ttl  64, id 10923, offset 0, flags [none], proto: ICMP (1), length: 100) 10.99.99.150 &gt; 174.93.31.134 : ICMP echo reply, id 4, seq 0, length 80<br />
&lt; &#8212; Cut for brevity &#8211;&gt;<br />
Setting df bit and size of the packet size  (Note – here when you set size of the ping you set IP packet size and not ICMP data size as  in *Nix systems).<br />
Repeat count is set to 3 .<br />
Tokyo#ping 191.91.21.41 size 1300 df-bit rep 3<br />
Type escape sequence to abort.<br />
Sending 3, 1300-byte ICMP Echos to 191.91.21.41, timeout is 2 seconds:<br />
Packet sent with the DF bit set<br />
!!!<br />
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms</p>
<p>Receiving host:<br />
[root@darkstar ~]# tcpdump -n -v  -s 1500 icmp<br />
22:18:16.657849 IP (tos 0&#215;0, ttl 253, id 21, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">1300)</span> 174.93.31.134  &gt; 10.99.99.150: ICMP echo request, id 6, seq 0, length 1280<br />
22:18:16.658028 IP (tos 0&#215;0, ttl  64, id 10933, offset 0, flags [none], proto: ICMP (1), length: 1300) 10.99.99.150 &gt; 174.93.31.134 : ICMP echo reply, id 6, seq 0, length 1280<br />
<span style="text-decoration: underline;">Sweeping ping size.</span><br />
This feature is available from extended ping menu:<br />
Rio#ping<br />
Protocol [ip]:<br />
Target IP address: 191.91.21.41<br />
Repeat count [5]:<br />
Datagram size [100]:<br />
Timeout in seconds [2]:<br />
Extended commands [n]: <span style="color: #0000ff;">y<br />
</span>Source address or interface:<br />
Type of service [0]:<br />
Set DF bit in IP header? [no]: y<br />
Validate reply data? [no]:<br />
Data pattern [0xABCD]:<br />
Loose, Strict, Record, Timestamp, Verbose[none]:<br />
<span style="color: #0000ff;">Sweep range of sizes [n]: y<br />
Sweep min size [36]:<br />
Sweep max size [18024]: 1700<br />
Sweep interval [1]: 100<br />
</span>Type escape sequence to abort.<br />
Sending 85, [36..1700]-byte ICMP Echos to 191.91.21.41, timeout is 2 seconds:<br />
Packet sent with the DF bit set<br />
!!!!!!!!!!!!!!<br />
Receiving host:<br />
10:35:22.563851 IP (tos 0&#215;0, ttl 253, id 179, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">36</span>) 174.93.31.134  &gt; 10.99.99.150: ICMP echo request, id 9, seq 0, length 16<br />
10:35:22.563891 IP (tos 0&#215;0, ttl  64, id 46861, offset 0, flags [none], proto: ICMP (1), length: 36) 10.99.99.150 &gt; 174.93.31.134 : ICMP echo reply, id 9, seq 0, length 16<br />
10:35:22.566205 IP (tos 0&#215;0, ttl 253, id 180, offset 0, <span style="color: #0000ff;">flags [DF],</span> proto: ICMP (1), length: <span style="color: #0000ff;">136</span>) 174.93.31.134  &gt; 10.99.99.150: ICMP echo request, id 9, seq 1, length 116<br />
10:35:22.566223 IP (tos 0&#215;0, ttl  64, id 46862, offset 0, flags [none], proto: ICMP (1), length: 136) 10.99.99.150 &gt; 174.93.31.134 : ICMP echo reply, id 9, seq 1, length 116</p>
<p><strong><span style="text-decoration: underline;">Juniper routers (JunOS):</span></strong><br />
Defaults:<br />
Ip packet size : 84 bytes<br />
Don’t fragment bit – not set; use <strong>do-not-fragment</strong> to set<br />
Interval  &#8211; 1 sec;  use <strong>interval &lt;secs&gt;</strong> to change<br />
Sending pings with df bit set and size 1470 bytes<br />
<a href="mailto:root@Juniper">root@Juniper</a>&gt; ping 192.168.37.29 do-not-fragment size 1470<br />
ping 192.168.37.29 do-not-fragment size 1470<br />
PING 192.168.37.29 (192.168.37.29): 1470 data bytes<br />
1478 bytes from 192.168.37.29: icmp_seq=0 ttl=64 time=1.434 ms<br />
1478 bytes from 192.168.37.29: icmp_seq=1 ttl=64 time=0.210 ms</p>
<p>&#8212; 192.168.37.29 ping statistics &#8212;<br />
4 packets transmitted, 4 packets received, 0% packet loss<br />
round-trip min/avg/max/stddev = 0.203/0.513/1.434/0.532 ms</p>
<p>IF packet size too large and df is set you get this:</p>
<p><a href="mailto:root@Juniper">root@Juniper</a>&gt; ping 192.168.37.29 do-not-fragment size 13000<br />
ping 192.168.37.29 do-not-fragment size 13000<br />
PING 192.168.37.29 (192.168.37.29): 13000 data bytes<br />
ping: sendto: Message too long</p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2009/09/01/ping-setting-dont-fragment-bit-in-linuxfreebsdsolarisciscojuniper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

