OLSR là 1 routing protocol hỗ trợ Mobile Ad-hoc network (MANET). Dạng link-state, active protocol. Các node trong mạng tự xây dựng route table đến tất cả các node khác trong mạng (nếu được). Cập nhật là route table nếu 1 node nào đó trong mạng đứt kết nối. Xem thêm tại RFC 3626.
- Bản build OLSR (beta-1.5) routing cho wireless adhoc (MANET) dựa trên Quagga (0.99.22.1) software routing suite.
(hongvuonganh@gmail.com ; anhhv04@mp.hcmiu.edu.vn)
- Hỗ trợ:
+ Sẵn có trên Quagga: RIP, OSPF, OSPFv6, ISIS, BGP, Babel (distance vector cho MANET). Static route config, access-list... (xem thêm tại quagga.net)
+ OLSR: core OLSR routing (RFC 3626), IPv4 (IPv6 đang làm ^^).
+ Hỗ trợ CLI (Cisco like) qua telnet
+ Các command
(sẵn có của Quagga)
enable: vào mode enable của router.
configure terminal: vào mode config của router
interface eth0 : vào interface ethernet 0 của máy
exit: thoát mode hiện tại về mode trên 1 bậc
write: lưu cấu hình vào file .conf
show ip route: xem route table.
show interface: xem thông tin interface
....
(của OLSRd)
router olsr: khởi tạo OLSR routing process
network IF_NAME: chạy OLSR routing trên interface (vd: network wlan0: chạy OLSR trên wlan0)
olsr willingness <0-7> : setup node's willingness
olsr neighb-hold-time <1-65535> : setup neighbor tuple holding time
olsr dup-hold-time <1-65535> : setup duplicate tuple holding time
olsr top-hold-time <1-65535> : setup topology tuple holding time
olsr mpr-update-time <1-65535> : MPR update time
olsr rt-update-time <1-65535> : Routing table update time
olsr hello-interval <1-65535> : Update hello emission interval
olsr mid-interval <1-65535> : Update mid emission interval
olsr tc-interval <1-65535> : Update tc emission interval
show ip olsr : show OSLR information
show ip olsr neighbor : show neighbor set
show ip olsr linkset : show link set
show ip olsr topset : show topology set
show ip olsr mid : show mid set
show ip olsr hop2 : show 2nd hop set
show ip olsr routes : show OLSR routing table
olsr debug <1-Event | 2-Details>: enable debug mode
- Yêu cầu: Nix kernel 2.6 -> 3.2 (đã test trên Ubuntu , 10.04, 11, 12.04 LTS, CentOS 6.3), gawk, dia. Để tùy chỉnh cần thêm autotool (automake, autoconf, autoreconf) (ít nhất 1.6 trở lên)
- Cài đặt
+ Tải về, xả nén
$cp adhoc-iu-beta-1.5.tar.gz /tmp
$cd /tmp
$tar -zxvf adhoc-iu-beta-1.5.tar.gz
$cd adhoc-iu
+ Tạo folder trước:
$sudo mkdir -p /data/quagga/etc #chứa file config (giống cái startup-config của Cisco á)
$sudo mkdir -p /data/quagga/state #pid file.
+ Cài (mặc định vào /data/quagga , user là root)
$make
$sudo make install
+ Nếu cần thay đổi path thì chạy configure như dưới (trước make và make install)
$./configure --prefix=<working folder> --localstatedir=<pid folder> --sysconfdir=<conf folder> --enable-user=<user> --enable-group=<group>
- Tạo file config trước
$cd /data/quagga/
$sudo cp ./etc/zebra.conf.sample /etc/zebra.conf
$sudo cp ./etc/olsrd.conf.sample /etc/olsrd.conf
- Chạy (thêm -d nếu muốn chạy mode daemon)
$sudo ./sbin/zebra -d
$sudo ./sbin/olsrd -d
- Sử dụng
+ zebra daemon: dùng cấu hình cho interface (ip add, bandwidth...) , add/delete static route...
+ olsrd daemon: enable/disable OLSR routing, update 1 số parameter của protocol này (Hello, TC, MID interval, willingness...
+ Chú ý: port để telnet vty cho zebra : 2601 ,cho olsrd là 2611.
- Ví dụ: giờ có 3 cái laptop L1 , L2 , L3. L1 & L2 nằm trong vùng sóng của nhau, tương tự cho 2, 3. L1 và L3 nằm ngoài. Khi chạy olsrd trên 3 máy -> các máy "link" lại được (có route đến máy còn lại).
Lap1 <-------------> Lap2 <------------------> Lap3
+ Cài như trên cho 3 máy rồi chạy 2 daemon như trên
+ Chuyển mode cho card wifi trên 3 máy (đang kiếm cách tích hợp vào chtrinh luôn)
$sudo ifconfig wlan0 down
$sudo iwconfig wlan0 mode ad-hoc
$sudo iwconfig wlan0 essid olsrd
$sudo iwconfig wlan0 channel 5
$sudo ifconfig wlan0 up
+ Cấu hình IP cho interface wlan0
#Kết nối tới zebra daemon cấu hình IP cho interface wireless (wlan0)
#Cấu hình IP cho interface wlan0
telnet localhost 2601
enter telnet password (mặc định zebra)
host>enable (nhập enable pass, mặc định zebra)
host#conf t
host(config)#int wlan0
host(config-if)#ip add 10.1.1.1/24
host(config-if)#exithost(config)#exithost#write
host#exit
#Làm tương tự cho L2(10.1.1.2/24), L3 (10.1.1.3/24)
+ Chạy OLSR routing. Làm các bước bên dưới cho từng máy
telnet localhost 2611
<nhập password , mặc định zebra>
host>enable
<nhập enable password, mặc định zebra>
host#conf t
host(config)#router olsr
host(config-olsr)#network wlan0
host(config-olsr)#exit
host(config)#exithost#write
host#exit
+ Xong, 3 máy sẽ trao đổi thông tin, tìm đường ,tạo route table. Giờ 3 máy "thông" nhau. Nếu có máy nào đó tắt wifi , các máy còn lại tự cập nhật lại route table, nếu máy tắt mở lại , các máy tự động cập nhật tìm đường lại.
Bạn có ý kiến, góp ý, gửi về hongvuonganh@gmail.com hay anhhv04@mp.hcmiu.edu.vn
No comments:
Post a Comment