Monday, June 1, 2009

WWW, Open Source in Nepal and the 3rd World

I am diverting from my regular technical articles regarding operating systems and softwares to a different topic. This article represents the general aspect of the internet services provided in Nepal and also gives general information of my country.

The Internet is making the world smaller, that's the latest buzz we hear everyday. A day never goes and passes by without the mention of the word "GOOGLE". Everybody around the world seems to be bracing social networking such as Facebook, Orkut, Bebo or Myspace.

However, to a 3rd world country like Nepal, does it really matter?

Let me brief the audience about Nepal in a few sentences.

Nepal is a land locked country and home place of natural beauty. The northern Himalayan range is covered with snow over the year where the highest peak of the world, the Mount Everest, stands tall at 29029 feet. The middle Hill range is surrounded and covered by beautiful mountains, high hill peaks, valleys and lakes. Nepal's total area coverage is 147,000 square meters. Natural resources like lakes and rivers give Nepal the advantage and edge for producing hydro electricity.

Nepal has a huge potential of hydro power that comes to about 83,000 MW out of which 43,000 MW is economically viable.

According to statistics, 5000 megawatts (MW) of power can serve 5 million average homes. If we consider that the average household in Nepal has 6 persons, then 5000 MW of energy can serve a population of 28 million. That is roughly equal to the population of Nepal which is approximately 28 million.

We will have a surplus of 38,000 MW of hydro power! This surplus energy can be exported and utilized in different sectors including technology, education, health care, manufacturing, etc. In fact, Water to Nepal is what Oil is to Iraq!

To the dismay of the reader, which is sad but true, however only about 700 MW is currently being utilized! That is less than 2% of the total potential hydro power energy that Nepal can produce!

The point that I am trying to make is that more could be done to tap this vast amount of hydro power out of which a fraction can be invested in building high speed multiple fiber optical lines connecting Nepal to the rest of the Internet.

Remember that we are sandwiched between China and India which are the fasting growing economical countries in the world. They both have superior technical infrastructures and high speed fiber optical carriers. By sharing borders with both of them (China 1,236 km, India 1,690 km), this is in fact an advantage for Nepal in terms of getting fiber optical data carriers from them.

Map Of Nepal

The 3 geographical divisions of Nepal. Courtesy of www.nepalvista.com

Nepal is also a very diverse country with more more than 100 caste/ethnic groups speaking more than 75 different dialects with the total population being at 28 million at 2006.

The preliminary estimate of per capita GDP is just U.S. $ 315. Thirty-one (31%) percent of the population live below the absolute poverty line. The GDP growth is a minimal 2.3 % but this too is overshadowed by the population growth at 2.25 %.

Due to this factors, it's hardly surprising that Nepal rank near the bottom of virtually every measure of development.

The active Internet users in Nepal is only about 175,000 with approximately 9 local ISPs. Now if we compare 175,000 internet users with the population of 28 million, that's less than 1%. Therefore, I believe that Information Technology (IT) has more room and a bright future in Nepal.

With only negative data and values, does Nepal have a future in the internet? Or can Nepal benefit from the internet and the world wide web? Yes it can. How? Effective governance, efficient use of man power and by using open source technologies to power the Internet for Nepal.

Due to various political events during the past 2 years, a lot of the internal level of fighting inside the country has resided. This is given new hopes for peace and prosperity to the people of Nepal. I don't think that matters will get any worse from here onwards because we have already faced the worst! Nepal deserves better times and better growth in the coming years.

Map Of Nepal 2

Major Towns in Nepal having internet connectivity. Courtesy of www.nepalvista.com


Being a third world country brings it's own share of technical burdens. High speed fiber optical lines generally do not exists in 3rd world countries like Nepal. Or simply, getting internet bandwidth via underground fiber optical carriers is not economically viable to private ISPs. The government owned Internet Service Provider despite having fiber optical data connections is almost non existent or simply is not utilizing it's full capacities.

Therefore, satellites had and have been playing a major role for relaying international bandwidth from Nepal to the rest of the Internet network.

Below is a description of how many third world countries like Nepal get access to the Internet.

There are over 300 communications satellites in the geostationary orbit, directly above the equator, spaced typically 2 or 3 degrees apart. Because they orbit the earth at the same speed and in the same direction as the earth rotates they remain fixed in the sky and we can use a fixed pointing Very Small Aperture Terminal (VSAT) to communicate.

For Internet traffic, we use a geosynchronous based satellite for communication. A geosynchronous satellite is a satellite whose orbital track on the Earth repeats regularly over points on the Earth over time.

If such a satellite's orbit lies over the equator, it is called a geostationary satellite. The orbits of the satellites are known as the geosynchronous orbit and geostationary orbit.

When satellites communicate with each other, the portion of the radioelectric phantom that they will use determines practically everything: the capacity of the system, the power and the price. The different wavelengths have different properties. The long wavelengths can cross great distances and cross obstacles.

The most common frequencies used for Satellite based internet networks are C band (3700-6425 MHz) and Ku band (10,700-12,7500 MHz). A simple diagram illustrating this satellite setup is shown below

VSAT Satellite Setup

Typical ISP Internet Network Operation Setup via satellite

Actually satellite based internet services are not really bad or unreliable. In fact, it is very stable and reliable too. Bandwidth speeds up to 100 mbps (downlink) and 50 mbps (uplink) can be achieved using this types of Satellite mediums.

The 1st major disadvantage of using satellites (VSAT) is a result of their high altitude: radio signals take approximately 0.25 of a second to reach and return from the satellite, resulting in a small but significant signal delay. This delay increases the difficulty of telephone conversation and reduces the performance of common network protocols such as TCP/IP, but does not present a problem with non-interactive systems such as television broadcasts.

This is also the reason why we get to see the minimum latency of 500 ms while connecting to international networks.

The 2nd major disadvantage of using satellites (VSAT) is the high price for international bandwidth resulting in significant bandwidth prices for the average internet user.

Besides the necessary satellite equipments such as the satellite modem, DVB modem, router and switch, all other servers providing critical internet services are based on Open Source software which of course are stable, secure, flexible and most importantly FREE.

Moving on, you can see that we need a minimum of 7 Linux/Unix servers. This comprises the following:

(1.) Bandwidth Manager (B/W Mgr) running on Linux and using HTB.

This server running with a Linux kernel greater than 2.4.20 will act as bandwidth shaper which will shape the bandwidth of clients. The shaping is done using special tools from the iproute2 package which consists of the program tc (traffic controller).
It uses the HTB queuing technique to shape, rate-limit, priorizing and share the
bandwidth. In addition to HTB, the Mangle table of IPTABLES are used to for mangling packets. It is used to change the TOS, TTL and MARK values of IP packets. This machine will have at least 3 network interfaces.

The other main purpose of this server is to provide Firewall services in addition with the router to protect the whole network behind it.

(2.) FreeRadius and Database server running on Linux/FreeBSD for authentication and accounting purposes.

This server will be running the software or service called FreeRadius which will be used for Authentication and Accounting purposes for various types of network access.

In addition to authentication, an SQL database (Mysql, PostgreSQL, Oracle) will store all information including traffic volume, time volume, account types and all other tables used for accounting purposes.

In simple terms, for an ISP, this server provides the basis for accounting and billing of it's customers.

(3.) Bind DNS server running on Solaris/FreeBSD for providing Domain Name Services.

DNS is the service which translates a hostname (www.example.com) to an IP address (123.123.123.123).

An IP address (Internet Protocol address) is a unique address that computers and network devices use in order to identify and communicate with each other on a network.

An IP address, uses 32-bit values, usually represented in dotted-decimal notation (four numbers, each ranging from 0 to 255, separated by dots, e.g. 123.123.123.123).

Without DNS, in order to browse a website such as www.cnn.com, we would have to type it's computer's IP address. Now imagine the consequences without having DNS service.

Or Simply, if DNS do not exists, 98% of all networks connected to the Internet would be impossible to be accessed! Or we will have keep a very very long list mapping the IP address to each of the individual computer connected to the Internet. To be exact, we will have to keep an IP address book with 120 million IP addresses.

Similarly, reverse DNS maps an IP address to it's hostname. Reverse DNS is mainly used by Email systems for anti-spamming purposes.

(4.) Postfix/Qmail SMTP Server running on FreeBSD offering SMTP, IMAP, POP services.

It is believed that 70 % of all internet users uses it for Email purposes. A mail transfer agent or MTA is a computer program or software agent that transfers electronic mail messages from one computer to another.

A MTA speaks the SMTP protocol is used by all email systems on the internet to interact with different mail systems. Therefore, to provide email services, Unix systems since the 1970s have deployed the software called Sendmail. However, due to many security exploits in the Sendmail MTA, other MTAs such Postfix or Exim are deployed these days. The Qmail MTA also has a large installation base.

(5.) Squid Proxy Server running on Solaris/FreeBSD for caching web traffic for improved performance and bandwidth savings.

A proxy server is a machine which services the web requests of its clients by forwarding requests to other servers. A proxy server may service requests without contacting the specified server, by retrieving content saved from a previous request, made by the same client or even other clients. This is also called caching.

Caching proxies keep local copies of frequently requested resources, allowing large organizations and ISPs to significantly reduce their upstream and downlink bandwidth usage and cost, while at the same time increasing performance significantly.
In reality, a proxy server can save as much as 30-50% of the actual bandwidth utilization and costs by serving content from it's cache and it's siblings.

(6.) PPPoE Server running on FreeBSD for authenticating PPPoE clients and PPPoE traffic control.

PPPoE, Point-to-Point Protocol over Ethernet, is a network protocol for encapsulating PPP frames inside Ethernet frames.
Ethernet networks are packet-based and have no concept of a connection or circuit. But using PPPoE, users can virtually "dial" from one machine to another over an Ethernet network, establish a point to point connection between them and then transport data packets over the connection.
PPPoE is also a specification for connecting multiple computer users on an Ethernet local area network to a remote site through common customer premises equipment, which could be a SM modem, ADSL modem, Cable modem or simply a cable line distributed from our Cable network.
To handle PPPoE authentication requests, shape bandwidth for PPPoE clients and to route it's traffic, we will need this PPPoE server.

(7.) Web Server for providing web hosting services and control panel running on Solaris/FreeBSD/Linux.

This web hosting server will provide clients the necessary tools to host their own websites accessible via the World Wide Web (WWW).

Typically, once their choice of domain names (www.thisismysite.com) are registered, clients are given a certain amount of storage on the web hosting server and a control panel to manage various services like web pages, FTP, Email, etc. For an e-commerce site, Secure Sockets Layer (SSL) is required which provides secure communications using cryptographic protocols.

We normally use the term LAMP (Linux, Apache,Mysql,PHP) or SAMP (Solaris, Apache, Mysql,PHP) or FAMP (FreeBSD, Apache, Mysql, PHP) as the platform of choice for the development and deployment of high performance web applications. These are minimum features any web developer wants supported on his/her web hosting platform.

We will go through the details of setting up each of these servers in future articles.

-------------------------------------------------------------------------------------

The 7 servers mentioned above are the absolute minimum setup required for a small ISP. If the customer base grows, there will be a need to add more hardware devices and servers. In fact, for an ISP serving 30,000 customers, the number of different servers required range anywhere from 50 - 600.

Regarding the server's hardware, a refurbished Dell GX-270 machine costs U.S. $250 and an entry level Dell SC-430 costs about U.S.$ 599. Besides that, all we need is Free Open Source software and a few good system administrators to utilize them.

Now imagine a middle size ISP running 500 servers based on Open Source operating systems and softwares. If those 500 servers were running Windows based operating systems which costs in the range of $999 - $3,999 and multiply that amount by 500, you can actually see the total costs sky rocketing.

Even on the 7 servers setup in the diagram above, we are already saving a minimum of U.S.$ 7,000.

And we still have not added the extra costs for other softwares besides the operating systems!!

Frankly speaking, open source softwares can fulfill 95 % of the total demands for an ISP with the remaining 5 % being fulfilled by Windows based products.

Given that the government and private parties can work out a solution mutually, then I can foresee the internet user base grow from the current 175,000 mark to 2,000,000 within a period of 5 years.

That is because the Nepali government have the capacity to deliver Dial-UP and DSL internet services up to 1,000,000 clients. With help from neighboring countries, a high speed fiber optical internet gateway has already been installed. Now if the government decides to share this fiber optical line with the private ISPs, imagine the speed improvements and the reduced internet costs! The private ISPs already have stable wireless networks and cable networks just to mention a few.

So I believe that the 2 million internet users mark can be achieve easily. The only remaining part is to educate our citizens regarding information technology. And I am sure it will start with introducing them to the world of open source.

How will Nepal actually benefit from the Internet and it's vast amount of resources. The 2 most importance sectors are E-commerce and Education.

(1.) E-commerce

Nepal produces one of the best handmade carpets in the world. The carpets are hand-woven first, then are, washed, trimmed, stretched and fine-trimmed for finishing by hand. Currently most of those carpets are exported to European and North American countries using a very traditional and tedious method.

The same goes for handicrafts, garments and other exports. Now, if the manufacturer deploys a small IT department to provide a website providing various information of it's products and a secure site for e-commerce, it will improve the speed of the transaction tremendously. This will also guarantee the overall quality and cheaper prices for the products because they clients will be purchasing directly from the manufacturer.

Introducing e-commerce in this sector will go a long way to benefit this under estimated economy.

(2.) Education

Education is the ultimate tool for the development of any country. In fact, I believe, that education is directly proportional to the economy and development of a country given it follows healthy standard. Take for example, Singapore, which places Education and Healthcare in the topmost priority. Since gaining it's independence in 1965, it achieved it's status from being a third world country to being the most advanced and dynamic country in the world within a single generation. To be exact, it took Singapore just 26 years to develop from a village to become the most advanced financial hub in the world! If there is any country where Nepal can learn and get inspired, then it's going to be Singapore.

In the past fifty years in Nepal, there has been a dramatic expansion of educational facilities. Beginning with about ten thousand students in 1951, there now are approximately 5.5 million students.

However, there are many defects, problems and challenges with the education system in Nepal. Educational management, it's qualities and it's access are some of the critical issues haunting Nepal. There is too much social disparities based on gender, ethnicity, economic class, etc. Primary resources like books, proper classrooms, properly trained teachers are always below required level.

And most important of all, political parties should stop the politics practiced in schools and stop the poisoning of our education system with unwanted politics.

I believe that providing a couple of internet connected computers in every school will give some life to our education system. This way, students will get access to all kinds of study materials, learn about different education cultures and approaches, apply for online study courses among other things and of course make new acquaintances.

It should also be noted that 50% of the population in Nepal falls under than age of 30 years. In fact, this will be the next generation who will drive and lead this gorgeous and beautiful country. Therefore, providing quality education should be the number 1 priority.

We have the capabilities to deliver internet content even to remote areas and villages in different parts of the country. It's just that it's impractical and impossible financially for private business ventures to actually setup a internet hub in those places.

However, this can be changed if private ISPs get the support from the government and international donor agencies.

We have a 800,000 workforce working abroad, some working as Gurkhas in the British army and the Singaporean police force while others are contributing to the man power in the Gulf and Malaysia. They contribute a total remittance value worth around U.S. $ 1 billion.

If you compare that amount to the government's yearly budget which is about US$1.2 billion, they will be on par with each other!

If we can utilized this capital, promote tourism and manage our water resources intelligently, then, I believe that every family in Nepal will get internet connectivity within a single generation.

Getting internet content to these homes will of course be powered by Open Source technology.

Finally, I will end this article saying that Nepal is not a POOR country and she can definitely become fully independent herself. We just don't seem to realize that we are a chicken hen which can actually lay golden eggs if she wants!

Jai Nepal. Long Live Nepal!

No comments: