![]() |
Display image of
|
Stephen Fry
"Education is the sum of what students teach each other in between lectures and seminars. " - Stephen Fry
Sunday, 9 December 2012
Betteridge's law of headlines
I dont have much to add here but the Wikipedia article is well worth a read http://en.wikipedia.org/wiki/Betteridge's_law_of_headlines
Thursday, 29 November 2012
LaTeX - The IEEE Surveys & Tutorials Way (Pt 2)
This the second article in a series on using the IEEEtrans and LaTeX to form a survey suitable for submission to IEEE surveys & tutorials
Yesterday's article made use of the bare bones template for journals provided by IEEEtrans, now we are going to look at the requirements of a survey in IEEE surveys & tutorials
The focus of this article is a survey not a tutorial, therefore all of the points below are regarding surveys and not necessary tutorials.
IEEE Communications Survey & Tutorials is a free online journal published by the IEEE Communications Society. Article appear in both the IEEE Xplore Electronic Library and the IEEE ComSoc Digital Library
To finding existing surveys to read and use as examples, you can sign up to a guest account with IEEE ComSoc Digital Library which will give you free access, at the time of writting, the IEEE ComSoc Digital Library website was down, so I've not yet been able to verify this.
IEEE Communications Surveys and Tutorials is targeted for the generalist throughout the field of communications and communications networking. Intended readers include those involved in research, development, deployment, or instruction in fields related to communications.
All surveys should be tutorial in nature and should be written in a style comprehensible to readers outside the speciality of the article.
Typically, mathematical equations should be kept to a minimum, and not be used unless they are vital to the presentation. Articles intended to instruct in a mathematical area should be presented at a level comprehensible to readers with appropriate backgrounds, and the appropriate background should be carefully delineated in the introductory section of the article.
The term survey, as applied here, is defined to mean a survey of the literature. A survey article in IEEE Communications Surveys & Tutorials should provide a comprehensive review of developments in a selected area, covering its development from its inception to its current state and beyond, and illustrating its development though liberal citations from the literature. Such citations would naturally lead to an authoritative and comprehensive bibliography. The objective is to provide the reader with a sense of the history, development, and future of the topic area, including its interactions with other areas, and enough information to comprehend the development and identify the major players.
As an example, the article "A survey of markup languages" might discuss a number of markup languages, such as WML, XML, HTML, CHTML, and voiceXML. The article might define the term "markup language" and describe some general features and objectives by way of introduction. The article might then provide a time-line of events leading to the advent of markup languages, citing major milestones and breakthroughs. From there, the article might describe the markup languages in chronological order, showing how previous languages developed from previous ones through liberal citations to the literature. The article might conclude by giving the author's well-thought-out opinions on the future.
References must be numbered sequentially, not alphabetically. The basic reference format is: [#] L. Brakmo and L. Peterson, " TCP Vegas: End to End Congestion Avoidance on a Global Internet," IEEE JSAC, vol. 13, no. 8, Oct. 1995, pp. 1465-80.
Authors must clearly state the category of the article in the abstract and again in the introductory section and also clearly state the scope of the article. For example, there must be a statement of the form "This article surveys the literature over the period 1990-2001 on turbo codes as they apply to wireless communications."
Authors are encouraged to consider inclusion of multimedia materials in cases where such material would substantially improve the value of the article to the reader. HOW ???
Figures and tables should be used liberally.
There are no limits on paper length, number of figures, references, etc.
Required formats for electronic submission is PDF.
Submit survey's using the LaTex structure. Include the compiled pdf, figures (as eps files with fonts embedded), bios and photos in the final article, keywords, and abstract
(Note: For the best presentation of your article's entry in IEEE Xplore, do not include equations in the abstract.)
Once the survey is complete it's submitted via the ManuscriptCentral website
Yesterday's article made use of the bare bones template for journals provided by IEEEtrans, now we are going to look at the requirements of a survey in IEEE surveys & tutorials
IEEE Surveys & Tutorials
The following information is largely taken from the Information for Authors page, on the IEEE Communications Surveys & Tutorials site.
The focus of this article is a survey not a tutorial, therefore all of the points below are regarding surveys and not necessary tutorials. IEEE Communications Survey & Tutorials is a free online journal published by the IEEE Communications Society. Article appear in both the IEEE Xplore Electronic Library and the IEEE ComSoc Digital Library
To finding existing surveys to read and use as examples, you can sign up to a guest account with IEEE ComSoc Digital Library which will give you free access, at the time of writting, the IEEE ComSoc Digital Library website was down, so I've not yet been able to verify this.
IEEE Communications Surveys and Tutorials is targeted for the generalist throughout the field of communications and communications networking. Intended readers include those involved in research, development, deployment, or instruction in fields related to communications.
All surveys should be tutorial in nature and should be written in a style comprehensible to readers outside the speciality of the article.
Typically, mathematical equations should be kept to a minimum, and not be used unless they are vital to the presentation. Articles intended to instruct in a mathematical area should be presented at a level comprehensible to readers with appropriate backgrounds, and the appropriate background should be carefully delineated in the introductory section of the article.
The term survey, as applied here, is defined to mean a survey of the literature. A survey article in IEEE Communications Surveys & Tutorials should provide a comprehensive review of developments in a selected area, covering its development from its inception to its current state and beyond, and illustrating its development though liberal citations from the literature. Such citations would naturally lead to an authoritative and comprehensive bibliography. The objective is to provide the reader with a sense of the history, development, and future of the topic area, including its interactions with other areas, and enough information to comprehend the development and identify the major players.
As an example, the article "A survey of markup languages" might discuss a number of markup languages, such as WML, XML, HTML, CHTML, and voiceXML. The article might define the term "markup language" and describe some general features and objectives by way of introduction. The article might then provide a time-line of events leading to the advent of markup languages, citing major milestones and breakthroughs. From there, the article might describe the markup languages in chronological order, showing how previous languages developed from previous ones through liberal citations to the literature. The article might conclude by giving the author's well-thought-out opinions on the future.
References must be numbered sequentially, not alphabetically. The basic reference format is: [#] L. Brakmo and L. Peterson, " TCP Vegas: End to End Congestion Avoidance on a Global Internet," IEEE JSAC, vol. 13, no. 8, Oct. 1995, pp. 1465-80.
Authors must clearly state the category of the article in the abstract and again in the introductory section and also clearly state the scope of the article. For example, there must be a statement of the form "This article surveys the literature over the period 1990-2001 on turbo codes as they apply to wireless communications."
Authors are encouraged to consider inclusion of multimedia materials in cases where such material would substantially improve the value of the article to the reader. HOW ???
Figures and tables should be used liberally.
There are no limits on paper length, number of figures, references, etc.
Required formats for electronic submission is PDF.
Submit survey's using the LaTex structure. Include the compiled pdf, figures (as eps files with fonts embedded), bios and photos in the final article, keywords, and abstract
(Note: For the best presentation of your article's entry in IEEE Xplore, do not include equations in the abstract.)
Once the survey is complete it's submitted via the ManuscriptCentral website
Wednesday, 28 November 2012
Ocaml 2 HTML
As I'm often adding OCaml code to blog posts I really wanted to find an automatic way to add syntax highlighting. The first solution that I have found is caml2html but I'm still looking for something better ... suggestions welcome
System programming in OCaml - Part 1
This series of articles will follow my journey through "Unix system programming in OCaml", available as a pdf here. After this series, I hope to move onto a series on Mirage system programming in OCaml and working with Signposts (a framework for managing end-to-end connectivity between devices using DNS infrastructure for signalling)
NOTE that Unix and Sys can overwrite some of the functions in the Pervasive module, so to access a function from the Pervasive module you need to add Pervasives. in front of the function call.
When using ocamlc to compile OCaml programs that made use of Unix, you need to pass unix.cma to the compiler e.g.
$ ocamlc unix.cma hello.ml -o hello
The same is not true of sys.cma
Now we are going to consider 2 different ways of passing information from your terminal to your ocaml program
1) Passing the information as arguments to the executable. For this we are going to use Sys.argv which will return a string array of arguments passed to the program. The first index of the argument array that we use here is 1, this is because the 0th element in the array is the command used to call the program. Consider the following simple example:
open Unix;;
let env = environment();;
for i=0 to (Array.length env) -1 do
print_string env.(i);
print_newline);
done;
Don't forget then when you compile this, you need to add unix.cma to the command as we are making use of the Unix library
2b ) We can also lookup the values of environment variables using the Sys.getenv (or Unix.getenv) functions that takes a variable name and returns the value associated with it
open Sys;;
let var = argv.(1);;
print_string (getenv var)
Exception Unix_error of error * string * string
The first argument is the error code, the second argument is the name of the system call that raised the error and third argument identifies the object on which the error was called.
If an exception reaches the top-level then the program will halt. The Unix module provides a function for clearly describing exceptions. We can make 2a use this function as follows:
open Unix;;
let prog () =
let env = environment();;
for i=0 to (Array.length env) -1 do
print_string env.(i);
print_newline);
done;
done;
handle_unix_error prog ();;
Introducing the Sys and Unix
The modules that give access to the system in OCaml are:- Sys - functions common to all OS's that run OCaml
- Unix - functions specific to unix
NOTE that Unix and Sys can overwrite some of the functions in the Pervasive module, so to access a function from the Pervasive module you need to add Pervasives. in front of the function call.
When using ocamlc to compile OCaml programs that made use of Unix, you need to pass unix.cma to the compiler e.g.
$ ocamlc unix.cma hello.ml -o hello
The same is not true of sys.cma
PASSING INFORMATION TO YOUR PROGRAM
Now we are going to consider 2 different ways of passing information from your terminal to your ocaml program1) Passing the information as arguments to the executable. For this we are going to use Sys.argv which will return a string array of arguments passed to the program. The first index of the argument array that we use here is 1, this is because the 0th element in the array is the command used to call the program. Consider the following simple example:
open Sys;;
print_string argv.(1)
print_string argv.(1)
Now provided that at least one argument is passed to the program, this argument will be printed. We can now extend this program, to print the number of arguments and then exactly what the user will have just entered
open Sys;;
let args = Array.length argv;;
print_int args ;;
print_newline ();;
for i=0 to args-1 do
print_string argv.(i);
print_char ' ';
done;
2a ) Passing information using the environment variables, this can be fetched from within the OCaml programing using Sys.enviroment, this will return as array of environment variableslet args = Array.length argv;;
print_int args ;;
print_newline ();;
for i=0 to args-1 do
print_string argv.(i);
print_char ' ';
done;
open Unix;;
let env = environment();;
for i=0 to (Array.length env) -1 do
print_string env.(i);
print_newline);
done;
Don't forget then when you compile this, you need to add unix.cma to the command as we are making use of the Unix library
2b ) We can also lookup the values of environment variables using the Sys.getenv (or Unix.getenv) functions that takes a variable name and returns the value associated with it
open Sys;;
let var = argv.(1);;
print_string (getenv var)
Exceptions
Unless otherwise stated in the documentation, all function in the Unix module raise the exception Unix_error.Exception Unix_error of error * string * string
The first argument is the error code, the second argument is the name of the system call that raised the error and third argument identifies the object on which the error was called.
If an exception reaches the top-level then the program will halt. The Unix module provides a function for clearly describing exceptions. We can make 2a use this function as follows:
open Unix;;
let prog () =
let env = environment();;
for i=0 to (Array.length env) -1 do
print_string env.(i);
print_newline);
done;
done;
handle_unix_error prog ();;
LaTeX - The IEEE Surveys & Tutorials Way (Pt 1)
This article aims to give an overview of setting out a survey for submission to an IEEE Journal.
For this article, I will be using ubuntu 12.10, 32 Bit and Vim as my text editor.
IEEEtran is the offical LaTeX class for authors of IEEE transaction journals and coferences
My primary source of information for this article is the latest version of the IEEEtran package IEEEtrans director. Other helpful information is available here.
INSTALLATION & SETUP
The IEEEtrans directory (as linked above) includes a "bare bones example of a IEEE journal, called bare_jrnl.tex. We will now use the IEEEtran LaTeX class to compile this .tex file into a pdf file.
To find out the location that we need to place IEEEtran.cls in, use:
$ locate article.cls
For me, the first location returned is /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
I now need to move the IEEEtran.cls that I download into the same directory as article.cls. So move the the IEEEtrans directory and execute:
$ sudo cp IEEEtran.cls <location-of-article.cls>
You can now tell Tex about this new LaTeX class using:
$ sudo texthash
Latex is already installed on my system but to allow us of the IEEEtran class, you may also need:
$
If you get an error of the form:
For this article, I will be using ubuntu 12.10, 32 Bit and Vim as my text editor.
IEEEtran is the offical LaTeX class for authors of IEEE transaction journals and coferences
My primary source of information for this article is the latest version of the IEEEtran package IEEEtrans director. Other helpful information is available here.
INSTALLATION & SETUP
![]() |
| The essential book on LaTeX |
To find out the location that we need to place IEEEtran.cls in, use:
$ locate article.cls
For me, the first location returned is /usr/share/texlive/texmf-dist/tex/latex/base/article.cls
I now need to move the IEEEtran.cls that I download into the same directory as article.cls. So move the the IEEEtrans directory and execute:
$ sudo cp IEEEtran.cls <location-of-article.cls>
You can now tell Tex about this new LaTeX class using:
$ sudo texthash
Latex is already installed on my system but to allow us of the IEEEtran class, you may also need:
$
sudo apt-get install texlive-fonts-recommendedIf you get an error of the form:
Font OT1/ptm/m/n/9=ptmr7t at 9.0pt not loadable: Metric (TFM) file not found
Then it is likely that you need to install the texlive-fonts-recommended package.
Now we are going to compile the bare_jrnl.tex, by moving to its directory and excauting:
$ latex bare_jrnl.tex
You can now view the outputted document using:
$ xdvi bare_jrnl
NEXT STEPS
Now you have a bare bones copy of your paper, you can customize it to meet your specific requirements and add the content of your paper. I will look at this in more detail tomorrow. is the Information for Authors
Thursday, 8 November 2012
Signposts - The installation (DRAFT)
This is a guide to the installation of Signpost on a 64 bit edition of ubuntu 12.04.
The steps of the installation process are:
1 install OCaml
2 install and set up OPAM
3 use OPAM to install the latest OCaml compiler and switch to this new compiler version
4 Add the remote repositories required for signposts to OPAM
5 Install the libraries required using OPAM
6 Download the code for signpost
7 Set up vswitch
8 Generate and place keys
9 Install iodine and set up password
10 Run Signposts
1 INSTALLING OCAML
OCaml 3.12.1 is available from the ubuntu repositories, this is not a up to date version of the compiler but it will do to bootstrap the process.
$ sudo apt-get install ocaml
2 INSTALLING & SET UP OPAM
OPAM is a useful package manager for OCaml code such as signposts. To download the initialize:
$ git clone git://github.com/OCamlPro/opam.git
$ cd opam && ./configure && make
$ sudo make install
$ opam init
$ eval 'opam config -env'
$ echo "$ which opam && eval 'opam config -env'" >> ~/.profile
3 SWITCH TO LATEST OCAML COMPILER
To see the compiler versions avaliable on OPAM use:
$ opam switch -list
To see the version of the OCaml compiler that is currently in use, use
$ ocaml -version
Then switch the OCaml 4.00.1 using
$ opam switch 4.00.1
$ eval 'opam config -env'
This process may take quite a while. You can now check the version of OCaml again, it it should show that the PATH is now pointing towards a new OCaml compiler version
4 REMOTE REPOSITORIES
To view the current remote respositories that OPAM is using, enter:
$ opam remote -list
This should give you the following output:
[curl] default http://opam.ocamlpro.com
To add the remote respositories required for signposts enter the following:
$ opam remote -kind git -add dev https://github.com/mirage/opam-repo-dev.git
$ opam remote -kind git -add mirage git://github.com/mirage/opam-repo.git
Checking the current remote repositories as before, now returns
[git] mirage git://github.com/mirage/opam-repo.git
[git] mirage-dev git://github.com/mirage/opam-repo-dev.git
[curl] default http://opam.ocamlpro.com
5 INSTALL LIBRARIES
To install the required packages from OPAM and the package manager use:
$ opam install lwt cstruct mirage mirage-net ocamlgraph uri rpc oasis ssl
$ sudo apt-get install libnfnetlink-dev libnl-3-dev libnl-cli-3-dev libnl-genl-3-dev libnl-nf-3-dev libnl-route-3-dev
Some the packages here are not the most upto date, to get the updates
$ git clone https://github.com/crotsos/mirage-platform.git
$ cd mirage-platform/
$ make all install
$ git clone https://github.com/crotsos/mirage-net.git
$ cd mirage-net/
$ make all install
$ git clone https://github.com/crotsos/ocaml-openflow.git
$ cd ocaml-openflow/
$ make all install
$ git clone https://github.com/crotsos/ocaml-dns.git
$ cd ocaml-dns/
$ make all install
$ git clone https://github.com/crotsos/ocaml-crypto-keys.git
$ cd ocaml-crypto-keys/
$ make all install
In the future, you update your packages using:
$ opam update
$ opam upgrade
6 GET SIGNPOST CODE
To download a copy of the Signpost Code using:
$ git clone https://github.com/crotos/signpostd
$ cd signpostd
$ make
7 VSWITCH
$ sudo wget https://www.dropbox.com/s/4n0hwgoycm3838g/openvswitch_mod.ko?dl=1 -O /lib/modules/`uname -r`/extra/openvswitch_mod.ko
$ sudo wget https://www.dropbox.com/s/f7ivv8upe0bfurf/brcompat_mod.ko?dl=1 -O /lib/modules/`uname -r`/extra/brcompat_mod.ko
$ sudo depmod -a
$ modprobe openvswitch_mod
$ sudo modprobe brocompat_mod
$ sudo ovs-vsctl add-br br0
$ sudo ovs-vsctl add-port br0 eth0
$ sudo ifconfig eth0 up
$ sudo ifconfig br0 up
$ sudo ovs-vsctl set-fail-mode br0 standalone
$ sudo ovs-vsctl set-controller br0 tcp:localhost
$ sudo ln -s /etc/init.d/openvswitch-switch /etc/rcS.d/S10openvswitch-switch
$ sudo chmod 777 /etc/network/interfaces
$ echo "pre-up ifconfig eth0 up" >> /etc/network/interfaces
8 KEY GENERATION
For the each client we wish to add to the signposts personal cloud we need to generate a private and associated key. To generate these key we will be using onpenssl. On each client we need to generate the private key and place it into the signposd/conf directory when we need to generate the public key from this and place on the server un signpostd/conf/authorized_keys
on the client
$ openssl genrsa -out conf/signpost.pem 2046
and on the server
$ openssl rsa -in conf/signpost.pem -pubout -out conf/authorized_keys/clientname.pub
9 IODINE
To install iodine from the ubuntu package manager
sudo apt-get install iodine
OpenWrt & Linksys WRT54GL Router - Meet & Greet
OpenWrt is a firmware for embedded devices used to router traffic. In this case we will be considering the use of OpenWRT in domestic routers such as the test hardware Linksys Wireless-G Broadband Router WRT54GL v1.1.
OpenWrt is Linux based so it included the Linux kernel as well as BusyBox. It has a package manager called opkg (similar to apt in ubuntu).
Before installing OpenWrt on a router, you must enable that the device is OpenWrt compatible, you can do this my ensuring the device is listed here
HARDWARE SPECIFICATIONS
Before exploring OpenWrt, We are going to take a closer look at the hardware available:
CPU: Broadcom BCM5352 @ 200 MHz
RAM: 16 MB
Flash Memory: 4 MB
QUICK CHECK - to ensure the hardware is what we believe it to be, we can check the prefix of the serial number using the information here
This hardware is fully supported by OpenWrt, but there have been issues with the limited amount of flash memory:
http://wiki.openwrt.org/toh/linksys/wrt54g#hardware
https://forum.openwrt.org/viewtopic.php?id=28223
The solution to this issues, has also been documented. This is to use OpenWrt 8.09 r14511 (code name "kamikaze") instead of the most up-to date version OpenWrt 10.03.1-rc6 (code name "backfire")
PICKING A VERSION
To start with we are going to install OpenWrt in Linksys Web GUI. There are many versions of OpenWrt available, so we need to identify to first version we will try:
INSTALLATION
Step 1: Download http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin to my Downloads directory
Step 2: Plug in router to mains and to computer via ethernet (use port 1 not internet port)
Step 3: Direct the browser to http://192.168.1.1 and log in
Step 4: Navigate to Administation > Firmware update, select openwrt-wrt54g-squashfs.bin and update
ALL IS LOOKING WELL :)
COMMUNICATION VIA WEB GUI
Direct the browser to http://192.168.1.1, log in and your presented with the web interface luci
COMMUNICATION VIA TELNET
The router should now be telnet(able) to 192.168.1.1. To test this:
$ telnet 192.168.1.1
This returns the recipe for KAMIKAZE :)
Now to ensure that tftp is available to prevent bricking, enter:
CONFIGURING
The network configuration is stored in /etc/config/network. The initial contents of this file for our set up is:
The content of the initial configuration file is
#### VLAN configuration
config switch eth0
option vlan0 "0 1 2 3 5*"
option vlan1 "4 5"
#### Loopback configuration
config interface loopback
option ifname "lo"
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
#### LAN configuration
config interface lan
option type bridge
option ifname "eth0.0"
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
#### WAN configuration
config interface wan
option ifname "eth0.1"
option proto dhcp
Once we have edited this file, to make the new configuration take after we need to :
$ /etc/init.d/network restart
SWITCH
The switch section of the above configuration file is responsible for making one peoice of hardware, appear as several independent interfaces. The part of the configuration file which specifies the switch characteristics is:
#### VLAN configuration
config switch eth0
option vlan0 "0 1 2 3 5*"
option vlan1 "4 5"
In the above configuration: The numbers 0-5 represent the port numbers, so VLAN0 includes ports 0 to 5* and VLAN1 includes ports 4 and 5. The * in 5*
indicates the PVID.
As shown in the above diagram, this switch separates the LAN ports and thWAN ports .
INTERFACES
The other statements in the configuration file describe the interfaces. The interfaces are logical networks, for the setting of IP address, routes and other magic.
The 3 interfaces that we have here are named loopback, lan and wan. The physical interfaces associated with these logical interfaces are lo, eth0.0 and eth0.1.
OpenWrt is Linux based so it included the Linux kernel as well as BusyBox. It has a package manager called opkg (similar to apt in ubuntu).
Before installing OpenWrt on a router, you must enable that the device is OpenWrt compatible, you can do this my ensuring the device is listed here
HARDWARE SPECIFICATIONS
Before exploring OpenWrt, We are going to take a closer look at the hardware available:
CPU: Broadcom BCM5352 @ 200 MHz
RAM: 16 MB
Flash Memory: 4 MB
QUICK CHECK - to ensure the hardware is what we believe it to be, we can check the prefix of the serial number using the information here
This hardware is fully supported by OpenWrt, but there have been issues with the limited amount of flash memory:
http://wiki.openwrt.org/toh/linksys/wrt54g#hardware
https://forum.openwrt.org/viewtopic.php?id=28223
The solution to this issues, has also been documented. This is to use OpenWrt 8.09 r14511 (code name "kamikaze") instead of the most up-to date version OpenWrt 10.03.1-rc6 (code name "backfire")
PICKING A VERSION
To start with we are going to install OpenWrt in Linksys Web GUI. There are many versions of OpenWrt available, so we need to identify to first version we will try:
- The OpenWrt version is Kamilaze, due to a bug in backfire and instability of attitude adjustment
- The recommended version is 8.09 within Kamilaze
- The CPU is broadcom so the prefix is bcrm
- For here, i can see the hardware supports both brcm-2.4 and brcm47xx
- The difference between brcm-2.4 and brcm47xx is explained here
- For ease, we will download a image file, this will end with .bin
- If both JFFS2 and SquashFS is available, use SpuashFS images
- Look into the version history to determine with version of 8.09 is best and what is different between kamikaze, backfire and attitude adjustment
INSTALLATION
Step 1: Download http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin to my Downloads directory
Step 2: Plug in router to mains and to computer via ethernet (use port 1 not internet port)
Step 3: Direct the browser to http://192.168.1.1 and log in
Step 4: Navigate to Administation > Firmware update, select openwrt-wrt54g-squashfs.bin and update
ALL IS LOOKING WELL :)
COMMUNICATION VIA WEB GUI
Direct the browser to http://192.168.1.1, log in and your presented with the web interface luci
COMMUNICATION VIA TELNET
The router should now be telnet(able) to 192.168.1.1. To test this:
$ telnet 192.168.1.1
This returns the recipe for KAMIKAZE :)
Now to ensure that tftp is available to prevent bricking, enter:
$ nvram set boot_wait=on $ nvram set boot_time=10 $ nvram commit && reboot
COMMUNICATION VIA SSH
CONFIGURING
The network configuration is stored in /etc/config/network. The initial contents of this file for our set up is:
The content of the initial configuration file is
#### VLAN configuration
config switch eth0
option vlan0 "0 1 2 3 5*"
option vlan1 "4 5"
#### Loopback configuration
config interface loopback
option ifname "lo"
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
#### LAN configuration
config interface lan
option type bridge
option ifname "eth0.0"
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
#### WAN configuration
config interface wan
option ifname "eth0.1"
option proto dhcp
Once we have edited this file, to make the new configuration take after we need to :
$ /etc/init.d/network restart
SWITCH
The switch section of the above configuration file is responsible for making one peoice of hardware, appear as several independent interfaces. The part of the configuration file which specifies the switch characteristics is:
#### VLAN configuration
config switch eth0
option vlan0 "0 1 2 3 5*"
option vlan1 "4 5"
In the above configuration: The numbers 0-5 represent the port numbers, so VLAN0 includes ports 0 to 5* and VLAN1 includes ports 4 and 5. The * in 5*
indicates the PVID.
As shown in the above diagram, this switch separates the LAN ports and thWAN ports .
INTERFACES
The other statements in the configuration file describe the interfaces. The interfaces are logical networks, for the setting of IP address, routes and other magic.
The 3 interfaces that we have here are named loopback, lan and wan. The physical interfaces associated with these logical interfaces are lo, eth0.0 and eth0.1.
Subscribe to:
Posts (Atom)







