THESIS

DEVELOPING SMALL PORTABLE ROUTER GNU/LINUX WITH TEXT USER INTERACE FOR STUDENT LEARNING

Indira Cempakasari 107091100142

INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY STATE ISLAMIC UNIVERSITY SYARIF HIDAYATULLAH JAKARTA 2011

DEVELOPING SMALL PORTABLE ROUTER GNU/LINUX WITH TEXT USER INTERACE FOR STUDENT LEARNING

by: Indira Cempakasari 107091100142

Thesis As one of requirement to get bachelor degree of Computer Science

Faculty of Science and Technology State Islamic University Syarif Hidayatullah Jakarta

INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY STATE ISLAMIC UNIVERSITY SYARIF HIDAYATULLAH JAKARTA 2011

ii

DEVELOPING SMALL PORTABLE ROUTER GNU/LINUX WITH TEXT USER INTERACE FOR STUDENT LEARNING

Thesis As one of requirement to obtain a bachelor degree in computer science Faculty of Science and Technology State Islamic University Syarif Hidayatullah Jakarta

By: Indira Cempakasari 107091100142

Approved,

Supervisor I Supervisor II

Asep Fajar Firmansyah Iwa Airlangga, MTI Feri Fahrianto, M.Sc NIP. 198008292011011002

Head of Informatics Engineering Program

Yusuf Durachman, M.Sc, MIT NIP. 197105222006041002

iii

SIGNATURES PAGE

This thesis, entitled “Developing Small Portable Router GNU/Linux with Text User

Interface For Student Learning”, has passed the examination held in Faculty of Science and Technology, State Islamic University Jakarta, on Tuesday August 23rd 2011. The owner of this thesis is therefore awarded a bachelor degree in computer science.

Jakarta, September 2011

Examiner I, Examiner II,

Husni Teja Sukmana, Ph.D Arini, MT NIP. 19731209 200501 1 002 NIP. 197601312009012001

Supervisor I Supervisor II

Asep Fajar Firmansyah Iwa Airlangga, MTI Feri Fahrianto, M.Sc NIP. 198008292011011002

Dean Faculty of Science and Technology, Head of the study program

DR. Syopiansyah Jaya Putra, M.Sis Yusuf Durachman, M.Sc, MIT NIP. 196801172001121001 NIP. 197105222006041002

iv

STATEMENT

HEREWITH I WOULD LIIKE TO DECLARE THE AUTHENTICITY OF THIS THESIS. NO WORK OF OTHERS IS INCLUDED WITHOUT REFERENCING OR ASKING FOR PERMISSION FROM THE AUTHORS OR PUBLISHERS.

Jakarta, September 2011

Indira Cempakasari 107091100142

v

ABSTRACT

Indira Cempakasari, Developing Simple Portable Router GNU/Linux with Text User Interface For Student Learning. The supervisors are Asep Fajar Firmansyah Iwa Airlangga, MTI and Feri Fahrianto, M.Sc.

There are some routers such as Cisco, Mikrotik, Freesco router and RouSer. Every router has their advantages and weaknesses. Almost routers that are exist do not use open source applications and less portability, only few routers that are portable and open source. So that it is developed a portable router GNU/Linux that is all applications are open source, portable, simple, provides Text User Interface inside the system and provide Text User Interface for installing the router to flash disk or portable storage. The function of router is to route the packets in different network. This portable router in this research uses core, open source applications for routing, and interfaces that are built use bash scripting. The interfaces consist of installation interface and configuration interface. Methodology for the development of router is prototype model. In every prototype, there is feedback from the customer so that the prototype is developed more. In prototyping model, there is no limit time. There are three prototypes to develop the router. The development of the first prototype followed the user requirement from the customer and the next prototype followed the feedback customers. The router testing consists of installation interface (hard disk and flash disk) and configuration interfaces. After doing analysis and implementation, to develop portable router GNU/Linux can use Slackware core, packets needed for routing, boot live for booting live CD in order this router can be installed and boot. To make easy and to help students and lectures as end users in the usage of this router, this router is provided user interface for configuration and installing the router. User interface used in this router is Text User Interface. In the next development, the router should be able to do dynamic routing, firewall, and they should work with interface to ease the students and lectures as the end users.

Keywords: GNU, Linux kernel, router, interface, bash scripting.

vi

FOREWORD

Praise be to Allah, for I blessing, I could finish my tesis which is entitled

“Developing Portable Router GNU/Linux with Text User Interface”. Furthermore, my regards to our beloved Prophet Muhammad SAW.

In this opportunity, I would like give my thanks to:

1. Dr. Ir. Syopiansyah Jaya Putra, M.Sis. as the Dean of the Faculty of Science and

Technology, UIN Syarif Hidayatullah Jakarta.

2. Mr. Yusuf Durraachman, M.Sc, MIT as a Chairman of the Information Technology

Program, Faculty of Science and Technology, UIN Sharif Hidayatullah Jakarta.

3. Mr. Asep Fajar Firmansyah Iwa Airlanggi, MTI and Mr.Feri Fahrianto, M.Sc, as my

supervisors. Thank for the correction and suggestions for my thesis.

4. Mr. Husni Teja Sukmana, Ph.D and Mrs.Arini, MT as my examiners. Thank for the

correction for my thesis.

5. Mrs. Ria who guides me in Interntional Program.

6. All lectures in International Program for the lessons and the knowledges.

7. My Mom and my Dad who always support and doa for me.

8. Kak Ibnu who always helps and support me.

9. My sisters, dek ulan and mba iken, who helped in shooting video.

10. Nilam, atin, yuni, alex, galih, mahar and my friends in international program that

learn and study together.

11. Junior in International program, thank for coming in my seminar.

12. Mba mita that help in writing letters.

13. My friends in cisco, thanks for the suggestion.

vii

14. And all people that I mention one by one, thank for helping me finishing this thesis.

Any comments and suggestions regarding this should be emailed to [email protected]. Above all, thank you very much for reading this thesis.

Jakarta, August 2011

Indira Cempakasari

viii

DEDICATION PAGE

“Maka nikmat Rabb kamu yang manakah yang kamu dustakan?” (Q.S Ar-Rahman)

Alhamdulillah skripsi ini dapat diselesaikan 

Skripsi ini saya persembahkan untuk:

Kedua orang tua saya yang telah mendidik dan membesarkan saya, serta memberi

dukungan kepada saya. I love you mom n dad . Terima kasih untuk semuanya.

Serta untuk kanda Ibnu Yahya (yang namanya pengen ditulis :p), yang telah mengarahkan

saya ke jalan yang benar #lho dan memberi dukungan. Terima kasih untuk semuanya 

ix

TABLE OF CONTENTS

COVER ...... i TITLE PAGE ...... ii APPROVAL PAGE ...... iii SIGNATURES PAGE ...... iv STATEMENT ...... v ABSTRACT ...... vi FOREWORD ...... vii DEDICATION PAGE ...... viii TABLE OF CONTENTS ...... ix PICTURE LISTS ...... xii TABLE LISTS ...... xvii APPENDIX LISTS ...... xviii

CHAPTER I INTRODUCTION ...... 1 1.1 Background ...... 1 1.2 The Problem Definition ...... 5 1.3 The Scope of Problem ...... 5 1.4 Aims and Objectives ...... 5 1.5 Contents of Thesis ...... 6

CHAPTER II LITERATURE REVIEW ...... 8 2.1 Operating System ...... 8 2.1.1 Definition Operating System ...... 8 2.1.2 Components of Operating System ...... 11 2.1.3 Operating System Structure ...... 13 2.1.4 GNU/Linux System ...... 16 2.2 Core ...... 19 2.3 Linux Live ...... 19

ix

2.4 Router ...... 20 2.5 IP Address ...... 20 2.5.1 IP address version 4 (IPV4) ...... 21 2.5.2 IP Class ...... 21 2.5.3 Subnet Mask ...... 22 2.6 Routing ...... 23 2.6.1 Routing Concept ...... 23 2.6.2 Static Routing ...... 23 2.6.3 Dynamic Routing ...... 24 2.7 Iptables ...... 25 2.8 Bash Scripting ...... 27 2.8.1 Definition Shell ...... 27 2.8.2 Bourne Again Shell (/bin/bash) ...... 28 2.9 Text User Interfaces ...... 28 2.10 Prototyping Model ...... 31 2.11 Structured Analysis ...... 33 2.12 Object-Oriented ...... 34 2.13 Black-box Testing ...... 34 2.14 VirtualBox ...... 35

CHAPTER III RESEARCH METHODOLOGY ...... 37 3.1 Research Method ...... 37 3.2 Collecting Data Method ...... 39 3.2.1 Method of Collecting Primary Data...... 39 3.2.2 Method of Collecting Secondary Data...... 40 3.3 Analysis Method ...... 42 3.4 Testing Method ...... 43

CHAPTER IV DISCUSSION AND IMPLEMENTATION ...... 44 4.1 First Prototype ...... 44 4.1.1 Communication ...... 44

x

4.1.1.1 Objectives of this research ...... 44 4.1.1.2 User Requirements ...... 44 4.1.2 Quick Plan and Quick Design ...... 45 4.1.2.1 Quick Plan ...... 45 4.1.2.2 Quick Design ...... 54 4.1.3 Construction Prototyping ...... 59 4.1.4 Deployment Delivery and Feedback...... 63 4.1.4.1 Deployment Delivery ...... 63 4.1.4.2 Feedback ...... 73 4.2 Second Prototype ...... 74 4.2.1 Communication ...... 74 4.2.2 Quick Plan and Quick Design ...... 75 4.2.2.1 Quick Plan ...... 75 4.2.2.2 Quick Design ...... 82 4.2.3. Construction Prototyping ...... 89 4.2.4. Deployment Prototyping and Feedback ...... 90 4.2.4.1 Deployment Prototyping ...... 90 4.2.2.2 Feedback ...... 102 4.3 Third Prototype ...... 102 4.3.1 Communication ...... 102 4.3.2. Quick Plan and Quick Design ...... 103 4.3.2.1 Quick Plan ...... 103 4.3.2.2 Quick Design ...... 112 4.3.3 Construction Prototyping ...... 120 4.3.4 Deployment Prototyping and Feedback ...... 121 4.3.4.1 Deployment Prototyping ...... 121 4.3.4.2 Feedback ...... 129

CHAPTER V SUMMARY ...... 130 5.1 Conclusion ...... 130 5.2 Suggestion ...... 130

REFERENCES ...... 131

xi

PICTURE LISTS

Figure 2.1 Class IP ...... 22 Figure 2.2 Prototyping Model (Pressman) ...... 33 Figure 4.1 Quick Plan ...... 45 Figure 4.2 Topology ...... 46 Figure 4.3 Hard disk Installation Flowchart ...... 48 Figure 4.4 Flash Disk Installation Flowchart ...... 44 Figure 4.5 Setting IP Flowchart ...... 46 Figure 4.6 Routing Flowchart ...... 48 Figure 4.7 Choosing installation ...... 55 Figure 4.8 prototype1 model harddisk-1 ...... 55 Figure 4.9 prototype1 model hard disk-2 ...... 56 Figure 4.10 prototype1 model hard disk-3 ...... 56 Figure 4.11 prototype1 model flash disk-1 ...... 56 Figure 4.12 prototype1 model flash disk-2 ...... 57 Figure 4.13 prototype1model setting IP-1 ...... 57 Figure 4.14 prototype1 model setting IP-2 ...... 58 Figure 4.15 prototype1 model setting IP-3 ...... 58 Figure 4.16 prototype1 model setting IP-4 ...... 58 Figure 4.17 prototype1 model setting IP-5 ...... 59 Figure 4.18 prototype1 routing model ...... 59 Figure 4.19 Toroo Live ...... 60 Figure 4.20 core ...... 60 Figure 4.21 Dialog ...... 61 Figure 4.22 Iptables ...... 62 Figure 4.23 Installer ...... 62 Figure 4.24 Test1 install Hard disk-1 ...... 64 Figure 4.25 Test1install hard disk-2 ...... 64 Figure 4.26 Test1install hard disk-3 ...... 65 Figure 4.27 Tes1install hard disk-4 ...... 65

xii

Figure 4.28 Tes1install hard disk-5 ...... 66 Figure 4.29 Test1install hard disk-6 ...... 66 Figure 4.30 Test1 install Flash Disk-1 ...... 67 Figure 4.31 Test1 install Flash Disk-2 ...... 67 Figure 4.32 Test1 install Flash Disk-3 ...... 68 Figure 4.33 Test1install Flash Disk-4 ...... 68 Figure 4.34 Test1 install Flash Disk-5 ...... 69 Figure 4.35 Test1 setting IP-1 ...... 69 Figure 4.36 Test1 setting IP-2 ...... 70 Figure 4.37 Test1 Setting IP-3 ...... 70 Figure 4.38 Test1 Setting IP-4 ...... 71 Figure 4.39 Test1 Setting IP-5 ...... 71 Figure 4.40 Test1 Setting IP-6 ...... 72 Figure 4.41 Test1 Setting IP-7 ...... 72 Figure 4.42 Test1 Setting IP-8 ...... 73 Figure 4.43 Hard disk installation Flowchart 2 ...... 76 Figure 4.44 Flash disk Installation Flowchart 2 ...... 77 Figure 4.45 SettingIP 2 Flowchart ...... 79 Figure 4.46 Setting DNS Flowchart ...... 80 Figure 4.47 Routing-2 Flowchart ...... 81 Figure 4.48 Prototype2 Model hard disk-1 ...... 82 Figure 4.49 Prototype2 Model hard disk-2 ...... 83 Figure 4.50 Prototype2 Model hard disk-3 ...... 83 Figure 4.51 Prototype2 Model hard disk-4 ...... 83 Figure 4.52 Prototype2 Model flash disk-1 ...... 84 Figure 4.53 Prototype2 Model Flash disk-2 ...... 84 Figure 4.54 Prototype2 Model Flash disk-3 ...... 85 Figure 4.55 menu ...... 85 Figure 4.56 Prototype 2 Mode setting IP-1 ...... 86 Figure 4.57 Prototype 2 Model Setting IP-2 ...... 86

xiii

Figure 4.58 Prototype2 Model Setting IP-3 ...... 86 Figure 4.59 Prototype2 Model Setting IP-4 ...... 87 Figure 4.60 Prototype 2 Model Setting IP-5 ...... 87 Figure 4.61 Prototype 2 Model DNS-1 ...... 87 Figure 4.62 Prototype 2 Model DNS-1 ...... 88 Figure 4.63 Prototype2 Model routing 1 ...... 88 Figure 4.64 Prototype2 Routing-2 ...... 89 Figure 4.65 Prototype2 Routing-3 ...... 89 Figure 4.66 menu command ...... 89 Figure 4.67 Package ...... 90 Figure 4.68 Test2 Install Hard disk-1 ...... 91 Figure 4.69 Test2 Install Hard disk-2 ...... 91 Figure 4.70 Test2 Install Hard disk-3 ...... 92 Figure 4.71 Test2 Insall Hard disk-4 ...... 92 Figure 4.72 Test2 Install Hard disk-5 ...... 93 Figure 4.73 Test2 Install Hard disk-6 ...... 93 Figure 4.74 Test2 Installation Flash Disk-1 ...... 94 Figure 4.75 Test2 Installation Flash Disk-2 ...... 94 Figure 4.76 Test2 Installation Flash Disk-3 ...... 95 Figure 4.77 Test2 Installation Flash Disk-4 ...... 95 Figure 4.78 Test2 Installation Flash Disk-5 ...... 96 Figure 4.79 Test2 Routing-1 ...... 97 Figure 4.80 Test2 Routing-2 ...... 97 Figure 4.81 Test2 Routing-3 ...... 98 Figure 4.82 Test2 Routing-4 ...... 98 Figure 4.83 Test2 Routing-5 ...... 98 Figure 4.84 Test2 Routing-6 ...... 99 Figure 4.85 Test2 Routing-7 ...... 99 Figure 4.86 Test2 Routing-8 ...... 100 Figure 4.87 Test2 Routing-9 ...... 100

xiv

Figure 4.88 Test Routing10 ...... 101 Figure 4.89 Test2 Routing-11 ...... 101 Figure 4.90 Test2 Routing-12 ...... 102 Figure 4.91 Hard disk installation Flowchart 3 ...... 104 Figure 4.92 Flash disk Installation Flowchart 3 ...... 105 Figure 493 SettingIP 3 Flowchart ...... 107 Figure 4.94 Setting DNS Flowchart 3 ...... 108 Figure 4.95 Routing Flowchart 3 ...... 109 Figure 4.96 Disable Routing Flowchart ...... 110 Figure 4.97 DHCP Flowchart ...... 111 Figure 4.98 Prototype3 Model hard disk-1 ...... 112 Figure 4.99 Prototype3 Model hard disk-2 ...... 113 Figure 4.100Prototype3 Model hard disk-3 ...... 113 Figure 4.101 Prototype3 Model hard disk-4 ...... 113 Figure 4.102 Prototype3 Model flash disk-1 ...... 114 Figure 4.103 Prototype3 Model Flash disk-2 ...... 114 Figure 4.104 Prototype3 Model Flash disk-3 ...... 114 Figure 4.105 menu Model 3 ...... 115 Figure 4.106 Prototype 3 Model setting IP-1 ...... 115 Figure 4.107 Prototype 3 Model Setting IP-2 ...... 116 Figure 4.108 Prototype3 Model Setting IP-3 ...... 116 Figure 4.109 Prototype3 Model Setting IP-4 ...... 116 Figure 4.110 Prototype 3 Model Setting IP-5 ...... 117 Figure 4.111 Prototype 3 Model DNS-1 ...... 117 Figure 4.112 Prototype 3 Model DNS-1 ...... 117 Figure 4.113 Prototype3 Model routing 1 ...... 118 Figure 4.114 Prototyp3 Routing-2 ...... 118 Figure 4.115 Prototype3 Routing-3 ...... 119 Figure 4.116 Disable routing ...... 119 Figure 4.117 DHCP interface-1 ...... 119

xv

Figure 4.118 DHCP interface-2 ...... 120 Figure 4.119 DHCP Interface-3 ...... 120 Figure 4.120 Test3 Flash disk-1 ...... 121 Figure 4.121 Test3 Flash disk-2 ...... 122 Figure 4.122 Test3 Flash disk-3 ...... 122 Figure 4.123 Test3 Flash disk-4 ...... 123 Figure 4.124 Test3 Flash disk-5 ...... 123 Figure 4.125 Configuration Interface Test ...... 124 Figure 4.126 Menu Configuration Interfaces ...... 124 Figure 4.127 Test3 Setting IP-1 ...... 125 Figure 4.128 Test3 Setting IP-2 ...... 125 Figure 4.129 Test3 DNS-1 ...... 126 Figure 4.130 Test3 DNS-2 ...... 126 Figure 4.131 Test DHCP-1 ...... 127 Figure 4.132 Test DHCP-2 ...... 127 Figure 4.133 Test Routing-1 ...... 128 Figure 4.134 Test Routing-2 ...... 128 Figure 4.135 Test Routing-3 ...... 129 Figure 4.136 Test Disable Routing ...... 129

xvi

TABLE LISTS

Table 2.1 Subnet mask ...... 22 Table 2.2 Operations in Iptables ...... 26 Table 2.4 Parameters in iptables ...... 26 Table 3.1 Router Features ...... 40

xvii

APPENDIX LISTS

Appendix 1 Interview ...... A-1 Appendix 2 Information User Requirement ...... B-1 Appendix 3 Feedback (1) ...... B-2 Appendix 4 Feedback(2) ...... B-3 Appendix5 Feedback(3) ...... B-4 Appendikx 6 Script ...... C-1

xviii

CHAPTER I

INTRODUCTION

1.1 Background

Internet is important for most people today. Most people might not know the stand for Internet. Internet stands for interconnected-networking. Everyone in everywhere usually use Internet for completing their task, communicating with their family and friends or getting information. To connect Internet, every computer or end device needs IP address. Based on Iwan (2009:255), Internet Protocol (IP) is a protocol that is connectionless and unreliable. In IP header, there is a field that contains of IP address. IP address is as sign in packet source and destination sources. And based on Dede (2008:63), Internet Protocol is a method or protocol to transmit the data to internet. Every computer in networks has to a unique IP address that identified a computer to other computers. Anjik and Rianto (2008:99) said that IP address is used as logical identity in a host in the network. An IP address consists of network-id and host-id. If a network did subnetting, so an IP address becomes consist of network-is, subnet-id, and host-id. There is routing IP to connect among different networks. Routing concept is a process to make a route to connect a network to others networks. Data from a device connected to internet is transmitted in datagram and it is identified by IP. Datagram has a destination IP address that will be checked by Internet Protocol to be transmitted to destination IP address (Anjik and Rianto, 2008:99). Example, there are 3 networks (A, B, and C). Host A set is set 192.168.12.1 as ip address and 255.255.255.0 as netmask, host B is set 192.168.12.2 as ip address and

1

2

255.255.255.0 as netmask and network C is set 192.168.13.1 as ip address and 255.255.255.0 as netmask. Host A and host B can communicate directly because they have same network-id, but host A and host B cannot connect and communicate with a host C because host C has different network-id with host A and host B though they have same netmask. To make host C be able communicate with host A and B, router is needed. Routing is performed by a router. It means the router could know the route that will be passed by the packet. The packet will be sent whether to host in same network or host in different networks. If the packet is for a host in another network, router will forward the packets to that network. Otherwise, if the packets is for a host in same network, router will block packet so the packet cannot go out and will not flood others networks (Iwan, 2009:58). There are some routers, such as Cisco router, Mikrotik, Freesco and

RouSer router.

1. Cisco. Based on information from a www.cisco.com, Cisco is a big vendor that produces and sells the network devices. One of its products is Cisco router. Cisco routers are highly secure, flexible, and built to be compatible

with future technologies. There are kinds of Cisco router products and every product has their advantages. The price of one of wireless routers is

$89.99.

2. Mikrotik. According to its website in a www.mikrotik.com and wiki.mikrotik.com, Mikrotik made for use routerOS and routerBoard. Mikrotik routerOS is the operating system of MikrotikBoard hardware.

Mirkrotik router has the necessary feature such as routing, firewall, bandwidth management, etc. Mikrotik routerOS made Linux-based. Some 3

utilities in Mikrotik routerOS have licenses. The price of license Mikrotik

routerOS (without DOM) is Rp.400.000, 00.

3. Freesco. Based on the website www.freesco.org, Freesco was developed in the open source tradition as an alternative to routing products offered by

Cisco, 3-Com, Accend, Nortel etc. Freesco is open source, stable, inexpensive, easy to use, extremely versatile and flexible and free. Freesco is based on the Linux operating system. And incorporates many of the features of other Linux distributions into software that fits onto a single

1.44 meg floppy diskette.

4. RouSer. According to Zulfikri Ali, RouSer is a mini that is able to transform a computer into a PC router. The feature of RouSer are

routing, firewall, and bandwidth management. It uses Command Line

Interface. The license is GNU GPL. Based on information from those routers, every router has their advantages and weakness. Cisco routers are highly secure, flexible, and built to be compatible with future technologies, but the price is expensive enough for small company that only has lower cost. Besides that, there is Mikrotik routerOS.

Mikrotik routerOS made Linux-based, but the utilities are not open source. The users need to buy the licenses. Moreover, there is really open source router, called Freesco. Freesco is open source, stable, inexpensive, easy to use, extremely versatile and flexible and free, but it uses floppy disk as media to install that router. Almost laptop products do not provide floppy disk now. The last is RouSer. It has the open source license and all utilities to develop the router are open source, but it still uses Command Line Interface as its interface. Some of those routers are already popular for student and the lectures. For the lecturers, the lecture needs router that can be used for practicing to explain 4

about the function of router itself, but sometimes the lecture is hard to find “free” router that can be used for teaching and practicing. The students know how to setup the router, but sometimes they do not know how it works. The student cannot experiment more with the routers that already exist. Besides not knowing about the router works, the students do not how to develop the router itself and do not know how to build the interface for installing the router, even if the routers are open source router. It makes they get wrong perception about open source utilities or even about linux itself. Sometime student or even a lecture thinks that linux is an operating system. According to Stallman (1997), Linux is the kernel: the program in the system that allocates the machine’s resources to other programs that you run. The kernel is essential part of an operating system, but useless by itself, it can only function in the context of a complete operating system. According to the examples of router and the explanation above, the writer is planning to develop a router that is simple, portable (using flash disk), open source router and can be learnt by students and used for teaching. Open source means the source code is “open”. The source code is usually provided in internet so the other developers can develop, learn the code, or fix the code if the bug is found. Moreover, the user can use the open source software freely without license and share the software or source code to others. The advantages from the open source software is the software could be developed by other developer so the software could be more better and could be developed in accordance with what people needed. Portable means the router can be everywhere by installing in flash disk and the user could save the configuration in the flash disk. Interface used in the router is also simple so the user can access and use it easily. 5

Based on that reasons, the titled for this thesis is “Developing Small

Portable Router GNU/Linux with Text User Interface For Student

Learning”.

1.2 The Problem Definition

Based on the background, there are some points to decide the problem definition. The first, almost routers do not use open source utilities to develop the router; second, the router in example are less portability, no one could install in flash disk or portable storage; the third is the interface of those routers are not inside the system; the fourth is the students cannot know how to develop a router that can be installed in portable storage because the license and the last is interface for installing the router, the students do not know how develop installer. So that the problem definition in this thesis is how to develop a portable router

GNU/Linux that is simple, all utilities are open source, included interface inside the system and build interface for installing the router.

1.3 The Scope of Problem

In order to avoid deviation in this discussion, the author would like to discuss the scope of the problems:

1. The Building Interface. Interface was built with Text User Interface by using bash scripting. The interfaces consist of installation interfaces and

configuration interfaces.

2. This router can do static routing. 6

3. Using Linux kernel and all utilities are open source.

4. For IPv4 only.

5. For DHCP interface, it sets in subnet mask 255.255.255.0

6. Student can use the router for learning.

1.4 Aims and Objectives

The objectives of the research are:

1. To develop a portable router GNU/Linux that is open and easy to be used by

end user (student and lecture).

The aims that will be got in the research are:

For the writer:

1. To make understand deeper the function and how the router works.

2. To learn about how to develop open source software

For the student:

1. The students understand how the router works.

2. The students know about the developing portable operating system that has

function as a router.

3. The lecture can use this portable router for teaching and practicing.

1.5 Contents of Thesis

CHAPTER I INTRODUCTION

This chapter discussed about research background, problems definition, scope of problems, research aims and objectives, and research format writing.

CHAPTER II LITERATURE REVIEW 7

In this chapter is explained about literature review such as definition router, the function of router, explanation about operating system, explanation about Linux and package needed in a router, and tools used in the research.

CHAPTER III RESEARCH METHODOLOGY

This chapter discuss and give obviously explanation about research methodology which is used in router research, so it can be discovered the planning that would be done.

CHAPTER IV DISCUSSION AND IMPLEMENTATION

This chapter discuss about design of the router and that will be developed and analyze in detail about the research. This chapter also contains about the testing of what the writer will have been done in the research.

CHAPTER V SUMMARY

Conclusion and suggestion for the writer is written in this chapter.

_

8

CHAPTER II

LITERATURE REVIEW

2.1 Operating System

2.1.1 Definition Operating System

According to Tanenbaum (2006:1), computer software can be divided roughly into two kinds: system programs, which manage the operation of the computer itself, and application programs, which perform the actual work the user wants. The most fundamental system program is the operating system, whose job is to control all the computer's resources and provide a base upon which the application programs can be written. Operating Systems perform two basically unrelated functions, extending the machine and managing resources. a. The operating Systems as an Extended Machine.

The function of the operating system is to present the user with the

equivalent of an extended machine or virtual machine that is easier to program

than the underlying hardware. b. The operating System as a Resource Manager.

The concept of the operating system as primarily providing its users

with a convenient interface is a top-down view. An alternative, bottom-up,

view holds that the operating system is there to manage all the pieces of a

complex system. Modern computers consist of processors, memories, timers,

disks, mice, network interfaces, printers, and a wide variety of other devices. In

the alternative view, the job of the operating system is to provide for an orderly 9

and controlled allocation of the processors, memories, and I/O devices among

the various programs competing for them.

According to Silberschatz, et al (2006:3), an operating system is a program that manages the computer hardware. It also provides a basic for application programs and acts as an intermediary between the computer user and the computer hardware. Mainframe operating systems are designed primarily to optimize utilization of hardware.

Still based on Silberschatz, et al (2006:3), a computer system can be divided roughly into four components: the hardware, the operating system, the application programs and the users. The hardware-the central processing unit

(CPU), the memory, and the input/output devices provides the basic compiling resources for the system. The application programs-such as word processors, spreadsheets, compiler, and web browsers define the ways in which these resources are used to solve users computing problems. The operating system controls and coordinates the use of the hardware among the various application programs for the various users. The operating system' role: a. User View.

Operating system is designed mostly for ease of use, with some

attention paid to performance and none paid to resource utilization-how various

hardware and software resources are shared. In other cases the operating

system is designed to maximize resource utilization to assure that available

CPU time, memory, and I/O used efficiently and that no individual user takes

more than her fair share. 10

b. System View

An operating system is as a resource allocator. A computer system has

many resources that may be required to solve a problem: CPU times, memory

space, file storage space, I/O device, and so on. The operating stem acts as the

manager of these resources. The operating system must decide how to allocate

them to specific programs and users so that it can operate the computer system

efficiently and fairly.

An operating system is a control program. A control program manages

the execution of user programs to prevent errors and improper use of the

computer. It is especially concerned with the operation and control of I/O

devices.

Based on Stalling (2008:51), an OS is a program that controls the execution of application programs and act as an interface between applications and the computer hardware. It can be thought of as having three objectives:

1. Convenience: An OS makes a computer more convenient to use.

2. Efficiency: An OS makes computer system resources to be used in an

efficient manner.

3. Ability to evolve: An OS should be constructed in such a way as to

permit the effective development, testing, and introduction of new

system functions without interfering with service.

11

2.1.2 Components of Operating System

According to Masyarakat Digital Gotong royong (2006:10), an operating system can be divided into some components. a. System Process Management.

A process is a program that is being executed. Operating System has

responsibility in activities in a process management, such as:

1. To make and to delete user process and process system

2. To delay or to continue the process.

3. Providing mechanism to synchronize the process.

4. Providing mechanism to communicate the process.

5. Providing mechanism to manage the deadlock. b. System Memory Management.

Main memory is an array that is from word or byte, the size is until

hundred or million. Every byte has its own address. Main memory has function

as data/instruction storage that the data access is used by CPU and input/output

device. Main memory is volatile data storage. Operating System has

responsibilities in memory management:

1. Keeping the track from the used memory and who used memory.

2. Choosing the program that will be loaded into memory.

3. System File Management

The file is the collection of information that related each other, in

accordance with the objective of the owner of the file. The file can have

structure that is hierarchy (directory, volume, etc). Operating System 12

implements the concept from the file by managing storage mass media such as

tapes and disk.

1. Creating and deleting file

2. Creating and deleting directory

3. Supporting the file and directory manipulation

4. Doing file mapping

5. Backup file to non-volatile storage c. System Management I/O

It is called device manager. Operating system components for system

management I/O are:

1. Temporary storage data from and to system input/output.

2. Spooling: scheduling the usage of input/output

3. Providing drive. d. Management Secondary Storage

Data that is saved in main memory is temporary. So that why, to save a

whole of data and computer program are needed permanent secondary storage

that can be able store many data as backup from main memory. Examples of

secondary storage are hard-disk, diskette etc. Operating system has

responsibilities in management secondary storage:

1. Free space management

2. Storage allocation

3. Scheduling disk

13

e. Protection System

It is used to control access that is occurred by programs, processor, or

user. Protection mechanism should be:

1. Can differ user that has privilege to access data and ordinary user.

2. Specific control

3. Providing tools to implement the system. f. Network

Distribution System is a collection of processors that has its own

memory and own clock. Those processors connect via network

communication. Distribution system provides user access to kind of resources.

That access causes increased computing speed an increases the ability of

providing data. g. Command-Interpreter System

Operating system waits instruction from the user (command driven).

Programs that read instruction and interpret control statement usually called:

control-card interpreter, command-line interpreter, and sometimes it are called

shell.

2.1.3 Operating System Structure

According to Silberschatz,et al(2005:99), a system as large and complex as a modern operating system must be engineered carefully if it is to function properly and be modified easily. A common approach is to partition the task into small components rather than have one monolithic system. Each of these modules 14

should be a well-defined potion of the system, with carefully defined inputs, outputs, and functions. How components of operating system interconnected and melded into a kernel: a. Simple Structure.

Many commercial systems do not have well-defined structures.

Frequently, such operating systems started as small, simple, and limited

systems and then grew beyond their original scope. MS-DOS is an example of

such a system. It was written to provide the most functionality in the least

space, so it was not divided into modules carefully.

Another example of limited structuring is the original UNIX operating

system. UNIX is another system that initially was limited by hardware

functionality. It consists of two separable parts: the kernel and the system

programs. The kernel is further separated into a series of interfaces and device

drivers, which have been added an expanded over the years as UNIX has

evolved. The kernel provides the file system, CPU scheduling, memory

management, and other operating system functions through system calls. b. Layered Approached

A system can b made modular in many ways. One method in the layered

approach, in which the operating system s broken up into a number of layers

(levels). The bottom layer (layer 1) is the hardware, the highest (layer N) is the

user interface.

An operating system layer is an implementation of an abstract object made

up of data and the operations that can manipulate those data. A typical 15

operating system layer-layer M consists of data structures and a set of routine

that can be invoked by higher-level layers. Layer M, in turn, can invoke

operations on lower-level layers.

The main advantage of the layered approach is simplicity of construction

and debugging. The layers are selected so that each uses functions (operations)

and services of only lower-level layers. c. Microkernels

Microkernels structures the operating system by removing all nonessential

components from the kernel and implementing them as system and user-level

programs. The result is a smaller kernel. Microkernls provide minimal process

and memory management, in addition to a communication facility.

The main function of the microkernels is to provide a communication

facility between the client program and the various services that are also

running in user space. Communication is provided by message passing.

One benefit of the microkernel approach is ease of extending the operating

system. All services are added for user space and consequently do not require

modification of the kernel. When the kernel does have to be modified, the

changes tend to be fewer, because the microkernel is smaller kernel. The

resulting operating system is easier to port from one hardware design to

another. The microkernel also provides more security and reliability, since

most services are running as user rather than kernel process. If a service fails,

the rest of the operating system remains untouched.

16

2.1.4 GNU/Linux System

According to Stallman (1997), many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the versions of GNU which is widely used today is often called

“Linux”, and many of its users are not aware that is basically the GNU system, developed by the GNU project.

Still based on Stallman (1997), Linux is the kernel: the program in the system that allocates the machine's resources to other programs that you run. The kernel is essential part of an operating system, but useless by itself, it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.

Based on MDGR (2006:96), in Linux design, Linux is like UNIX

implementation nonmicrokernel. It is a multiuser system, multi tasking system

that is compatible with UNIX. Linux system consists of 3 important parts: Kernel,

Libraries and utilities. a. Kernel

Based on syafii (2004:1), at the first time, Linux is a kernel made by Linus

Torvalds, a student in Helsinky University, Finland.

According to Negus (2008:7), The Linux kernel (which was created and is

still maintained by Linus Torvalds) is what gives Linux its name. The kernel is

the software that starts up when you boot your computer and interfaces with 17

the programs you use so they can communicate effectively and simply with your computer hardware.

Based on Stallman (1997), Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself, it can only function in the context of a complete operating system.

Based on MDGR (2006:97), the Linux kernel forms the core of Linux operating system, it provides all functions to run process and provides system services to give the setting and the access protection to hardware. Kernel implements all needed features in order to be able work as operating system.

Interface from operating system that is in running application is not managed by kernel, but the application make calls to libraries, then call operating system services that are needed.

According to Dewi and Arie (2004), kernel is divided into 2 versions.

Stable version characteristic is it has even minor version like 2.4.0, 2.4.20,

2.4.21. Development version characteristic is it has odd minor version, like

2.5.0, 2.5.2, 2.5.3. Kernel Linux can b downloaded in http://www.kernel.org.

Kernel consists of modules needed by hardware in computer such as network card, vga card, printer etc. Kernel need to be compiled to run the modules. The steps to compile the kernel are make config to call kernel configuration here has to become root. Make dep is to read file configuration and process what will be compiled and what will not be compiled. Make clean is to delete previous compilation. Make zImage is to form compilation kernel that will be 18

put in /usr/src/linux/arch/i386/boot directory named zImage. Make modules ;

make modules_install is to make kernel file module and do installation kernel

module that will be put in /lib/modules directory. b. Libraries Systems

According to MDGR (2006:97), system libraries provide kind of

functions. In the lower-level, they allow application to ask request in system

kernel service. Making a system-call involve transfer control from useless user

mode to used user mode. Libraries duty to collect system-call argument ad

manage those arguments in special form needed to do system-call.

Still based on MDGR (2006:97), Libraries also can provide more complex

version from standard system-call, example, buffered function file-handling

from C language. Libraries also provide sorting algorithm, mathematic

function and string manipulation. All function needed to support UNIX

application or POSIX is implemented in system libraries. c. Utilities System

According to MDGR (2006:98) Linux system contains system utilities

and user utilities. System utilities include all program needed to analyze

system, such as programs to configure network device or to load kernel

modules. Not all utilities do important system administrative function. UNIX

user environment consists of standard utilities to do daily tasks, such as making

directory lists, moving and deleting files or show contain of files. More

complex utilities can do word-processing function. If combined, those utilities

form standard utilities. 19

2.2 Core

According to Saxena (2010), Core OS Layer contains all the middleware/OS service domains and the hardware adaptation services. It includes the Linux kernel and all the middleware needed to define hardware and usage model independent API for building both native applications and web run time applications.

According to official apple, the core OS layer contains the low-level features that most other technologies are built upon. Even if you do not use these technologies directly in your applications, they are most likely being used by other frameworks. And in situations where you need to explicitly deal with security or communicating with an external hardware accessory, you do so using the frameworks in this layer,

2.3 Linux Live

According to Tomas (2011), Linux Live is a set of shell scripts allows you to create your own Live Linux from an already installed Linux Distribution. The

Live system you create will be bootable from CD_ROM or a disk device, for example USB Flash Drive, USB Pen Drive, Camera connected to USB port, and so on. People use Linux Live scripts to boot Linux from iPod as well. Interesting feature of Linux Live Script:

1. Persistent changes

2. Adding modules on the fly

3. installable system to disk. 20

2.4 Router

Based on Dede (2010:25), router has ability to forward packet IP from one network to other networks that possible to have many routes among the routers.

Router also can be used to connect some LAN, so the traffic from LAN can be handled. If two or more LAN connected to the router, every LAN consider as different sub network.

According to iwan (2009:58), a router has routing function. It means, router can know the route information (called packet) will be forwarded, whether the packet for host in same network or for host in different networks. If the packet is for a host in different networks, the router will forward to that network. If the packet is for a host in the same network, the router will block the packet to go out, so the packets will not “flood” to other networks.

According to Fathul (2001:240), router is a hardware that route data from

LAN to cellular. Router is used to guarantee that only machine who has authority that can transmit data to LAN. Besides that, router is also used to check the error, save statistic the usage of network, and support firewall.

2.5 IP Address

According to Dede (2008: 63), Internet Protocol (IP) is a method or protocol to send the data to internet. Every computer in internet at least has to have a unique IP address that identify computer to other computer.

21

2.5.1 IP address version 4 (IPV4)

IP address is a binary number 32 bit that is separated with a dot in every 8 bit. Every 8 bit is called octet. The addressing of IP in 32 bit consists of subnet address and host. The example:

11000000000010100001111000000010

The addressing of 32 bit is divided into four octets (8 bit per section):

11000000.00001010.00011110.00000010

Every octet is changed into decimal number become:

192.10.30.2

2.5.2 IP Class

According to Dede (2008:65), Ip address is grouped in 5 classes: class A, class B, class C, class D, and class E. The differences among 5 classes are in how big the network and the calculation of hosts. Class A is used in few networks, but the networks have many hosts. Class C is used in many networks but, only has few hosts. Class D and class E are not common to be used.

Based on Anji and Rianto (2008:62), class A has 8 bit network number

and 24 bit host number, class B has 16 bit network number and 16 bit host

number, and class C has 24 bit network number and 8 bit network host. In

Addressing, not all IP classes are used. The used classes are class A, B, and C.

Class D is used to multicasting and class E is used to research. 22

Figure 2.1 Class IP

2.5.3 Subnet Mask

According to dede (2008:71), every network has number subnet known as subnet mask or address mask. Subnet mask separate network id and host id.

Subnet mask is needed by TCP/IP to decide whether the network is local network or non local network. For non local network, it has to transmit packet data via router. So the subnet mask is needed to filter ip address and packet data that come in and out from the network.

Table 2.1 Subnet mask

Subnet mask CIDR 255.128.0.0 /9 255.192.0.0 /10 255.224.0.0 /11 255.240.0.0 /12 255.248.0.0 /13 255.252.0.0 /14 255.254.0.0 /15 255.255.0.0 /16 255.255.128.0 /17 255.255.192.0 /18 255.255.224.0 /19 255.55.240.0 /20 255.255.248.0 /21 255.255.252.0 /22 23

255.255.254.0 /23 255.255.255.0 /24 255.255.255.128 /25 255.255.255.192 /26 255.255.255.224 /27 255.255.255.240 /28 255.255.255.248 /29 255.255.255.252 /30

2.6 Routing

2.6.1 Routing Concept

According to Dewi and Arie (2004), the objective of protocol routing is to

get the best way from some routers networks through packet data from source

network to destination network.

Based on Anjik and Rianto (2008:99), routing concept is a process to

make a route to connect a network to others networks by using router. Data from a

device connected to internet, defined by IP, is transmitted in datagram. Datagram

has a destination IP address that will be checked by Internet Protocol to be

transmitted to destination IP address. If source address information is in same

network with the destination address, so the data will be transmitted directly, but

if the destination address is in different networks, so datagram will transmit to the

right network.

2.6.2 Static Routing

Based on iwan (2009:515), static routing needs network administrator in route decision. Static routing is compatible for a network that only has one route.

Example is LAN with internet connection. 24

According to Anjik and Rianto (2008:102), static route is the routes to a host or destination network that are input manually by network administrator to router routing table. Static route defines next IP address hop router and inter local used to forward packet to the destination (next router hop). Static route has the advantage to save the network bandwidth because the static route does not make traffic route update-to give information the change of route that is applicable in other routers. But the static router use needs extra time in network management.

This is because the administrator h to do update route table when there is the change of network configuration.

2.6.3 Dynamic Routing

Based on iwan (2009:515), dynamic routing is using routing protocol that can decide the route by itself based on every situation and condition. Dynamic routing is used to networks that have many routes. Dynamic routing is used by networks which are built by some routers. Every router will give information to the close router and then make routing table.

According to Anjik and Rianto (2008:105), dynamic routing is the way that is used to do update/delete forwarding table automatically. Routing protocol manage a router to be able communicate each other and give routing information each other that can change forwarding table depend on network situation.

25

2.7 Iptables

Based on netfilter, iptables is the inter space command line program used to configure the Linux 2.4.x and 2.6.x Ipv4 packet filtering ruleset. Iptables is used to Network Address Translation too. The iptables package also includes ip6tables. Ip6tables is used for configurin the Ipv6 packet filter.

Based on Ahmad and Fanny (2005:68) iptables, there are 3 main labels:

a. INPUT : packet data which come from our interfaces

b. OUTPUT : packet data which go out from our interfaces

c. FORWARD: packet data which pass the route.

Based on Ahmad and Fanny (2005:71) the functions of iptables are:

a. To limit the access our networks to certain traffic data.

b. To filter the attack from outside.

c. To limit the access to our services.

Packets shoulnot be filtered are:

a. ICMP packets

b. TCP to DNS

c. FTP data

Packets that must be filtered:

a. Ping of death

b. Teardrop and Bonk (IP Defragmetation)

c. Fragment Bomb (IP Fragment)

d. IP Spoof

Based on Ahmad and Fanny (2005:71), operations in iptables are: 26

Table 2.2 Operations in Iptables

Operations Options Make new chain -N Delete empty chain -X Change the rules of chain -P Show Chain Rules -L Delete all rules -F Make zero a matter of packet and bytes in chain -Z Add a new rule in a chain -A Input a new rule in certain position in a chain -I Change the rule in a chain in certain position -R Delete the rule in certain chain and in certain -D position or in accordance with specification.

Based on Ahmad and Fanny (2005:71), parameters in iptables are:

Table 2.4 Parameters in iptables

Parameter Options Show the protocol name used, it can be tcp, udp, -p icmp, or all Show the source address -s Show the destination address -d Show the interface input -i Show the interface output -o

Example of using iptables. These commands were made in order all the first policy are DROP.

Subnet A: 192.168.1.0

Subnet B: 192.168.2.0

Iptables commands are: 27

# iptables -P INPUT DROP

# iptables -P OUTPUT DROP

# iptables -P FORWARD DROP

The commands to forward packets from network A to network B via router are:

# echo 1>/proc/sys/net/ipv4/ip_forward

# iptables -A FORWARD -i eth0 -o eyh1 -j ACCEPT

# iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

The meaning of those commands are:

Make sure that forwarding table is active

Make network A can communicate with network B

Make network B can communicate with network A

2.7 Bash Scripting

2.8.1 Definition Shell

According to Rofiq (2003:7), shell is command interpreter language or a

macro processor which run the command. Shell also can be a command-

Interpreter that becomes user interface with the utilities and programming

language. Shell can make a command or a file that contains commands itself. That

new command has same status and is put in /bin directory.

Beside that, shell provides embedded programming language. Same as high level programming language, shell interpreter also provides variable, flow control, quoting, and function.

28

2.8.2 Bourne Again Shell (/bin/bash)

According to Rofiq (2003:8), bash is one of shell. Bash is a development from Bourne Shell. Bash was developed by Brian Fox from Free Software

Foundation. This shell has GNU copy left license so it is free used. Bash is more growing and it becomes as shell default for Linux operating system. Some features in Bash:

a. File Starup

b. Built-in command-Interpreter

c. Redline

d. History

e. Brace Expansion

f. Variables

g. Command Line Editor

2.9 Text User Interfaces

According to Dan Gookin (2007), in text mode, there are 2 kinds of interfaces: command line interface (CLI) and text user interface (TUI). In CLI, the user gives command with some arguments that sometimes make the user that is not used to use Linux feel afraid. In TUI, the user just run application and will face windows, dialog etc.

There are many applications that run in TUI mode, example mightnight commander, even popular distros still use TUI as alternative installer, example , alternative,and slackware. 29

There are points in TUI Linux: a. Ncurses (library).

Ncurses is a library that provides API function, which is possible for a

programmer to write text user interface by terminal independent. This is a

toolkit to develop software “like GUI” that run in terminal emulator. Ncurses

has ability to move the cursor, to make windows, to work in color, work using

mouse etc. Today the ncurselibrary can be found in every almost GNU/Linux

distribution. b. Dialog (utility)

According to Jeff Tranter, dialog is a utility that provides the calling

function for ncurses library, so the programmer can be easily to make a user

interface in GNU/Linux system. Dialog was created by Savio Lam ad then

modified by some developers. Dialog run under terminal emulator so it can be

easily to use with bash scripting.

Example Text User Interface made with Dialog:

a. yes/no boxes :

#!/bin/bash

dialog –yesno “Are you having fun?” 6 25

b. menu boxes : to make a menu

#!/bin/bash

dialog –menu “Choose one:” 10 30 3 \

1 red \

2 green \ 30

3 blue 2>/tmp/choice

3. Input boxes : to make an input box

#!/bin/bash dialog –inputbox “Enter you name:” 8 40 2>answer message box: to make message box

#!/bin/bash dialog –title 'Messag' –msgbox 'Hello, world!' 5 20

4. text boxes

#!/bin/bash dialog –textbox/etc/profile 22 70

5. info boxes

#!/bin/bash dialog –infobox “Please wait” 10 30 ;sleep 4

6. checkliat boxes

#!/bin/bash dialog –checklist “Choose toppings:” 10 40 3 \

1 Cheese on \

2 sauce on \

3 Anchovies off

7. radiolist boxes

#!/bin/bash dialog –backtitle “CPU selection” \

– radiolist “Select CPU type:” 10 40 4 \ 31

1 386SX off \

2 386DX on \

3 486SX off \

4 486DX off

2.10 Prototyping Model

According to Aggarwal (2006:62), prototyping is the technque of constructing partial implementation of a system so that customers, users, or developers can learn more about a problem or a solution to that problem. It allows users to explore and criticize proposed system before undergoing the cost of a full-scale development. The field of prototyping software system has emerged around two prototyping technologies, i.e., throwaway and evolutionary. Still according to Aggarwal (2006:62), the benefit of developing prototype are:

1. Misunderstanding between software developers and and customers may be

identified as the system functions are demostrated.

2. Missing user requirements may be detected.

3. Difficult-to-use or confusing user requirements may be identified and

refined.

4. A working system is available quickly to demonstrate the feasibility and

usefulness of the application to management.

5. The prototype serves as a basis for writing the specification of the system.

Based on Pressman (2005:83), a customer defines a set of general objectives for software but does not identify detailed input, processing, or output 32

requirement. In other cases, the developer may be ensure of the efficiency of algorithm, the adaptability of an operating system, or the form that human/ machine interaction should take. In these, ad many other situations, a prototyping paradigm may offer the best approach. Prototyping process describe in four processes: a. Communication

The software engineer and customer meet and define the overall

objectives for the software, identify whatever requirements are known, and

outline areas where further definition is mandatory. b. Quick Plan and Quick Design

A prototyping iteration is palnned quickly ad modeling (in the form of a

“quick design”) occurs. The quick design focuses on a representation of those

aspects of the software that will be visible to the customer/ end-user (e.g.,

human interface layout or output display formats) c. Construction of prototype

The quick design leads to the construction of a prototype. d. Deployment delivery and Feedback

The prototype is deployed and then evaluated by the customer/user.

Feedback is used to refine requirements for the software. Iteration occurs as the

prototype is tuned to satisfy the need of the customer, while at the same time

enabling the developer to better understand what needs to be done. 33

Figure 2.2 Prototyping Model (Pressman:2005)

2.11 Structured Analysis

The developer used structured analysis in analysis methodology. Based on

Gunadarma (1995:29), structured approach need standard obvious procedure and collection data or at least need methodology that will be used in developing information system. Structured can decide the order and can increase the understanding capability in complex system. So that why structured is the main characteristic in information system. “Structured” can be related in the way and form preparation.

Still based on Gunadarma (1995:35), Tools used in structured approach is graphic tool. However, there is some non graphic tools. The general characteristic of structured tools is the tools based on tree concept. Hierarchy diagram, structure diagram, Jackson diagram or Warnier diagram are the implementation of tree concept. Some tools that are used in structured approach are SADT, HIPO, 34

Jackson diagram, Warnier/Orr diagram, DFD, and structure diagram. Other tool that usually be used is classical flowchart. It is used to explain programming algorithm from the problem and used to explain physical component in information system.

2.12 Object-Oriented

Based on O’Docherty, in programming terms, our objects become stand alone modules with their own knowledge and behavior (or, if you prefer, their own data and processes). It’s common to think of software object as a robot, an animal, or a little person: each object has certain knowledge, in the form of attributes, and it knows how to perform certain operations for the benefit of the rest of the program.

Based on O’Docherty (2005:4), object-oriented programming is programming using independent modules of data and functions that correspond to concepts in the problem domain, such as Customer or Scrollbar.

Still according to O’Docherty, an object-oriented program works by creating objects, connecting them together and getting them to collaborate by sending messages to each other.

2.13 Black-box Testing

Based on Pressman (2005:434), black-box testing, also called behavioral testing, focuses on the functional requirements of the software. That is, black-box testing enables the software engineer to derive sets of input conditions that will 35

fully exercise all functional requirements for a program. Black-box testing is not an alternative to white-box testing techniques. Ratjer, it is a complementary approach that is likely to uncover a different class of errors than white-box methods.

Still based on Pressman (2005:434), black-box testing attempts to find errors in the following categories: (1) incorrect or missing functions, (2) interface error, (3) errors in data structures or external data base access, (4) behavior or performance errors, and (5) initialization and termination errors. Black-box testing tends to be applied during later stages of testing. Because black-box testing purposely disregards control structure, attention is focused on the information domain.

2.14 VirtualBox

According to official website of VirtualBox, VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extreme feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public

License (GPL) version 2.

Still based on official website VirtualBox, VirtualBox runs in Windows,

Linux, Macintosh, and Solaris hosts and supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, 36

Server 2003, Vista, Windows 7), DOS/Windows 3.x, Linux (2.4 and 2.6), Solaris and OpenSolaris, OS/2, and OpenBSD.

37

CHAPTER III

RESEARCH METHODOLOGY

3.1 Research Method

This research used Prototyping Model as a system methodology. Based on study literature that has been done in chapter 2, there are some considerations why this research used Prototyping Model:

1. Misunderstanding between software developers and and customers may be

identified as the system functions are demostrated.

2. Missing user requirements may be detected.

3. Difficult-to-use or confusing user requirements may be identified and

refined.

4. A working system is available quickly to demonstrate the feasibility and

usefulness of the application to management.

5. The prototype serves as a basis for writing the specification of the system.

Prototyping Model steps are applied in the research: a. Communication

In this step, the developer collects the data and information about router

and what the customers need for a router which will be developed in this

research. The developer tried to know information about the router such as the

definition of router, the functions of router, and GNU/Linux packets needed.

The developer also defines the objective by developing an open-source 38

portable router. For more details about data some routers, it put in 2.

Collecting data Method. b. Quick Plan and Quick Design

The implementation of this step in this research are design for the router

itself and design for the interface that router. In the outline, the router design in

this research consists of Linux kernel, system libraries, package management,

system services, router application and interface.

The Linux kernel version used for the router is the Linux kernel version

2.6.27. Basic applications to build the function of router are route 1.98, iptables

1.4.10. Packages in this router must be compiled, so the developer will build

the script to compile the packages in the router.

Interfaces that will be built are Text User Interface. The interfaces consist

of setting IP address and routing. Those are interfaces to communicate between

user and application. Beside that, interface to help user in doing installation.

Firstly, when the router will be installed, the router has to boot in hard

drive, the hard drive can be flash disk or CD. The developer will build the

script for booting. It still uses bash scripting. c. Construction of prototype

In this step, the developer deployed the router and its interface based on

the quick plan and quick design. d. Deployment delivery and Feedback 39

In this step in the research, the developer implement and evaluate the

router that has been developed. The router will be tested to do its function and

if there is error, the developer can fix the software.

Some functions of the router in this research that will be tested

installation interface and configuration interface. Installation interface consist

of hard disk installation and flash disk installation. Configuration installation

consist of interface that has related with routing configuration.

3.2 Collecting Data Method

3.2.1 Method of Collecting Primary Data

Interview was used for collecting primary data. The developer interviewed one of lecture and one of a Cisco trainer in UIN Syarif Hidayatullah, Mr.

Wahyudi, MT, CCNA. The interview was held on Tuesday, June 7th 2001. The discussion was about definition router and the function of the router in general.

Mr. Wahyudi said that router is a device in layer 3. The function of router is for routing, beside that router can be used to choose the best paths. Firewall is important or not depends on the needs. In router itself, there is access list for firewall. In this router, the developer use iptables packet for firewall.

Based on the interview, the developer can get information about the router.

The function of the router is for routing. In this portable router, the routing will be doing by iptables packet.

40

3.2.2 Method of Collecting Secondary Data

Study Literature was used for his method. It started from collecting information and getting data about the router, networking, Linux kernel, and application GNU/Linux by reading books, forum in the internet, websites that has a correlation with the research and two journals. This method can help find the problem and objectives from this research.

Based on data that was got from study literature, router cisco 1760 has 39 features, Mikrotik has about 24 features, fresco has around 9 features and RouSer has around three features. The features comparison among the routers:

Table 3.1 Router Features

Cisco Router Mikrotik Router Freesco RouSer

1. Open Shortest Path 1. Firewall and NAT 1. A Time server. 1. Routing First 2. Routing: static 2. A DHCP server 2. Firewall 2. Enhanced Interior routing , RIPv1/v2, 3. A HTTP server 3. bandwidth OSPF v2, BGPv4 4. A FTP server management. Gateway Routing 3. Data Rate 5. A DNS server Protocol 3. Management 6. A SSH server Hot Standby Router 4. HotSpot 7. A print server

Protocol 5. Point-to-Point (require TCP/IP 4. Voice over Frame tunneling protocols printing client Relay 6. Simple tunnels software) 5. Survivable Remote 7. IP security 8. RAS-Remote Site Telephony 8. Proxy-FTP and Access Server 6. Session Initiation HTTP 9. PPPoE and PPtP Protocol 9. DHCP client 7. Media Gateway 10. VRRP 11. UPnP- Universal Control Protocol 8. Plug-and-Play Coder/decoder 12. Network Time 9. Customer premises Protocol

equipment 13. Monitoring/ 10. Intrusion Accounting detection system 14. SNMP 11. IP Security 15. M3P-Mikrotik 12. Internet Key Packet Packer Exchange Protocol for 13. Certificate Wireless links and Ethernet. Enrollment Protocol 14. 16. MNDP-Mikrotik Password Neighbor Discovery 41

Authentication Protocol. 15. Protocol/Challeng 17. Tools e Handshake 18. Wireless Authentication 19. Bridge Protocol 20. VLAN 16. 21. Synchronous Remote Access 22. Asynchronous Dial-In User 23. ISDN

Service 24. SDSL 17. Layer 2 Tunneling Protocol 18. Generic routing encapsulation 19. Layer 2 Forwarding 20. Link fragmentation and interleaving 21. Multilink PPP 22. Low-latency queuing 23. Weighted Random Early Detection 24. Committed Access Rate 25. Weighted Fair Queuing 26. Generic traffic shaping 27. Resource Reservation Protocol 28. Differentiated services code point 29. Frame Relay Fragmentation 30. Frame Relay traffic shaping 31. Compressed Real- Time Transport Protocol 32. Point-to-Point Protocol 33. Serial Line Internet Protocol 34. PPP over Ethernet 35. ISDN leased line 36. Dynamic Host Configuration Protocol 42

37. Network Address Translation/Port Address Translation 38. Network-based application recognition 39. Simple Network Management Protocol

3.3 Analysis Method

The developer uses structured analysis in analysis methodology because structured analysis is simpler and programming language that is used in this research is structured programming. Besides that, bash scripting is still not be abe to do object-oriented because bash scripting is only shell script that use sytems utilities. The developer uses flowchart as a tool in this research because the flowchart model is easy to be understand, so that the ordinary user can understand and can give the idea for the prototype in the research. The developer implemented the structured analysis as analysis methodology in this research.

Firstly, the developer decided the research method. This research used prototyping as the research method. The developer had considerations why this research had to use it. Some considerations using the prototyping model were flexible, be able produce the interactive user interface, and the user can join in developing in the research.

The steps technique in developing the router are building installer, compiling the packets, building the interfaces and then testing the router. The tools that are used in this research are packets; route 1.98, iptables 1.4.10, and 43

squid 3.1.11, and then squashfs to compress the data into lzm type, and packet dialog to build the interface and installation.

The algorithm that are needed in this research are about the installation, compiler and for user interface;setting IP program, routing program, and firewall.

From algorithm, the developer will make the flowchart from each algorithms. So, this research will need 5 flowchart.

3.4 Testing Method

This research uses Black-box testing in testing method. Black-box testing is chosen as this method because it can be possible to detect the error in specification and compliance to requirements.

This router will be tested into 2 parts: installation interface and configuration interface. Installation interface is about installing in flash disk or portable storage. Configuration interface is about setting features in the router based on the customer requirements. Those program need to be tested to know all are running well or not.

44

CHAPTER IV

DISCUSSION AND IMPLEMENTATION

In this chapter, there are three prototypes that have been done in the research.

4.1 First Prototype

4.1.1 Communication

The developer tried to find the objectives of this research and user requirement.

4.1.1.1 Objectives of this research

After collecting information from the customer (in this case the customers are the lectures), interview and study literature (detailed in 3.2.2 Method of

Collecting Secondary Data), the objectives of developing this routers are to develop a router that has basic routing function, portable (using flash disk), simple, open source, and has interfaces inside the system.

4.1.1.2 User Requirements

Based on information getting from study literature and interview, the function of router is for routing. In this research, the user requirements for the router are:

1) The router can do static routing.

2) The router is for IP version 4.

3) Building the installation Text User Interface: 45

a. Installation to flash disk. For the input location of flash disk, the user still

needs to input the partition that he has manually. The user choose the

location of flash disk automatically.

b. Hard disk PC. The user input available hard disk that will be installed

manually. The router cannot detect available hard disk yet.

4) Building the configuration Text User Interfaces

a. Interface for setting ip address. Setting IP interface include DNS and

setting IP. After the user set up IP address, the user will be asked to input

DNS directly.

b. Interface for routing. For this interface, the algorithm is still complex for

routing algorithm.

5) Developing using Linux kernel.

6) All packets needed are open source.

4.1.2 Quick Plan and Quick Design

4.1.2.1 Quick Plan

Figure 4.1 Quick Plan 46

After communication, the developer was doing quick plan. In the quick plan, there are 3 steps to develop the router. There are preparation, installation interfaces, and configuration interfaces.

1. Preparation

In the preparation step, the developer prepared the network topology. The topology of router is used as a guidance to test the router.

Figure 4.2 Topology

Besides preparing network topology, the developer also prepared what tools that are needed in the developing the router. Tools that are needed in developing the router are: a) Core. The router uses core slackware. That core can be downloaded in

http://www.slax.org/modules/1/dl/001-core.lzm.

b) Kernel Linux. The kernel that is used in the router is kernel version 1.4.2.

Actually the kernel already include in core, but it can be downloaded

separately in ftp://ftp..org/Linux-Live/kernels/2.6.27.27/linux-2.6.27.27-

i486-1.tgz. 47

c) Toroo live tools. It is used to make ISO image for the router. It can be

downloaded in http://toroo.in/tools/toroo-live-tools-6.3.0.tar.gz. d) Dialog source code v1.1. It is used for interface. It can be downloaded in

http://linux.softpedia.com/get/System/Software-Distribution/Dialog-

7923.shtml.

e) Iptables. Iptables that is used is iptables version 1.4.2. It can be downloaded in

http://www.netfilter.org/projects/iptables/files/iptables-1.4.2.tar.bz2. f) VirtualBox. VirtualBox that is used is VirtualBox version 4.0.10.

2. Installation Interfaces

There are two kinds of installation in this router, installation in hard disk/PC and installation in flash disk. a) Hard disk Installation

48

Figure 4.3 Hard disk Installation Flowchart 49

Based on flowchart in Figure 4.3 about hard disk installation, the algorithms in hard disk installation are:

The program will ask whether the user want to create new partition or

not.

If the user wants to create new partition, the program will show a help

to help user in partition the hard disk.

If the user does not want to create partition, the program will ask the

user to input partition to install the router.

The partition will be formatted by the program b) Flash disk Installation

The developer created the flowchart first before building the flash disk text user interface.

Figure 4.4 Flash Disk Installation Flowchart 50

Based on Figure 4.4 Flash disk Installation Flowchart, The flash disk installer algorithm:

The program will show where the media or flash disk mounted.

The program will ask the user to input the flash disk location.

The installation process is running. The router system will be copied

into flash disk or portable device.

The program will install boot loader to flash disk.

The program will set the flash disk, so that when the flash disk plug-in

in the laptop, it will run directly.

3. Configuration Interfaces

The developers build two interfaces, setting IP interface and routing interface. a) Setting IP

In order to not make wrong program in setting IP, it needed to make the flowchart first.

51

Figure 4.5 Setting IP Flowchart 52

The algorithm for setting IP interface:

Setting looping to process inputting ip address, netmask, and

interface. Looping is set until twice looping.

Declare the variables that are needed for setting IP.

The program will ask user to input the interface, IP address and

netmask that will be set for the network.

Process looping occurs.

After that the user will be asked to set gateway ad DNS. b) Routing

Before building routing program, flowchart routing needed to be made.

53

Figure 4.6 Routing Flowchart 54

The algorithm for routing:

The program will input interface router, IP addess router, netmask

router, inerface client, IP address client, netmask client and then

process it.

After that the routing program active ip forward.

The program will ask to input DNS and then restore DNS.

After that process routing will be running.

4.1.2.2 Quick Design

Quick design is used to give description how the interfaces appear. Quick design include interfaces that are built in the router. The interfaces that are provided in quick design are:

Interface installation hat include hard disk installation and flash disk

installation

Configuration interfaces that include setting IP interface and routing

interface.

1. Interface Installation

As mentioned in quick plan, there are two kind of installation, hard disk

PC and flash disk. So that first step interface design, the user can choose which device that will be installed the router. 55

Figure 4.7 Choosing installation a) Harddisk Installation

If the user choose number one, the program run installation to the laptop or hard disk.

Figure 4.8 prototype1 model harddisk-1

After that, the user will be asked whether the user want to create partition or not. If the user want to create partition, the program will run command to create partition. After that the user will be asked to input in which partition the the router installed. It is same the output If the user choose not to create partition, the user will be asked to input in which partition.

56

Figure 4.9 prototype1 model hard disk-2

After that to make sure you input the right device, the program will ask you.

Figure 4.10 prototype1 model hard disk-3

After that the process installation will be running. b) Flash disk Installation

When the user choose install on your flash disk, there is the information which devices that are connected into the computer.

Figure 4.11 prototype1 model flash disk-1 57

When click Yes, the user will be asked to input the device of flash disk and when click No, it will cancel the installation.

Figure 4.12 prototype1 model flash disk-2

After input the device of flash disk, the router will be installing into flash disk.

2. Configuration Interfaces

As mentioned in quick plan, there are two configuration interfaces, setting

IP and routing. After creating the flowcharts, it needed to create design how the interfaces appear to the users. a) Setting IP

In setting IP address, firstly the user will be asked to input ethernet which will be set.

Figure 4.13 prototype1model setting IP-1 58

After that, the program will ask to input IP address.

Figure 4.14 prototype1 model setting IP-2

After inputting IP address, the user will be asked to input netmask.

Figure 4.15 prototype1 model setting IP-3

The program will do looping, so it will repeat from input ethernet, ip address, and netmask. After looping, the user can input gateway.

Figure 4.16 prototype1 model setting IP-4 59

The last thing that the user should input is DNS. The program will show the interface to input DNS.

Figure 4.17 prototype1 model setting IP-5 b) Routing

When the user type command to call routing setting, it will show the information that inform the user if the routing will be started.

Figure 4.18 prototype1 routing model

4.1.3 Construction Prototyping

There are four steps in developing the first prototype router:

1. Install Toroo Live Tools

2. Compile Packet

3. Build installer for the router 60

4. Make ISO bootable

Here will explain step by step develop the router.

1. Install Toroo Live Tools

Toroo live tools is the tools to make and extract packet lzm. Packet lzm is used for management in router system.

extract that packet into folder /tmp

go to folder Tools

make files in folder tools become be able to read, write, and execute.

copy all files into folder /bin

Figure 4.19 Toroo Live

2. Compile packet

Some packets need to be compiled to complete the modules that are needed to the router. There are two packet that will be compiled, dialog and iptables. Firstly, it needs to extract core to place the packets:

make directory for core in temporary directory.

extract core into core directory

Figure 4.20 core 61

After extract core, the next step is compiling the packets that are needed in developing the router.

Compile Dialog:

extract the source code of packet.

change directory where the packet extracted.

customize the configuration to check the dependencies.

compile the source code into binary.

install the packet to destination directory, here dialog will be installed

in core directory: #make install DESTDIR=/tmp/core

Figure 4.21 Dialog

Compile Iptables:

Extract the source code of packet.

Change directory where the packet extracted.

Customize the configuration.

Compile the source code into binary.

Install the packet to destination directory, here dialog will be installed

in core directory. 62

Figure 4.22 Iptables

3. Build Installer for the router

There are three main scripts in installer. A script as menu, a script for installation in hard disk PC and script for installing in flash disk. Only a script for menu that has to be packaged.

Menu script is used for the user when the user wants to choose in which device he want to install the router. This script will be put in /bin directory.

Make directory for the directory of script.

Write he script for this menu installer, save it. Here the developer

saved it as setup-BS in directory that already made.

Package the directory into .lzm.

Figure 4.23 Installer

4. Make ISO bootable

Before make ISO image, the developer needs to manage what directories that will be used to put the scripts and packets. There are two mains directories, router directory and boot directory. Router directory consists of packet core, 63

additional packets that were added in router and menu installer. Boot directory consists of installer harddisk and boot loader. Installer flash disk is put outside the router directory and boot directory.

4.1.4 Deployment Delivery and Feedback

For the first prototype, the router will be tested using VirtualBox. ISO image will be boot in VirtualBox.

4.1.4.1 Deployment Delivery

For the first prototype, the developer tested the router in two parts. There are installation interface and configuration interface. In first prototype, installation interface consists of hard disk installation and flash disk installation.

Configuration interface in first prototype only consist of setting IP.

1. Installation Interface a. The steps to install in harddisk PC are:

Prepare VirtualBox: Create new virtual machine, set virtual machine with

RAM 128MB and 512MB for virtual disk size, and add router ISO image

to the storage so that virtual machine can be able to boot the router using

ISO image.

Run VirtualBox

First thing that appeared was choosing whether want to install router or try

live CD. 64

Figure 4.24 Test1 install Hard disk-1

When it was chosen RouterOS Install, there were choices to install router in laptop or in flash disk.

Figure 4.25 Test1install hard disk-2

When Install in your laptop was chosen, the program asked whether want o create partition or not.

65

Figure 4.26 Test1install hard disk-3

When Yes Run CFDISK was chosen, the user created partition.

Figure 4.27 Tes1install hard disk-4

After that, the program asked to input the partition that would be installed the router. It would be happen if No Next was chosen in previous step.

66

Figure 4.28 Tes1install hard disk-5

The program asked whether the user is sure with that partition or not.

Figure 4.29 Test1install hard disk-6

When Yes was chosen, the router was installing. When No was chosen, the

router entered live CD mode. b. The steps to install in Flash disk are:

First step is same as install in harddisk PC. Firstly, it needed to prepare

VirtualBox: Create new virtual machine, set virtual machine with RAM

128MB and 512MB for virtual disk size, and add router ISO image to the 67

storage so that virtual machine can be able to boot the router using ISO image.

Run VirtualBox

First thing that appeared was choosing whether want to install router or try live CD.

Figure 4.30 Test1 install Flash Disk-1

When it was chosen RouterOS Install, there were choices to install router in laptop or in flash disk.

Figure 4.31 Test1 install Flash Disk-2 68

When Install on you Flash disk was chosen, it showed the information what devices that connected to the laptop.

Figure 4.32 Test1 install Flash Disk-3

When No was chosen the program was out. When Yes was chosen, the program asked to input where the flash disk mount.

Figure 4.33 Test1install Flash Disk-4

After that, the router was installing to flash disk.

69

Figure 4.34 Test1 install Flash Disk-5

2. Configuration Interface

Setting IP

The developer already finished build setting ip script interface, but it was not put in the router system. Setting IP script interface was tested via terminal.

Run setting IP script in terminal. The user was asked to input ethernet

that want to be configured.

Figure 4.35 Test1 setting IP-1 70

After that, the interface to input ip address was showed.

Figure 4.36 Test1 setting IP-2

After input IP address, the program asked to input netmask.

Figure 4.37 Test1 Setting IP-3

The process input interface, IP address and netmask was looping. 71

Figure 4.38 Test1 Setting IP-4

Figure 4.39 Test1 Setting IP-5 72

Figure 4.40 Test1 Setting IP-6

After that, the user was asked to input gateway.

Figure 4.41 Test1 Setting IP-7

The last thing was DNS, the program showed interface to input DNS. 73

Figure 4.42 Test1 Setting IP-8

4.1.4.2 Feedback

Based on the testing and the construction prototyping, the router still did not run based on what the customer expected in communication. For the first prototyping, the router only could run installer using Text User Interface. It could not set IP address using Text User Interfaces and still could not do routing using text User Interfaces.

According to the customers, there are some requirements for the next router:

1) The interface program has to detect the partition automatically.

2) The interface program has to be able to detect the ethernet interfaces

automatically.

3) The router has to have menu so that the user can choose which configuration he

wants.

4) Setting IP address and DNS should be separated. So that, DNS interface has to

be built. 74

4.2 Second Prototype

The second prototype was made based on the feedback from the customers.

4.2.1 Communication

In communication for second prototype, objectives of the research are still same as First Prototype. But for the user requirement, there is additional user requirement for the Second Prototype. The user requirements for the Second

Prototype are:

1) The router can do static routing.

2) The router is for IP version 4.

3) Building the installation Text User Interface:

a. Installation to flash disk. In installation flash disk, the user can choose the

location of flash disk automatically, so that the user does not need to type

manually.

b. Hard disk PC. The program can detect the partition of hard disk

automatically that will be installed for the router.

4) Building the configuration Text User Interfaces

a. Interface for setting ip address. The program can detect the Ethernet that are

available in the computer installed the router.

b. Interface for routing. The user just chooses Ethernet that will be used for

routing and then the routing process will be running.

c. Interface for setting DNS. Interface DNS has been seprated with setting IP.

The user can add new DNS or add more DNS to set up the router. 75

d. Main menu interface to configurations interface. This is the new interface in

the second prototype. It has menu of interface program that can be chosen

by user.

5) Developing using Linux kernel.

6) All packets needed are open source.

4.2.2 Quick Plan and Quick Design

4.2.2.1 Quick Plan

1. Preparation

There is no additional preparation for the second prototype. The preparation is same as First Prototype preparation.

2. Installation Interfaces

The algorithms that were used in installation interfaces flowchart First

Prototype are similar with the installation interfaces flowchart Second Prototype. a) Hard Disk Installation

76

Figure 4.43 Hard disk installation Flowchart 2 77

Based on Figure 4.43 hard disk installation 2 Flowchart, the harddisk installation algorithms are:

The program will ask whether the user want to create new partition or

not.

If there is the partition, the program detect it automatically.

The partition will be formatted by the program and installed by the

router. b) Flash disk Installation

The flash disk flowchart was created to help in building the program.

Figure 4.44 Flash disk Installation Flowchart 2 78

Based on Figure 4.44 Flash disk installation 2 Flowchart, The flash disk installation algorithms are:

Input Flash disk location.

The installation process is running. The router system will be copied

into flash disk or portable device.

The program will install boot loader to flash disk.

3. Configuration Interfaces

In this part, there are three interfaces: setting IP, DNS, and routing. a) Setting IP

The setting IP flowchart for the second prototype is not same as the setting

IP flowchart with the first prototype. In the setting IP flowchart for the second prototype, there is no setting DNS.

79

Figure 4.45 SettingIP 2 Flowchart

Based on Figure 4.45 Setting IP2 Flowchart, the algorithms of setting IP are:

The user choose the ethrnet hat will be used, and then setting IP address

and netmask.

The program will process the IP address and netmask.

And then the program will ask whether want to continue to set IP

address or not. If yes, the program will repeat the step from the

choosing ethernet until netmask. If not, the program will ask the

gateway.

Setting gateway and finish. b) DNS

DNS is an additional interface that is made for the second prototype.

Before writing the script, it needs to create the flowchart.

80

Figure 4.46 Setting DNS Flowchart

Based on Figure 4.46 DNS Flowchart, the algorithms of DNS are:

Input DNS setting of the network.

The program will process it and store in the system. c) Routing

Routing in the first prototype is different with routing in the second prototype. In the second prototype, the user is asked to choose the ethernet. Here the routing flowchart. 81

Figure 4.47 Routing-2 Flowchart 82

Based on Figure 4.47 Routing-2 Flowchart, the routing algorithms:

The program ask the user which ethernet that is chosen for routing.

Read the IP address that already input before. If IP adress is not set

yet, the program will ask the user to set the IP address.

The process routing will be running.

4.2.2.2 Quick Design

1. Interface Installation

In installation there are two choices: install in harddisk/PC and install flash disk. In the second prototype, there are differences with the First Prototype. a) Hard disk Installation

The user is be able to choose whether want to install in harddisk/PC and flash disk.

Figure 4.48 Prototype2 Model hard disk-1

If the user choose install on your laptop, the user will be ask whether he want to create partition or not. If yes the router will run CFDISK, and create the partition.

83

Figure 4.49 Prototype2 Model hard disk-2

After create partition, It will show the partitions that are available to install the router.

Figure 4.50 Prototype2 Model hard disk-3

To make sure the partition that is chosen is right, the program will ask if the user is sure or not.

Figure 4.51 Prototype2 Model hard disk-4 84

After that, the installation is running. b) Flash disk Installation

The user is be able to choose whether want to install in hard disk/PC and flash disk.

Figure 4.52 Prototype2 Model flash disk-1

After that there are the choices in which device the user wants to install the router.

Figure 4.53 Prototype2 Model Flash disk-2

The program asked the path source of the router.

85

Figure 4.54 Prototype2 Model Flash disk-3

The router will be installing to flash disk.

2. Configuration Interfaces

In the second prototype, there is a menu to put all of the interfaces that is to communicate between the user and the applications.

Figure 4.55 menu a) Setting IP

Setting IP in second prototype is quiet different with setting IP in the First

Prototype. In the second prototype, the user can choose which ethernet that will be used in the router.

The program will show what ethernat that are connected with the router. 86

Figure 4.56 Prototype 2 Mode setting IP-1

If one of the ethrnet is chosen, the program will ask to input IP address.

Figure 4.57 Prototype 2 Model Setting IP-2

After inputing ip adress, the program will ask to input the netmask.

Figure 4.58 Prototype2 Model Setting IP-3

After finishing complete setting one of the ethernet, the program will ask whether the user want to continue with setting another ethernet or go to next step, setting gateway. 87

Figure 4.59 Prototype2 Model Setting IP-4

If the user chose Yes, the program will be back to the ethernet choices. If

No, the program will run setting gateway.

Figure 4.60 Prototype 2 Model Setting IP-5

After finishing set gateway, the program will exit. b) DNS

DNS interface is one of additional requirement for the second prototype.

Firstly, the program will ask whether the user want to set DNS or just add other

DNS.

Figure 4.61 Prototype 2 Model DNS-1 88

The user is required to input DNS. The user can add more than one DNS by choosing Add more DNS.

Figure 4.62 Prototype 2 Model DNS-1 c) Routing

The design interface from the routing in the second prototype is different with the design interface with the first router prototype.

When the user choosed routing, the program would ask which ethernet that would be used for the routing.

Figure 4.63 Prototype2 Model routing 1

If the ip address is not set yet, the program will inform that the ip address is not set yet. 89

Figure 4.64 Prototype2 Routing-2

If the routing success, it will show that the routing is succeed.

Figure 4.65 Prototype2 Routing-3

4.2.3. Construction Prototyping

Construction Prototyping for second prototype is still same as the First

Prototyping, but there is additional construction based on quick plan and quick design. Main menu will be put in /usr/bin. The step are:

make directory to put the directories of scripts.

Copy menu script to /tmp/setting/usr/bin.

Figure 4.66 menu command 90

Setting IP script, DNS script, and routing script are put in one directory.

They will be put in /usr/share/router and then package it. The steps are:

make directories /tmp/setting/usr/share/router. It will be used to place

setting IP script, DNS script, and routing script.

copy all scripts (setting IP, DNS, and routing) into

/tmp/setting/usr/share/router

Package the directoy.

Put file menu.lzm into router directory /router/base.

Figure 4.67 Package

4.2.4. Deployment Prototyping and Feedback

4.2.4.1 Deployment Prototyping

In deploying prototyping, there is two kind of testing: Installation

Interfaces and configuration Interfaces. In the second prototype, the installation interfaces consist of hard disk installation and flash disk installation.

Configuration interfaces consist of setting ip, DNS, and routing.

Here the details the explanation.

1. Installation Interfaces a) Hard disk Installation 91

For testing hardisk installation, it tested in VirtualBox as a hard disk that would be installed the router. The capacity of virtual hard disk is 256 MB and

RAM 128 MB.

Create virtual machine in VirtualBox.

Load ISO image in virtual machine

Figure 4.68 Test2 Install Hard disk-1

Choose RouterOS Install, and the router was booting. After that, there

is installation interface whether want to install in laptop/hard disk or

in flash disk.

Figure 4.69 Test2 Install Hard disk-2 92

Choose install on your laptop to install in hard disk. The program asked about partition.

Figure 4.70 Test2 Install Hard disk-3

Virtual machine did not have partition yet, so choose Run CFDISK to create partition.

Figure 4.71 Test2 Insall Hard disk-4

After that the program showed partition that exist in the virtual machine. 93

Figure 4.72 Test2 Install Hard disk-5

To make sure the hard disk that was chosen was right, the program

asked.

Figure 4.73 Test2 Install Hard disk-6

After that, the installation was running. b) Flash disk Installation

Testing router was started from how to install router in flash disk. The testing used VitualBox to boot ISO image, with RAM 128 MB, and the capacity of flash disk 2GB.

Create new virtual machine in VirtualBox. 94

Load ISO image in virtual machine.

Figure 4.74 Test2 Installation Flash Disk-1

Choose RouterOS install. The installation router will be booting and then there is option whether want to install in hard disk Pc or flash disk.

Figure 4.75 Test2 Installation Flash Disk-2

When install on your flash disk was chosen, devices that were connected into the computer will show in the interfaces. 95

Figure 4.76 Test2 Installation Flash Disk-3

Choose where the flash disk mount. And then, the program searched the path where the installation script is.

Figure 4.77 Test2 Installation Flash Disk-4

Choose the path of source installation. The router was installed in the flash disk. 96

Figure 4.78 Test2 Installation Flash Disk-5

After that, flash disk was installed by the router.

2. Configuration Installation

After the router was installed in the flash disk, the flash disk was being booted in the laptop and then tried the interfaces (setting IP, DNS, and routing).

The router testing based on this design:

The steps to test the interfaces:

Setting laptop BIOS in order to be able boot in usb mode and the boot

usb that was already installed the router.

Connected the router into the client with UTP cable and connected the

router into internet. In this testing, the router connects in internet in

eth0.

When the user typed menu, there is the choice whether the user

wanted to set IP, DNS or routing. 97

Figure 4.79 Test2 Routing-1

Choose Setting IP to Set IP local router. Type command #menu, the user got menu interfaces and chose setting IP.

Figure 4.80 Test2 Routing-2 98

Figure 4.81 Test2 Routing-3

Figure 4.82 Test2 Routing-4

Figure 4.83 Test2 Routing-5 99

After that, set IP address client. Client was using Windows Operating

System. Open network connection in computer client.

Figure 4.84 Test2 Routing-6

Ping from client to router to make sure client already connected with the router. In this step, client still could not connect to internet.

Figure 4.85 Test2 Routing-7

100

Figure 4.86 Test2 Routing-8

Go to the router. Type “menu” and it showed menu. Chose routing.

The program asked the ethernet that was used for routing and the router was doing routing.

Figure 4.87 Test2 Routing-9

101

Figure 4.88 Test Routing10

Figure 4.89 Test2 Routing-11

Now the client can connect to the router. 102

Figure 4.90 Test2 Routing-12

4.2.2.2 Feedback

After testing the router, there is feedback from the customer for the next router prototype.

1) The customers want If there is disable routing in the menu, so that the user can

cancel the routing.

2) If the user click cancel, it should be back to menu not out of menu.

3) The router should have DHCP configurations.

4.3 Third Prototype

4.3.1 Communication

In communication for third prototype, objectives of the research is still same as First Prototype and Second Prototype. But for the user requirement, there is additional user requirement from the Second Prototype for third prototype.

1) The router can do static routing.

2) The router is for IP version 4.

3) Building the installation Text User Interface: 103

a. Installation to flash disk. In installation flash disk, the user can choose the

location of flash disk automatically, so that the user does not need to type

manually.

b. Hard disk PC. The program can detect the partition of hard disk

automatically that will be installed for the router.

4) Building the configuration Text User Interfaces

a. Interface for setting ip address. The program can detect the Ethernet that are

available in the computer installed the router.

b. Interface for routing. The user just chooses Ethernet that will be used for

routing and then the routing process will be running.

c. Interface for setting DNS. Interface DNS has been seprated with setting IP.

The user can add new DNS or add more DNS to set up the router.

d. Main menu interface to configurations interface. This is the new interface in

the second prototype. It has menu of interface program that can be chosen

by user.

e. Disable routing. This is the additional feature in the third prototype. The user

just choose disabled routing menu and then the routing will be disabled or

stop.

f. DHCP. DHCP is the new feature in the third prototype. The program can

detect automatically the Ethernet that is available in the laptop and the

program will detect whether IP address already set up or not.

5) Developing using Linux kernel.

6) All packets needed are open source. 104

4.3.2. Quick Plan and Quick Design

4.3.2.1 Quick Plan

1. Preparation

There is no additional preparation for the second prototype. The preparation is same as First Prototype and Second Prototype preparation.

2. Installation Interfaces

In third prototype, there is no additional installation interfaces. The installation interfaces are still same as Second Prototype. a) Hard Disk Installation

105

Figure 4.91 Hard disk installation Flowchart 3 106

Based on Figure 4.91 hard disk installation Flowchart 3, the hard disk installation algorithms is:

The program will ask whether the user want to create new partition or

not.

If there is the partition, the program detects it automatically.

The partition will be formatted by the program and installed by the

router. b) Flash disk Installation

The flash disk flowchart was created to help in building the program.

Figure 4.92 Flash disk Installation Flowchart 3 107

Based on Figure 4.92 Flash disk installation Flowchart 3, the flash disk installation algorithms are:

Input Flash disk location.

The installation process is running. The router system will be copied

into flash disk or portable device.

The program will install boot loader to flash disk.

3. Configuration Interfaces

In the third prototype there are five interfaces: setting IP, DNS, DHCP, routing and disabled routing. a) Setting IP

The setting IP flowchart for the second prototype is not same as the setting

IP flowchart with the first prototype. In the setting IP flowchart for the second prototype, there is no setting DNS.

108

Figure 493 SettingIP 3 Flowchart

Based on Figure 4.93 Setting IP3 Flowchart, the algorithms of setting IP are:

The user choose the ethernet hat will be used, and then setting IP

address and netmask.

The program will process the IP address and netmask.

And then the programwill ask whether want to continue to set IP

address or not. If yes, the progam will repeat the step from the choosing

ethernet until netmask. If not, the program will ask the gateway.

Setting gateway and finish. b) DNS

DNS in third prototype is still same as in the second prototype.

109

Figure 4.94 Setting DNS Flowchart 3

Based on Figure 4.94 DNS Flowchart 3, the algorithms of DNS are:

Input DNS setting of the network.

The program will process it and store in the system. c) Routing

Routing in the third prototype is same as routing in the second prototype.

There is no different between them. 110

Figure 4.95 Routing Flowchart 3 111

Based on Figure 4.95 Routing Flowchart 3, the routing algorithms:

The program asks the user which ethernet that is chosen for routing.

Read the IP address that already input before. If IP adress is not set

yet, the program will ask the user to set the IP address.

The process routing will be running. d) Disable Routing

Figure 4.96 Disable Routing Flowchart

Based on Figure 4.96 Disable Routing, the algorithm of disable routing interface is the program will deactive IP forward so that the router cannot do routing. e) DHCP

Before making script for DHCP, flowchart was made to make it easy.

112

Figure 4.97 DHCP Flowchart

According to Figure 4.97 DHCP Flowchart, the algorithm from the DHCP flowchart is: 113

Read which ethernet that will be used for DHCP.

Read the IP address, netmask and DNS. If IP address is not set yet, the

program will ask the router to set IP address.

The program will do DHCP configuration.

Export File DHCP configuration into dhcpd.conf file

4.3.2.2 Quick Design

In third prototype, there is an additional quick design in configuration interface part. In configuration interface, it needs to be added disable routing interface and DHCP. The other interfaces are still similar with second prototype.

1. Interface Installation

In installation there are two choices: install in harddisk/PC and install flash disk. In the second prototype, there are differences with the First Prototype. a) Hard disk Installation

The user is to be able to choose whether want to install in harddisk/PC and flash disk.

Figure 4.98 Prototype3 Model hard disk-1

If the user choose install on your laptop, the user will be ask whether he want to create partition or not. If yes the router will run CFDISK, and create 114

the partition.

Figure 4.99 Prototype3 Model hard disk-2

After create partition, It will show the partitions that are available to be installed the router.

Figure 4.100Prototype3 Model hard disk-3

To make sure the partition that is chosen is right, the program will ask if the user is sure or not.

Figure 4.101 Prototype3 Model hard disk-4 115

After that, the installation is running. b) Flash disk Installation

The user is be able to choose whether want to install in hard disk/PC and flash disk.

Figure 4.102 Prototype3 Model flash disk-1

After that there are the choices in which device the user wants to install the router.

Figure 4.103 Prototype3 Model Flash disk-2

The program asked the path souce of the router.

Figure 4.104 Prototype3 Model Flash disk-3 116

The router will be installing to flash disk.

2. Configuration Interfaces

In the second prototype, there is a menu to put all of the interfaces that is to communicate between the user and the applications.

Figure 4.105 menu Model 3 a) Setting IP

Setting IP in second prototype is quiet different with setting IP in the First

Prototype. In the second prototype, the user can choose which ethernet that will be used in the router.

The program will show what ethernat that are connected with the router.

Figure 4.106 Prototype 3 Model setting IP-1

If one of the ethernet is chosen, the program will ask to input IP address. 117

Figure 4.107 Prototype 3 Model Setting IP-2

After inputing ip adress, the program will ask to input the netmask.

Figure 4.108 Prototype3 Model Setting IP-3

After finishing complete setting one of the ethernet, the program will ask whether the user want to continue with setting another ethernet or go to next step, setting gateway.

Figure 4.109 Prototype3 Model Setting IP-4

If the user chose Yes, the program will be back to the ethernet choices. If

No, the program will run setting gateway. 118

Figure 4.110 Prototype 3 Model Setting IP-5

After finishing set gateway, the program will exit. b) DNS

DNS interface is one of additional requirement for the second prototype.

Firstly, the program will ask whether the user want to set DNS or just add other

DNS.

Figure 4.111 Prototype 3 Model DNS-1

The user is required to input DNS. The user can add more than one DNS by choosing Add more DNS.

Figure 4.112 Prototype 3 Model DNS-1 119

c) Routing

The design interface from the routing in the second prototype is different with the design interface with the first router prototype.

When the user choose routing , the program will ask which ethernet that will be used for the routing.

Figure 4.113 Prototype3 Model routing 1

If the ip address is not set yet, the program will inform that the ip address is not set yet.

Figure 4.114 Prototyp3 Routing-2

If the routing success, it will show that the routing is succeed. 120

Figure 4.115 Prototype3 Routing-3 d) Disable Routing

Figure 4.116 Disable routing

After the process finish to disable routing. There will have information about it. e) DHCP

The user is required to choose which interfaces that will be used for

DHCP.

Figure 4.117 DHCP interface-1 121

After that, there is information which ethernet that the user chose for

DHCP.

Figure 4.118 DHCP interface-2

If IP address is not set yet the program will announce that.

Figure 4.119 DHCP Interface-3

4.3.3 Construction Prototyping

For construction prototyping in the third prototype, the developer only add disable routing script and dhcp script that will be put together with setting ip script, DNS script and routing script in /usr/share/router.

The steps are:

Copy the script into /tmp/setting/usr/share/router.

Package the directories into .lzm.

122

4.3.4 Deployment Prototyping and Feedback

4.3.4.1 Deployment Prototyping

In deployment prototyping, there are some testings, installation interface and configuration interfaces. Configuration interface consists of setting IP, DNS,

DHCP, routing and disable routing.

1. Installation Interface

Flash Disk Installation

Setup the computer booting into CD and boot CD router.

Chooser Router Install. The installation router will be booting and then

there is option whether want to install in hard disk Pc or flash disk.

Figure 4.120 Test3 Flash disk-1

When install on your flash disk was chosen, there are confirm setup. 123

Figure 4.121 Test3 Flash disk-2

Choose where the flash disk mount. And then, the program searched the path where the installation script is.

Figure 4.122 Test3 Flash disk-3

Choose the path of source installation. The router was installed in the flash disk. 124

Figure 4.123 Test3 Flash disk-4

After that, the flash disk installation was running.

Figure 4.124 Test3 Flash disk-5

2. Configuration Interfaces

In configuration interfaces, there are setting IP, DNS, DHCP, routing and disable routing. Firstly, prepare the laptop that would be used for the router, switch, and laptop as a client. 125

Figure 4.125 Configuration Interface Test

Booting portable (flash disk) router in the laptop. After that, type menu to call the menu configuration interfaces.

Figure 4.126 Menu Configuration Interfaces a) Setting IP Testing

Choose Setting IP in menu configuration.

The program asked to input IP address. 126

Figure 4.127 Test3 Setting IP-1

After that it asked to input netmask.

Figure 4.128 Test3 Setting IP-2

The setting IP has done. b) DNS

Choose DNS in menu configuration.

There is option whether want to add new DNS o add more DNS that already

exist. 127

Figure 4.129 Test3 DNS-1

Choose Set DNS to set new DNS.

Figure 4.130 Test3 DNS-2

After that, DNS has been set. c) DHCP

Choose DHCP in the menu configuration router.

The program asked which ethernet that would be used for DHCP server. 128

Figure 4.131 Test DHCP-1

There was information what the user has chosen for DHCP.

Figure 4.132 Test DHCP-2 d) Routing

choose Routing in menu configuration.

The program asked which ethernet that will be used for routing.

129

Figure 4.133 Test Routing-1

There showed information ethernet that was chosen by the user.

Figure 4.134 Test Routing-2

When the routing process finish, there was information about it. 130

Figure 4.135 Test Routing-3 e) Disable Routing

choose Disable Routing in menu configuration.

The process to disable routing was running.

Figure 4.136 Test Disable Routing

4.3.4.2 Feedback

After presentation third router prototype, the customer, in this testing the customers are student and the lecture, said that the router already can be used for the user. It did not have additional requirement yet.

131

CHAPTER V

SUMMARY

5.1 Conclusion

After developing he research, it can be concluded into some summarizes:

1. To develop a portable router GNU/Linux is needed pre requirement tools: core

Slackware, open source GNU applications needed for the router, and boot live.

Those tools are designed so that it can be a portable router that is implemented.

2. This router is portable because it is installed in flash disk.

3. The interfaces consist of installation interfaces and configuration interfaces.

Installation interfaces consist of hard disk installation and flash disk

installation. Configuration interfaces consist of setting IP, DNS, DHCP,

routing and disabled routing.

4. After seeing the demo of the portable GNU/Linux, the student knows how the

router works and knows the basic of development of portable router

GNU/Linux.

5. The router can be used to teach and can be used to practice about networking.

5.2 Suggestion

1. DHCP interface in the router can use all netmask.

2. The firewall is provided in the router, so that the router will be more secure.

3. Build interface for iptables rules in order the users can make his own rules.

4. Add the packets in order the router can do dynamic routing.

132

REFERENCES

Aggarwal K.K & Yogesh Singh. 2006. Software Engineering. New Age

International Publisher: Delhi.

Agushinta D & A. Widodo. 2004. Membangun Router Linux Satu Disket Pada

Pentium 133. Proceedings, Komputer dan Sistem Intelijen: 791.

Apple Inc. 2010. Core OS Layer.

http://developer.apple.com/library/ios#documentation/Micellaneous/Conce

ptual/iPhoneOSTechOverview

Gookin Dan. 2007. Programmer's Guide to Ncurses. Wiley: Indiana.

Gunadarma. 1995. Pengantar Analisis dan Perancangan Sistem Terstruktur.

Gunadarma: Jakarta.

Jamie Standboge. 2007. UFW-Uncomplicated Firewall. https://launchpad.net/ufw.

22 July 2011, 00:40WIB.

Ma’sum Zulfikri Ali. 2011. Design of Linux Distribution RouSer as PC Router.

Mansfield Niall. 2004. Practical TCP/IP Mendesain, Menggunakan, dan

Troubleshooting Jaringan TCP/IP di Linux dan Windows. Andi:

Yogyakarta.

Masyarakat Digital Gotong Royong. 2006. Pengantar Sistem Operasi Komputer:

Plus Ilustrasi Kernel Linux. MDGR. 133

Negus C. 2008. Linux Bible. Wiley: Indiana.

Netfiler Core Team. 2010. The netfilter.org “iptables” Project. 1 hlm.

http://www.netfilter.org/projects/iptables/, 22 July 2011, 00:31WIB.

Pressman RS. 2005. Software Engineering. McGraw-Hill: New York.

Richard Stallman. 2007. Linux and GNU Project. 1 hlm.

http://www.gnu.org/gnu/linux-and-gnu.html. 22 July 2011. 00:31WIB.

Rocco Stanzione. 2008. Firewall.

https://help.ubuntu.com/8.04/serverguide/C/firewall.html. 22 July 2011,

00:43 WIB.

Rusty Russel. 2000. Linux IPCHAINS-HOWTO.

http://www.faqs.org/docs/Linux-HOWTO/IPCHAINS-HOWTO.html. 22

July 2011. 00:31 WIB.

Saxena Sunil. 2010. Meego Architecture Layer View.

https://meego.com/developers/meego-architecture-layer-view. 6th

September 2011.11:34 WIB.

Silberschatz A, P.B. Galvin, & G.Gagne. 2005. Operating Systems Concept.

Willey: Indiana.

Sofana Iwan. 2009. Cisco CCNA dan Jaringan Komputer. Informatika: Bandung.

Sopandi Dede. 2008. Jaringan Komputer. Informatika: Bandung. 134

Stallings W. 2008. Operating Systems: Internals and design principles. Prentice

Hall: Amsterdam.

Sukmaji A & Rianto. 2008. Jaringan Komputer. Penerbit Andi: Yogyakarta.

Syafii M. 2005. Tips dan Trik Linux. Penerbit Andi: Yogyakarta.

Syamsudin M. 2010. 60 Menit Belajar Script Shell. Penerbit Andi: Yogyakarta.

Tomas M. 2011. Linux Live. http://www.linux-live.org. 6th September 2011.

11:32 WIB

Tanenbaum A S. 2006. Operating Systems Design and Implementation, Third

Edition. Prentice Hall: Amsterdam.

Yani A & F Hafiarni. 2005. Jaringan Internet dengan Linux Router Project Leaf

Bearing. Elex Media Komputindo: Jakarta

Yuliardi R. 2003. Bash Scriping Untuk Administrasi Sistem Linux. Elex Media

Komputindo: Jakarta.

Wahid Fathul. 2005. Kamus Istilah Teknologi Informasi. Penerbit Andi:

Yogyakarta

1

1

Feedback (3) Student

The router has been tested to the user in seminar on Monday July 25th 2011. The total of attendances is 18 persons. They are the students of State Islamic University

Jakarta. They said that now they know the function of router, how the router works, and about developing operating system as a router. They know how the router works by topology that was demo. The developing of router GNU/Linux is known by tools that were presented in seminar and they understand about kernel linux.

September 2011