8 Chapter 2 Theoretical Foundation 2.1 Overview of OSI Model The OSI (Open System Interconnection) reference model, released in 1984, provide vendors with a set of standards that ensures greater compatibility and interoperability among the various types of network technologies that were produced by many companies around the world [4] The OSI model divides various types of computer network into seven different parts/layers. All the layer can be used to communications between networks or can work as a guideline for communication. The OSI model is very important regarding the communication between networks, OSI model defining all the network function in each layer also OSI model act as a framework that help to explain how information travel through the network. Figure 2.1 OSI Model Layers [4] 9 Figure 2.1 help to explain the seven layers in the OSI model layer. Each layer has its own network function that will be elaborate one by one in detail below. 2.1.1 Layer 7: Application Layer Application layer is upper part of the OSI model layer, very close to user, the main responsibility to interact with the user application like printing, create database, and application service. Common applications that deal with the application - layer protocol are Internet Mail Access Protocol – protocol that defines how users can access and store incoming e-mail messages (IMAP) [6], Trivial File Transfer Protocol – simplified version of the TCP/IP file transfer protocol that does not include password protection (TFTP) [6], HTTP, Telnet, SMTP, FTP, Post Office Protocol version 3 – an internet mail server protocol that also provides an incoming mail storage mechanism (POP3) [6], and Structured Query Language – a query language developed by IBM for use in mainframe application (SQL) [6]. The application layer doesn’t provide services to other OSI layer. 2.1.2 Layer 6: Presentation Layer The easiest layers that can be understood is the presentation layer its effects can be easily seen. Main function of this layer to modified the format data send by one system so it can be readable by another system. It also can translate multiple data formats by using common format. The presentation layer also can encrypt and decrypt files to be readable by the system, other function that presentation layer can do is handling with data 10 compression and translation service. Example data format for the presentation layer are: GIF, JPEG, MPEG, TIFF, American Standard Code for Information Interchange – a standard coding scheme that assigns numeric values to letters, numbers, punctuation characters and control characters to achieve compatibility among different computer peripheral devices (ASCII) [6], and MIDI. 2.1.3 Layer 5: Session Layer Session Layer manages all the session needed to establish communication between hosts. Consider to be the most difficult layer to understand. Establish, terminates, and manages session is the main function of this layer beside dialog control between nodes. Session layer also organize communication between systems by providing three different methods: simplex, half duplex, and full duplex. Common application or protocol uses in this layer are: NetBIOS – a Novell NetWare 3.x workstation utility used to determine if the client software NETBIOS.EXE is loaded and, if so, which interrupts it is using [6], Lightweight Dir ectory Access Protocol – a directory services that can help people find other people and network services and can also be used over the Internet (LDAP) [6], XWindow – an open and nonproprietary bit- mapped graphics system, design to be independent of both the display hardware and the underlying operating system [6], and AppleTalk – an Apple Macintosh network protocol, based on the OSI Reference Model, which gives every Macintosh networking capabilities [6]. 11 2.1.4 Layer 4: Transport Layer The Transport layer reassembles data into a data stream, data that being reassembled came from the upper layer application. Transport layer focused with end-to-end connection. Reliability of transport between host become main concern for this layer, when transporting data between host the upper- layer is shield to protect the transportimplementation details by providing transparent data transfer. Examples for this protocol are: TCP, UDP, and Sequence Packet Exchange – a set of Novell NetWare protocol implemented on top of IPX (SPX) [6]. 2.1.5 Layer 3: Network Layer The network layer protocol concern about device addressing, in order to provide reliable connectivity between hosts the device addressing within geographically separated network must be determined first. When device addressing in network region already been determined, all device can be easily keep track. Two types of packet used in this layer are data and route update. Routers usually used to provides routing service within an internetworking. Examples for this protocol are: IP and Internetwork Packet Exchange – Part of Novell NetWare’s native protocol stack, used to transfer data between the server and workstation on the network (IPX) [6]. 12 2.1.6 Layer 2: Data-Link Layer Data Link Layer is an important layer, it ensure message that send by the sender deliver to the proper address within network topology. All messages that need to be transfer is format into pieces called data frame, each data frame contain a header that load with information about hardware destination and source address. Data link layer also concern with physical transmission, error notification, network topology and network access, and flow control. Examples of this protocol are: Ethernet – a popular network protocol and cabling scheme with a transfer rate 10Mbps, originally developed at Xerox in 1970 by Dr. Robert Metcalf [6] and Frame Relay – a CCIT standard for a packet-switching protocol, running at speeds up to 2Mbps, that also provide bandwidth for demand [6]. 2.1.7 Layer 1: Physical Layer The first layer of the OSI model, the physical layer, put its concern toward the way of communication with the various types of the communication media. Physical layer help setting up the protocol to communicate between different media. Different types of media have their own protocol to communicate, some use tones other represent in bits. Physical layer needed to encode data into media signal to be understandable, most of the media can read signal. 13 2.2 Overview of TCP/IP Model First proposed by Department of Defense (DoD) in 1970s, TCP/IP model is design to meet the expectation of DoD to create such a network that can survive at any conditions. That’s why TCP/IP original intent focused to the Internet connection that runs on the ARPANET which some people recognize as the “mother” of Internet [5]. Figure 2.2: TCP/IP Model Layer [4] It has four main layers that can be seen in figure 2.2, the four main layers are: application layer, transport layer, internet layer, and network access layer. There are similarities and differences between names and functionality between OSI layer and TCP/IP layer. In order to get to know more about TCP/IP model layer, let us see the functionality of each layer more detail. 14 2.2.1 Application Layer The top layer of the TCP/IP layer is the Application layer, application layer handle and ensuring the delivering of data between layers. The application layer handles high – level protocols and issues of representation, encoding, and dialog control [4]. Protocols that are used in the application layer are: 2.2.1.1 FTP FTP stands for File Transfer Protocol. The TCP/IP Internet protocol used when transferring single or multiple files from one computer system to another. FTP uses a client/server model, in which a small client program runs on your computer and accesses a larger FTP server running on an Internet host. FTP provides all the tools needed to look at directories and files, change to other directories, and transfer text and binary files from one system to another [6]. 2.2.1.2 SMTP SMTP stands for Simple Mail Transfer Protocol. The TCP/IP (Transmission Control Protocol/Internet Protocol) protocol that provides a simple e- mail service and is responsible for moving e-mail messages from one e- mail server to another. 15 SMTP provides a direct end-to-end mail delivery, which is rather unusual; most mail systems use store-and- forward protocols. The e- mail servers run either Post Office Protocol (POP) or Internet Mail Access Protocol (IMAP) to distribute e- mail messages to users [6]. 2.2.1.3 SNMP SNMP stands for Simple Network Management Protocol. SNMP is a standard protocol, part of the TCP/IP (Transmission Control Protocol/Internet Protocol) suite, used to manage and monitor nodes on a network. The accompanying illustration shows how the SNMP manager and agent are organized. SNMP is a communications protocol for collecting information about devices on the network, including hubs, routers, and bridges. Each piece of information to be collected about a device is defined in a Management Information Base (MIB). SNMP uses UDP (User Datagram Protocol) to send and receive messages on the network. [6] 2.2.1.4 HTTP HTTP stands for Hypertext Transfer Protocol. The command and control protocol used to manage communications between a Web browser and a Web server [6]. 16 2.2.1.5 Telnet Telnet is a terminal emulation protocol, part of the TCP/IP suite of protocols and common in the UNIX world, which provides remote terminal-connection services [6]. 2.2.1.6 DNS DNS stands for Domain Name Service, sometimes referred to as Domain Naming System. DNS is a distributed addressing system that resolves the domain name into the numeric IP address. DNS lets you use the Internet without having to remember long lists of cryptic numbers. The most common high- level domains on the Internet include: .com, .org, .edu, .mil, .gov, .int, .net, etc [6]. 2.2.1.7 OSPF OSPF stands for Open Shortest Path First. OSPF is a routing protocol used on TCP/IP networks that takes into account network loading and bandwidth when routing information over the network. Routers maintain a map of the network and swap information on the current status of each network link. OSPF incorporates least-cost routing, equal-cost routing, and load balancing [6]. 17 2.2.1.8 NFS NFS stands for Network File System. A distributed file-sharing system developed well over a decade ago by Sun Microsystems, Inc. NFS allows a computer on a network to use the files and peripheral devices of another networked computer as if they were local, subject to certain security restrictions. Using NFS, you can share files on your system with other computers running MS-DOS, MacOS, UNIX, Novell NetWare, VMS, and many other operating systems, in both local and global environments [6]. 2.2.2 Transport Layer Like its name, transport layer handle the transport of data from the host to the destination network. Data that it send usually called datagram (a message unit that contains source and destination address information, as well as the data itself, which is routed through a packet-switching network) [6]. The two important protocols for this layer are: 2.2.2.1 TCP TCP stands for Transmission Control Protocol. TCP is the transport- level protocol used in the TCP/IP suite of protocols. It works above IP in the protocol stack and provides reliable data delivery over connection-oriented links. TCP adds a header to the datagram that contains the information needed to get the datagram to its destination. The source port number and the destination port number allow data to be sent back and forth to the 18 correct processes running on each computer. A sequence number allows the datagrams to be rebuilt in the correct order in the receiving computer, and a checksum verifies that the data received is the same as the data sent. In addition to these fields, the TCP header contains the following informa tion: acknowledgement number, offset, reserved flags, window size, urgent pointer, option, and padding [6]. 2.2.2.2 UDP UDP stands for User Datagram Protocol. The connectionless, transport- level protocol used in the TCP/IP suite of protocols, usually bundled with IP- layer software. Because UDP does not add overhead, as does connection-oriented TCP, UDP is often used with SNMP (Simple Network Management Protocol) applications. Multicast applications, such as Mbone and the Real-time Transport Protocol that delivers audio and video streams use UDP as their delivery mechanism because the acknowledgment and retransmission services offered by TCP are not needed and add too much overhead. If a packet of audio data is lost, retransmission is neither practical nor desirable [6]. 2.2.3 Internet Layer In internet layer, IP (Internet Protocol, The session- layer protocol that regulates packet forwarding by tracking addresses, routing outgoing messages, and recognizing incoming messages in TCP/IP networks and the Internet) [6] consider to be the most important protocol in this layer. Main function of this layer is to send packets from one device to 19 the others using the appropriate protocol from this layer. The most well-known and widely used of IP is the IPv4 or Internet Protocol version Protocol. Other IP protocol is the IPv6 that will be consider the future of IP. The reason why IPv6 consider to be the next generation of IP will be discuss more detail in the next chapter. The Internet Protocol is the building block of the Internet. Its functions include [7]: Defining the datagram, which is the basic unit of transmission in the Internet Defining the Internet addressing scheme Moving data between the Network Access Layer and the Transport Layer Routing datagrams to remote hosts Performing fragmentation and re-assembly of datagrams Other protocols that work in this layer are: 2.2.3.1 ICMP ICMP stands for Internet Control Message Protocol. ICMP is an error-reporting protocol that works with Internet Protocol (IP) and provides the functions used for networklayer management and control. Routers send ICMP messages to respond to undeliverable datagrams by placing an ICMP message in an IP datagram and then sending the datagram back to the original source. ICMP is also used by the Ping command [6]. 20 2.2.3.2 ARP ARP stands for Address Resolution Protocol. A protocol within TCP/IP (Transmission Control Protocol/Internet Protocol) and AppleTalk networks that allows a host to find the physical address of a node on the same network when it knows only the target’s logical or IP address [6]. 2.2.3.3 RARP RARP stands for Reverse Address Resolution Protocol. A part of the TCP/IP (Transmission Control Protocol/Internet Protocol) protocol suite that allows a computer, more specifically a diskless workstation, to obtain an IP address from a server when only the hardware address is known [6]. 2.2.4 Network Access Layer The lowest layers for the TCP/IP layer provide way for the system to deliver data or packet to from source to destination for the same network (LAN) or outside network region (WAN). This layer also use network for transmit IP datagram. Network access layer functions include mapping IP addresses to physical hardware addresses and encapsulating IP packets into frames [5]. 21 2.3 Comparison Between OSI Model & TCP/IP Model Diagram below shows the different type of architecture of OSI Model and TCP/IP Model and also the architecture of TCP/IP Protocol. Figure2.3 Comparison Between OSI Model & TCP/IP Model[4] Based on the explanation earlier about OSI Model and TCP/IP Model here are the similarities and differences between both architecture. Similarities: • Both have layers. • Both have application layers, although they include very different services. • Both have comparable transport and network layers. • Packet-switched (not circuit-switched) technology is assumed. • Networking professionals need to know both. 22 Differences: • TCP/IP combines the presentation and session layers into its application layer. • TCP/IP combines the OSI data link and physical layers into its network access layer. • TCP/IP appears simpler because it has fewer layers. • The TCP/IP transport layer using UDP does not always guarantee reliable delivery of packets, as the transport layer in the OSI model does. 2.4 Internet Protocol Interne t Protocol (IP) is a data-oriented protocol that is used widely on the Internet. IP is mainly used as a unique identifier assigned to each interface on an IP network. So basically, the ideal use of IP network is that each computer has a unique IP address. Just think an IP address is similar to phone number that relates to a person or the location of home. For example, take a phone number such as: +62 21 769 3678. The +62 part identifies the country that it resides. For this example, it is in Indonesia. 21 means that the location is in Jakarta 769 identifies that the number is in Jakarta Selatan area. Last, 3678 is a unique identifier for that particular house/office. So, based on the initial example, can be concluding that the phone number is located at a house/office that is in Jakarta, Indonesia, and it is in Jakarta Selatan area. There are two versions of IP addressing that are available today, version 4 (Ipv4), and 23 version 6 (Ipv6). Ipv4 was standardized in 1980s to replace the ARPAnet, whereas Ipv6 development started in the 1990s. The details will briefly introduce one by one. 2.4.1 Terminology Bit -> A binary digit whose value only consists of either 0 of 1. Byte -> A collection of 8 bits. Octet -> Always 8 bits. Prefix length -> Prefix length is the portion of IP address that represents the network adress. In other words, it's the portion of IP address without the host address. Further detail will be discussed later on in this chapter. 2.4.2 IPv4 IPv4 is made up of 32 bits of information. They are divided into four sections, referred to as octets. The IP protocol defines five different address classes: Class A, Class B, Class C, Class D, and Class E. The first three classes, Class A, B, and C, they use a different size for the network ID and and host ID portion. Class D is for a special type of address called multicast and Class E is for experimental only, and is not used. 24 Figure 2.4: IPv4 address The above diagram shows the representation of IPv4 address in decimal form as well as in bit. 2.4.2.1 Network Addressing As already mentioned earlier, there are five different address classes of IP address. The network address is identified by the classes. The cases can be determined by looking at the first octet of an IP address. If the first octet is a number between 0 and 126, it is a Class A network. Class B network starts from 128 to 191. Class C network is between 192 to 223. Class D network is used for multicast and is available from 224 to 239. Last but not least, Class E network is used for experimental use, and it starts from 240 to 255. In binary form, we can identify a class of a particular address by examining the first four bits of an IP address. Here are the criteria: • If the first bit is a zero, the address is a Class A address. 25 • If the first bit is one, and the second bit is a zero, then the address is a Class B address. • If the first two bits are both one and the third bit is zero, then it is a Class C address. • If the first three bits are all one and the fourth bit is a zero, the address is a Class D address. • If the first four bits are all one, then it is a Class E address. Here is the complete table of each class and their total available number addresses per classes/network. Table 2.1 IP Class table Note that the ip range for 127.0.0.0 is not listed because 127.0.0.0 is reserved for localhost. There are also some other reserved IP networks that are used for private networks (local networks) [http://www.duxcw.com/faq/network/privip.htm]: 26 Table 2.2 Private IP Address Range The IP address in the range of 169.254.0.0 – 169.254.255.255 is the special ones, because unlike the rest of the IP range that must be set manually, this IP range are reserved for automatic private IP addressing (APIPA). APIPA is a feature that will automatically assign an IP address to a computer that is set to obtain an IP address automatically from a Dynamic Host Configuration Protocol (DHCP) yet the DHCP server is not present or not available at the time being. 2.4.2.2 Subnetting Subnetting is a technique that lets network administrators use the 32 bits available in an IP address more efficiently by creating networks that are not limited to the scales provided by Class A, B, and C IP addresses. With subnetting, network can be created more efficient to the sizes of the current network. By default there are only 8 bits for Class A, 16 bits for Class B, and 24 bits for Class C. Subnetting allows us to select our own numbers of bits to use for the network ID. 27 There are two reasons that attract us to do subnetting. The first is to allocate the limited IP address space more efficiently. Based on table 2.2, then by default the Internet was limited to Class A to have 16 million hosts, Class B to have 65,000 hosts, and Class C to have 254 hosts per network. While there are many networks with more than 254 devices exist such as big company, there are very few exist with 65,000 hosts per network, let alone 16 million. By this specification, any network with more than 254 hosts, let say 500 hosts in a network, would need a Class B allocation and probably waste tens of thousands of IP addresses. The second reason for subnetting is that even if a single organization has thousands of network devices, operating all those devices with the same network ID would be very inefficient because every department might need different needs. Also, a single network only has a single broadcast domain, thus it will affect the network performance. For performance reasons, networks are usually segmented into broadcast domains that are smaller than even Class C addresses provide. 2.4.2.3 Subnet Masks In order for subnetting to work, the router must be told which portion of a particular IP address belongs to which network. This can be accomplished by using another 32-bit number, called subnet mask. Here is the list of default values for subnet masks from each class. 28 2.4.3 IPv6 A newer version of Internet Protocol, named IPv6 has a bigger address space. It consists of 128 bits of information. The bigger address space is actually one of the reason why Internet Protocol needs a newer version. The current Internet Protocol (IPv4) has limited number of address hosts and soon will be full. Unlike IPv4 that is represented in decimal form, IPv6 is represented in hexadecimal form because it is more efficient for such long characters. The current IPv6 address looks like the following: FECE:BC23:0000:0000:0000:0000:CB34:200C This looks a little bit harder to read compared to IPv4 addresses that are only 32-bits long and represented in decimal form. The separator for each group is represented by a semicolon (:) compared to dots (.) in IPv4. While the address syntax looks more complicated, there are rules to simplify or shorten an IPv6 addresses. The rules are: • You can discard leading zeros in each group. So, instead of writing 0005, it can be replaces by writing 5. Instead of writing 005d, it can be change with 5d, and so on. • If there are series of zeros between the groups, it can be replaced with symbol :: • The symbol :: can only appear once in each IPv6 address. This happens because the computer will calculate the missing zeros by counting groups that exist, and then subtract this number from 8, and then multiply the result with 29 16. For example, if an address is fe80::1, there are two blocks that exist. So, 8 - 1 = 6. Then, multiply 6 by 16. That means, there are 96 bits of zeros. So, by using the above rules, IPv6 previous address can be simplified to: FECE:BC23:0:0:0:0:CB34:200C, FECE:BC23::CB34:200C Table 2.3 Binary, Hexadecimal, and Decimal format for IP [8] Binary Hexadecimal Decimal 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 8 8 1001 9 9 1010 A 10 30 Binary Hexadecimal Decimal 1011 B 11 1100 C 12 1101 D 13 1110 E 14 1111 F 15 Based on the above the table, the same IPv6 address before can be written in decimal form such as: FECE:BC23:0000:0000:0000:0000:CB34:200C to be: 1111 1110 1100 1110 1011 1100 0010 0011 0000 0000 0000 0000 1100 1011 0011 0100 2.4.3.1 IPv6 Prefixes An IPv6 prefix is a similar implementation of subnet mask in IPv4. Instead of using a dotted decimal such as 255.255.255.0, IPv6 only uses prefix length that are represented by IPv6 address/n where n is the length of the prefix. IPv4 also support this type of prefix. For example, a netmask of 255.255.255.0 is similar to /24 because there are 24 bits that consist of 1. 31 The prefix is the part of the address where the bits have fixed values or are the bits of a route or subnet ident ifier. For example, 21DA:D3::/48 is a route prefix and 21DA:D3:0:2F3B::/64 is a subnet prefix. All subnets have a 64-bit prefix. Any prefix that is less than 64 bits is a route or address range that is summarizing a portion of the IPv6 address space. An IPv6 prefix is useful only for routes or address ranges. In IPv4, it is common to express an IPv4 address with its prefix length/netmask . For example, 192.168.29.7/24 (equivalent to 192.168.29.7 with the subnet mask 255.255.255.0). The prefix length is included so that the bits for identify the subnet and bits for identify the host on the subnet can be determine. In IPv6 addresses, the number of bits used to identify the subnet is always 64 and the number of bits used to identify the host on the subnet is always 64. Therefore, since the prefix length is always 64, sometimes it does need to be expressed. For example, the address FEC0::2AC4: 2AA:FF:FE9A:82D4/64 can also be represented as FEC0::2AC4:2AA:FF:FE9A:82D4. 2.4.3.2 IPv6 Address Types There are three types of IPv6 addresses: • Unicast A unicast address identifies a single interface within the scope of the type of address. The scope of an address is the region of the IPv6 network over which 32 the address is unique. With the appropriate unicast routing topology, packets addressed to a unicast address are delivered to a single interface. • Multicast A multicast address identifies zero or more interfaces. With the appropriate multicast routing topology, packets addressed to a multicast address are delivered to all interfaces identified by the address. • Anycast An anycast address identifies multiple interfaces. With the appropriate unicast routing topology, packets addressed to an anycast address are delivered to a single interface—the nearest interface that is identified by the address. The nearest interface is defined as being the closest in terms of routing distance. A multicast address is used for one-to-many communication, with delivery to multiple interfaces. An anycast address is used for one-to-one-of- many communication, with delivery to a single interface. In all cases, IPv6 addresses identify interfaces, not nodes. A node is identified by any unicast address assigned to any one of its interfaces. Also, it is worth to mention that there is no broadcast address in IPv6. In IPv6, it is performed using multicast addresses. 33 2.4.3.2.1 Unicast These are the following types of addresses that are unicast IPv6 addresses: • Global unicast address • Link- local address • Site- local address • Special addresses • Compatibility addresses Table 2.4 Current Allocation for IPv6 Address Space Format Prefix (FP) Fraction of the Address Space Reserved 0000 0000 1/256 Unassigned 0000 0001 1/256 Reserved for NSAP 0000 001 1/128 Unassigned 0000 010 1/128 Unassigned 0000 011 1/128 Unassigned 0000 1 1/32 Unassigned 0001 1/16 001 1/8 Allocation Global unicast address 34 Format Prefix (FP) Fraction of the Address Space Unassigned 010 1/8 Unassigned 011 1/8 Unassigned 100 1/8 Unassigned 101 1/8 Unassigned 110 1/8 Unassigned 1110 1/16 Unassigned 1111 0 1/32 Unassigned 1111 10 1/64 Unassigned 1111 110 1/128 Unassigned 1111 1110 0 1/512 Link-local unicast address 1111 1110 10 1/1024 Site-local unicast address 1111 1110 11 1/1024 Multicast unicast address 1111 1111 1/256 Allocation 35 2.4.3.2.1.1 Global Unicast Addresses Based on the above figure, global unicast addresses are identified by Format Prefix of 001. IPv6 global unicast address is equivalent to IPv4’s public IP addresses. They are globally routable and reachable on the IPv6 portion of the Internet. 2.4.3.2.1.2 Link-local Addresses Link- local addresses are identified by the Format Prefix of 1111 1110 10, and are used to communicate with neighbor nodes on the same link. For example, on a single link IPv6 network with no router, link-local addresses are used to communicate between hosts on the link. Link- local addresses are equivalent to Automatic Private IP Addressing (APIPA) IPv4 addresses autoconfigured with 169.254.0.0/24 addresses. The scope of link- local is local link. 2.4.3.2.1.3 Site-Local Addresses Site- local addresses are identified by the Format Prefix of 1111 1110 11, and are used to communicate to other hosts on the local network. Site- local addresses are equivalent to private IP addresses in IPv4. Site- local addresses are not reachable from other sites, and routers must not forward site-local traffic outside the site. Site- local addresses can be used in addition to global addresses. The first 48 bits are always fixed for site- local addresses, beginning with FEC0::/48. The next 16 bits for network ID is assigned 36 manually to separate one site to the other. addresses are not assigned automatically. Unlike link-local addresses, site- local It needs to be configured manually of by autoconfiguration. Autoconfiguration will be explained later on in this chapter. 2.4.3.2.1.4 Special Addresses There are two different types of IPv6 special addresses: 1. Unspecified addresses. This is similar to IPv4’s 0.0.0.0. In IPv6 it is represented as 0:0:0:0:0:0:0:0 or :: 2. Loopback address. IPv4 uses 127.0.0.1, whereas IPv6 uses 0:0:0:0:0:0:0:1 or ::1 2.4.3.2.1.5 Compatibility Addresses Compatibility addresses are aimed to suppport migration from IPv4 to IPv6. These compatibility addresses use both types of hosts in terms of IPv4 and IPv6. They are defined as the followings: 2.4.3.2.1.5.1 IPv4-compatible Addresses The IPv4-compatible address, 0:0:0:0:0:0 :w.x.y.z or ::w.x.y.z (where w.x.y.z is the dotted decimal representation of a public IPv4 address), is used by IPv6/IPv4 nodes that are communicating with IPv6 over an IPv4 infrastructure that uses public IPv4 addresses, 37 such as the Internet. For example, if the IPv4 address is 202.124.242.22, by using IPv4compatible address, the IPv6 address will be ::202.124.242.22 2.4.3.2.1.5.2 IPv4-mapped Addresses The IPv4- mapped address, 0:0:0:0:0:FFFF:w.x.y.z or ::FFFF: w.x.y.z, is used to represent an IPv4-only node to an IPv6 node. The example of IPv4- mapped address from the above example will be ::FFFF: 202.124.242.22. 2.4.3.2.1.5.3 6over4 Addresses An address of the type [64-bit prefix]:0:0:WWXX:YYZZ, where WWXX: YYZZ is the colon hexadecimal representation of w.x.y.z (a public or private IPv4 address), is used to represent a host for the tunneling mechanism known as 6over4. 2.4.3.2.1.5.4 6to4 Addresses An address of the type 2002:WWXX:YYZZ:[SLA ID]:[Interface ID], where WWXX:YYZZ is the colon hexadecimal representation of w.x.y.z (a public IPv4 address), is used to represent a node for the tunneling mechanism known as 6to4. 38 2.4.3.2.1.5.5 ISATAP Addresses An address of the type [64-bit prefix]:0:5EFE:w.x.y.z, where w.x.y.z is a public or private IPv4 address, is used to represent a node for the address assignment mechanism known as Intra-Site Automatic Tunnel Addressing Protocol (ISATAP). 2.4.3.2.2 Multicast IPv6 multicast addresses have the FP of 1111 1111. Therefore, an IPv6 multicast address always begins with FF. Multicast addresses cannot be used as source addresses or as intermediate destinations in a Routing header. These are the list of currently assigned IPv6 multicast addresses: Table 2.5 Current Allocation of IPv6 Address Space Scope IPv6 Address Purpose Node-Local Scope FF01::1 All Nodes Addresses Node-Local Scope FF01::2 All Routers Addresses Node-Local Scope FF01::FB mDNSv6 Link-local Scope FF02::1 All Nodes Address Link-local Scope FF02::2 All Routers Addresses Link-local Scope FF02::3 Unassigned Link-local Scope FF02::4 DVMRP Routers 39 Scope IPv6 Address Purpose Link-local Scope FF02::5 OSPFIGP Link-local Scope FF02::6 OSPFIGP Designated Routers Link-local Scope FF02::7 ST Routers Link-local Scope FF02::8 ST Hosts Link-local Scope FF02::9 RIP Routers Link-local Scope FF02::A EIGRP Routers Link-local Scope FF02::B Mobile-Agents Link-local Scope FF02::C SSDP Link-local Scope FF02::D All PIM Routers Link-local Scope FF02::E RSVP-ENCAPSULATION Link-local Scope FF02::F UPnP Link-local Scope FF02::16 All MLDv2-capable routers Link-local Scope FF02::6A All-Snoopers Link-local Scope FF02::6B PTP-pdelay Link-local Scope FF02::FB mDNSv6 Link-local Scope FF02::1:1 Link Name 40 Scope IPv6 Address Purpose Link-local Scope FF02::1:2 All-dhcp-agents Link-local Scope FF02::1:3 Link-local Multicast Name Resolution Link-local Scope FF02::1:4 DTCP Announcement Link-local Scope FF02::1:FFXX:XXXX Solicited-Node Address Link-local Scope FF02::2:FF00::/104 Node Information Queries Site-local Scope FF05::2 All Routers Address Site-local Scope FF05::FB mDNSv6 Site-local Scope FF05::1:3 All-dhcp-servers Site-local Scope FF05::1:4 Deprecated (2003-03-12) Site-local Scope FF0X::1:1000 FF0X::1:13FF Service Location, Version 2 2.4.3.2.3 Anycast An anycast address is assigned to multiple interfaces. Packets addressed to an anycast address are forwarded by the routing infrastructure. It will look for an interface where an anycast address is set up. In order to facilitate delivery, the routing infrastructure must be aware of the interfaces that have anycast addresses assigned to them and their distance in terms of routing metrics or hop counts. 41 According to RFC 2373, anycast addresses are used only as destination addresses and are assigned only to routers. Anycast addresses are assigned out of the unicast address space and the scope of an anycast address is the scope of the type of unicast address from which the anycast address is assigned. A unicast address cannot be the same as the anycast address. 2.4.3.3 IPv6 Autoconfiguration In IPv4, IP addresses are assigned manually or automatically by DHCP server. In IPv6, there is a more convenient way of handling this. Imagine if you have 128 bits of choices to choose from, and assign those addresses to hosts in a network. This can be very frustrating. IPv6 has a utility called autoconfiguration. What this means is that the IP address doesn’t have to assign manually, and the system administrator also do not need a server to setup the IP address. There are two types of autoconfiguration in IPv6: • Stateful autoconfiguration -- It is similar to DHCP in IPv4. Presumably, it is called DHCPv6 in IPv6. • Stateless autoconfiguration -- With stateless configuration, IPv6 hosts do not need to configure anything to get information from the router. Some configuration might still have to be done on the server (very minimal configuration), but there is no need to configure any DHCP server. In stateless configuration, hosts depend on Router Advertisement messages that 42 provide the Subnet ID, and then it will automatically appended with the Host ID. To generate Host ID or also called as Inte rface Identifiers, hosts can be ge nerated from their MAC address. While MAC address is only 48-bit length and Host ID is 64-bit length, there is a conversion method that is called Extended Unique Identifier (EUI-64). Next, to assign the network ID, they depend on whether it is a stateful autoconfiguration, or a stateless configuration. If it was a stateful configuration, DHCP server will automatically assign it is IP address. On the other hand, if it was a stateless configuration address, the server will send a routing advertisement that basically advertises the network ID. Finally, the host ID will be appended to the network ID. Here is an example of a router advertisement protocol in OpenBSD running software called rtadvd. fxp0:\ :addr="2001:328:2002:f107::":prefixlen#64:tc=default: The configuration basically states that it will send router advertisement messages that use the network ID of 2001:328:2002:f107/64. Later on, the clients will append the address of 2001:328:2002:f107:: to their Interface ID. 2.4.3.4 DHCP Dynamic Host Configuration Protocol (DHCP) is a technique to automatically assign a 43 unique IP address for every host on a network. In order for DHCP to work, it needs a server, and at least one client. The server needs to have a DHCP server software installed in the router/gateway so it can give IP addresses to hosts on the network. There is also a configuration file so that the DHCP server knows what is the network address that it can give out to clients. Consider the following configuration: shared-network myNetwork { option domain- name-servers 192.168.1.2; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; range 192.168.1.150 192.168.1.254; } host boss { hardware ethernet 00:11:2f:39:51:ae; fixed-address 192.168.1.2; option host-name "boss"; } } The above configuration states the DHCP server to create a network name “myNetwork”. Hosts on “myNetwork” will use DNS server of 192.168.1.2. Next, it defines the network address of “myNetwork”, which is 192.168.1.0. Hosts that are connected to that subnet (192.168.1.0) will know that the router/DHCP server’s IP address is 192.168.1.1. Also, the DHCP server will only give out address range from 192.168.1.150 through 192.168.1.254. This means that this particular DHCP server’s configuration will only give out 104 IP addresses. 44 DHCP server can also give “static” IP addresses to clients. From the previous configuration file, there is also a block that starts with “host boss”. What this does is it will look at the clients, which will be named “boss”, by looking at the MAC address of that particular host. So if it matches, it will give a fix address, in this case 192.168.1.2. Network administrator also needs to pay attention that the IP addresses that are given to static clients must be out of the range that was previously mentioned. If it was in the same range, IP address conflict might happen in the future. 2.4.3.5 DNS According to the earlier explanation, IP address is just like a phone number, where there is some form to determine its location, and then followed by unique identifier of that particular phone number. Domain Name System (DNS), is like putting those phone numbers into phone book. Only in this case, DNS map out name from and to IP addresses. While a lot of people can remember their IP address, it is very inefficient to remember 10 IP addresses of websites that everyone go to everyday. By having DNS, it is easier to remember website address by name. It is very natural for our brains to remember names better than numbers. For example, when browsing to http://iupstudent.binus.ac.id, the IP add ress can be ignore or does not need to remember its IP address. Instead, DNS will try to connect to other 45 DNS servers to ask information for that host name, and it will return the IP address 202.58.182.8. After the computer gets the IP address of iupstudent.binus.ac.id, then it will try to connect by its IP address (202.58.182.8). DNS uses a hierarchical naming system from what is called the root servers, into domains. Consider the following example: Figure 2.5 DNS Naming {14] 46 The hierarchy starts from the root server where it handles all the Top Level Domains (TLD) such as .com, .net, .org as well as country code Top Level Domains (ccTLD) such as .id, .au, and so on. Root servers do not necessarily holds information of all possible domain names, instead it knows where to reach other DNS servers. Here is the list of known root servers around the world. Table 2.6 List of known root servers around the world [http://www.root-servers .org/] Server a.root-servers.net b.root-servers.net c.root-servers.net d.root-servers.net e.root-servers.net Locations Operator Dulles VA VeriSign Naming and Directory Services Marina Del Ray CA Information Sciences Institute Herndon VA; Los Angeles; New York City; Chicago Cogent Communications College Park MD University of Maryland Mountain View CA NASA Ames Research Center 47 Server f.root-servers.net Locations 40 sites: Ottawa; Palo Alto; San Jose CA; New York City; San Francisco; Madrid; Hong Kong; Los Angeles; Rome; Auckland; Sao Paulo; Beijing; Seoul; Moscow; Taipei; Dubai; Paris; Singapore; Brisbane; Toronto; Monterrey; Lisbon; Johannesburg; Tel Aviv; Jakarta; Munich; Osaka; Prague; Amsterdam; Barcelona; Nairobi; Chennai; London; Santiago de Chile; Dhaka;Karachi;Torino; Chicago; Buenos Aires;Caracas;Oslo g.root-servers.net h.root-servers.net Operator Internet Systems Consortium, Inc. Columbus OH U.S. DOD Network Information Center Aberdeen MD U.S. Army Research Lab 48 Server i.root-servers.net Locations 29 sites: Stockholm; Helsinki; Milan; London; Geneva; Amsterdam; Oslo; Bangkok; Hong Kong; Brussels; Frankfurt; Ankara; Bucharest; Chicago; Washington DC; Tokyo; Kuala Lumpur; Palo Alto; Jakarta; Wellington; Johannesburg; Perth; San Francisco; New York; Singapore; Miami; Ashburn (US); Mumbai; Beijing j.root-servers.net Operator Autonomica/NORDUnet 28 sites: Dulles (2 locations), Miami, Atlanta, Seattle, Chicago, New York, Los Angeles, Mountain View, San Francisco (US); Amsterdam (NL); London (UK); Stockholm (SE); Tokyo (JP);Seoul (KR); Bejing (CN); Singapore (SG); Dublin (IE); Kaunas (LT); Nairobi (KE); Montreal, Quebec (CA); Sydney (AU); Cairo (EG); Warsaw (PL); Brasilia, Sao Paulo (BR); Sofia (BG) VeriSign, Inc. 49 Server k.root-servers.net Locations London (UK); Amsterdam (NL); Frankfurt (DE); Athens (GR); Doha (QA); Milan (IT); Reykjavik (IS); Helsinki (FI); Geneva (CH); Poznan (PL); Budapest (HU); Abu Dhabi(AE); Tokyo (JP); Brisbane (AU);Miami (US); Delhi (IN); Novosibirsk (RU) l.root-servers.net m.root-servers.net Operator Reseaux IP Europeens Network Coordination Centre Los Angeles Internet Corporation for Assigned Names and Numbers Tokyo; Seoul (KR); Paris (FR); San Francisco, CA WIDE Project While there are some root servers that are located in various locations, they are in fact mirrored. So that it will look like a single IP address. For example, let say when try to contact http://soap.foobar.com. The root server will contact the .com root server, and the root server will know where the domain name that holds information about foobar.com is. When it finds it, it will ask that domain name server to ask information about soap.foobar.com. The domain name server that holds information about foobar.com will then return the IP address of soap.foobar.com.