<?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>6lab.cz | RSS Feed</title>
	<atom:link href="http://6lab.cz/category/ipv6/feed/" rel="self" type="application/rss+xml" />
	<link>http://6lab.cz</link>
	<description>Networking, IPv6, Security</description>
	<lastBuildDate>Tue, 24 Oct 2017 08:54:46 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>Bypassing ACL using extension headers</title>
		<link>http://6lab.cz/bypassing-acl-using-extension-headers/</link>
		<comments>http://6lab.cz/bypassing-acl-using-extension-headers/#comments</comments>
		<pubDate>Wed, 06 Nov 2013 14:34:01 +0000</pubDate>
		<dc:creator><![CDATA[Matej Gregr]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://6lab.cz/?p=1849</guid>
		<description><![CDATA[The video demonstrates how to bypass an access control list on HP A5800 switch using IPv6 and extension headers. The attacker uses kernel modul which adds empty destination-options headers to the whole TCP session, thus is able to connect to any service on the server. The video is temporarily removed ... <a href="http://6lab.cz/bypassing-acl-using-extension-headers/" class="more-link">Read More</a>]]></description>
				<content:encoded><![CDATA[<p>The video demonstrates how to bypass an access control list on HP A5800 switch using IPv6 and extension headers. The attacker uses kernel modul which adds empty destination-options headers to the whole TCP session, thus is able to connect to any service on the server.</p>
<p><strong>The video is temporarily removed on request from the HP Security team.</strong></p>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the main author</h6><div class="x-author-info"><h4 class="h-author mtn">Matej Gregr</h4><a href="http://www.fit.vutbr.cz/~igregr/" class="x-author-social" title="Visit the website for Matej Gregr" target="_blank"><i class="x-icon-globe"></i> http://www.fit.vutbr.cz/~igregr/</a><span class="x-author-social"><i class="x-icon-envelope"></i> igregr@fit.vutbr.cz</span><p class="p-author mbn">PhD student at Brno University of Technology. He teaches network related courses and his research concerns IPv6 security, monitoring and deployment. He works also as a network administrator at Brno campus network and participates in the European project - GÉAN3 Campus Best Practice.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/bypassing-acl-using-extension-headers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtualisation of Critical Network Services &#8211; Best Practice Document</title>
		<link>http://6lab.cz/virtualisation-of-critical-network-services-best-practice-document/</link>
		<comments>http://6lab.cz/virtualisation-of-critical-network-services-best-practice-document/#comments</comments>
		<pubDate>Mon, 14 Oct 2013 15:18:34 +0000</pubDate>
		<dc:creator><![CDATA[Pavel Kislinger]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://6lab.cz/?p=1797</guid>
		<description><![CDATA[This document describes a way to virtualise the number of network servers that are required for the operation of a large campus network. These servers provide services, including DHCP, DNS, VPN, email, network monitoring, and radius. Most of these services are so important that the network must operate two or ... <a href="http://6lab.cz/virtualisation-of-critical-network-services-best-practice-document/" class="more-link">Read More</a>]]></description>
				<content:encoded><![CDATA[<p>This document describes a way to virtualise the number of network servers that are required for the operation of a large campus network. These servers provide services, including DHCP, DNS, VPN, email, network monitoring, and radius. Most of these services are so important that the network must operate two or more of them at the same time, and this leads to an increase in the number of servers. Usually, these services do not require a great deal of computing power, indicating an excellent opportunity to use virtualisation The document is focused on the different requirements to be considered when choosing the appropriate hardware for the job, with emphasis on the price/performance ratio, while maintaining all the benefits of the Vmware vSphere system, which was selected as the virtualisation platform. The document also describes practical experience and the pitfalls that may be encountered during the installation of the system. It describes the configuration of network devices, the iSCSI storage, and the VMware vSphere hypervisors. The conclusion summarises the results and explains the benefits of virtualisation for the campus network.</p>
<h2>1 Virtualisation of Critical Network Services</h2>
<p>The first part of this document describes the advantages and disadvantages of virtualisation for given types of services and explains the purpose of building a virtualisation cluster in two geographically distant locations. The second part is devoted to a specific configuration of network devices and to the preparation that needs to be done before connecting individual parts of the virtualisation cluster. It describes actual experience gained in the operation of these clusters in a situation where it was necessary to revise the network topology. The next section of the document explains how to select the appropriate hardware, especially in the choice of storage and hypervisor hardware. It describes the required properties, with an emphasis on diversity, and in particular, how the virtualisation cluster differs from the usual VMware vSphere cluster. This is followed by a section devoted to the practical configuration of a VMware vSphere and a vCenter. The final section presents the results of the measurement of consumption before and after the virtualisation of the critical servers as well as other operating statistics.</p>
<p>The term, virtualisation, is an IT buzzword, referring to technologies that create an abstraction layer between computer hardware and software. This layer creates a transparent, logical structure that masks the physical (real) one. The goals of virtualisation are the simplification of maintenance, easier scalability, higher accessibility, better utilisation of hardware, and improved security. The memory, the processors, the computer network, the storage, the data, or the whole computer system can be virtualised. The virtualisation of a computer enables one physical server to run multiple operating systems. This is called server virtualisation and can be accomplished in different ways. The most frequently used method of server virtualisation is hardwareassisted virtualisation, which requires a special instruction to be set in the CPU (Intel VT-x and AMD-V), but offers the best performance. This method of virtualisation is the focus of this document.</p>
<h3>1.1 Resilient virtualisation cluster</h3>
<p>To be able to choose the right platform, it is necessary to know and understand the basics of server virtualisation. Everyone who starts with server virtualisation typically installs virtualisation software on a server with large amounts of memory and high capacity drives for all of the virtual servers. This system works well in a test environment. In a production environment, is also necessary to provide protection against various types of accidents that may occur during operation. Current servers have two power supplies, hot swap disk drives in RAID array, multiple CPUs, and many memory modules. However, consideration has to be given to the chance that the server motherboard, the RAID controller, or the power can fail. It is necessary to anticipate infrastructure failures caused by network problems, failure of the cooling system in the server room, or revision of the wiring. All of these cases of failure will result in the unavailability of all of the virtual servers. To counter these potential threats, is necessary to extend the virtualisation system by adding several elements. First, it is necessary to increase the number of hypervisors.</p>
<p>This, in itself, does not contribute substantially, because live migrations of the virtual systems cannot be achieved on two servers alone. Migration of these systems is only possible when all hypervisors have access to shared storage. This storage then becomes a bottleneck, because a failure of the device causes unavailability of the system. Therefore, storage is designed with this in mind: enterprise storage and hard disks. These types of storage have two independent RAID controllers. Each enterprise hard disk has two storage interfaces to connect it to both of the RAID controllers, and this provides resilience in the event of the failure of one of the controllers. The security threats for this type of device are storage power failure, air conditioning failure, or some other disaster. Maintenance of this device is also very complicated, because all actions are performed during run time.</p>
<p>The solution to this problem is to have two storage devices in two, geographically distant locations. All hypervisors have access to both of these storage locations. This makes it possible to move all virtual servers to the first device while maintenance is performed on the second. This ability to move virtual systems to another location is important when there is a planned, structural modification of the wiring, and also in the event of a disaster. A potential bottleneck of this system is an unexpected failure of storage that contains production data. Although this scenario is unlikely, due to the features of enterprise storage, it must be considered. These cases can be solved by restoring the data from a backup server or by using storage facilities with cross-data replication. Unfortunately,these functions are only supported on the top brands of storage hardware, where cost and complexity are much higher than for middle-class storage hardware.</p>
<p>This paper describes a virtualisation cluster, based on two middle-class arrays (without the support of crossreplication) and several hypervisors.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_7_1.png"><img class="aligncenter  wp-image-1786" title="vcns_7_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_7_1.png" alt="" width="445" height="281" /></a></p>
<h3>1.2 Selection of the virtualisation platform</h3>
<p>There are many virtualisation solutions. Each of them has its advantages/disadvantages and developers always claim that their product is the best. Selection of the best may not be completely obvious. Among other requirements, a virtualisation system must permit the installation of any operating system, live migration of virtual systems between hypervisors, and movement of live virtual systems from one storage subsystem to another (live migration of a Virtual Machine from one storage location to another without downtime). Another important feature is the ability to ensure uninterrupted operation of the virtual systems when the hypervisor fails. The following table compares the characteristics of the best-known virtualisation solutions.</p>
<table class="tabulka1px centered">
<tbody>
<tr>
<th></th>
<th>VMware vSphere</th>
<th>VMware ESXi Free</th>
<th>Microsoft Hyper-V</th>
<th>KVM</th>
<th>XEN</th>
<th>OpenVZ</th>
</tr>
<tr>
<td>VM Windows</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
</tr>
<tr>
<td>VM Linux</td>
<td>Yes</td>
<td>Yes</td>
<td>Partially</td>
<td>Yes</td>
<td>Yes</td>
<td>Partially**</td>
</tr>
<tr>
<td>VM Unix</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Partially**</td>
</tr>
<tr>
<td>VM Migration</td>
<td>Yes</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>VM Storage M.</td>
<td>Yes*</td>
<td>No</td>
<td>Downtime***</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p class="figure-comment">* Storage vMotion is enabled in VMware vSphere Enterprise<br />
** OpenVZ needs a modified kernel for VM<br />
*** Hyper-V online VM storage motion is possible, but with downtime during motion (partially solved in Windows Server 2012)</p>
<p>VMware vSphere is definitely not the most powerful solution, but its flexibility, ease of implementation, and system-support from hardware vendors sets the standard for virtualisation. It provides many features that competitors do not yet offer, such as Distributed Resource Scheduler (DRS), Distributed Power Management (DPM), High Availability (HA), Fault Tolerance (FT), and Network I/O Control. Thus, it is well ahead of its competitors, who are still several steps behind this solution. This dominance entails a disadvantage in terms of price, which is several times higher than the price of other virtualisation platforms.</p>
<h2>2 Hardware Selection</h2>
<p>Most virtualisation clusters focus on maximum performance, memory size and IOPS. Virtual servers only use the resources related to the services running on them. The performance of most services depends on the speed of CPU (processing video data, simulation, etc.). Other services require maximum IOPS and extra memory (large database systems, web servers). There are also services that never use more than a fraction of CPU and the IOPS-value is not relevant for them because data from storage are rarely loaded. These are also the services necessary for the operation of large computer networks on the campus: DHCP, DNS, VPN, email, radius, and various monitoring tools or web services. The following section explains the selection of hardware suitable for virtualisation of services of this kind.</p>
<h3>2.1 Optimal hypervisor hardware</h3>
<p>As described in previous sections, the most important hardware parts of the virtualisation cluster are the hypervisors and storage devices. Campus network infrastructure requires their interconnection into one robust VMware vSphere cluster. The selection of hardware must be adapted to the characteristics of the virtualised services, and also to VMware licensing policy. It is necessary to license each physical processor unit and every few gigabytes of memory.</p>
<p>Details about VMware vSphere licensing are available on the website [<a href="#lit_1">1</a>]. The best server is equipped with one powerful CPU and up to 64GB memory. This configuration uses all of the resources of one licence of VMware vSphere ESXi 5 Enterprise.</p>
<p>Today&#8217;s processors are about ten times more powerful than the CPU&#8217;s of five years ago. This allows a processor to replace several older servers. The best price-performance ratio is offered by the Intel Xeon 5600 or the Xeon E5-2600 family of processors.</p>
<p>A VMware vSphere hypervisor requires about 1GB of disk space for installation. Essentially, this storage is only used at system boot. The optimal solution for hypervisor storage is an enterprise flash memory with a capacity of at least 2GB. Other storage systems are not necessary because the data of the virtual servers are stored on a shared iSCSI storage device. Because there is no need to install additional hard drives, it is possible to fit the server hardware into a small server chassis with a height of 1U (Standard Rack Unit).</p>
<p>The parameters described above correspond to many of the servers from different vendors, and campus networks use servers from HP, IBM, Supermicro, Dell, and others. The best operating characteristics are found in Dell servers, which are better than their competitors in design, operating characteristics, warranty, and low failure rate. Their price for academic institutions is very advantageous and for larger purchases, and discounts of 50-60 percent from the list prices can be obtained. The best offer found was the Dell R610 server in the configuration:</p>
<ul>
<li>PowerEdge R610;</li>
<li>Intel Xeon X5690 Processor;</li>
<li>48GB Memory for 1CPU;</li>
<li>Internal SD Module with 2GB SD Card;</li>
<li>High Output Redundant Power Supply (2 PSU) 717W;</li>
<li>Intel X520-T2 10GbE Dual Port Server Adapter, Cu, PCIe;</li>
<li>iDRAC6 Enterprise.</li>
</ul>
<p>This is a relatively cheap and powerful solution. This server, with a single license of VMware vSphere 5.0 Enterprise with one-year subscription, cost less than €6000 at the end of 2011. It is possible to equip the server with 48GB of DDR3 memory for one CPU socket (6x8GB), and memory size is more important than CPU performance. Therefore, in the case of limited resources, it is better to use a cheaper CPU with more memory. A server, with less memory than 36 gigabytes will, most likely, be rare in the future. If a failure of one of the hypervisors occurs, it becomes necessary to fit all running virtual systems to the memory of the remaining hypervisors. Otherwise, it is impossible to guarantee their uninterrupted operation. The same restriction applies, not only during failure of a hypervisor, but also for its upgrade. For this reason, it is advantageous for the virtualisation cluster to have at least three or four hypervisors.</p>
<p>VMware vCenter Server is the simplest, most efficient way to manage VMware vSphere. It provides unified management of all of the hosts and VMs in the datacentre from a single console and also provides aggregate performance monitoring. A VMware vCenter Server gives administrators deep insight into the status and configuration of clusters, hosts, VMs, storage, the guest OS, and other critical components of a virtual infrastructure &#8211; all from one location [<a href="#lit_2">2</a>].</p>
<p>VMware vCenter is a software application designed for Windows. Versions for Linux already exist, but do not yet have all the features of the original Windows version. This application is very important, because without it, it is not possible to migrate both of the virtual servers and their virtual disks. The license for this product is determined by the number of hypervisors in the cluster. If the virtualisation cluster includes three hypervisors and this number is not going to increase in the future, it can be very advantageous to choose a VMware vCenter Academic licence, which provides the full version of central management for up to three hypervisors. In other cases, it is necessary to use the VMware vCenter Standard, which can handle an unlimited number of hypervisors. A single license for a VMware vCenter 5.0 Standard with a one-year subscription cost less than €4000 at the end of 2011.</p>
<h3>2.2 Fibre vs. iSCSI storage</h3>
<p>The heart of each storage unit is a host bus adapter (HBA) that manages the physical disk drives and presents them as logical units. Connection to the network is also provided by the host bus adapter. Powerful storage devices have additional HBA for load-balancing between both controllers, and these can secure the full functionality of the storage system during a failure of one of them. Selection of the HBA depends on the choice of suitable technology. The dominant technologies in the enterprise storage field are Fibre Channel and iSCSI. Both technologies are supported by Vmware vSphere and offer adequate performance characteristics. The cost of HBAs for both technologies is comparable. The advantage of Fibre Channel technology is its throughput and overall performance. The disadvantage is that it is more expensive and requires a complex network infrastructure. ISCSI is cheaper because it can run on almost any switches.</p>
<p>Most critical services in the network do not require storage systems with extra performance. Therefore, it is not absolutely necessary to deploy Fibre Channel, although it is better in many aspects. ISCSI was chosen primarily because of its lower cost, operational characteristics, and the support from VMware. In addition to the type of HBA chosen, it is also necessary to specify other operating parameters, such as device dimensions, type, and number of power supplies, speed of iSCSI connectivity, form factors, and the capacity of the hard drive and software features.</p>
<h3>2.3 Storage parameters</h3>
<p>Storage can be connected to the SAN using either 1Gb or 1OGb iSCSI HBA. The difference in price between these HBAs is minimal in comparison with the price of the whole storage system. The advantage of 10Gb is in the acceleration of iSCSI traffic, and thereby, in higher read/write performance of the virtual servers. Sometimes, it may be useful to reduce the interface speed to 1Gb. This allows the connection of the storage system to the existing 1Gb SAN infrastructure, and SAN infrastructure devices can still use the same HBA after an upgrade to 10Gb.</p>
<p>This allows the connection of the storage to the existing 1GbE SAN infrastructure and also makes it possible to continue to use it with higher performance, following an upgrade to 10GbE SAN.</p>
<p>The disk array must be maximally resilient to hardware failures. For this reason, the array must be equipped, not only with two HBA, but also with several power sources. The size of the storage quipment is mostly limited by the height that the storage device would take up in the rack, which should not exceed 2U (Standard Rack Unit).</p>
<p>Twelve classical 3.5&#8243; discs or twenty-four 2.5&#8243; discs can be accommodated in the space of 2U. 3.5&#8243; drives offer the greatest output and capacity. The total capacity of twelve of these disks is 48TB for SATA disks, or roughly 10TB for SAS disks. The total capacity for twenty-four 2.5&#8243; SAS disks is 21.6 TB. These disks have a lower tendency to heat, making them more reliable. A greater number of disks provide a higher IOPS and more flexibility with the RAID array [<a href="#lit_3">3</a>]. Modern enterprise SSD disks are also 2.5&#8243; in size. The following table compares different disk configurations that can be fitted into the 2U disk array.</p>
<table class="tabulka1px centered">
<tbody>
<tr>
<th colspan="2"></th>
<th>Capacity(GB)</th>
<th>Drives in 2U</th>
<th>2U Capacity(GB)</th>
<th>Active Power(W)</th>
<th>MTBF(Mh)</th>
</tr>
<tr>
<td rowspan="2">3.5&#8243;</td>
<td>SATA/SAS (NL)</td>
<td>3000</td>
<td rowspan="2">12</td>
<td>36000</td>
<td>13</td>
<td>1.2</td>
</tr>
<tr>
<td>SAS</td>
<td>600</td>
<td>7200</td>
<td>18</td>
<td>1.6</td>
</tr>
<tr>
<td rowspan="4">2.5&#8243;</td>
<td>SATA/SAS (NL)</td>
<td>1000</td>
<td rowspan="4">24</td>
<td>24000</td>
<td>7</td>
<td>1.2</td>
</tr>
<tr>
<td>SAS</td>
<td>900</td>
<td>21600</td>
<td>9</td>
<td>1.6</td>
</tr>
<tr>
<td>SATA MLC SSD</td>
<td>512</td>
<td>12288</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td>SAS SLC SSD</td>
<td>400</td>
<td>9600</td>
<td>9</td>
<td>2</td>
</tr>
</tbody>
</table>
<p class="figure-comment">* values are actual at the end of 2011; [<a href="#lit_4">4</a>]
<p>Therefore, it is best to fill the disk array with a higher number of 2.5&#8243; SAS disks, mostly because they are more reliable and have a higher capacity. In some cases, it is even better to use several 2.5&#8243; SSDs. After considering all the above requirements, the Dell PowerVault MD3620i disk array was chosen as the best, with the following configuration:</p>
<ul>
<li>PowerVault MD 3620i;</li>
<li>2x HBA 10Gb iSCSI (2x 10GbE port and 1x 1GbE Management port per HBA);</li>
<li>24x 600GB 10K RPM SAS 6Gbps 2.5&#8243; Hotplug Hard Drive;</li>
<li>2x Redundant Power Supply (2 PSU) 717W (600W peak output);</li>
</ul>
<h2>3 Network Infrastructure</h2>
<p>The first step in setting up a virtualisation cluster is to prepare the network infrastructure. This infrastructure provides two primary functions: connection of the hypervisors to the backbone network and to the disk storage.</p>
<h3>3.1 Storage interconnection</h3>
<p>Switches that connect hypervisors with the disk storage are referred to as SAN infrastructure. A SAN infrastructure could, theoretically, be shared with server access network. This option was tested over a period of several months. This testing determined that it is not the correct choice.</p>
<p>Some network technologies that are used in backbone networks to ensure uninterrupted operation can result in small interruptions in seconds (STP, OSPF, etc.) and cause their convergence time. Another source of potential problems is short-term network peaks, when a link is saturated with a lot of traffic for several seconds (possibly due to DOS attacks or broadcast storms). These problems are characterised by similar behaviour of the virtual servers. A short-term interruption or significant slowing of the SAN network can lead to serious problems with the virtual server. Problems were found on all virtual operating systems, but the most occurred on Linux servers. Their IO system is set up to avoid problems when accessing the hard drive. If the Linux kernel does not get a response from the hard drive in the predefined interval, it connects to the affected part as read-only, making the virtual server entirely dysfunctional. Other systems of connecting to the disk are not read-only, although these too were affected by interruptions. All processes requiring a disk operation at the time had to wait several seconds for the disk operation to be completed. As a result of these problems, it was necessary to set up separate network infrastructures between remote locations to allow direct connection to the SAN switches in both locations.</p>
<p>HP switches are the most used switches on the VUT campus in Brno, which is why the proven HP 2910-24al switch was selected for the SAN infrastructure. This is a standard L2 switch with a management system that allows the connection of four optical transceivers. This switch has sufficient throughput and supports JUMBO packets. Theoretically, the use of JUMBO packets is highly suitable, although the increase in throughput realised is only a few percentage points. A more complex configuration, without diagnostic tools, represents a disadvantage. This is why JUMBO packets are not permitted in the final SAN infrastructure. The following illustrations describe the SAN connection in detail. Two independent L2 segments, ensuring iSCSI connectivity, are highlighted in blue and red. Each of these segments uses a different range of IP addresses: 10.255.3.0/24 and 10.255.4.0/24. All of the hypervisors and the HBA are part of both subnets. This in the only way that resilience against an interruption in one branch can be guaranteed.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_12_1.png"><img class="aligncenter  wp-image-1800" title="vcns_12_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_12_1.png" alt="" width="480" height="225" /></a></p>
<h3>3.2 Backbone interconnection</h3>
<p>In addition to the SAN infrastructure, the connectivity of hypervisors is also necessary. Each of these must be connected to two backed-up access devices. Through the backbone network, these are then connected to another pair of access devices in the remote location. Hypervisors in all locations must have access to the same VLAN, in such a way so that only one virtual server with a fixed IP address is required to operate any of the hypervisors. This functionality can be achieved using the RSTP protocol for backing up two remote locations, and the VRRP protocol is used to backup the default gateways in each network. The following illustration depicts the resulting topology. The SAN infrastructure is depicted in green. The connections between the active components within the distribution layer are depicted in blue. The backbone links are drawn in red; these provide a high-speed connection to the remote locations. The illustration also includes two separate optical cables, which are crucial to the entire cluster&#8217;s full redundancy.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_13_1.png"><img class="aligncenter  wp-image-1801" title="vcns_13_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_13_1.png" alt="" width="489" height="407" /></a></p>
<h3>3.3 Network configuration</h3>
<p>The previous chapter described important aspects for the proper functioning of a virtual cluster. This primarily requires access to the same VLAN for all hypervisors in all locations, as well as back up of the default gates in each subnet in order to keep it accessible even during outages or router upgrades. This functionality is primarily achieved by the backbone network with the STP and VRRP protocols. The configuration of backbone components is examined in detail in [<a href="#lit_5">5</a>] and [<a href="#lit_6">6</a>]. The VLAN configuration is most important when configuring access points. Every hypervisor must have access to all networks. The names of network interfaces must be same on every hypervizor. This is the only way that problem-free migration of the virtual servers can be guaranteed between the individual hypervisors in the various locations.</p>
<p>The crucial configuration of active components is shown in the following examples. The purpose of the configuration referred to in these examples is to set up three VLAN for the switches. Two of them are set aside to operate the virtual servers (10.0.1.0/24, 10.0.2.0/24) and one is for management (10.255.1.0/24). Besides these three networks, the backbone network must also include two networks reserved for iSCSI operation (10.255.3.0/24, 10.255.4.0/24).</p>
<h4>3.3.1 An example of the configuration of a SAN device</h4>
<p>Switches in a SAN infrastructure do not require a complicated configuration. Basic commands suffice for their installation. To confirm the functioning of the SFP modules and the stability of the links, it is easiest to use the command <code>show interface brief</code> or <code>show interface 24</code>, where the number 24 represents the number of the SFP port of the optical module. To confirm the basic connection, the usual <code>ping</code> command suffices.</p>
<p>Each component&#8217;s configuration requires the setting up of IP addresses in the management network and several other commands.</p>
<pre>hostname "virtual-kou-sw1"
no cdp run
no web-management
vlan 506
	name "mgmt"
	ip address 10.255.1.9 netmask 255.255.255.0
	untagged 1
	exit
snmp-server community "public" operator
snmp-server contact "hostmaster@example.com" location "kou, sal"</pre>
<p>Properly set values should be applied to the switches. Otherwise, the logs will not make sense. It is a good idea to store the logs remotely, because the reboot of any equipment usually erases the log file. The <code>ip authorizedmanagers</code> command offers, at least, basic security.</p>
<pre>timesync sntp
time timezone 60
time daylight-time-rule Western-Europe
sntp unicast
sntp server priority 1 10.255.1.1
logging 10.255.1.1
logging facility syslog

ip authorized-managers 10.255.1.0 255.255.255.0 access manager
crypto key generate ssh rsa
ip ssh</pre>
<p>The previous configuration is usually the same on all equipment, while the most important configuration for SAN switches is the configuration of the VLAN for iSCSI operation and their IP addresses.</p>
<pre>vlan 546
	name "vmware-iscsi"
	untagged 2-24
	ip address 10.255.3.109 255.255.255.0
	exit</pre>
<h4>3.3.2 Example of access-device configuration</h4>
<p>The basic configuration has already been described in the previous chapter. Besides these basics, a redundant connection to the backbone network and VLAN configuration for connected equipment is important for component access. Configuration of VLAN management and spanning tree protocol (STP) is a basic component of backbone connectivity.</p>
<pre>vlan 506
	name "mgmt"
	tagged 1-4
	ip address 10.255.1.8 netmask 255.255.255.0
	exit
spanning-tree force-version rstp-operation
spanning-tree</pre>
<p>Use the <code>show spanning-tree</code> command to verify STP functionality. This provides an abundance of useful information. Usually it suffices to verify the state of both uplinks. One should be set to the &#8220;Forwarding state&#8221;, while the other to &#8220;Blocking&#8221;. Furthermore, the &#8220;Time Since Last Change&#8221; value should be the same for all other components in the same STP domain. Once the STP functions properly, it is possible to set up the user VLANs.</p>
<pre> vlan 3
	name "ant-servers"
	tagged 1-4
	exit
vlan 654
	name "kou-servers"
	tagged 1-4
	exit</pre>
<h4>3.3.3 Example of backbone-device configuration</h4>
<p>The configuration of backbone components is sufficiently dealt with in the GN3 documentation [<a href="#lit_6">6</a>]. The most important part of the configuration is to set up the STP, GVRP, VRRP, and OSPF protocols.</p>
<pre> vlan 506
	name "mgmt"
	tagged 1-4
	ip address 10.255.1.3 netmask 255.255.255.0
	exit
spanning-tree force-version rstp-operation
spanning-tree
gvrp</pre>
<p>To implement the OSPF protocol, it is first necessary to create a point-to-point connection between neighbouring routers and to activate the OSPF to these interfaces. The <code>show ip ospf neighbour</code> and <code>show ip route</code> commands are the most important for determining the protocol states.</p>
<pre> ip routing
router ospf
area 0.0.0.2
	redistribute connected
	exit
vlan 240
	name "ext240"
	ip address 147.229.240.2 255.255.255.252
	ip ospf 147.229.240.2 area 0.0.0.2
	tagged B21
	exit
vlan 241
	name "ext241"
	ip address 147.229.241.2 255.255.255.252
	ip ospf 147.229.241.2 area 0.0.0.2
	tagged B22
	exit</pre>
<p>The last part of the configuration concerns the VRRP protocol. Its configuration must be made on both backbone routers (which perform the backups) at the same time. The configuration should be made for all subnets, whose default gateway should be backed up. The configuration of the primary router can be as follows.</p>
<pre> vlan 3
	name "ant-servers"
	ip address 147.229.3.1 255.255.255.128
	tagged 1-4
	vrrp vrid 1
		owner
		virtual-ip-address 147.229.3.1 255.255.255.128
		enable
		exit
	exit
vlan 654
	name "kou-servers"
	ip address 147.229.3.254 255.255.255.128
	tagged 1-4
	vrrp vrid 2
		backup
		virtual-ip-address 147.229.3.130 255.255.255.128
		enable
		exit
	exit</pre>
<p>The configuration of the other router can be as follows.</p>
<pre> vlan 3
	name "ant-servers"
	ip address 147.229.3.126 255.255.255.128
	tagged 1-4
	vrrp vrid 1
		backup
		virtual-ip-address 147.229.3.1 255.255.255.128
		enable
		exit
	exit
vlan 654
	name "kou-servers"
	ip address 147.229.3.130 255.255.255.128
	tagged 1-4
	vrrp vrid 2
		owner
		virtual-ip-address 147.229.3.130 255.255.255.128
		enable
		exit
exit</pre>
<h2>4 Storage Installation</h2>
<p>Preparation of the disk array is another step in the installation process. When mounting into the rack, it is best to install such equipment close to the ground, mostly for stability reasons, because the disk array full of hard drives is usually rather heavy. The temperature surrounding the drives is also important. In some cases, the temperature between the upper and lower sections of the rack can differ by tens of degrees Celsius, depending on the performance of the server room&#8217;s air conditioning system. After installation into the rack, the disk array management ports can be connected to the same subnet, and both ports should be connected to different switches, for backup purposes. Within the same subnet, a station running on a Windows operating system with the Powervault Modular Disk Storage Manager must be installed in advance. The most up-to-date version of this software is available from the developer [<a href="#lit_7">7</a>].</p>
<h3>4.1 Connection to the device</h3>
<p>The first step in installing the disk array is to connect it to the management software. For arrays with default settings, it is best to use Automatic Discovery. If the management ports are already configured (if they are already assigned to an IP address), it is faster to connect to this array using the assigned IP address.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_18_1.png"><img class="aligncenter  wp-image-1804" title="vcns_18_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_18_1.png" alt="" width="495" height="199" /></a></p>
<p>After connecting to the disk array, the basic status is displayed. Modification of the management port IP addresses is accomplished via <code>Setup &gt; Configure Ethernet Management Ports</code>. Configuration of the iSCSI ports is closely related to the SAN infrastructure topology (refer to Chapter 3.1) and is accomplished via Setup <code>&gt; Configure iSCSI Host Ports</code>.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_19_1.png"><img class="aligncenter  wp-image-1805" title="vcns_19_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_19_1.png" alt="" width="499" height="414" /></a></p>
<h3>4.2 Disk group configuration</h3>
<p>The disk array must first be partitioned into disk groups. The size (capacity) of individual disk groups is determined by the number of assigned hard disks, the RAID level, and the set cash of the SSD unit. The total capacity of individual disk groups is then further partitioned into virtual disks.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_20_1.png"><img class="aligncenter  wp-image-1806" title="vcns_20_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_20_1.png" alt="" width="495" height="303" /></a></p>
<h3>4.3 Virtual disk mappings</h3>
<p>These virtual disks are assigned to individual iSCSI clients within the &#8220;Mappings&#8221; tab. The virtual disk can be shared among clients, provided the sharing is supported by the file operating system. The individual clients are identified, not only by their IP addresses, but are also identified by an &#8220;iSCSI Initiator String&#8221;. For iSCSI clients of the VMware vSphere hypervisor, the &#8220;iSCSI Initiator String&#8221; is generated once the iSCSI protocol is activated. This is further explained in Chapter 5.5. The mapping of the new hypervisor to the virtual disk or a group of virtual disks is depicted in the following illustration. To add a new host, you will need to know its identifier, as described above. If the host had already attempted to connect to the iSCSI array, its hostname and iSCSI Initiator String have already been stored in the unestablished connection table, where the correct host can be chosen with a single click, without the need to manually input the host&#8217;s identifier.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_21_1.png"><img class="aligncenter  wp-image-1807" title="vcns_21_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_21_1.png" alt="" width="494" height="315" /></a></p>
<h2>5 Hypervisor Installation</h2>
<p>A hypervisor&#8217;s installation is not significantly different from the installation of other operating systems. When booting from the installation disk, it is sufficient to run the Esxi-5.0.0 Installer from the menu. It is necessary to choose the location where the VMware sSphere system should be installed. This location can be on a hard drive, a RAID disk array, an SSD disk, or a flash drive. In Chapter 2.1, the Dell R610 server was chosen, configured for SD memory, and is the server on which the hypervisor is installed. The last step before initiating the installation is to configure the root password. Once it has been rebooted, the system is now set up.</p>
<h3>5.1 Connection to the hypervisor</h3>
<p>In the default state, the hypervisor is assigned a dynamic IP address from the DHCP server. For problemfree work with the hypervisor, it is better to set a fixed IP address. This is possible from the system&#8217;s console. Press F2 and enter your login details to show the basic configuration panel.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_22_1.png"><img class="aligncenter  wp-image-1808" title="vcns_22_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_22_1.png" alt="" width="497" height="199" /></a></p>
<p>The purpose of each item should be evident. A fixed IP address can be set under &#8220;Configure Management Network&#8221;. In addition to the IP address, this item menu can also be used to set up the network interface, VLANid, or the DNS parameters. The Management Network should be restarted and tested according to the following steps. A specialised client should be used for complete configuration.</p>
<h3>5.2 VMware vSphere client</h3>
<p>This is a separate application used to control and configure the VMware vSphere system. The easiest means of obtaining a client is through the hypervisor&#8217;s web interface.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_22_2.png"><img class="aligncenter  wp-image-1809" title="vcns_22_2" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_22_2.png" alt="" width="488" height="232" /></a></p>
<h3>5.3 Hypervisor configuration</h3>
<p>Configuration of the hypervisor, using the VmWare vSphere Client, requires a preset IP address on the network interface, and login details. All these configuration details are inputted locally on the server (refer to Chapter 5.1).</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_23_1.png"><img class="aligncenter  wp-image-1810" title="vcns_23_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_23_1.png" alt="" width="480" height="280" /></a></p>
<p>When logging into the hypervisor, it is advisable to configure the NTP server, the DNS parameters, and the SSH server.</p>
<ul>
<li><code>Time Configuration - Properties - Options - NTP Settings</code></li>
<li><code>DNS and Routing - Properties - DNS Configuration - Look for hosts in the following domains</code></li>
<li><code>DNS and Routing - Properties - Routing - Default gateway</code></li>
<li><code>Security Profile - Services Properties - Options - SSH - Startup Policy - Start and Stop with host</code></li>
<li><code>Security Profile - Services Properties - Options - SSH - Services commands - Start</code></li>
</ul>
<h4>5.3.1 Network interface configuration</h4>
<p>In VmWare, there are two types of network interface: VMKernel and Virtual Machine. VMKernel is a network interface for connecting the following ESXi services: vMotion, iSCSI, NFS, and Host Management. The Virtual Machine interface establishes a connection between the virtual server and the computer network. These interfaces can be configured, either through a VMware vSphere Client or from the command line. The easiest way to configure the network interface is with the VMware vSphere Client. The advantage of this type of configuration is its simplicity; even a beginner can set up the required network interface relatively comfortably. The disadvantage of this method of configuration is the time required. Also, with a larger number of network interfaces, it is more difficult to achieve an identical configuration for all hypervisors (which is required for the proper migration of virtual servers between hypervisors). When configuring multiple hypervisors, it is better to configure the network interfaces using the console. This allows for the configuration of all hypervisor network interfaces using a sequence of commands, which may repeated for all hypervisors that have the same hardware configuration. This method enables an identical configuration of hypervisor network interfaces within a cluster. The following command will show the initial state of network interfaces once the installation of the hypervisor is complete.</p>
<pre> ~ # esxcfg-vswitch -l
Switch Name	Num Ports	Used Ports 	Configured Ports 	MTU 	Uplinks
vSwitch0 	128 		3 		128 			1500 	vmnic0

	PortGroup Name 		VLAN ID 	Used Ports 	Uplinks
	VM Network 		0 		0 		vmnic0
	Management Network 	0 		1 		vmnic0</pre>
<p>To understand the virtual network interface in VMware, it is important to understand the following hierarchal concepts: vswitch, vmknic, vmnic, and port group. On the lowest level, physical network interfaces (vmnic) are assigned to individual vswitch objects. These physical network interfaces are used for communication between the hypervisor and the virtual servers with connected systems. More PNIC interfaces in a single vSwitch reveal a higher degree of redundancy (standby or link-aggregation). The lack of a VMNIC interface means that the given vSwitch only handles communication between the virtual servers. Each vSwitch is similar to an L2 switch that supports VLAN. In VMware terminology, &#8220;port group&#8221; is used instead of VLAN. These port groups are also used to connect virtual servers and for the services of the hypervisor system.</p>
<h4>5.3.2 vSwitch configuration</h4>
<p>Before configuring vSwitches, you must decide which physical interface should be used to create the vSwitch objects, and which services the vSwitch should stop. In most cases of a VMware cluster with iSCSI storage/array, the correct partition for four physical network cards (vmnic0-4) is as follows:</p>
<ul>
<li>vSwitch0 &#8211; vmnic0, vmnic1 &#8211; back up connection of virtual servers, host management and vMotion;</li>
<li>vSwitch1 &#8211; vmnic2 &#8211; iSCSI operation;</li>
<li>vSwitch2 &#8211; vmnic3 &#8211; iSCSI operation.</li>
</ul>
<p>The first step is to configure port groups for host management. At start, a &#8220;Management Network&#8221; port group is created on the vSwitch0 with vmnic0 uplink. The following commands add a second physical network interface to the virtual switch, set them as standby backup interface, and create port groups for connection to the virtual servers. With the <code>esxcfg-vswitch</code> command, the numbers following the -v parameter represent the VLAN ID value, with which the given port group&#8217;s packets are distributed across the vmnic0 and vmnic1 physical interfaces to the backbone network.</p>
<pre>esxcfg-vswitch -L vmnic1 vSwitch0
esxcli network vswitch standard policy failover set -s vmnic1 -v vSwitch0

esxcfg-vswitch -A "vpn-server" vSwitch0
esxcfg-vswitch -A "mgmt-ro" vSwitch0
esxcfg-vswitch -A "vlan3" vSwitch0
esxcfg-vswitch -A "vlan3-kou" vSwitch0

esxcfg-vswitch -v 660 -p "vpn-server" vSwitch0
esxcfg-vswitch -v 506 -p "mgmt-ro" vSwitch0
esxcfg-vswitch -v 3 -p "vlan3" vSwitch0
esxcfg-vswitch -v 654 -p "vlan3-kou" vSwitch0</pre>
<p>The following steps describe how to create other vSwitch objects and their configuration as iSCSI ports.</p>
<pre> esxcfg-vswitch -a vSwitch1
esxcfg-vswitch -a vSwitch2
esxcfg-vswitch -L vmnic2 vSwitch1
esxcfg-vswitch -L vmnic3 vSwitch2
esxcfg-vswitch -A "iSCSI1" vSwitch1
esxcfg-vswitch -A "iSCSI2" vSwitch2</pre>
<p>Each hypervisor has two separate IP address in the subnets, and each address establishes connectivity with the disk array independently.</p>
<p>hypervisor1:</p>
<pre> esxcfg-vmknic -a -i 10.255.3.10 -n 255.255.255.0 iSCSI1
esxcfg-vmknic -a -i 10.255.4.10 -n 255.255.255.0 iSCSI2</pre>
<p>hypervisor2:</p>
<pre> esxcfg-vmknic -a -i 10.255.3.11 -n 255.255.255.0 iSCSI1
esxcfg-vmknic -a -i 10.255.4.12 -n 255.255.255.0 iSCSI2</pre>
<h4>5.3.3 iSCSI configuration</h4>
<p>A graphics client is suitable for hypervisor iSCSI configuration.</p>
<ul>
<li><code>Configuration - Storage adapters - Add - Add software iSCSI adapter</code><br />
A new software iSCSI adapter will be added to the Storage Adapter list. After it has been added, select the software iSCSI adapter in the list and click on Properties to complete the configuration.</li>
<li><code>OK</code></li>
<li><code>iSCSI Software Adapter - vmhba&lt;number&gt; - Properties - Dynamic Discovery / Static Discovery</code><br />
Add IP addresses of iSCSI target. These addresses match topology of SAN infrastructure (Chapter 3.1).</p>
<pre>10.255.3.1
10.255.4.1
10.255.3.2
10.255.4.2</pre>
</li>
<li><code>Next</code><br />
A rescan of the host bus adapter is recommended for this configuration change. Rescan the adapter?</li>
<li><code>Yes</code><br />
This step secures a hypervisor-connection attempt to storage, using its IP addresses and iSCSI name. The iSCSI session must be permited on storage. Here, it is important to check that the storage knows the iSCSI name of hypervisor. The next steps are realised in Powervault Modular Disk Storage Manager and build on information obtained in Chapter 4.3.</li>
<li><code>Open Powervault Modular Disk Storage Manager</code></li>
<li><code>Mappings - Storage(in left window) - View - Unassociated Host Port Identifiers</code><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_26_1.png"><img class="aligncenter  wp-image-1811" title="vcns_26_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_26_1.png" alt="" width="388" height="182" /></a></li>
<li><code>List of unassociated host port identifiers.</code><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_26_2.png"><img class="aligncenter size-full wp-image-1812" title="vcns_26_2" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_26_2.png" alt="" width="334" height="63" /></a></li>
<li><code>Mappings - Storage - Host Group - Define Host - &lt;Host name&gt; - Add by selecting a know unassociated host port identifier &lt;choose right one&gt; - User Laber &lt;write some good string&gt; - Add &lt;check that Host port Identifier and User Label match hypervisors values&gt; - Next</code><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_26_3.png"><img class="aligncenter  wp-image-1813" title="vcns_26_3" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_26_3.png" alt="" width="388" height="356" /></a></li>
<li><code>Host Type - VMWARE (or linux) - Next - Finish</code></li>
<li><code>Close Powervault Modular Disk Storage Manager</code></li>
<li><code>Go back to VMware vSphere Client</code></li>
<li><code>Configuration - Storage adapters - Rescan all</code><br />
Now it is possible to see active devices and paths<br />
<a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_27_1.png"><img class="aligncenter  wp-image-1815" title="vcns_27_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_27_1.png" alt="" width="380" height="332" /></a></li>
</ul>
<h5>5.3.3.1 Partitions</h5>
<p>The following lines can be skipped if partitions have been created and formatted on the disk array. In other cases, partitions must be created and formatted. Follow these next steps for each newly added partition, according to need.</p>
<ul>
<li><code>Configuration - Storage - Add Storage - Disk/LUN</code><br />
<a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_27_2.png"><img class="aligncenter  wp-image-1816" title="vcns_27_2" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_27_2.png" alt="" width="483" height="173" /></a></li>
<li><code>A partition will be created and used - Next</code></li>
<li><code>&lt;Enter the partition name&gt; - Next</code></li>
<li><code>&lt;Choose optimal Block Size&gt; - Maximum available space - Next</code><br />
1024GB, 4MB Block Size should be good for majority</li>
<li><code>Finish</code></li>
</ul>
<h3>5.4 vMotion</h3>
<p>The VMware Cluster base is now functional. It has access to the iSCSI array. In order to migrate virtual servers between hypervisors, all hypervisors must be administered centrally by the VMware vCenter Server application. It is also necessary to define the hypervisor&#8217;s VMKernel network interface (refer to Chapter 5.3.1), across which the vMotion transmissions will be made.</p>
<ul>
<li><code>Configuration - Networking - vSwitch0 - properties</code></li>
<li><code>&lt;choose right VMKernel or define a new one&gt;</code></li>
<li><code>Port Properties - vMotion (checkbox on)</code></li>
</ul>
<h2>6 vCenter Server</h2>
<p>VMware vCenter Server is a software application for the centralised management of a virtual infrastructure. VCenter vSphere 5 comes in either Windows or Linux versions. However, the Linux version is somewhat behind, since it is not possible to run the Update Manager or some of the plugins. For these reasons, it is better to use the full functionality of the Windows version. This version operates on the MSSQL database. MS SQL 2005 is included in vCenter Server&#8217;s installation. This server is fully functional, but without additional software, it is not possible to backup the database, or to perform more advanced management of the database. However, in most cases, it is sufficient. If you require some of the more advanced functions, simply install MS SQL Server Management Studio. Alternatively, you can migrate to MS SQL 2008, which may be used free-of-charge after fulfilling the licensing conditions.</p>
<h3>6.1 vCenter installation</h3>
<p>Some conditions must be met before installing the vCenter Server. Above all, you will need a 64bit version of Windows installed on a suitable server. The server may be physical or virtual, but should not be located on any of the hypervisors in the created virtualisation cluster. One of the disadvantages to this would be evident with any hypervisor outage on which vCenter Server is running. If this were the case, then the central management would stop running, as would the arbitrator, which would normally be the server that would determine which virtual server had been affected by the hypervisor outage, and which server should run instead on another hypervisor. From this perspective, it is truly better to run vCenter Server on a separate server, ideally as a virtual server in a standalone installation of VMware vSphere. The advantage of this approach, as opposed to a hardware server, is the VCenter Server&#8217;s ability to take snapshots, its easy re-installation, and its ability to better manage the resources of the physical servers.</p>
<p>The actual installation of the vCenter Server is trivial and does not require any special effort. The user name used during the installation is the same as the one that will be used to run the server application. However, later users and groups will be added, and their access to virtualisation clusters will be administered. After the server is installed, it is a good idea to also install VMware Update Manager. This is a software application that manages updates of hypervisors and virtual servers. After installing these core applications, you should restart the server and verify, through the services administrator, whether or not the corresponding services have automatically rebooted.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_1.png"><img class="aligncenter  wp-image-1817" title="vcns_29_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_1.png" alt="" width="416" height="224" /></a></p>
<p>Sometimes, the order in which the services start may cause conflicts, so if the vCenter does not start up properly, both services should have the following Startup Type value: &#8220;Automatic (Delayed Start)&#8221; for the following services:</p>
<ul>
<li>VMware VirtualCenter Management Webservices;</li>
<li>VMware VirtualCenter Server.</li>
</ul>
<p>The VMware vCenter should now be fully functional. For login, the VMware vSphere Client uses the same username and password as the system.</p>
<h3>6.2 vCenter configuration</h3>
<p>In its default state, vCenter does not yet include any objects that could be administered. Such objects must first be created. The basic object types are as follows.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_2.png"><img class="size-full wp-image-1818 alignnone" title="vcns_29_2" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_2.png" alt="" width="16" height="16" /></a> vCenter</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_3.png"><img class="alignnone size-full wp-image-1819" title="vcns_29_3" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_3.png" alt="" width="18" height="18" /></a> Datacenter</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_4.png"><img class="alignnone size-full wp-image-1820" title="vcns_29_4" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_4.png" alt="" width="16" height="17" /></a> Cluster</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_5.png"><img class="alignnone size-full wp-image-1821" title="vcns_29_5" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_5.png" alt="" width="11" height="16" /></a> Host</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_6.png"><img class="alignnone size-full wp-image-1822" title="vcns_29_6" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_29_6.png" alt="" width="17" height="16" /></a> Virtual Machine</p>
<p>The virtual server (VM) runs on the hypervisor (Host). Hosts are assigned, either to a cluster or directly into the Datacenter. The Datacenter is the basic hierarchical block, which groups clusters with individual hosts. The root of the hierarchy tree is an instance of the VMware vCenter.</p>
<p>The first step in configuring the vCenter is to create a Datacenter object. The importance of this block is that it separates the hardware resources provided by individual hosts and the disk array into functional blocks. Another step is to create a cluster. The last configuration step is to assign the hypervisors to a cluster.</p>
<ul>
<li><code>&lt;Focus on vCenter instance and show context menu&gt; - New Datacenter - Name - Finish</code></li>
<li><code>&lt;Focus on Datacenter instance and show context menu&gt; - New Cluster</code>
<ul>
<li><code>Name - Turn ON vSphere HA - Next</code></li>
<li><code>Host Monitoring Status: Enable Host Monitoring</code></li>
<li><code>Admission Control: Enable</code></li>
<li><code>Admission Control Policy: Host failures the cluster tolerates: 1</code></li>
<li><code>Next</code></li>
<li><code>Cluster Default Settings</code></li>
<li><code>VM restart priority: Medium</code></li>
<li><code>Host Isolation response: Leave powered on</code></li>
<li><code>Next</code></li>
<li><code>VM Monitoring: Disabled</code></li>
<li><code>Monitorign sensitivity: High</code></li>
<li><code>Next</code></li>
<li><code>&lt;Choose right type of CPU&gt;</code></li>
<li><code>Enable EVC for Intel Hosts: Intel Sandy Bridge Generation</code></li>
<li><code>Next</code></li>
<li><code>Store the swapfile in the same directory as the Virtual Machine</code></li>
<li><code>Next - Finish</code></li>
</ul>
</li>
<li><code>&lt;Focus on Cluster instance and show context menu&gt; - Add Host</code>
<ul>
<li><code>Connection: &lt;Enter IP or HOSTNAME of hypervisor&gt;</code></li>
<li><code>Authorization: &lt;Enter right credentials&gt;</code></li>
<li><code>Next - Finish</code></li>
</ul>
</li>
</ul>
<p>These steps create a tree structure, such as the one that follows.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_30_1.png"><img class="aligncenter size-full wp-image-1823" title="vcns_30_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_30_1.png" alt="" width="224" height="129" /></a></p>
<h3>6.3 Virtual machines</h3>
<p>When creating virtual servers, an item from the &#8220;Cluster&#8221; or &#8220;Host&#8221; context menu is usually used.</p>
<ul>
<li><code>&lt;Focus on Cluster or Host instance and show context menu&gt; - New Virtual Machine</code>
<ul>
<li><code> Configuration: Typical - Next</code></li>
<li><code> Name - Next</code></li>
<li><code> Choose a specific host within a cluster</code></li>
<li><code> Select a destination storage - &lt;iSCSI shared storage must be selected to provide redundancy&gt;</code></li>
<li><code> Next</code></li>
<li><code> Guest Operating System - Next</code></li>
<li><code> Number of NICs</code></li>
<li><code> Network: &lt;Choose network name - VLAN ID&gt;</code></li>
<li><code> Type of adapter: &lt;Intel E1000 is widely supported network adapter&gt;</code></li>
<li><code> Next</code></li>
<li><code> Virtual disk size:</code>
<ul>
<li><code> 64 GB is good minimal value for WINDOWS 2008 R2/WINDOWS 7 and newer</code></li>
<li><code> 8 GB is good minimal value for UNIX/LINUX without X system mounted on / Additional virtual disk for special server functionality is necessary.<br />
e. g., 64 GB virtual disk mounted on /var/www for webserver<br />
e. g., 64 GB virtual disk mounted on /var/db for databases<br />
This schema with every partition on extra virtual disk is very useful for resizing. Instead of resizing a virtual disk and partition and file system is possible to add a new bigger virtual disk to the system a copy all data to a new one. This way save a lot of time and is much saver for your data.</code></li>
</ul>
</li>
<li><code> Thin Provisioning - &lt;little bit slower, but save a lot of disk space, highly recommended&gt;</code></li>
<li><code> Next - Finish</code></li>
</ul>
</li>
</ul>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_31_1.png"><img class="aligncenter  wp-image-1824" title="vcns_31_1" src="http://6lab.cz/new/wp-content/uploads/2013/08/vcns_31_1.png" alt="" width="357" height="232" /></a></p>
<p>A virtual server may be installed by running an ISO file from a mapped CV/DVD device, or by PXE. This document does not cover the installation of a virtual operating system.</p>
<h3>6.4 Plugins</h3>
<p>The following plugins offer advanced functionality of a vSphere Client connected to a vCenter Server. The server part of a plugin is usually installed in the vCenter Server. The vSphere Client displays which plugins are available in the plugin menu</p>
<h4>6.4.1 Update Manager</h4>
<p>After installing the VMware Update Manager, the Update Manager plugin becomes available.</p>
<ul>
<li><code>Plugins - Manage Plugins - VMware vSphere Update Manager Extension</code>Download and Install in Status column will begin the installation.</li>
<li><code>Run - Next - Accept - Next - Install - Finish</code></li>
<li><code>Install this certificate - Ignore</code>VMware vSphere Update Manager Extension is enabled</li>
</ul>
<p>The vSphere Client interface now includes an Update Manager menu and an interface for Update Manager Administration. Below is a description of how to upgrade a hypervisor. The first step is to define which patches will be applied to a hypervisor.</p>
<ul>
<li><code>Home - Update Manager - Download patches and upgrades</code></li>
<li><code>Go to Compliance View</code></li>
<li><code>Attach</code></li>
<li><code>Patch Baselines</code></li>
<li><code>Critical Host Patches</code></li>
<li><code>Non-Critical Host Patches</code></li>
<li><code>Attach</code></li>
</ul>
<p>There are crucial steps to consider whenever patching a hypervisor.</p>
<ul>
<ul>
<li><code>Home - Update Manager - Download patches and upgrades</code></li>
<li><code>Go to Compliance View</code></li>
<li><code>Scan</code></li>
</ul>
</ul>
<p>Compliant Host is green. Non-Compilant is red.</p>
<ul>
<li><code>&lt;Focus on Non-Compilant Host&gt;</code></li>
<li><code>&lt;Migrate all VM to another Host&gt;</code></li>
<li><code>&lt;Enter the Maintenance Mode&gt;</code></li>
<li><code>Remediate - Next - Next - Next - Next - Finish</code>Installation and restart or host will take about 5 minutes.</li>
<li><code>&lt;Exit the Maintenance Mode&gt;</code></li>
</ul>
<p>&nbsp;</p>
<h3>6.5 vMotion and Storage vMotion</h3>
<p>A final step should include verifying the functional migration of virtual servers between hypervisors.</p>
<ul>
<li><code>&lt;Focus on online VM to migrate&gt; - Migrate</code></li>
<li><code>Change Host - Next</code></li>
<li><code>&lt;Choose different Host&gt; - Next</code></li>
<li><code>Finish</code></li>
</ul>
<p>The migration of a virtual server&#8217;s data storage may be verified by the following steps.</p>
<ul>
<li><code>&lt;Focus on online VM to migrate&gt; - Migrate</code></li>
<li><code>Change Datastore - Next</code></li>
<li><code>&lt;Choose different Datastore&gt; - Next</code></li>
<li><code>Finish</code></li>
</ul>
<p>Both of the above tasks should be possible without a VM outage. The time required to make changes to a hypervisor depend on the operating memory of the virtual server. The time required to make changes to a data storage depends on the size of a virtual server&#8217;s hard disk. A data storage change usually takes some time and may take several dozen hours with large data servers.</p>
<h2>7 Conclusion</h2>
<p>The purpose of this document is to describe all aspects of operating a virtualisation cluster in order to use it as a manual to design other virtualisation clusters. At the moment, VMware vSphere is the best-tuned platform for virtualisation. This best practice document focuses on this most widely-used tool and on the hardware required for its operation. When choosing hardware and software tools, emphasis is placed on an optimal price/performance ratio so that the chosen software would best serve the conditions of the target environment, and not require the purchase of unnecessary virtualisation software licenses. The final result is proposal for the optimal hardware for this type of virtualisation cluster, as described in the second chapter.</p>
<p>As the following table shows, the migration of the original thirty physical servers to a newly-created virtualisation cluster lowers the power required to operate these systems by 77%.</p>
<table class="tabulka1px centered">
<tbody>
<tr>
<th>Previous devices</th>
<th>Count</th>
<th>Power [W]</th>
<th>Total Power [W]</th>
</tr>
<tr>
<td>Server PowerEdge 1950 III (2x CPU)</td>
<td>15</td>
<td>295</td>
<td>4425</td>
</tr>
<tr>
<td>Server PowerEdge 2950 III (2x CPU)</td>
<td>15</td>
<td>327</td>
<td>4905</td>
</tr>
<tr>
<td>Summary</td>
<td></td>
<td></td>
<td>9330</td>
</tr>
</tbody>
</table>
<p>After virtualisation cluster installation and migration of all physical systems into a virtual environment, a basic measurement of consumption yielded the following results.</p>
<table class="tabulka1px centered">
<tbody>
<tr>
<th>New devices</th>
<th>Count</th>
<th>Power [W]</th>
<th>Total Power [W]</th>
</tr>
<tr>
<td>Storage array MD3620i (24x 2.5&#8243; HDD)</td>
<td>2</td>
<td>452</td>
<td>904</td>
</tr>
<tr>
<td>Server PowerEdge R610 (1x CPU, no HDD)</td>
<td>4</td>
<td>228</td>
<td>912</td>
</tr>
<tr>
<td>Switch HP ProCurve 2910al-24G</td>
<td>4</td>
<td>82</td>
<td>328</td>
</tr>
<tr>
<td>Summary</td>
<td></td>
<td></td>
<td>2144</td>
</tr>
</tbody>
</table>
<p>The performance of the redundant virtualisation cluster significantly surpassed all expectation and clearly demonstrates the advantages of virtualisation, especially for older server systems. In addition to the energy savings, there was a savings of about a 60% in the required rack space. However, the greatest advantage is the resilience of virtual systems against hardware failures and the ability to migrate the virtual systems to other locations. Migration to other locations is important during power or temperature-control failures or due to natural disasters affecting the data centre, because it would be able to transfer the virtual servers with their storage to an unaffected location.</p>
<p>The system described is the result of many years of experience with VMware virtualisation at the Brno VUT campus. The maintenance of such a system is easier than dozens of individual servers and the operation of a virtualisation cluster has avoided problems associated with incompatible hardware servers.</p>
<h2>8 References</h2>
<p><a name="lit_1"></a><br />
[1] VMware vSphere 5, Licensing, Pricing and Packaging <a href="http://www.vmware.com/files/pdf/vsphere_pricing.pdf">http://www.vmware.com/files/pdf/vsphere_pricing.pdf</a></p>
<p><a name="lit_2"></a><br />
[2] VMware vSphere Documentation <a href="http://www.vmware.com/support/pubs/vsphere-esxi-vcenter-server-pubs.html">http://www.vmware.com/support/pubs/vsphere-esxi-vcenter-server-pubs.html</a></p>
<p><a name="lit_3"></a><br />
[3] Tom&#8217;s Hardware, 3.5&#8243; Vs. 2.5&#8243; SAS HDDs: In Storage, Size Matters Patrick Schmid, Achim Roos, May 2010 <a href="http://www.tomshardware.com/reviews/enterprise-storage-sas-hdd,2612.html">http://www.tomshardware.com/reviews/enterprise-storage-sas-hdd,2612.html</a></p>
<p><a name="lit_4"></a><br />
[4] Dell Enterprise HDD Specification, August 2011 <a href="http://www.dell.com/downloads/global/products/pvaul/en/enterprise-hdd-sdd-specification.pdf">http://www.dell.com/downloads/global/products/pvaul/en/enterprise-hdd-sdd-specification.pdf</a></p>
<p><a name="lit_5"></a><br />
[5] Configuration of HP Procurve Devices in a Campus Environment, Tomas Podermanski, Vladimir Zahorik, March 2010 (CBPD111, the Czech Republic) <a href="http://www.terena.org/activities/campus-bp/pdf/gn3-na3-t4-cbpd111.pdf">http://www.terena.org/activities/campus-bp/pdf/gn3-na3-t4-cbpd111.pdf</a></p>
<p><a name="lit_6"></a><br />
[6] Recommended Resilient Campus Network Design, Tomas Podermanski, Vladimir Zahorik, March 2010 (CBPD114, the Czech Republic) <a href="http://www.terena.org/activities/campus-bp/pdf/gn3-na3-t4-cbpd114.pdf">http://www.terena.org/activities/campus-bp/pdf/gn3-na3-t4-cbpd114.pdf</a></p>
<p><a name="lit_7"></a><br />
[7] Drivers for PowerVault MD3620i, August 2011 <a href="http://ftp.euro.dell.com/Pages/Drivers/powervault-md3620i.html">http://ftp.euro.dell.com/Pages/Drivers/powervault-md3620i.html</a></p>
<h2>9 List of acronyms</h2>
<dl>
<dt>DHCP</dt>
<dd>Dynamic Host Configuration Protocol</dd>
<dt>DNS</dt>
<dd>Domain Name System</dd>
<dt>DOS</dt>
<dd>Denial-of-service Attack (DoS Attack)</dd>
<dt>GVRP</dt>
<dd>GARP VLAN Registration Protocol</dd>
<dt>GARP</dt>
<dd>Generic Attribute Registration Protocol</dd>
<dt>IOPS</dt>
<dd>Input/Output Operations Per Second</dd>
<dt>IP</dt>
<dd>Internet Protocol</dd>
<dt>iSCSI</dt>
<dd>Internet Small Computer System Interface</dd>
<dt>L2</dt>
<dd>Layer 2 &#8211; Data link layer of OSI model</dd>
<dt>L3</dt>
<dd>Layer 3 &#8211; Network layer of OSI model</dd>
<dt>OSPF</dt>
<dd>Open Shortest Path First</dd>
<dt>PSU</dt>
<dd>Power Supply Unit</dd>
<dt>RSTP</dt>
<dd>Rapid Spanning Tree Protocol</dd>
<dt>SFP</dt>
<dd>Small Form-factor Pluggable Transceiver</dd>
<dt>SM</dt>
<dd>fiber Single-mode Optical Fiber</dd>
<dt>STP</dt>
<dd>Spanning Tree Protocol</dd>
<dt>VLAN</dt>
<dd>Virtual Local Area Network</dd>
<dt>VPN</dt>
<dd>Virtual Private Network</dd>
<dt>VRRP</dt>
<dd>Virtual Router Redundancy Protocol</dd>
</dl>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the main author</h6><div class="x-author-info"><h4 class="h-author mtn">Pavel Kislinger</h4><a href="http://www.vutbr.cz/lide/pavel-kislinger-49378" class="x-author-social" title="Visit the website for Pavel Kislinger" target="_blank"><i class="x-icon-globe"></i> http://www.vutbr.cz/lide/pavel-kislinger-49378</a><span class="x-author-social"><i class="x-icon-envelope"></i> kislinger@cis.vutbr.cz</span><p class="p-author mbn"></p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/virtualisation-of-critical-network-services-best-practice-document/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hiding TCP Traffic: Threats and Counter-measures</title>
		<link>http://6lab.cz/hiding-tcp-traffic-threats-and-counter-measures/</link>
		<comments>http://6lab.cz/hiding-tcp-traffic-threats-and-counter-measures/#comments</comments>
		<pubDate>Tue, 16 Jul 2013 13:51:38 +0000</pubDate>
		<dc:creator><![CDATA[Libor Polčák]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://6lab.cz/?p=1735</guid>
		<description><![CDATA[Computer networks were designed to be simple and routers do not validate the integrity of the processed traffic. Consequently, an attacker can modify his or her traffic with the aim of confusing any analyser that intercepts the traffic, e.g. monitoring and security software or lawful interception. This paper studies the ... <a href="http://6lab.cz/hiding-tcp-traffic-threats-and-counter-measures/" class="more-link">Read More</a>]]></description>
				<content:encoded><![CDATA[<p>Computer networks were designed to be simple and routers do not validate the integrity of the processed traffic. Consequently, an attacker can modify his or her traffic with the aim of confusing any analyser that intercepts the traffic, e.g. monitoring and security software or lawful interception. This paper studies the attack that is based on sending additional colliding TCP segments with the same sequential number but different content. The segments with the correct message are delivered to the other communicating party of the TCP connection while the fake segments are dropped en route. The goal of the fake segments is to confuse analysers into decoding a different message to the one that is received by the other communicating party. The other communicating party does not need to be aware of the attack and therefore does not need any specific software. Although this paper discuss the advantages and disadvantages of the attack for an attacker, our ultimate goal was to find counter-measures against the attack. Our contribution can be divided into four following parts. 1) We converted the attack to IPv6 and searched for possibilities that may force a middle box to drop fake packets. 2) We developed a tool called LDP, which behaves as a TCP proxy server that masks outbound TCP traffic of a whole network. 3) We identified several counter-measures. In addition, we implemented LNC, a tool that identifies the attack in pcap files and removes the fake segments. Since LNC is a stand-alone tool, it also deals with traces generated by other software than LDP as long as it is based on the same attack vector. 4) LDP and LNC were tested in both laboratory environment and on the Internet. The experiments validated that the attack is applicable for a communication with a server that is not under the control of an attacker. Several parameters of the attack were evaluated during the experiments; mainly the number and the length of fake packets and their influence on the performance of the attack and counter-measures.</p>
<p><a href="http://6lab.cz/wordpress/wp-content/uploads/2013/07/article.pdf">Full paper</a></p>
<p><a href="http://6lab.cz/wordpress/wp-content/uploads/2013/07/presentation.pdf">Presentation used at the conference</a></p>
<p>Citation: Polčák, L., Hranický, R., Matoušek, P.: Hiding TCP Traffic: Threats and Counter-measures, In: Security and Protection of Information 2013, Brno, CZ, UNOB, 2013, s. 83-96, ISBN 978-80-7231-922-0</p>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the main author</h6><div class="x-author-info"><h4 class="h-author mtn">Libor Polčák</h4><a href="http://www.fit.vutbr.cz/~polcak" class="x-author-social" title="Visit the website for Libor Polčák" target="_blank"><i class="x-icon-globe"></i> http://www.fit.vutbr.cz/~polcak</a><span class="x-author-social"><i class="x-icon-envelope"></i> polcak@fit.vutbr.cz</span><p class="p-author mbn">Libor Polčák is a researcher at BUT, FIT.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/hiding-tcp-traffic-threats-and-counter-measures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Behaviour of various operating systems during SLAAC, DAD, and ND</title>
		<link>http://6lab.cz/behaviour-of-various-operating-systems-during-slaac-dad-and-nd/</link>
		<comments>http://6lab.cz/behaviour-of-various-operating-systems-during-slaac-dad-and-nd/#comments</comments>
		<pubDate>Wed, 29 May 2013 08:27:53 +0000</pubDate>
		<dc:creator><![CDATA[Libor Polčák]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://6lab.cz/?p=1691</guid>
		<description><![CDATA[This post contains the report from the study phase of the behaviour of various operating systems during SLAAC and DAD analysis for our paper called &#8220;A New Approach for Detection of Host Identity in IPv6 Networks&#8221;, which will be presented at DCNET 2013. This post also contains PCAP files that ... <a href="http://6lab.cz/behaviour-of-various-operating-systems-during-slaac-dad-and-nd/" class="more-link">Read More</a>]]></description>
				<content:encoded><![CDATA[<p>This post contains the report from the study phase of the behaviour of various operating systems during SLAAC and DAD analysis for our paper called &#8220;A New Approach for Detection of Host Identity in IPv6 Networks&#8221;, which will be presented at <a href="http://www.dcnet.icete.org">DCNET 2013</a>. This post also contains PCAP files that we believe may be useful for other researchers or engineers. In this post, we call RFC4941 as PE addresses and addresses used by windows with randomly generated interface identifier (IID) are called random addresses, even though the random part of the address is generated just once. The credit for most of the work goes to Martin Holkovič.</p>
<h2>Monitoring network</h2>
<p>We tested the operating systems on virtual machines in VMware Workstation 7.1., the network cards of the virtual machines were operating in Host-Only mode. You can see the topology on the following image: <a href="http://6lab.cz/wordpress/wp-content/uploads/2013/05/Network_server.8.6.1.png"><img class="aligncenter wp-image-1694 size-medium" src="http://6lab.cz/wordpress/wp-content/uploads/2013/05/Network_server.8.6.1-300x162.png" alt="Testing topology" width="300" height="162" /></a> Additionally, Cisco 3725 router was connected to the topology: <a href="http://6lab.cz/new/wp-content/uploads/2013/05/Router_in_the_topology.png"><img class="aligncenter wp-image-1700 size-medium" src="http://6lab.cz/wordpress/wp-content/uploads/2013/05/Router_in_the_topology-300x97.png" alt="Router connected to the tested network" width="300" height="97" /></a></p>
<h2>Performed tests</h2>
<h4>Selection of a new address</h4>
<ol>
<li>The router is connected to the network and the tested interface is down on the tested OS</li>
<li>The tested interface is enabled and consequently, the OS generates a new address</li>
</ol>
<h4>Does the tested computer reply to DAD-NS (EUI-64, static, random, PE address)?</h4>
<ol>
<li>The router, the tested computer and a virtual PC with Ubuntu are present in the tested network.</li>
<li>The tested address (EUI-64, static, random, PE) is set on the Ubuntu computer, consequently Ubuntu issues DAD and the tested OS should reply with the NA.</li>
</ol>
<h4>Does the tested computer use duplicate EUI-64 address?</h4>
<ol>
<li>The router, the tested computer and a virtual PC with Ubuntu are present in the tested network. The tested interface is down.</li>
<li>The tested system is configured to generate EUI-64 if necessary.</li>
<li>Ubuntu is set up to use the same MAC address as the tested computer has.</li>
<li>The tested interface is enabled, the OS generates the same address as the Ubuntu computer already has. Ubuntu replies with NA.</li>
</ol>
<h4>Does the tested computer use duplicate global EUI-64 address?</h4>
<ol>
<li>Only the systems with EUI-64 addresses enabled by default were tested</li>
<li>The router, the tested computer and a virtual PC with Ubuntu are present in the tested network. The tested interface is down.</li>
<li>Ubuntu is set up to use the same IPv6 address as the tested computer would use as EUI-64 address.</li>
<li>The tested interface is enabled, the OS generates the same address as the Ubuntu computer already has. Ubuntu replies with NA.</li>
</ol>
<h4>Does the tested computer use duplicate random address?</h4>
<ol>
<li>Only the systems with random addresses enabled by default were tested (newer Windows).</li>
<li>The router, the tested computer and a virtual PC with Ubuntu are present in the tested network. The tested interface is down.</li>
<li>Ubuntu is set up to use the same IPv6 address as the tested computer would use as random address (the IID is generated once and then it stays constant).</li>
<li>The tested interface is enabled, the OS generates the same address as the Ubuntu computer already has. Ubuntu replies with NA.</li>
</ol>
<h4>Does the tested computer use duplicate PE address?</h4>
<ol>
<li>PE addresses are enabled on the tested OS.</li>
<li>The router, the tested computer and a virtual PC with Ubuntu are present in the tested network. The tested interface is down.</li>
<li>A script that replies with NA to all PE addresses is started on the computer with Ubuntu. The script does not reply to EUI-64 (link-local, global) a random addresses used by the tested Windows computers.</li>
<li>The tested interface is enabled, the OS generates PE address and the script replies with NA.</li>
</ol>
<h2 id="captured_pcaps">Captured PCAP files</h2>
<p>During the test, we captured various PCAP files that can be <a href="http://6lab.cz/wordpress/wp-content/uploads/2015/10/ns.zip">downloaded</a> used for your analysis. We have also analysed the PCAP files, see the following section and the publications below.</p>
<ul>
<li>POLČÁK Libor, HOLKOVIČ Martin a MATOUŠEK Petr. <a href="https://www.fit.vutbr.cz/~ipolcak/pubs.php?id=10362">A New Approach for Detection of Host Identity in IPv6 Networks</a>. In: Proceedings of the 4th International Conference on Data Communication Networking, 10th International Conference on e-Business and 4th International Conference on Optical Communication Systems. Reykjavík: SciTePress &#8211; Science and Technology Publications, 2013, pp. 57-63. ISBN 978-989-8565-72-3.</li>
<li>POLČÁK Libor, HOLKOVIČ Martin and MATOUŠEK Petr. <a href="https://www.fit.vutbr.cz/~ipolcak/pubs.php?id=10467">Host Identity Detection in IPv6 Networks</a>. In: E-Business and Telecommunications. Berlin: <a href="https://link.springer.com/chapter/10.1007/978-3-662-44788-8_5">Springer Verlag</a>, 2014, pp. 74-89. ISBN 978-3-662-44787-1. ISSN 1865-0929. (This is an extended version of the previous paper.)</li>
<li>POLČÁK, Libor. <a href="http://www.fit.vutbr.cz/study/DP/PD.php?id=679">Lawful Interception: Identity Detection</a>. Brno, 2017. PhD. Thesis. Brno University of Technology, Faculty of Information Technology. 2017-10-13. Supervisor Švéda Miroslav.</li>
</ul>
<h2>Test results</h2>
<p>The tests result are presented in the following table</p>
<table style="width: 100%;border: 1px solid black;padding: 4px">
<tbody>
<tr>
<th>Name</th>
<th>Version</th>
<th>Kernel</th>
<th>Uses PE addresses by default</th>
<th>Does the tested computer reply to DAD-NS (static address)?</th>
<th>The tested computer does not use duplicate static address</th>
<th>EUI-64 replies to DAD / does not use duplicate address</th>
<th>Does not use duplicate EUI-64 global address in case of PE are turned on</th>
<th>Random addresses replies to DAD / does not use duplicate address</th>
<th>privacy extension adresy replies to DAD / does not use duplicate address / Number of attempts</th>
</tr>
<tr>
<td>CentOS</td>
<td>6.2</td>
<td>2.6.32</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>Debian</td>
<td>3.1</td>
<td>2.4.27</td>
<td>No</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes / Yes</td>
<td>-<sup>2</sup></td>
<td>-</td>
<td>-<sup>2</sup></td>
</tr>
<tr>
<td>Debian</td>
<td>6.0.4</td>
<td>2.6.32</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>Fedora</td>
<td>16</td>
<td>3.1.0</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>FreeBSD</td>
<td>9.0</td>
<td>-</td>
<td>No</td>
<td>Yes</td>
<td>Yes, tested on 9.1</td>
<td>Yes<sup>5</sup> / Yes</td>
<td>Yes <sup>3</sup></td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 1 <sup>4</sup></td>
</tr>
<tr>
<td>Linux Mint</td>
<td>12</td>
<td>3.0.0</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>Mac OS X</td>
<td>10.6.2</td>
<td>10.2</td>
<td>No</td>
<td>Yes</td>
<td>-</td>
<td>Yes / Yes</td>
<td>Yes <sup>3</sup></td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 1 <sup>4</sup></td>
</tr>
<tr>
<td>Mandriva</td>
<td>One 2011</td>
<td>2.6.38</td>
<td>No</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>OpenBSD</td>
<td>5.0</td>
<td>-</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes <sup>3</sup></td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 1 <sup>4</sup></td>
</tr>
<tr>
<td>Red Hat</td>
<td>5</td>
<td>2.6.18</td>
<td>No</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>Solaris</td>
<td>5.11</td>
<td>-</td>
<td>No</td>
<td><sup>6</sup></td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes <sup>3</sup></td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>Ubuntu</td>
<td>10.04 LTS</td>
<td>2.6.32</td>
<td>No</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>Ubuntu</td>
<td>11.10</td>
<td>3.0.0</td>
<td>No</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 5</td>
</tr>
<tr>
<td>Windows 7</td>
<td>-</td>
<td>6.1</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes<sup>5</sup> / Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes / Yes / 7</td>
</tr>
<tr>
<td>Windows 7</td>
<td>SP1</td>
<td>6.1</td>
<td>Yes</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes<sup>5</sup> / Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes / Yes / 7</td>
</tr>
<tr>
<td>Windows 8</td>
<td>consumer preview</td>
<td>6.2</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes<sup>5</sup> / Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes / Yes / 7</td>
</tr>
<tr>
<td>Windows Server 2008 R2</td>
<td>SP1</td>
<td>6.1</td>
<td>No</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes<sup>5</sup> / Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes / Yes / 7</td>
</tr>
<tr>
<td>Windows Vista</td>
<td>-</td>
<td>6.0</td>
<td>Yes</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes<sup>5</sup> / Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes / Yes / 7</td>
</tr>
<tr>
<td>Windows Vista</td>
<td>SP2</td>
<td>6.0</td>
<td>Yes</td>
<td>Yes</td>
<td>was not tested</td>
<td>Yes<sup>5</sup> / Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes / Yes / 7</td>
</tr>
<tr>
<td>Windows XP</td>
<td>SP3</td>
<td>5.1</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes / Yes</td>
<td>Yes</td>
<td>-<sup>1</sup></td>
<td>Yes / Yes / 7</td>
</tr>
</tbody>
</table>
<p>Notes to the tests</p>
<ul>
<li><strong>1.</strong><strong>Random addresses:</strong>
<ul>
<li>They are only supported on Windows Vista and newer.</li>
</ul>
</li>
<li><strong>2. Privacy extension addresses</strong>:
<ul>
<li>PE was not configured</li>
</ul>
</li>
<li><strong>3. EUI-64 global addresses &#8211; reaction to duplicate address:</strong>
<ul>
<li>Tested OS keeps the address but it is marked as duplicate and it is not used by the OS (e.g. DAD, ping)</li>
</ul>
</li>
<li><strong>4. Privacy extension addresses &#8211; </strong><strong>reaction to duplicate address</strong>:
<ul>
<li>Only one PE is tried, it is kept after DAD but it is marked as duplicate and it is not used by the OS (e.g. DAD, ping)</li>
</ul>
</li>
<li><strong>5. EUI-64 &#8211; reaction to DAD</strong>:
<ul>
<li>Marked systems ignore DAD from the same MAC address as is used by the system.</li>
</ul>
</li>
<li><strong>6. Solaris &#8211; static address</strong>:
<ul>
<li>Static address was not tested because it was not used by the system.</li>
</ul>
</li>
</ul>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the main author</h6><div class="x-author-info"><h4 class="h-author mtn">Libor Polčák</h4><a href="http://www.fit.vutbr.cz/~polcak" class="x-author-social" title="Visit the website for Libor Polčák" target="_blank"><i class="x-icon-globe"></i> http://www.fit.vutbr.cz/~polcak</a><span class="x-author-social"><i class="x-icon-envelope"></i> polcak@fit.vutbr.cz</span><p class="p-author mbn">Libor Polčák is a researcher at BUT, FIT.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/behaviour-of-various-operating-systems-during-slaac-dad-and-nd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rogue Router Advertisement Attack</title>
		<link>http://6lab.cz/rogue-router-advertisement-attack/</link>
		<comments>http://6lab.cz/rogue-router-advertisement-attack/#comments</comments>
		<pubDate>Sat, 11 May 2013 22:42:41 +0000</pubDate>
		<dc:creator><![CDATA[Jozef Pivarnik]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://6lab.cz/?p=1503</guid>
		<description><![CDATA[This article describes first hop security issue of IPv6 Neighbor Discovery Protocol. Vulnerability of this protocol is exploited to perform a Rogue Router Advertisement attack. Currently, there are few mitigation techniques available against this type of attack. Most of them, however are useful only in specific scenarios, or not widely used, mainly because insufficient support of vendors. This article presents probably the most applicable mitigation technique against the Rogue RA attack — RA Snooping. Specifically, its implementations by Cisco and HP (H3C).]]></description>
				<content:encoded><![CDATA[<h1>Keywords</h1>
<p>IPv6 Neighbor Discovery, Router Advertisement, Rogue RA attack, RA Guard.</p>
<h1>1. Introduction to NDP</h1>
<p>The Neighbor Discovery Protocol (NDP) specified by RFC 4861 can be thought of as an IPv6 analogy to the set of IPv4 protocols, namely Address Resolution Protocol (ARP), ICMP Redirect and ICMP Router Discovery. To be more precise, it provides even more services, but as far as the Rogue RA Attack is concerned, the most important are <strong>Router Discovery</strong> and <strong>SLAAC</strong>. The main purpose of these services is to provide hosts with a unique IPv6 address and a default gateway. After a host connects to the network, the process is as follows:</p>
<ol>
<li>A host creates an Interface ID, usually via EUI-64 procedure or in case of Privacy Extensions it uses a (pseudo)random ID.</li>
<li>The host creates a link-local IPv6 address by appending an Interface ID to the <strong>FE80::/10</strong> prefix.</li>
<li>The host discovers routers by sending Router Solicitation (ICMPv6 message type 133).</li>
<li>IF<strong> </strong>there are any routers on the link, they announce themselves by replying with Router Advertisement (ICMPv6 message type 134), including:<br />
<strong>- Advertised prefix<br />
</strong><strong>- Router Lifetime</strong> &#8211; a positive value indicates the remaining time a router is willing to behave as a default gateway<br />
- Additional parameters such as <strong>MTU</strong>, etc.</li>
<li>The host receives a Router Advertisement, creates an IPv6 Globally Unique Address by appending its Interface ID to the advertised prefix.</li>
<li><strong>IF</strong> the Router Lifetime value is non-zero, it inserts the IPv6 address of a router to its Default Router List.</li>
</ol>
<p>The following figure illustrates the whole process.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/05/SLAAC1.png"><img class="size-full wp-image-1541 centered" src="http://6lab.cz/new/wp-content/uploads/2013/05/SLAAC1.png" alt="" width="520" height="175" /></a></p>
<h1>2. Rogue RA Attack</h1>
<p>The main issue of the NDP protocol is that its messages are unsecured. Nodes receiving unsecured NDP messages cannot distinguish between valid and &#8220;bogus&#8221; NDP messages, so there are only two possible ways of treating them. Either to ignore (which is not acceptable) or to process all of them. This is a huge security issue, because an attacker can pretend to be a valid router and provide hosts with malicious information in order to disrupt their connectivity (Denial of Service) or worse, capture their data (Man-in-the-Middle). The outline of a typical MitM Rogue RA Attack can be as follows.</p>
<ol>
<li>An attacker captures a valid Router Advertisement.</li>
<li>An attacker changes a Router Lifetime value to zero and sends such crafted message in order to force the victim to remove the current valid router from its Default Router List.</li>
<li>An attacker then creates another Router Advertisement, but this time announcing himself as a valid router, which effectively redirects the traffic through an attacker&#8217;s station. In fact, the traffic flowing back to the victim will be forwarded directly to the victim. An attacker can, however, perform a Neighbor Cache Poisoning Attack to change this, but this is beyond the scope of this article.</li>
</ol>
<div><a href="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack.png"><img class="size-full wp-image-1539 centered" src="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack.png" alt="" width="540" height="278" /></a></div>
<p>As mentioned above, currently there are few mitigation techniques available against this type of attack, but there is probably only one of them that is usable — <strong>RA Snooping</strong>.</p>
<h1>3. RA Guard</h1>
<p>Most of the networks have a common attribute that their nodes are on a link layer bonded by some intermediary device (usually switch), rather than directly. Such scenarios provide an opportunity to make use of a mechanism called RA Snooping. The idea of so-called snooping has been present in computer networks for long time, in the form of, for instance, IGMP Snooping or DHCP Snooping. It is well-known that switches use only information provided by link-layer header of received frames to forward them through the right interface. The concept of snooping exceeds this behavior in that the switch inspects also upper-layer information, based on which it takes beforehand defined actions. These actions have either optimizing (IGMP) or security (DHCP, RA) character.</p>
<p>RA Guard is a prevention mechanism against Rogue RA attack that utilizes RA Snooping. The key condition that must be met prior to RA Guard deployment is that there must be some intermediary device in a network that all traffic passes through. Typical example of such device is an Ethernet switch. RA Guard is implemented precisely on this device. The core functionality of RA Guard is that it inspects Router Advertisements and based on the information provided it decides whether to drop or forward them. Note that RA Guard is not any particular protocol or strictly defined mechanism. It is just common term describing a set of recommendations and general description of prevention mechanisms that were implemented by various vendors and appeared under various names. For example, while Cisco retains the name RA Guard, H3C uses the different label — ND Detection.</p>
<h2>3.1 Configuring RA Guard on Cisco device</h2>
<p>This section briefly describes, the configuration of RA Guard on Cisco devices. More details can be found in official Cisco documentation [<a href="#lit_4">4</a>]
<pre>Switch(config)# ipv6 nd raguard policy POLICY-NAME   ! Defines the RA Guard policy name
Switch(config-ra-guard)# device-role {host | router} ! Specifies the role of the device attached to the port.</pre>
<p>The RA Guard policy can have several other optional options checking the hop limit, router preference etc. After the policy is configured, it has to be applied to appropriate interfaces.</p>
<pre>Switch(config)# interface INTERFACE
Switch(config-if)# ipv6 nd raguard attach-policy POLICY-NAME ! Applies the RA Guard policy</pre>
<p>If a policy is configured with <strong>device-role host</strong>, a switch will <strong>drop</strong> any RA messages received on an interface where the policy is applied, thus eliminating the RA attack. Interfaces towards to a router should be configured with a policy where device-role is set to router.</p>
<h2>3.2 Configuring RA Guard on H3C device</h2>
<p>H3C devices incorporate RA Guard into more complex ND attack defense tool called ND Detection. Similarly to Cisco RA Guard implementation, also ND Detection function differentiates between trusted and untrusted ports. RA messages are not checked for correctness at trusted ports and are always forwarded.</p>
<pre>[Switch] ipv6                                         # Enable IPv6, as it is disabled by default.
[Switch] vlan 1
[Switch-vlan1] ipv6 nd detection enable               # Enable ND Detection functionality on selected VLAN.
[Switch-vlan1] quit
[Switch] interface GigabitEthernet 1/0/1
[Switch-GigabitEthernet1/0/1] ipv6 nd detection trust # Set interface connected to router as trusted.</pre>
<p>&nbsp;</p>
<h1>4. Bypassing RA Guard</h1>
<p>Against the simplest form of this attack (i.e. IPv6 header and Rogue ICMPv6 message are the only content of an IPv6 packet) are both RA Guard and ND Detection effective. As it turns out, if an attacker modifies the Router Advertisement message in an appropriate way, RA Guard may not recognize such messages as bogus. For that purpose, an attacker can make use of the concept of IPv6 Extension Headers and/or IPv6 packet fragmentation.</p>
<h2>4.1 RA Guard Bypass Using Extension Headers</h2>
<p>Similarly to IPv4, also IPv6 provides the option to extend the protocol. IPv4 has the Options field in IPv4 packet header, which can contain an information of arbitrary length (with respect to the maximum length of an IPv4 packet and IHL maximum value) as specified by RFC 791. Some intermediary nodes, processing IPv4 packets need an access to upper-layer information (e.g. firewalls), but as the Options field is variable in size, the first octet of an upper-layer header must be calculated dynamically according to Internet Header Length (IHL) value of an IPv4 packet.</p>
<p>Also the specification of IPv6 (RFC 2460) provides a room for protocol extensions, but the realization is slightly different as with its predecessor. The size of an IPv6 header is now fixed, in order to speed up the forwarding process. The Options field is not present anymore, but its role was substituted by the Next Header field. Apart from the fixed-size main header of an IPv6 packet, there may be a number of supplementary Extension Headers. These Extension Headers are concatenated in a row, each containing the Next Header field in addition to data contained. Each Extension Header is identified by its identifier, which is contained in the Next Header field of a previous header. The semantics of the last Extension Header is the same as the Protocol field of an IPv4 packet (i.e. it identifies the payload of an IPv6 packet).</p>
<p>In most cases, ICMPv6 messages are transmitted without any Extension Header. Some of the implementations of RA Guard may reckon on this, so they inspect only the Next Header field of an IPv6 header. If it does not contain a value of 58, the packet is considered as non-ICMPv6, thus RA Guard does not prevent it from forwarding. This is, however, false premise, as an attacker can easily craft packets with additional Extension Header preceding the ICMPv6 message itself.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-1exthdr2.png"><img class="centered size-full wp-image-1548" src="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-1exthdr2.png" alt="" width="395" height="51" /></a></p>
<p>To build upon this idea, an attacker can concatenate more than one extension header in order to bypass RA Guard. In order to improve network performance, NDP messages inspection is usually implemented in hardware, which has limited resources. If an attacker creates a packet with absurdly long header chain and succeeds in exhausting all available resources of a switch, the device fails to identify spurious RA message and the defense fails. This may not be true for all devices, but there is a high probability that it may pose a significant challenge for low-end devices.</p>
<p>Further testing revealed that even RA Guard implementation of tested devices fails to inspect the whole chain of Extension Headers and already seven empty Destination Options Extension Headers are sufficient enough to bypass the RA Guard on tested Cisco devices. H3C device has even lower limit — three Extension Headers (see figure below). Tests have shown that if an attacker includes more than 16 extension headers (All of the conducted tests used empty Destination Options Extension Headers), the Cisco RA Guard Implementation is suddenly able to properly recognize bogus Router Advertisements. Based on the <a title="IPv6 Extension Headers Review and Considerations" href="http://www.cisco.com/en/US/technologies/tk648/tk872/technologies_white_paper0900aecd8054d37d.html">information provided by Cisco</a>, hardware forwarding path is preffered to software forwarding. This means that if an IPv6 traffic filtering is in use, also Extension Headers must be inspected in hardware. In case of the header chain too large to fit into the resources allocated in hardware, the packet is punted to the software path. Based on this information, it is reasonable to assume that if a packet has an Extension Header chain short enough to fit into available resources, but consisting of sufficient amount of headers, so that they would not be inspected entirely, such packet would most probably not be dropped (Since this inspection is implemented in hardware, the number of headers that could actually be inspected must be fixed). This is probably only a flaw in implementation, but the fact remains that these devices are vulnerable from this kind of attack.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/05/raguard-exthdrs.png"><img class="centered" src="http://6lab.cz/new/wp-content/uploads/2013/05/raguard-exthdrs.png" alt="" width="514" height="151" /></a></p>
<h2>4.2 RA Guard Bypass Using Packet Fragmentation</h2>
<p>The purpose of IP fragmentation is to transfer packets larger than the MTU of used link-layer technology. This is achieved by splitting the original packet into multiple fragments, each of the size less than given MTU and transferring each part separately, so that they can be reassembled by their receiver. As with IPv6, the idea remains the same as in IPv4, but there are some differencies. In IPv4, any device is allowed to fragment the transiting packet in case, when the MTU of a link that a packet is supposed to be sent to is smaller than the size of a packet itself. On the contrary, fragmentation of IPv6 datagrams is allowed only at the sender&#8217;s node. In case, when a datagram cannot be forwarded by some intermediary device because of too small MTU of the particular link, the device sends an ICMPv6 Packet Too Big message including the MTU that caused the failure to the sender. This behavior is a part of the Path MTU Discovery defined by RFC 1981, which is used to determine the minimum MTU size of all the links spanning from the sender to the receiver, so that IPv6 datagrams would not need to be fragmented. What is more, IPv6 specification requires that every link in the Internet have an MTU of 1280 octets or greater. Another difference from IPv4 is that in IPv4, all information needed for IP fragments assembly at receiving node are present directly in IPv4 header. On the other side, IPv6 excluded this information from an IPv6 header and introduced separate Extension Header for that purpose, because its aim is to avoid packet fragmentation at all.</p>
<p>The concept of IPv6 packet fragmentation can be exploited to bypass RA Guard. The idea is as follows. An attacker inserts additional Extension Header (e.g. Destination Options), splits the Rogue RA message into more fragments, and sends them separately. Therefore, also a device with RA Guard configured will treat these fragments separately. Note, that most of the IP networks ensure high availability by means of path redundacy and therefore, if there are multiple paths available between the sender and the receiver, each fragment can take another path. Following figure illustrates the original Rogue RA message, prior to fragmentation, and the two resulting fragments which are subsequently sent as a part of the attack.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-frag1.png"><img class="centered size-full wp-image-1550" src="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-frag1.png" alt="" width="467" height="270" /></a></p>
<p>In this case, a device processing the second fragment is unable to locate the ICMPv6 header contained in this fragment. The reason for this is following. To locate the first byte of an ICMPv6 header a device needs to know the length of a previous header, which is, however, present in the first fragment. Thus, by leveraging the use of a Fragment Header together with another Extension Header (in our case Destination Options), the attacker is able to conceal the content of an ICMPv6 message including its type. The transit device with RA Guard configured has only two options. Either it blocks all such fragmented messages including those that are valid, or it forwards all of them, including the malicious ones. The reasonable choice is the second one, as it is unacceptable to drop any valid traffic.</p>
<p>If an attacker uses the approach mentioned above, a snooping device can at least detect that the original packet was an ICMPv6 message, since the Next Header field of the last Extension Header of the first fragment is set to 58. This idea can be pushed further, so that it is impossible for the intermediary device to even detect that it is an ICMPv6 message, actually. This can be achieved with an ICMPv6 message preceded with two or more Extension Headers that are splitted into fragments as illustrated in the following figure.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-frag2.png"><img class="centered size-full wp-image-1551" src="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-frag2.png" alt="" width="607" height="269" /></a></p>
<p>The challenge that the second fragment presents is the same as in the previous case, but this time, a device processing the first fragment is not even able to detect that ICMPv6 message is being transmitted. This is because the Next Header field of the last Extension Header of the first fragment has the value of 60, which indicates the Destination Options as the following Extension Header.</p>
<p>All of the tested devices are vulnerable from Rogue RA attack with packet fragmentation, as expected. Current specification of RA Guard actually does not take into account issues associated with packet fragmentation and therefore, practically all of the current implementations of RA Guard are vulnerable from this form of an attack.</p>
<p>There is, however, some work in progress [<a href="#lit_1">1</a>] that recommends to drop all IPv6 packets that are first fragments (i.e., Fragment Offset is set to 0) and fail to include the entire header chain. Non-first fragments may be safely forwarded, because their destination would not be able to properly assemble all of the fragments, as the first one would be missing. At the time of this writing, such behavior of RA Guard has not been implemented yet and it is questionable, if it ever will be. There is, however, a possibility to achieve such behavior on Cisco devices by making use of an ACL <strong>deny ip any any undetermined-transport</strong>, but unfortunately, none of the tested devices supports such ACL. The main obstacle preventing this solution from being deployed is that it may drop unusual but valid packets.</p>
<p>Even if such restriction would be acceptable, there is still a chance to bypass RA Guard [<a href="#lit_3">3</a>]. An attacker can create two overlapping fragments in a way so that the first fragment would contain some regular message (e.g. ICMPv6 Echo Request), so that it will not be dropped by RA Guard and the second fragment would contain malicious RA message with an offset being set in such a way that when these fragments will be assembled at their destination, RA message overwrites the message included in the first fragment. Following figure illustrates the situation.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-frag-overlap.png"><img class="centered size-full wp-image-1552" src="http://6lab.cz/new/wp-content/uploads/2013/05/ra-attack-frag-overlap.png" alt="" width="494" height="258" /></a></p>
<p>Since different operating systems handled assembly of fragments in different ways and overlapping fragments represented critical security issue, <a title="RFC 5722" href="http://tools.ietf.org/html/rfc5722">RFC 5722</a> forbade their usage. According to research conducted by SI6 Networks [<a href="#lit_2">2</a>], all of the current operating systems are converging towards the implementation of <a title="RFC 5722" href="http://tools.ietf.org/html/rfc5722">RFC 5722</a>, so overlapping fragments should not pose a threat in most cases.</p>
<h1>5. Conclusion</h1>
<p>The presented attack was tested on following devices with RA Guard (resp. ND Detection) enabled:</p>
<ul>
<li>Cisco Catalyst 3750-X Series Switch with IOS version 15.0(2)SE1</li>
<li>Cisco Catalyst 2960-S Series Switch with IOS version 15.0(2)SE2</li>
<li>H3C A5800 with OS version 5.20</li>
</ul>
<div>
<p>The tested devices, which are the latest version of network devices designed for access and distribution layer, are vulnerable against the presented attack. The access and partly distribution layer are actually the point of interest of all NDP attacks. The consequences are quite severe. With the absence of any applicable countermeasure against presented attacks, an attacker is able to prevent regular users from connecting to the network, possibly to capture their data or intercept their communication &#8211; see for example <a title="The Man-in-the-middle Attack Using IPv6" href="http://6lab.cz/article/the-man-in-the-middle-attack-using-ipv6/">this attack</a>.  Basically, you are unable to protect your IPv6 network today and doesn&#8217;t matter, how hard you are trying and how expensive devices you bought.</p>
<p>Update:</p>
<p>Based on a discussion with Roberto Taccon, I will like to add a commet according ACL with <strong>undetermined-transport</strong>. The Cisco switches  we have tested refuse the ACL as unsupported, however, you can bypass the limitations as documented here [<a href="#lit_5">5</a>]. The 3750-x and 2960S will accept this workaround. However, this workaround will filter whole IPv6 traffic (apperantly, it is unsupported  on 3750-x and 2960s for good reason), so it is useless.</p>
<h1>References</h1>
[1] <a name="lit_1"></a> Gont, F.: Implementation Advice for IPv6 Router Advertisement Guard (RA-Guard), draft &#8211; work in progress, November 2012, <a href="http://tools.ietf.org/html/draft-ietf-v6ops-ra-guard-implementation-07">draft-ietf-v6ops-ra-guard-implementation-07</a><br />
[2] <a name="lit_2"></a> SI6 Networks.: IPv6 NIDS evasion and improvements in IPv6 fragmentation/reassembly, February 2013, cited: May 2013 <a title="IPv6 NIDS evasion and improvements in IPv6 fragmentation/reassembly" href="http://blog.si6networks.com/2012/02/ipv6-nids-evasion-and-improvements-in.html">http://blog.si6networks.com/2012/02/ipv6-nids-evasion-and-improvements-in.html</a><br />
[3] <a name="lit_3"></a> IPv6Security.: Bypass:Cisco:ICMPv6:Router:Advertisement:Guard, May 2011, cited: May 2013, <a title="Bypass:Cisco:ICMPv6:Router:Advertisement:Guard" href="http://www.ipv6security.nl/?p=763">http://www.ipv6security.nl/?p=763</a><br />
[4] <a name="lit_4"></a> Cisco Systems:. IPv6 Configuration Guide, Cisco IOS Release 15.2S, June 2012, cited: May 2013, <a title="http://www.cisco.com/en/US/docs/ios-xml/ios/ipv6/configuration/15-2s/ip6-ra-guard.html" href="http://www.cisco.com/en/US/docs/ios-xml/ios/ipv6/configuration/15-2s/ip6-ra-guard.html">http://www.cisco.com/en/US/docs/ios-xml/ios/ipv6/configuration/15-2s/ip6-ra-guard.html</a><br />
[5] <a name="lit_5"></a> Enno Rey:. Some more Notes on RA Guard Evasion and “undetermined-transport”, April 2013, cited May 2013,  <a title="http://www.insinuator.net/2013/04/some-more-notes-on-ra-guard-evasion-and-undetermined-transport/" href="http://www.insinuator.net/2013/04/some-more-notes-on-ra-guard-evasion-and-undetermined-transport/">http://www.insinuator.net/2013/04/some-more-notes-on-ra-guard-evasion-and-undetermined-transport/</a></p>
</div>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the main author</h6><div class="x-author-info"><h4 class="h-author mtn">Jozef Pivarnik</h4><span class="x-author-social"><i class="x-icon-envelope"></i> pivarnik.jozef@gmail.com</span><p class="p-author mbn">Master student at Brno University of Technology, interested in computer network technologies, especially network security.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/rogue-router-advertisement-attack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Man-in-the-middle Attack Using IPv6</title>
		<link>http://6lab.cz/the-man-in-the-middle-attack-using-ipv6/</link>
		<comments>http://6lab.cz/the-man-in-the-middle-attack-using-ipv6/#comments</comments>
		<pubDate>Wed, 10 Oct 2012 07:14:21 +0000</pubDate>
		<dc:creator><![CDATA[Tomas Podermanski]]></dc:creator>
				<category><![CDATA[IPv6]]></category>

		<guid isPermaLink="false">http://ipv6.vutbr.cz/?p=1445</guid>
		<description><![CDATA[The video demonstrates the man-in-the-middle attack using IPv6 an windows 7. The attacker is placed in the same network segment as the victim(s). Standard software packages like named, dhcpd, squid, radvd are used to perform attack.]]></description>
				<content:encoded><![CDATA[<p>The video demonstrates the man-in-the-middle attack using IPv6 an windows 7. The attacker is placed in the same network segment as the victim(s). Standard software packages like named, dhcpd, squid, radvd are used to perform attack.<br />
<span id="more-1445"></span></p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/p6Unk1N7WcI" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/the-man-in-the-middle-attack-using-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security challenges in IPv6 from the campus perspective</title>
		<link>http://6lab.cz/security-challenges-in-ipv6-from-the-campus-perspective/</link>
		<comments>http://6lab.cz/security-challenges-in-ipv6-from-the-campus-perspective/#comments</comments>
		<pubDate>Thu, 20 Sep 2012 05:50:46 +0000</pubDate>
		<dc:creator><![CDATA[Tomas Podermanski]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://networking.vutbr.cz/?p=1436</guid>
		<description><![CDATA[Growing number of IPv6 devices in the network would bring new security challenges. Are there any security improvements comparing to IPv4 or IPv6 brings some new security threads. IPv6 have been developed for more than 15 years so far and presentation tries to find the answer if IPv6 provides better ... <a href="http://6lab.cz/security-challenges-in-ipv6-from-the-campus-perspective/" class="more-link">Read More</a>]]></description>
				<content:encoded><![CDATA[<p>Growing number of IPv6 devices in the network would bring new security challenges. Are there any security improvements comparing to IPv4 or IPv6 brings some new security threads. IPv6 have been developed for more than 15 years so far and presentation tries to find the answer if IPv6 provides better security comparing to IPv4. <span id="more-1436"></span></p>
<div  class="x-responsive-video x-responsive-video-shortcode embed" ><div class="x-responsive-video-inner"> <iframe src="//www.youtube.com/embed/qKNeKmzv4K0?rel=0" width="640" height="360" frameborder="0" allowfullscreen="allowfullscreen"></iframe> </div></div>
<p>&nbsp;</p>
<p>Presentation: <a title="Download presentation (ppt)" href="http://6lab.cz/wordpress/wp-content/uploads/2012/10/2012_ipv6-security.ppt" target="_blank">Download presentation (ppt)</a></p>
<p>URL: <a href="https://events.nordu.net/display/ndn2012web/Security+challenges+in+IPv6+from+the+campus+perspective" target="_blank">https://events.nordu.net/display/ndn2012web/Security+challenges+in+IPv6+from+the+campus+perspective</a></p>
<p>Videos used in presentation:</p>
<ul>
<li><a title="IPv6 RA flood DoS attack in Windows 8" href="/article/ipv6-ra-flood-dos-attack-in-windows-8/">IPv6 RA flood DoS attack in Windows 8</a></li>
<li><a title="The Man-in-the-middle Attack Using IPv6" href="/article/the-man-in-the-middle-attack-using-ipv6/">The Man-in-the-middle Attack Using IPv6</a></li>
</ul>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the Author</h6><div class="x-author-info"><h4 class="h-author mtn">Tomas Podermanski</h4><a href="http://www.fit.vutbr.cz/~poderman/" class="x-author-social" title="Visit the website for Tomas Podermanski" target="_blank"><i class="x-icon-globe"></i> http://www.fit.vutbr.cz/~poderman/</a><span class="x-author-social"><i class="x-icon-envelope"></i> tpoder@cis.vutbr.cz</span><p class="p-author mbn">Works as an backbone network administrator, research developer and PhD student at Brno University of Technology. Participates in several research projects focused on security, monitoring and IPv6. Professional experiences shares as an active member of the European project in the activity GÉAN3 Campus Best Practice.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/security-challenges-in-ipv6-from-the-campus-perspective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 RA flood DoS attack in Windows 8</title>
		<link>http://6lab.cz/ipv6-ra-flood-dos-attack-in-windows-8/</link>
		<comments>http://6lab.cz/ipv6-ra-flood-dos-attack-in-windows-8/#comments</comments>
		<pubDate>Sat, 15 Sep 2012 12:01:26 +0000</pubDate>
		<dc:creator><![CDATA[Tomas Podermanski]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://ipv6.vutbr.cz/?p=1332</guid>
		<description><![CDATA[RA flood attack is known for a few years. It appeared in many operating systems. Some vendors have already fixed the issue. Unfortunately Microsoft Windows product are still vulnerable including the latest version of Windows 8. Following video demonstrates the flood attack on on the latest version Windows 8 using thc-ipv6 toolkit.]]></description>
				<content:encoded><![CDATA[<p>Detailed information about the attack is available on <a href="http://samsclass.info/ipv6/proj/flood-router6a.htm">http://samsclass.info/ipv6/proj/flood-router6a.htm</a>. RA flood was generated by <a href="http://www.thc.org/thc-ipv6/">THC-IPv6 toolkit</a>. The version of tested OS was <strong>Windows 8 Pro</strong>, 32bit. </p>
<p><iframe width="420" height="315" src="https://www.youtube.com/embed/74xfpPwa1l4" frameborder="0" allowfullscreen></iframe></p>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the Author</h6><div class="x-author-info"><h4 class="h-author mtn">Tomas Podermanski</h4><a href="http://www.fit.vutbr.cz/~poderman/" class="x-author-social" title="Visit the website for Tomas Podermanski" target="_blank"><i class="x-icon-globe"></i> http://www.fit.vutbr.cz/~poderman/</a><span class="x-author-social"><i class="x-icon-envelope"></i> tpoder@cis.vutbr.cz</span><p class="p-author mbn">Works as an backbone network administrator, research developer and PhD student at Brno University of Technology. Participates in several research projects focused on security, monitoring and IPv6. Professional experiences shares as an active member of the European project in the activity GÉAN3 Campus Best Practice.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/ipv6-ra-flood-dos-attack-in-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploying IPv6 &#8211; practical problems from the campus perspective</title>
		<link>http://6lab.cz/deploying-ipv6-practical-problems-from-the-campus-perspective/</link>
		<comments>http://6lab.cz/deploying-ipv6-practical-problems-from-the-campus-perspective/#comments</comments>
		<pubDate>Sun, 27 May 2012 08:28:00 +0000</pubDate>
		<dc:creator><![CDATA[Tomas Podermanski]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://ipv6.vutbr.cz/?p=619</guid>
		<description><![CDATA[On February 2011, IANA has run out of IPv4 addresses. On April 2011, APNIC pool reached the final /8 IPv4 address block. Projected address pool exhaustion for other RIRs varies from the beginning of the 2012 to the end of 2014. This situation pushes organizations to think about transition to IPv6. Unfortunately IPv4 and IPv6 are incompatible protocols that make the transition more difficult and raise new security issues. This paper shares experiences of deploying IPv6 in the university campus network, describes the most significant troubles that we have been faced with and describes the best practices in the practical IPv6 deployment. The article discusses differences in IPv6 and IPv4 networks with focus on the first hop security, autoconfiguration (SLAAC, DHCP, DHCPv6) and different client’s support.]]></description>
				<content:encoded><![CDATA[<h2>Keywords</h2>
<p>IPv6, security, campus network, transition</p>
<h2>1. Introduction</h2>
<p>The idea of IPv6 deployment proposed by RFC 5211 [<a href="#lit_1">1</a>] expected that the Internet would be fully migrated to IPv6 in these days. Unfortunately, it seems that all deployment strategies defined in either political [<a href="#lit_2">2</a>],[<a href="#lit_3">3</a>] or technical documents were too optimistic. IANA IPv4 address pool is already depleted, more than 10% autonomous systems (AS) announces IPv6 prefix in global BGP table [<a href="#lit_4">4</a>] and most of operating systems support IPv6. However, the content providers still indicate that less than 0.5% [<a href="#lit_5">5</a>] of clients is being able to use IPv6 connectivity. What is worse, there are statistics showing that IPv6 connectivity in some networks might be broken or less stable comparing to IPv4 [<a href="#lit_6">6</a>]. As the result, most of content providers are afraid to announce IPv6 for their services in fear of losing customers.</p>
<p>Observing the global IPv6 infrastructure and deployment, we believe there are no significant problems to have a good IPv6 connectivity for servers in data centers. Many transport networks can deliver IPv6 traffic today as well. We believe that the key problem of the low IPv6 penetration is on the side of ISPs providing last mile to customers. ISP must ensure a positive user experience, thus if the IPv6 is deployed, it is important that the deployment is secure and a service quality is the same as in IPv4 network. Unfortunately, there are not many devices able to implement IPv6 first hop security that is equivalent to IPv4 security. Ordinary user does not care about protocol used for connection, but does care if the connection is broken or unstable, which is sometimes a problem with IPv6 connection.</p>
<p>This article comprises experience with deploying IPv6 at the campus network at the Brno University of Technology (BUT) which is one of the biggest universities in the Czech Republic. Currently, the core of the network has fully enabled support for the dual-stack and the IPv6 network completely follows topology of IPv4 network. University also has own provider independent (PI) IPv6 address space to be able to use multihomed IPv6 connections in future. The university campus network connects more than 2,500 staff users and more than 23,000 students. The top utilization is present at student dormitories where more than 6,000 students are connected via 100 Mb/s and l Gb/s links.</p>
<p>In the following sections we will describe the most significant issues that we have been faced with during the deployment of IPv6 protocol in the campus network. The deployment started at the university in 2002. At the beginning, the experimental network on dedicated devices and links was created. Currently, the IPv6 and IPv4 share the same infrastructure that is operated as a dualstack network. Most of the network services support both protocols. However, the process of transition to IPv6 at the university has not been finished yet, and it would take a lot of time and effort to move all services to IPv6 with the equivalent stability and reliability as we have in IPv4.</p>
<h2>2. Addressing issues</h2>
<p>One of the main issues is address assignment for clients. The mixture of various OSs in a network requires automatic address assignment that is supported by most of the systems. Assigning addresses with a DHCP server became de-facto standard for IPv4. However, DHCPv6 protocol is different.</p>
<p>DHCPv6 features two basic modes. In practice, the first mode, stateless DHCPv6, is a layer on top of the autoconfiguration mechanism (SLAAC) and is used to provide recursive DNS server addresses. Two special flags are used for this purpose in the Router advertisement (RA) message: <em>M</em> – managed, <em>O</em> – other. These flags tell the client that it should ask a DHCPv6 server for more information related to the connection parameters. If the <em>M</em> flag is set, statefull DHCPv6 is used. If the <em>O</em> flag is set, SLAAC will be combined with stateless DHCPv6. The strong binding between SLAAC and DHCPv6 brings several problems.</p>
<ul>
<li>It is not possible to pass all necessary configuration options (e.g. option for default route) via DHCPv6 server. Authors of DHCPv6 protocol stated that because SLAAC has to be used anyway, default route is not necessary – client learns a default route from RA message. However, this forces to use both autoconfiguration mechanisms together and increases the complexity.</li>
<li>When a client sees an RA with <em>M</em> flag on, a client sends a DHCPv6 Solicit message looking for a DHCPv6 server. A DHCPv6 server responds with appropriate configuration for the client. However, if the client has a DHCPv6 derived address, and receives an RA with <em>M</em> flag off, the client will release that DHCPv6 derived address. Unfortunately, RA messages can be easily spoofed so the attacker can force all clients in a local network to release their IPv6 addresses just with one packet. This can be solved by proper filtering on access layer; however this is sometimes a problem. The filtering possibilities are discussed later in the paper.</li>
</ul>
<p>Using DHCPv6, we do not get the same results as with DHCPv4 server (MAC to IPv6 address binding).<br />
DHCPv6 does not use a MAC address to identify the client; instead, it uses a specially created unique identifier called a DUID (DHCP Unique Identifier). The main idea behind this identifier is to release the clients from dependence on hardware and on a specific network interface. The advantage is that a change of a network adapter or a connection through another interface (such as WiFi instead of Ethernet) would mean that the user always obtain same IPv6 address. Unfortunately, there are several issues connected with the DUID identifier.</p>
<ul>
<li>DUID is controlled by software, thus it is not as stable as it should. E.g., if the client has dual boot, every OS will have different DUID.</li>
<li>DUID is changed, after OS is reinstalled.</li>
<li>If the administrator clones an OS image and copy it to another computer, two computers will have the same DUID.</li>
<li>It is impossible to tie DUID with the host identification that is used in DHCP(v4) – host’s MAC address which complicates assigning address especially in a dualstack environment. Solution is either to extend existing systems for address management to support DUIDs or to use workarounds like MAC address option specified in RFC 6221. Unfortunately, vendors have not included the support for the RFC 6221 yet.</li>
</ul>
<p>Moreover, statefull autoconfiguration using DHCPv6 is very difficult to be used today because of lack of support on many platforms including Windows XP, which is still very widespread OS. Most of mobile devices has not implemented support for DHCPv6 yet and some OSs (e.g. MAC OSX) must be updated to the latest version, which is a problem if the devices are not managed by an ISP.</p>
<p>The operational experience shows that according to these issues, the DHCPv6 protocol and its implementations are still not mature enough to be used in a production network and moreover, it is not feasible to use it for address assignment in networks where the hosts’ identification is required.</p>
<p>Another choice for address assignment available in IPv6 is to use the <em>stateless  utoconfiguration</em> (SLAAC). Unfortunately, the stateless autoconfiguration in some OSs turns on privacy extensions. This means that devices generate a random end user identifier (EUI) &#8211; temporary IPv6 Address. This is a brand new IPv6 feature that allows a node to automatically generate a random IPv6 address on its own without the control of a network administrator.</p>
<p>However, this contradicts the need to identify a malevolent user. Private, temporary addresses hinder the unique identification of users/hosts connecting to a service. This prevents logging and tracking users based on IPv6 address. However, the knowledge of relation between an address and a device (or user) that has been used is necessary for solving security incidents and is required by law in several countries.<br />
The Table 1 summarizes the autoconfiguration techniques in IPv6 protocol.</p>
<p><center></p>
<table class="tabulka1px centered">
<tbody>
<tr>
<td></td>
<td>DHCP (v4)</td>
<td>DHCPv6</td>
<td>SLAAC</td>
</tr>
<tr>
<td>Handle default route to a client</td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
</tr>
<tr>
<td>Handle address of DNS servers to a client</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">*<sup>1</sup></td>
</tr>
<tr>
<td>Privacy extension or EUI64 address created by a client</td>
<td></td>
<td></td>
<td align="center">y</td>
</tr>
<tr>
<td>Assignment IP address based on client’s MAC address</td>
<td align="center">y</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Assignment IP address based on client’s DUID address</td>
<td></td>
<td align="center">y</td>
<td></td>
</tr>
</tbody>
</table>
<p class="figure-comment">Table 1: Autoconfiguration techniques for IPv4 and IPv6<br />
<sup>1</sup> Handling address of DNS server was standardized in RFC 6106, but major OS have not implemented the standard yet.</p>
<p></center></p>
<p>If a security policy requires better control, either fixed IPv6 addresses must be centrally assigned and logged, which is not a feasible option for a large network, or statefull configuration using DHCPv6 has to be deployed. Before the deployment of IPv6 in a local network, a network administrator must decide whether:</p>
<ul>
<li>Addresses will be assigned by DHCPv6 – the advantage is better control over hosts with, but many devices will not be able to use IPv6.</li>
<li>Hosts will create own address based on SLAAC – all hosts will be able to use IPv6, but an administrator either gives up to have control over user identification in the network or a new mechanism must be deployed to identify the users [<a href="#lit_21">21</a>]. Example of our implementation is described later on.</li>
</ul>
<p>The Table 2 summarizes the IPv6 autoconfiguration support among the OSs.<br />
<center></p>
<table class="tabulka1px centered">
<tbody>
<tr>
<td align="center"></td>
<td>DHCP (v4)</td>
<td>IPv6</td>
<td>DHCPv6</td>
<td>SLAAC</td>
<td>RFC 6106</td>
<td>SEND</td>
</tr>
<tr>
<td>Windows XP</td>
<td align="center">y</td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Windows Vista / 7 / 8</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center"></td>
<td align="center">*<sup>2</sup></td>
</tr>
<tr>
<td>MAC OSX</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td></td>
<td></td>
</tr>
<tr>
<td>MAC OSX prior to Lion (2011)</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center"></td>
<td align="center">y</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Linux</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">*<sup>3</sup></td>
</tr>
<tr>
<td>Android</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center"></td>
<td align="center">y</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Windows phone</td>
<td align="center">y</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>iOS (iPhone, iPad, iPod)</td>
<td align="center">y</td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p class="figure-comment">Table 2: Autoconfiguration techniques supported by various OS in default configuration<br />
<sup>2</sup> Only experimental implementation not available for download yet [<a href="#lit_26">26</a>].<br />
<sup>3</sup> An experimental implementation available for Linux [<a href="#lit_25">25</a>].</p>
<p></center></p>
<h3>First hop security in IPv4</h3>
<p>IP address autoconfiguration process might be perceived as a honey pot for a hacker. If the hacker is able to interfere the configuration process, the whole user&#8217;s traffic can be rerouted to the attacker’s PC. In many cases it does not need to be a targeted attack, but simply an accident, where a user connects a Wi-Fi router with a preconfigured DHCP server to the network and causes a network malfunction for other users. This problem, as the other problems with first hop security, is known in IPv4 world for quite long time. For this reason some mechanisms were created in the IPv4 world which would prevent or at least complicate some of these attacks. The best place to implement protection for end users is on the end-user switch access port that the user is connected to. Different vendors use slightly different terminology for individual types of protection but generally we can meet the following ones:</p>
<p><strong>DHCP Snooping:</strong> Some ports are explicitly defined in the switch configuration so port is able to receive DHCP responses from DHCP (so called trusted port). It is assumed that somewhere behind the trusted port is a DHCP server. If a reply from a DHCP server arrives to a port not defined as trusted, the response is discarded. Any DHCP server running on the client system (whether intentionally or by accident) does not threaten other clients on the network because the answers will not reach further than the access port for which this protection has been activated. DHCP snooping is usually prerequisite for other protection mechanisms such as IP lockdown or ARP protection as described below.</p>
<p><strong>Dynamic ARP protection, ARP inspection:</strong> DHCP snooping database contains MAC address &#8211; IP address &#8211; switch port combination. This database is then used on untrusted ports to inspect ARP packets. Other MAC addresses not recorded in the database are discarded. This eliminates attacks focused on creating fake records in the ARP table (poisoned ARP cache). Another often-appreciated feature of this mechanism is the fact that the client cannot communicate over the network unless an IP address from the DHCP server is obtained. That forces<br />
user to use DHCP instead of configuring static address.</p>
<p><strong>Dynamic IP Lockdown, IP source guard:</strong> Another degree of protection is achieved by inspecting source MAC and IPv4 address on untrusted ports for all packets entering the port. This eliminates spoofing a source IPv4 or MAC address.</p>
<p>The Table 3 describes different attacks and techniques available for mitigating the attacks in IPv4 network.<br />
<center></p>
<table class="tabulka1px centered">
<tbody>
<tr>
<td></td>
<td align="center">DHCP<br />
snooping</td>
<td align="center">Dynamic ARP<br />
inspection,<br />
ARP protection</td>
<td align="center">Dynamic IP<br />
lockdown,<br />
IP source guard</td>
</tr>
<tr>
<td>Rogue DHCP server</td>
<td align="center">y</td>
<td></td>
<td></td>
</tr>
<tr>
<td>ARP poisoning</td>
<td></td>
<td align="center">y</td>
<td></td>
</tr>
<tr>
<td>Forces users to use DHCP</td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>Source IPv4 address spoofing</td>
<td></td>
<td></td>
<td align="center">y</td>
</tr>
<tr>
<td>Source MAC address spoofing</td>
<td></td>
<td></td>
<td align="center">y</td>
</tr>
<tr>
<td style="border-top-width:2px ">Require support on access port</td>
<td align="center" style="border-top-width:2px ">y</td>
<td align="center" style="border-top-width:2px ">y</td>
<td align="center" style="border-top-width:2px ">y</td>
</tr>
</tbody>
</table>
<p class="figure-comment">Table 3: First hop security threads and protection features in IPv4</p>
<p></center></p>
<h2>3. First hop security in IPv6</h2>
<p>The above described solutions for mitigating attacks in IPv4 networks are implemented in various access switches on the market. As we wrote previously, the autoconfiguration techniques are different in IPv6 so new solutions are necessary. Security mitigation techniques in IPv6 networks are described below.</p>
<p><strong>Source Address Validation Improvements (SAVI):</strong> The set of techniques that complement ingress filtering with finer-grained, standardized IP source address validation [<a href="#lit_11">11</a>]. Framework has option for DHCP servers and tries to solve a mechanism similar to the one we described with DHCP snooping for IPv4. It is limited to DHCPv4 and DHCPv6 and does not deal with the problems of rogue Router Advertisement messages. SAVI is mainly supported in devices produced by Hewlett Packard &#8211; A series. Very similar technique called <em>ND<br />
inspection</em> is implemented in Cisco devices.</p>
<p><strong>Secure Network Discovery (SEND):</strong> This method tries to deal with autoconfiguration problem in a totally different way. SEND is based on signing packets with cryptographic methods [<a href="#lit_15">15</a>]. Apart from a router it does not require support on the access switches. The validity verification itself through message certificate takes place at the end-user system. IPv6 address of the end-user system is a result of a cryptographic function (see, we have another auto configuration method). Using SEND directly excludes using static, EUI 64 and Privacy Extensions Address. However SEND provides great advantage &#8211; it not only solves the autoconfiguration problem but also other safety problems of the Network Discovery protocol (RFC 2461). Another advantage is independent infrastructure; hence it can also be used in the same way in the either wired or Wi-Fi networks.</p>
<p>The main shortcoming of SEND is the requirement for public key infrastructure according to X.509. To make the SEND works properly, a certificate of the certification authority have to be installed on each client that wants to use SEND. The certificate has to be issued for each router as well. So it grows the costs of the management of the network – certificates have to be reissued or replaced before they expire.</p>
<p>SEND is a patented Cisco technology (US patent number 20080307), therefore no one would be surprised that it is implemented especially on some devices of this company. Presence of the patent raised several discussions especially with SEND and RA Guard integration. According to Cisco statement, Cisco will however not assert any patents against any party that implements the standard [<a href="#lit_17">17</a>].</p>
<p>Considering the SEND deployment, a network administrator will face the problem that the protocol is not supported on any operation system yet. There are only some basic Linux and Windows implementations; however thay cannot be used in a production environment. Windows OS, as the most widespread system, nor Mac OS do not support the SEND protocol even in the most recent versions. SEND protocol could potentially solve security problems of NDP protocol; however, it cannot be deployed and there are no indications that this should change in the near future.</p>
<p><strong>Router Advertisement Guard (RA Guard):</strong> Another alternative, which unfortunately deals only with the issue of fake router advertisements, is IPv6 Router Advertisement Guard [<a href="#lit_9">9</a>]. It is similar technique as DHCP snooping, but determined for Router Advertisement packets. It tries to block fake router advertisements on an access user port. Apart from tools that should ease the initial switch configuration (learning mode), it opens the<br />
path to integration with SEND. In this mode the switch works as a so called node-in-the-middle, where the switch with activated RA Guard uses information from SEND to verify packet validity and for the connected end-user system it appears as normal Router Advertisement packet. As you could guess from the title RA Guard does not solve DHCP or DHCPv6 issues in any way. We can already find an implementation in some Cisco devices.</p>
<p><strong>Access Lists on the switch (ACL/PACL):</strong> If a network device supports ACL or PACL (Port access list) it is possible to configure an ACL blocking the malevolent traffic. A network administrator can configure ACL that will block all ICMPv6 messages type 134 (RA messages) and also block traffic to the UDP target port 546 (dhcpv6-c1ient). The rules are subsequently applied to the inputs of ports to which the c1ients are connected. This can eliminate instances of rogue routers and DHCPv6 servers. A required condition to use this mechanism is IPv6 ACL support on the relevant switch. The problem of this solution is that very few access switches<br />
supports creation of IPv6 access-lists today. Also price of that switches is usually two or three times higher comparing to the switches where IPv6 PACL and other IPv6 security features are not implemented.</p>
<p>The solution with RA-Guard and ACL/PACL has however big disadvantage. It works very well for accidently announced RA messages but can be easily avoided using combination of fragmented packets and extension header in the RA message [<a href="#lit_18">18</a>]. Existing protection for the targeted IPv6 attack does not exist today. There are some proposed solutions how to solve the problem [<a href="#lit_19">19</a>],[<a href="#lit_20">20</a>], but all of them are only drafts and it will take a long time before support will be added to operating systems and network devices.</p>
<p>The most undesired option is <strong>blocking or disabling whole IPv6</strong> traffic. It is obvious that this step protect a host against all attack related to IPv6, however it is against the idea of deploying IPv6. That solution can be used only as a short-term solution when the other possibilities are not available. IPv6 protocol can be suppressed on the client by disabling o uninstalling IPv6 protocol or blocking the whole IPv6 traffic on the access port by filtering out all Ethernet packets identified with Ether Type 0x86DD (Ether type for IPv6 protocol).</p>
<p>The Table 4 summarizes first hop security threads and protection in IPv6 network.<br />
<center></p>
<table class="tabulka1px centered">
<tbody>
<tr>
<td></td>
<td>RA-Guard</td>
<td>ACL/PACL</td>
<td align="center">SAVI,<br />
ND inspection</td>
<td>SEND</td>
<td>Disabling IPv6</td>
<td>Blocking IPv6</td>
</tr>
<tr>
<td>Rogue DHCPv6 server</td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>Accidently rogue router advertise</td>
<td align="center">y</td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>Intentional rouge router advertise</td>
<td></td>
<td></td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>ND cache poisoning</td>
<td></td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>Source IPv6 address spoofing</td>
<td></td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>DAD DOS attack</td>
<td></td>
<td></td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>Neighbour cache overload</td>
<td></td>
<td></td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td>Source MAC address spoofing</td>
<td></td>
<td></td>
<td align="center">y</td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
</tr>
<tr>
<td style="border-top-width:2px ">Requires support on access switches</td>
<td align="center" style="border-top-width:2px ">y</td>
<td align="center" style="border-top-width:2px ">y</td>
<td align="center" style="border-top-width:2px ">y</td>
<td style="border-top-width:2px "></td>
<td style="border-top-width:2px "></td>
<td align="center" style="border-top-width:2px ">y</td>
</tr>
<tr>
<td>Requires support or configuration on client side</td>
<td></td>
<td></td>
<td></td>
<td align="center">y</td>
<td align="center">y</td>
<td></td>
</tr>
</tbody>
</table>
<p class="figure-comment">Table 4: First hop security threads and protection features in IPv6</p>
<p></center></p>
<h2>4. First hop security in IPv6 – current situation</h2>
<p>Thinking about IPv6 deployment and security, network administrators will face the fact, that all of the above mentioned techniques can be used rather theoretically today. Either they are not implemented on client’s side or device support is missing. Another issue is that if the protective devices are to be truly purposeful they must be placed as close to the end-user system as possible. This could often mean a complete replacement of network infrastructure that is a job that few will want afford just to implement IPv6.</p>
<p>To summarize our experience, after two years of operating the IPv6 network in production environment and several more years of testing the IPv6 protocol, we did not observe a targeted attack to our IPv6 network. The main problems, we have to solve are above described problems with autoconfiguration, bogus router advertisements together with missing monitoring tools for IPv6 network.</p>
<p>Many rogue advertises are generated by Windows computers. This is a serious issue because computers propagate their own interface as a default gateway. Unfortunately this behaviour can be in some conditions caused by properly used Internet connection sharing service. The Figure 1 shows the number of rogue advertises on the network with approximately 2000 of connected hosts.</p>
<p><a href="http://6lab.cz/new/wp-content/uploads/2012/08/figure1.jpg"><img src="http://6lab.cz/new/wp-content/uploads/2012/08/figure1.jpg" alt="Figure 1: Number of rogue advertises detected in the network" title="Figure 1: Number of rogue advertises detected in the network" width="800" height="213" class="aligncenter size-full wp-image-633" /></a>
<div style="background:white; text-align:center;padding-top:10px">Figure 1: Number of rogue advertises detected in the network</div>
<p>As we mentioned earlier, because of missing implementation of mitigation techniques on switches, more affordable solution that would at least alleviate efforts to paralyze the IPv6 autoconfiguration mechanism is detection of fake Router Advertisements. This will not protect the network from a well-crafted and targeted attack but it can at least detect incorrectly configured c1ients. For many networks it would be the only usable solutions for a long time. All tools for detection of rogue Router Advertisements work based on the same principle. They connect to the FF02::1 multicast group where the router advertises messages are sent and thus are<br />
able to monitor all RA messages appearing on the network. The monitoring tool can then inform the<br />
administrator about the undesirable status, call an automated action (Ndpmon [<a href="#lit_22">22</a>], Ramond [<a href="#lit_23">23</a>]), or even send a message cancelling the validity of fake Router Advertisements (rafixd [<a href="#lit_24">24</a>]).</p>
<h2>5. User tracking, monitoring and accounting</h2>
<p>Long-term network monitoring, accounting and backtracking of security incidents is often achieved in IPv4 networks using NetFlow probes and collectors. This can be a problem if IPv6 is deployed and privacy extensions are allowed in the network. The same user can than communicate with different addresses. That means that address cannot be used as a unique identifier anymore. As the part of deploying IPv6 we tried to develop extension to existing monitoring systems to allow easier tracking users in an IPv6 network.</p>
<p>The main idea of the extension is collecting and putting together data obtained from differed parts of the network. A neighbour cache database on routers and forwarding databases on switches can provide information about relation between an IPv6 address port on a switch and a MAC address used by a user. In the next step the MAC address can be used for identifying a user in a database provided by radius server.</p>
<p>These pieces of information, together, provide a complex view of the network and can help to identify a host. A tuple (lPv6 address, MAC address, Login name) is sufficient to identify a host/user. In practice, an extended tuple is built: (Timestamp, IPv6 address, MAC address, Switch port, Login) as depicted in the following Figure 2.<br />
<a href="http://6lab.cz/new/wp-content/uploads/2012/08/figure2.jpg"><img src="http://6lab.cz/new/wp-content/uploads/2012/08/figure2.jpg" alt="Figure 2: Items in the extended flow record and relations  amongst them" title="Figure 2: Items in the extended flow record and relations  amongst them" width="800" height="230" class="aligncenter size-full wp-image-670" /></a>
<div style="text-align:center;padding-top:10px;background:white">Figure 2: Items in the extended flow record and relations amongst them</div>
<p>Timestamp is added to provide a history of communication. Switch port is necessary if the user is blocked or if an unregistered MAC address is used on a port. In addition to these values, the VLAN number and interface statistics are stored; however, these data are not necessary for host identification.</p>
<p>It is important to note that this data structure is not created at once, but it is filled in when data are available. For instance, NetFlow data are taken from the NetFlow probe when they are sent to the collector. However, there is no information about MAC addresses yet. The address is downloaded later from the switch&#8217;s ND cache. Login data from RADIUS can also be added. However, RADIUS data are not available for every user &#8211; only for those who are connected using 802.1x authentication. For other users, only the IPv6 address and the switch port number and MAC address are used for identification.</p>
<p>Data are collected using the SNMP protocol and stored in the central database where the network administrator can search data using the IPv6, IPv4 or MAC addresses as keys. Useful tool for polling and storing information from switches and routers is Network Administration Visualized (NAV) [<a href="#lit_12">12</a>]. SNMP polls the data from switches every fifteen minutes. The mapping between the IPv6 address and its corresponding MAC address is downloaded from the router&#8217;s neighbour cache. Port, VLAN number and other information comes from the switch&#8217;s FDB (Forwarding Database) table. Traffic statistics are obtained from NetFlow. NetFflow records alone<br />
are not sufficient for user surveillance and activity tracking because of the temporary IPv6 addresses as described in previous sections.</p>
<p>The time dependency of gathering different data is crucial when accessing the ND Cache. This temporary memory at the router stores information needed to build the link between the IPv6 address and the MAC address. Because IPv6 addresses change in time and have limited validity, if the ND entry is lost, there is no way to link the IPv6 address and the user/host. To ensure that all information is stored properly in the monitoring system, the SNMP polling interval has to be shorter than the expiration timeout of the ND Cache. Otherwise, some entries in the ND Cache could expire without being downloaded into the central system. Typical timeouts for collecting<br />
SNMP and RADIUS data are fifteen minutes. The ND Cache expiration timeout is usually set to more than one hour.</p>
<h2>6. Conclusion</h2>
<p>This paper presents security and addressing issues in IPv4 and IPv6 protocol environment and solutions how to solve them. Nowadays, the IPv6 traffic volume is low, but this is caused by the lack of IPv6 sources (web pages, servers) on the Internet. Also widespread operation systems such as Windows XP support IPv6 but IPv6 is not enabled by default.</p>
<p>Next generation Windows systems together with Linux, Mac OS and Unix systems have however IPv6 protocol enabled by default and penetration of these systems is growing every day. Security and addressing issues discussed in this paper present the overview of problems we encountered when we deployed IPv6 protocol in BUT campus network. Addressing issues and problems with user tracking in IPv6 protocol introduce the necessity for a new monitoring system that is able to overcome the specific problems in IPv6 address assignment. Solutions, how to solve these issues, are proposed. We discussed possibilities, how we are able to limit the impact of security problems in IPv6 network together with monitoring and tracking system that is able to identify and track a host in IPv4 and IPv6 network.</p>
<h2>References</h2>
<p><a name="lit_1"></a><br />
[1] J. Curran: An Internet Transition Plan, [online], url: <a href="http://tools.ietf.org/html/rfc5211">http://tools.ietf.org/html/rfc5211</a></p>
<p><a name="lit_2"></a><br />
[2] Commission of the European Communities: Action Plan for the deployment of Internet Protocol version<br />
6 (IPv6) in Europe, [online], url: <a href="http://ec.europa.eu/information_society/policy/ipv6/action_plan/">http://ec.europa.eu/information_society/policy/ipv6/action_plan/</a></p>
<p><a name="lit_3"></a><br />
[3] Transition Planning for Internet Protocol Version 6 (IPv6), [online],<br />
url: <a href="http://georgewbush-whitehouse.archives.gov/omb/memoranda/fy2005/m05-22.pdf">http://georgewbush-whitehouse.archives.gov/omb/memoranda/fy2005/m05-22.pdf</a></p>
<p><a name="lit_4"></a><br />
[4] IPv6 CIDR REPORT, [online],<br />
url: <a href="http://www.cidr-report.org/v6/as2.0/">http://www.cidr-report.org/v6/as2.0/</a>, <a href="http://bgp.potaroo.net/index-bgp.html">http://bgp.potaroo.net/index-bgp.html</a></p>
<p><a name="lit_5"></a><br />
[5] Lorenzo Colitti, Steinar H. Gunderson, Erik Kline, Tiziana Refice, Evaluating IPv6 Adoption in the<br />
Internet, [online], url: <a href="http://www.google.com/intl/en/ipv6/statistics/">http://www.google.com/intl/en/ipv6/statistics/</a></p>
<p><a name="lit_6"></a><br />
[6] Geoff Huston: Flailing IPv6, [online], url: <a href="http://www.potaroo.net/ispcol/2010-12/6to4fail.html">http://www.potaroo.net/ispcol/2010-12/6to4fail.html</a></p>
<p><a name="lit_7"></a><br />
[7] S.Thomson, T.Narten, and T.Jinmei. IPv6 Stateless Address Autoconfiguration. RFC 4862, September<br />
2007, [online], url: <a href="http://tools.ietf.org/html/rfc4862">http://tools.ietf.org/html/rfc4862</a></p>
<p><a name="lit_8"></a><br />
[8] J. Curran: An Internet Transition Pian, RFC 5211, July 2008, url: <a href="http://tools.ietf.org/html/rfc5211">http://tools.ietf.org/html/rfc5211</a></p>
<p><a name="lit_9"></a><br />
[9] E. Levy-Abegnoli, G. Van de Velde, C. Popoviciu, J. Mohacsi: IPv6 Router Advertisement Guard, RFC<br />
6105, February 2011, [online], url: <a href="http://tools.ietf.org/html/rfc6105">http://tools.ietf.org/html/rfc6105</a></p>
<p><a name="lit_10"></a><br />
[10] S. Frankel, R. Graveman, and J. Pearce. Guidelines for the Secure Deployment of IPv6. Technical<br />
Report 800-119, National Institute of Standards and Technology, 2010, [online],<br />
url: <a href="http://csrc.nist.gov/publications/nistpubs/800-119/sp800-119.pdf">http://csrc.nist.gov/publications/nistpubs/800-119/sp800-119.pdf</a></p>
<p><a name="lit_11"></a><br />
[11] J. Bi, J. Wu, G. Yao, F. Baker: SAVI Solution for DHCP (work in progress) July 2011, [online], url: <a href="http://tools.ietf.org/html/draft-ietf-savidhcp-l0">http://tools.ietf.org/html/draft-ietf-savidhcp-10</a></p>
<p><a name="lit_12"></a><br />
[12] UNINETT and Norwegian University of Science and Technology: NAV, [online], 2011-03-15,<br />
[online], url: <a href="http://metanav.uninett.no/">http://metanav.uninett.no/</a></p>
<p><a name="lit_13"></a><br />
[13] J. Bi, G. Yao, J. Wu, F. Baker.: Savi solution for Stateless Address &#8211; work in progress, April 2010,<br />
[online], url: <a href="http://tools.ietf.org/html/draft-bi-savi-stateless-00">http://tools.ietf.org/html/draft-bi-savi-stateless-00</a></p>
<p><a name="lit_14"></a><br />
[14] E. Levy-Abegnoli, G. Van de Velde, C. Popoviciu, J. Mohacsi.: IPv6 Router Advertisement Guard.<br />
RFC 6105, February 2011. [online], url: <a href="http://tools.ietf.org/html/rfc6105">http://tools.ietf.org/html/rfc6105</a></p>
<p><a name="lit_15"></a><br />
[15] J. Arkko, Ed., J. Kempf, B. Zill, P. Nikander: SEcure Neighbor Discovery (SEND). RFC 3971,<br />
Febuary 2011, [online], url: <a href="http://tools.ietf.org/html/rfc3971">http://tools.ietf.org/html/rfc3971</a></p>
<p><a name="lit_16"></a><br />
[16] Wu, J., Bi, J., Bagnulo, M., Baker, F., and C. Vogl: Source Address Validation Improvement<br />
Framework&#8221;, draft-ietf-saviframework-04 (work in progress), March 2011.</p>
<p><a name="lit_17"></a><br />
[17] R. Albright, Cisco System&#8217;s Statement of IPR related to draft-ietf-v60ps-ra-guard-02, April 2009,<br />
[online], url: <a href="http://www.ietf.org/ietfftpIlPR/cisco-ipr-draft-ietf-v60ps-ra-guard-02.txt">http://www.ietf.org/ietfftpIlPR/cisco-ipr-draft-ietf-v60ps-ra-guard-02.txt</a></p>
<p><a name="lit_18"></a><br />
[18] F. Gont, IPv6 Router Advertisement Guard (RA-Guard) Evasion, December 2011, [online], url: <a href="http://tools.ietf.org/html/draft-gont-v6ops-ra-guard-evasion-01">http://tools.ietf.org/html/draft-gont-v6ops-ra-guard-evasion-01</a></p>
<p><a name="lit_19"></a><br />
[19] F. Gont, Implementation Advice for IPv6 Router Advertisement Guard (RA-Guard), Febuary 2012,<br />
[online], url: <a href="http://tools.ietf.org/html/draft-gont-v6ops-ra-guard-implementation-01">http://tools.ietf.org/html/draft-gont-v6ops-ra-guard-implementation-01</a></p>
<p><a name="lit_20"></a><br />
[20] F. Gont, Security Implications of the Use of IPv6 Extension Headers with IPv6, January 2012,<br />
[online], url: <a href="http://tools.ietf.org/html/draft-gont-6man-nd-extension-headers-02">http://tools.ietf.org/html/draft-gont-6man-nd-extension-headers-02</a></p>
<p><a name="lit_21"></a><br />
[21] Grégr, M., Podermański, T., Šoltés, M., Žádník, M.: Design of Data Retention System in IPv6 network,<br />
December 2011, [online],<a href="http://www.fit.vutbr.cz/~igregr/pubs.php?id=9840">http://www.fit.vutbr.cz/~igregr/pubs.php?id=9840</a></p>
<p><a name="lit_22"></a><br />
[22] Frederic Beck, Ndpmon, August 2009, [online], url: <a href="http://ndpmon.sourceforge.net/">http://ndpmon.sourceforge.net/</a></p>
<p><a name="lit_23"></a><br />
[23] Ramond, [online], url: <a href="http://ramond.sourceforge.net/">http://ramond.sourceforge.net/</a></p>
<p><a name="lit_24"></a><br />
[24] Rafixd, [online], url: <a href="https://github.com/strattg/rafixd">https://github.com/strattg/rafixd</a></p>
<p><a name="lit_25"></a><br />
[25] Tony Cheneau, Ndprotector, March 2012, [online], <a href="http://amnesiak.org/NDprotector/">http://amnesiak.org/NDprotector/</a></p>
<p><a name="lit_26"></a><br />
[26] Meinel Ch.: Winsend, March 2012, [online],<br />
url: <a href="http://www.hpi.uni-potsdam.de/meinel/forschung/security_engineering/ipv6_security/winsend.html">http://www.hpi.uni-potsdam.de/meinel/forschung/security_engineering/ipv6_security/winsend.html</a></p>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the Author</h6><div class="x-author-info"><h4 class="h-author mtn">Tomas Podermanski</h4><a href="http://www.fit.vutbr.cz/~poderman/" class="x-author-social" title="Visit the website for Tomas Podermanski" target="_blank"><i class="x-icon-globe"></i> http://www.fit.vutbr.cz/~poderman/</a><span class="x-author-social"><i class="x-icon-envelope"></i> tpoder@cis.vutbr.cz</span><p class="p-author mbn">Works as an backbone network administrator, research developer and PhD student at Brno University of Technology. Participates in several research projects focused on security, monitoring and IPv6. Professional experiences shares as an active member of the European project in the activity GÉAN3 Campus Best Practice.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/deploying-ipv6-practical-problems-from-the-campus-perspective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analysis of tunneled traffic</title>
		<link>http://6lab.cz/analysis-of-tunneled-traffic/</link>
		<comments>http://6lab.cz/analysis-of-tunneled-traffic/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 16:07:49 +0000</pubDate>
		<dc:creator><![CDATA[Matej Gregr]]></dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://ipv6.vutbr.cz/?p=870</guid>
		<description><![CDATA[Traditional firewall techniques usually permit traffic according to IP addresses or port numbers. More advanced firewalls inspect even packet&#8217;s payload &#8211; e.g. http traffic. However, neither of these techniques is sufficient when dealing with IPv6 transition techniques. An attacker can easily avoid a security policy in a network by using ... <a href="http://6lab.cz/analysis-of-tunneled-traffic/" class="more-link">Read More</a>]]></description>
				<content:encoded><![CDATA[<p>Traditional firewall techniques usually permit traffic according to IP addresses or port numbers. More advanced firewalls inspect even packet&#8217;s payload &#8211; e.g. http traffic. However, neither of these techniques is sufficient when dealing with IPv6 transition techniques. An attacker can easily avoid a security policy in a network by using one of many IPv6 transition techniques. Using Teredo as an example, the IPv6 traffic is encapsulated in UDP payload on high port numbers.<br />
<span id="more-870"></span></p>
<p>Traditional firewall can&#8217;t detect traffic inside the tunnel if the DPI of every UDP packet is not performed. Unfortunately, firewalls in current network equipment (Cisco, Juniper, HP &#8230;) do not support this functionality. To make things worse, these firewalls are often used as border firewalls in enterprise networks. The presentation focuses on our monitoring solution of IPv6 transition techniques. The probe monitors network traffic and generates NetFlow statistics. The type of transition technique is encoded in NetFlow data. We support AYIYA, 6to4, 6in4, Teredo and ISATAP.</p>
<p><iframe width="420" height="315" src="https://www.youtube.com/embed/P7g5Ac-d3_0" frameborder="0" allowfullscreen></iframe></p>
<div  class="x-author-box cf" ><h6 class="h-about-the-author">About the Author</h6><div class="x-author-info"><h4 class="h-author mtn">Matej Gregr</h4><a href="http://www.fit.vutbr.cz/~igregr/" class="x-author-social" title="Visit the website for Matej Gregr" target="_blank"><i class="x-icon-globe"></i> http://www.fit.vutbr.cz/~igregr/</a><span class="x-author-social"><i class="x-icon-envelope"></i> igregr@fit.vutbr.cz</span><p class="p-author mbn">PhD student at Brno University of Technology. He teaches network related courses and his research concerns IPv6 security, monitoring and deployment. He works also as a network administrator at Brno campus network and participates in the European project - GÉAN3 Campus Best Practice.</p></div></div>
]]></content:encoded>
			<wfw:commentRss>http://6lab.cz/analysis-of-tunneled-traffic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
