SlideShare una empresa de Scribd logo
1 de 26
BATMAN project
김준호
2015.11.25
Mobile Convergence LAB,
Department of Computer Engineering,
Kyung Hee University.
INDEX
1. Overview
2. BATMAN
3. BATMAN daemon(batmand)
4. BATMAN-adv
5. BATCTL
6. ALFRED
7. My program(GOTHAM)
Overview
1. BATMAN
- Routing protocol
2. BATMAN daemon(batmand)
- First implementation of BATMAN routing protocol (Layer 3)
3. BATMAN-adv (batman-adv)
- Substantive implementation of BATMAN routing protocol (Layer 2)
4. BATCTL (batctl)
- Managing, Debugging tool
5. ALFRED (alfred)
- User space daemon (vis, hostname, DNS information, local weather forecast
etc.)
BATMAN
1. BATMAN(Better Approach To Mobile Ad hoc Network)
2. 기존 Routing protocol과 다름
- 기존의 routing protocol은 wireless ad-hoc network에 맞지 않다.
- Wireless ad-hoc network
- Unstructured, Dynamically change topology, Unreliable
3. 전체 경로는 기억 X -> 노드 사이의 가장 좋은 링크 정보만 기억
- Routing 시 무조건 좋은 쪽으로 보냄(목적지에 따라)
4. OGM(OriGinator Message)
- 각 노드에서 OGM을 broadcast, 이웃 노드가 OGM을 받으면 source를 자기
자신의 주소로 바꾼 뒤 다시 re-broadcast
BATMAN DAEMON(batmand)
1. Start on layer 3(IP layer)
2. 개발 중지(현재) – 현재 batman-adv로 개발 중
- 처음 테스트 용으로 개발
3. Internet connection
- http://www.open-mesh.org/projects/batmand/wiki/InternetTuning
4. Visualization
- Vis server 생성
- 각 노드의 local view들을 모아 graph 생성
- 동작 X
- s3d.berlios.de – 최신버전 : 2011.01.05
- http://s3d.sourceforge.net
- 설치 했으나 사용법을 모르겠음
BATMAN DAEMON(batmand)
BATMAN-adv
1. BATMAN routing protocol 구현물
- 현재 BATMAN 0.3(BATMAN Ⅳ) – default routing algorithm
2. 2007년부터 개발 시작
- 개발 인원 : 6명
3. batmand와 구별하기 위해 –adv 명명
4. Layer 2에서 동작
5. Implementation as a kernel module
- overhead를 줄이기 위해
6. BATMAN-adv를 설치하지 않아도 mesh-network에 들어 올 수 O
BATMAN-adv
1. Layer 2
- Network layer agnostic
- IPv4, IPv6, DHCP etc. 상관 없음
- Nodes can participate in a mesh without having an IP
- Easy integration of non-mesh (mobile) clients
- Roaming of non-mesh clients (hand-over)
BATMAN-adv (Quick Start Guide)
개발 환경 : Raspberry Pi 2
OS : Ubuntu mate 15.04
kernel version : Linux-kernel version 3.18.0-20-rpi2
BATMAN-adv version : 2014.4.0
BATCTL version : 2014.3.0-2
BATMAN-adv (Quick Start Guide)
sudo apt-get install batctl
sudo stop network-manager
sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode ad-hoc essid junho_mesh channel 8
essid별로 네트워크 구축
sudo ifconfig wlan0 up
sudo modprobe batman-adv
-> load batman-adv module(이거 안 할 시, Error - batman-adv module has not been loaded 뜸)
sudo batctl if add wlan0
sudo ifconfig wlan0 mtu 1527
sudo cat /sys/class/net/wlan0/batman_adv/iface_status
"active"라고 떠야한다
sudo ifconfig wlan0 10.0.0.10
노드마다 다른 ip주소(10.0.0.10은 임시 ip)
sudo ifconfig bat0 192.168.0.10
노드마다 다른 ip주소(10.0.0.10은 임시 ip)
sudo ifconfig bat0 up
sudo batctl o
현재 연결된 노드가 보인다.
BATMAN-adv
1. Tables
- Originator table
- 모든 노드는 다른 모든 노드 리스트를 가지고 있으며 어디로 패킷을 보
내야 할지 알고 있다.
- Specific information
- .
- Sample output
BATMAN-adv
1. Tables
- Translation table
- 자신이 속해있는 mesh에 들어오고 싶어하는 client의 MAC 정보를 가지
고 있다.
- Specific information
- (local)
- (global)
- Sample output (local)
- .
BATMAN-adv
1. Tables
- Gateway table
- 사용 가능한 모든 gateway 정보를 가지고 있다.
- Specific information
- .
- Sample output
- .
BATMAN-adv
1. Tables
- Bridge loop avoidance claim table
- Bridge loop 문제를 해결하기 위해 bridge 노드에 존재하는 client 목록
과 그 노드의 주소를 가지고 있다.
- Bridge loop avoidance backbone table
- Bridge loop 문제를 해결하기 위해 bridge 노드의 backbone gateway 정
보를 가지고 있다.
- Distributed ARP table – local cache table
- Cached로 ARP 정보를 가지고 있다(IPv4 + MAC). – LAN으로 바로 ARP
request를 하기 위해.
- Network coding – potential coding neighbor table
- Network coding이 가능한 모든 incoming & outgoing 정보를 가지고 있
다.
BATMAN-adv (Gateways)
1. How to make the internet uplink?
- Gateway mode
- 인터넷이 연결되어 있는 노드는 gateway mode로 되어있고, 다른 노드
들은 gateway client mode로 되어있어야 한다.
- gateway client mode로 되어있지 않으면 routing 시 gateway 무시
- non-mesh client 인터넷 연결
- Gateway 노드는 무조건 DHCP 서버가 존재해야 한다.
- .
- .
BATMAN-adv (Gateways)
1. How to make the internet uplink? (Configuration)
- 인터넷 bandwidth를 조절 할 수 있다. (gateway)
- batctl gw_mode server 5mbit/1mbit
- (download bandwidth of 5Mbit, upload of 1Mbit)
- Client setting
- batctl gw_mode client
- Status show
- batctl gwl
- batctl gw_mode
BATMAN-adv (Ap-isolation)
1. Ap isolation mode 설정 가능
- .
- inter-meshnode communications prevention only
2. Configure
- batctl ap_isolation 1
- batctl ap 1
BATMAN-adv (NetworkCoding)
1. Network Coding 설정 가능
- 네트워크 코딩은 relay node가 두 개의 packet을 한번에 전송하는 것이다.
- CATWOMAN project
- .
-
2. Configure
- Setting at compile time
- disable -> batctl nc 0
BATMAN-adv (Roaming-improvements)
1. Hand-over (?)
- non-mesh client가 roaming 시(새로운 mesh node로 switching시)
interruption time을 줄이고, synchronization issue를 제거한다.
- TVLV(Type-Version-Length-Value)
- Translation table
- http://www.open-mesh.org/projects/batman-adv/wiki/Client-roaming
- http://www.open-mesh.org/projects/batman-adv/wiki/TVLV
BATMAN-adv (Etc.)
1. ELP(Echo Location Protocol)
- 새로운 neighbors을 찾을 때 OGM이 아닌 ELP를 사용해서 찾는다.
2. Bridge loop avoidance
- loop avoidance mechanism
3. Network wide multi link optimization
- 한 노드에 여러 개의 인터페이스가 존재할 때 최적의 길로 optimize한다.
BATCTL (batctl)
1. Configuration tool
- Mesh network에 interface 추가 및 제거
- batman-adv 설정 변경 및 확인 (OGM interval setting etc.)
- batman-adv 기능 변경 및 확인 (gateway announcement etc.)
2. Debugging tool
- Ping & traceroute nodes(MAC address)
- Parse log files
- Retrieve live information from the batman-adv module
- List 확인(Originator, client, available gateway etc.)
- http://downloads.open-mesh.org/batman/manpages/batctl.8.html
ALFRED (alfred)
1. ALFRED(Almighty Lightweight Fact Remote Exchange Daemon)
- user space daemon
- 각 노드에서 필요한 정보들을 모은다.
- batman-adv visualization을 위해 설계
- hostname, phone books, administration info, DNS info 할당 가능
- unix daemon background system.
2. batadv-vis
- alfred를 통해 neighbor 정보와 자신의 local 정보를 가져와 네트워크 구조를
json, graphviz로 나타낸다.
- graphviz(프로그램)를 통해 그린 그림(다음 장)
3. alfred-gpsd
- GPS 정보를 받아와 그림을 그림.
4. alfredA
- Android에서 돌아가는 alfred
- slave server 역할을 할 수 있다.
ALFRED (batadv-vis)
sudo apt-get install git
git clone git://git.open-mesh.org/alfred.git
sudo apt-get install gcc make
make시 에러 발생(make pkg config not found)
sudo apt-get install pkg-config - 해결
(make no libcap development libraries found)
sudo apt-get install libcap-dev - 해결
(make no libgps development libraries found)
sudo apt-get install libgps-dev - 해결
ALFRED (설치)
ALFRED (alfred + batadv-vis)
1. Network topology 생성
- 모든 노드에 alfred 서버 시작
- alfred –i bat0 –m (-m은 master를 의미)
- 모든 노드에 batadv-vis 서버 시작
- batadv-vis –i bat0 -s
- batadv-vis 명령 -> graphviz-compatible vis output
- .
- http://git.open-mesh.org/alfred.git/blob_plain/refs/heads/master:/README
ALFRED (architecture)
1. Structure
node – alfred가 돌고 있는 device
master – alfred server로써, 주위
의 다른 master들과 함께 주기적으로
들어오는 정보를 저장하고
synchronize를 맞추며 slave에게 정보
를 제공하는 device
slave – alfred server로써, 주기적
으로 데이터를 master에게 보내며, 필
요 시 master에 정보를 request
slave는 주위에 있는 master중 가장
TQ가 좋은 node만을 알고 있다.

Más contenido relacionado

La actualidad más candente

MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치ymtech
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Settingymtech
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT광운 이
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들NHN FORWARD
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우jieunsys
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)JuHwan Lee
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직Hyunjik Bae
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현NAVER D2
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetChris Changmo Yoo
 
IBM MQTT Mobile Push Solution 소개서
IBM MQTT Mobile Push Solution 소개서IBM MQTT Mobile Push Solution 소개서
IBM MQTT Mobile Push Solution 소개서Shaun LEE
 
150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kimjieun kim
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureChris Changmo Yoo
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝Mungyu Choi
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSChris Changmo Yoo
 
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취NAVER D2
 
[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우NAVER D2
 
resource on openstack
 resource on openstack resource on openstack
resource on openstackjieun kim
 
[16.01.05] node.js & mqtt
[16.01.05] node.js & mqtt[16.01.05] node.js & mqtt
[16.01.05] node.js & mqttNa-yeon Park
 
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)Ubuntu Korea Community
 

La actualidad más candente (20)

MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Setting
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
 
네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 Ethernet
 
IBM MQTT Mobile Push Solution 소개서
IBM MQTT Mobile Push Solution 소개서IBM MQTT Mobile Push Solution 소개서
IBM MQTT Mobile Push Solution 소개서
 
150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim150416 OpenStack Networking with Neutron Jieun, Kim
150416 OpenStack Networking with Neutron Jieun, Kim
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW Architecture
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoS
 
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
 
[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우[234] toast cloud open stack sdn 전략-박성우
[234] toast cloud open stack sdn 전략-박성우
 
resource on openstack
 resource on openstack resource on openstack
resource on openstack
 
[16.01.05] node.js & mqtt
[16.01.05] node.js & mqtt[16.01.05] node.js & mqtt
[16.01.05] node.js & mqtt
 
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)
 

Similar a Batman project

[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi
 
망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법종인 전
 
오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0sprdd
 
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...OpenStack Korea Community
 
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Jaeock Shim
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.chcbaram
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02정출 김
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD활 김
 
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌종인 전
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)NAIM Networks, Inc.
 
Kafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and GrafanaKafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and Grafanawonyong hwang
 
Solaris11 기초 자료
Solaris11 기초 자료Solaris11 기초 자료
Solaris11 기초 자료Dong-Hwa jung
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0Ji-Woong Choi
 
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)SeungYong Baek
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트OpenStack Korea Community
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치ymtech
 
2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)NAIM Networks, Inc.
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router 준기 홍
 
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1Ji-Woong Choi
 

Similar a Batman project (20)

[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 
망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법망고210 android fastboot nand write 방법
망고210 android fastboot nand write 방법
 
오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0
 
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD
 
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)
 
Kafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and GrafanaKafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and Grafana
 
Solaris11 기초 자료
Solaris11 기초 자료Solaris11 기초 자료
Solaris11 기초 자료
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
 
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)오픈소스 모니터링 알아보기(Learn about opensource monitoring)
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치
 
2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router
 
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
 

Batman project

  • 1. BATMAN project 김준호 2015.11.25 Mobile Convergence LAB, Department of Computer Engineering, Kyung Hee University.
  • 2. INDEX 1. Overview 2. BATMAN 3. BATMAN daemon(batmand) 4. BATMAN-adv 5. BATCTL 6. ALFRED 7. My program(GOTHAM)
  • 3. Overview 1. BATMAN - Routing protocol 2. BATMAN daemon(batmand) - First implementation of BATMAN routing protocol (Layer 3) 3. BATMAN-adv (batman-adv) - Substantive implementation of BATMAN routing protocol (Layer 2) 4. BATCTL (batctl) - Managing, Debugging tool 5. ALFRED (alfred) - User space daemon (vis, hostname, DNS information, local weather forecast etc.)
  • 4. BATMAN 1. BATMAN(Better Approach To Mobile Ad hoc Network) 2. 기존 Routing protocol과 다름 - 기존의 routing protocol은 wireless ad-hoc network에 맞지 않다. - Wireless ad-hoc network - Unstructured, Dynamically change topology, Unreliable 3. 전체 경로는 기억 X -> 노드 사이의 가장 좋은 링크 정보만 기억 - Routing 시 무조건 좋은 쪽으로 보냄(목적지에 따라) 4. OGM(OriGinator Message) - 각 노드에서 OGM을 broadcast, 이웃 노드가 OGM을 받으면 source를 자기 자신의 주소로 바꾼 뒤 다시 re-broadcast
  • 5. BATMAN DAEMON(batmand) 1. Start on layer 3(IP layer) 2. 개발 중지(현재) – 현재 batman-adv로 개발 중 - 처음 테스트 용으로 개발 3. Internet connection - http://www.open-mesh.org/projects/batmand/wiki/InternetTuning 4. Visualization - Vis server 생성 - 각 노드의 local view들을 모아 graph 생성 - 동작 X - s3d.berlios.de – 최신버전 : 2011.01.05 - http://s3d.sourceforge.net - 설치 했으나 사용법을 모르겠음
  • 7. BATMAN-adv 1. BATMAN routing protocol 구현물 - 현재 BATMAN 0.3(BATMAN Ⅳ) – default routing algorithm 2. 2007년부터 개발 시작 - 개발 인원 : 6명 3. batmand와 구별하기 위해 –adv 명명 4. Layer 2에서 동작 5. Implementation as a kernel module - overhead를 줄이기 위해 6. BATMAN-adv를 설치하지 않아도 mesh-network에 들어 올 수 O
  • 8. BATMAN-adv 1. Layer 2 - Network layer agnostic - IPv4, IPv6, DHCP etc. 상관 없음 - Nodes can participate in a mesh without having an IP - Easy integration of non-mesh (mobile) clients - Roaming of non-mesh clients (hand-over)
  • 9. BATMAN-adv (Quick Start Guide) 개발 환경 : Raspberry Pi 2 OS : Ubuntu mate 15.04 kernel version : Linux-kernel version 3.18.0-20-rpi2 BATMAN-adv version : 2014.4.0 BATCTL version : 2014.3.0-2
  • 10. BATMAN-adv (Quick Start Guide) sudo apt-get install batctl sudo stop network-manager sudo ifconfig wlan0 down sudo iwconfig wlan0 mode ad-hoc essid junho_mesh channel 8 essid별로 네트워크 구축 sudo ifconfig wlan0 up sudo modprobe batman-adv -> load batman-adv module(이거 안 할 시, Error - batman-adv module has not been loaded 뜸) sudo batctl if add wlan0 sudo ifconfig wlan0 mtu 1527 sudo cat /sys/class/net/wlan0/batman_adv/iface_status "active"라고 떠야한다 sudo ifconfig wlan0 10.0.0.10 노드마다 다른 ip주소(10.0.0.10은 임시 ip) sudo ifconfig bat0 192.168.0.10 노드마다 다른 ip주소(10.0.0.10은 임시 ip) sudo ifconfig bat0 up sudo batctl o 현재 연결된 노드가 보인다.
  • 11. BATMAN-adv 1. Tables - Originator table - 모든 노드는 다른 모든 노드 리스트를 가지고 있으며 어디로 패킷을 보 내야 할지 알고 있다. - Specific information - . - Sample output
  • 12. BATMAN-adv 1. Tables - Translation table - 자신이 속해있는 mesh에 들어오고 싶어하는 client의 MAC 정보를 가지 고 있다. - Specific information - (local) - (global) - Sample output (local) - .
  • 13. BATMAN-adv 1. Tables - Gateway table - 사용 가능한 모든 gateway 정보를 가지고 있다. - Specific information - . - Sample output - .
  • 14. BATMAN-adv 1. Tables - Bridge loop avoidance claim table - Bridge loop 문제를 해결하기 위해 bridge 노드에 존재하는 client 목록 과 그 노드의 주소를 가지고 있다. - Bridge loop avoidance backbone table - Bridge loop 문제를 해결하기 위해 bridge 노드의 backbone gateway 정 보를 가지고 있다. - Distributed ARP table – local cache table - Cached로 ARP 정보를 가지고 있다(IPv4 + MAC). – LAN으로 바로 ARP request를 하기 위해. - Network coding – potential coding neighbor table - Network coding이 가능한 모든 incoming & outgoing 정보를 가지고 있 다.
  • 15. BATMAN-adv (Gateways) 1. How to make the internet uplink? - Gateway mode - 인터넷이 연결되어 있는 노드는 gateway mode로 되어있고, 다른 노드 들은 gateway client mode로 되어있어야 한다. - gateway client mode로 되어있지 않으면 routing 시 gateway 무시 - non-mesh client 인터넷 연결 - Gateway 노드는 무조건 DHCP 서버가 존재해야 한다. - . - .
  • 16. BATMAN-adv (Gateways) 1. How to make the internet uplink? (Configuration) - 인터넷 bandwidth를 조절 할 수 있다. (gateway) - batctl gw_mode server 5mbit/1mbit - (download bandwidth of 5Mbit, upload of 1Mbit) - Client setting - batctl gw_mode client - Status show - batctl gwl - batctl gw_mode
  • 17. BATMAN-adv (Ap-isolation) 1. Ap isolation mode 설정 가능 - . - inter-meshnode communications prevention only 2. Configure - batctl ap_isolation 1 - batctl ap 1
  • 18. BATMAN-adv (NetworkCoding) 1. Network Coding 설정 가능 - 네트워크 코딩은 relay node가 두 개의 packet을 한번에 전송하는 것이다. - CATWOMAN project - . - 2. Configure - Setting at compile time - disable -> batctl nc 0
  • 19. BATMAN-adv (Roaming-improvements) 1. Hand-over (?) - non-mesh client가 roaming 시(새로운 mesh node로 switching시) interruption time을 줄이고, synchronization issue를 제거한다. - TVLV(Type-Version-Length-Value) - Translation table - http://www.open-mesh.org/projects/batman-adv/wiki/Client-roaming - http://www.open-mesh.org/projects/batman-adv/wiki/TVLV
  • 20. BATMAN-adv (Etc.) 1. ELP(Echo Location Protocol) - 새로운 neighbors을 찾을 때 OGM이 아닌 ELP를 사용해서 찾는다. 2. Bridge loop avoidance - loop avoidance mechanism 3. Network wide multi link optimization - 한 노드에 여러 개의 인터페이스가 존재할 때 최적의 길로 optimize한다.
  • 21. BATCTL (batctl) 1. Configuration tool - Mesh network에 interface 추가 및 제거 - batman-adv 설정 변경 및 확인 (OGM interval setting etc.) - batman-adv 기능 변경 및 확인 (gateway announcement etc.) 2. Debugging tool - Ping & traceroute nodes(MAC address) - Parse log files - Retrieve live information from the batman-adv module - List 확인(Originator, client, available gateway etc.) - http://downloads.open-mesh.org/batman/manpages/batctl.8.html
  • 22. ALFRED (alfred) 1. ALFRED(Almighty Lightweight Fact Remote Exchange Daemon) - user space daemon - 각 노드에서 필요한 정보들을 모은다. - batman-adv visualization을 위해 설계 - hostname, phone books, administration info, DNS info 할당 가능 - unix daemon background system. 2. batadv-vis - alfred를 통해 neighbor 정보와 자신의 local 정보를 가져와 네트워크 구조를 json, graphviz로 나타낸다. - graphviz(프로그램)를 통해 그린 그림(다음 장) 3. alfred-gpsd - GPS 정보를 받아와 그림을 그림. 4. alfredA - Android에서 돌아가는 alfred - slave server 역할을 할 수 있다.
  • 24. sudo apt-get install git git clone git://git.open-mesh.org/alfred.git sudo apt-get install gcc make make시 에러 발생(make pkg config not found) sudo apt-get install pkg-config - 해결 (make no libcap development libraries found) sudo apt-get install libcap-dev - 해결 (make no libgps development libraries found) sudo apt-get install libgps-dev - 해결 ALFRED (설치)
  • 25. ALFRED (alfred + batadv-vis) 1. Network topology 생성 - 모든 노드에 alfred 서버 시작 - alfred –i bat0 –m (-m은 master를 의미) - 모든 노드에 batadv-vis 서버 시작 - batadv-vis –i bat0 -s - batadv-vis 명령 -> graphviz-compatible vis output - . - http://git.open-mesh.org/alfred.git/blob_plain/refs/heads/master:/README
  • 26. ALFRED (architecture) 1. Structure node – alfred가 돌고 있는 device master – alfred server로써, 주위 의 다른 master들과 함께 주기적으로 들어오는 정보를 저장하고 synchronize를 맞추며 slave에게 정보 를 제공하는 device slave – alfred server로써, 주기적 으로 데이터를 master에게 보내며, 필 요 시 master에 정보를 request slave는 주위에 있는 master중 가장 TQ가 좋은 node만을 알고 있다.