SHISA: The Mobile IPv6/NEMO BS Stack Implementation Current Status - - PowerPoint PPT Presentation

shisa the mobile ipv6 nemo bs stack implementation
SMART_READER_LITE
LIVE PREVIEW

SHISA: The Mobile IPv6/NEMO BS Stack Implementation Current Status - - PowerPoint PPT Presentation

SHISA: The Mobile IPv6/NEMO BS Stack Implementation Current Status Asia BSD Conference 2007 11th March 2007 @ Tokyo, Japan Keiichi Shima 1 , Koshiro Mitsuya 2 , Ryuji Wakikawa 2 , Tsuyoshi Momose 3 and Keisuke Uehara 2 1 Internet Initiative Japan


slide-1
SLIDE 1

SHISA: The Mobile IPv6/NEMO BS Stack Implementation Current Status

Asia BSD Conference 2007 11th March 2007 @ Tokyo, Japan Keiichi Shima1, Koshiro Mitsuya2, Ryuji Wakikawa2, Tsuyoshi Momose3 and Keisuke Uehara2

1Internet Initiative Japan Inc. 2Keio University 3NEC Corporation

slide-2
SLIDE 2

Topics

  • Mobile IPv6/NEMO BS Basics
  • SHISA History
  • SHISA Design
  • Implementation
  • Consideration
  • Future Plans
slide-3
SLIDE 3

Mobile IPv6/NEMO BS

  • Movement (address change) is hidden in

the IPv6 layer

  • A node can move between different

communication media

  • No modification to the transport layer

and above

slide-4
SLIDE 4

Why Important?

  • Wireless broadband Internet
  • Built-in communication devices
  • Always connected environment
  • Application areas
  • Next generation mobile phones
  • Transportation (trains, buses, aviation)
  • Personal Mobile Router
slide-5
SLIDE 5

Future un-wired Internet

Internet

Home ISP Public Access

Transportation ISP

Company ISP

WLAN WLAN WLAN WiMax

3G PHS

WLAN

Home

On the road to a station In a train Office

slide-6
SLIDE 6

Mobile IPv6 Overview

Mobile Node (MN) Home Agent (HA) Home Network Foreign Network Home Address (HoA) Internet Correspondent Node (CN)

A mobile node acts as a normal IPv6 node

slide-7
SLIDE 7

Mobile IPv6 Overview

Mobile Node moves to a foreign network

Mobile Node (MN) Home Agent (HA) Home Network Foreign Network Move Care-of Address (CoA) Home Address (HoA) Internet Correspondent Node (CN)

slide-8
SLIDE 8

Mobile IPv6 Overview

Mobile Node (MN) Home Agent (HA) Home Network Foreign Network Care-of Address (CoA) Home Address (HoA) Internet Correspondent Node (CN) Bi-directional Tunnel Binding Update (HoA - CoA)

Binds CoA and HoA and creates bi-dir tunnel

slide-9
SLIDE 9

Mobile IPv6 Overview

Mobile Node (MN) Home Agent (HA) Home Network Foreign Network Care-of Address (CoA) Home Address (HoA) Internet Correspondent Node (CN) Communication MN - CN

Traffic goes though the tunnel

slide-10
SLIDE 10

Mobile IPv6 Overview

Mobile Node (MN) Home Agent (HA) Home Network Foreign Network Care-of Address (CoA) Home Address (HoA) Internet Correspondent Node (CN) HoA ownership confirmation CoA ownership confirmation Binding Update (HoA - CoA)

Confirms ownership

  • f HoA/CoA and

sends Binding Update

slide-11
SLIDE 11

NEMO BS Overview

Home Agent (HA) Home Network Foreign Network Move Internet Correspondent Node (CN) Communication MNN - CN Bi-directional Tunnel Home Address Mobile Network Mobile Network Care-of Address Binding Update (HoA - CoA,Mobile Network Prefix) Mobile Network Nodes (MNNs)

Registers both HoA and Mobile Network Prefix

slide-12
SLIDE 12

Objectives

  • Deploy IPv6 mobility
  • A free working code as a reference code is

important for deployment

  • ex1) the TCP/IP code by UCB
  • ex2) the KAME IPv6 code
  • This presentation introduces our

implementation, its design and current status

slide-13
SLIDE 13

SHISA

  • A free Mobile IPv6 / NEMO BS stack for BSD operating

systems

  • The project started as a part of the KAME project and

launched as a separate project after the KAME project concluded

  • NetBSD 2.0 and FreeBSD 5.4R (and OpenBSD 3.0

partially) were originally supported

  • We started porting works to the original BSDs
  • NetBSD-current is our first target
slide-14
SLIDE 14

SHISA History

KAME Ericsson Mobile IPv6 SFC Mobile IPv6 KAME Mobile IPv6 SHISA 2000 2001 2002 2003 2004 2005 2006

slide-15
SLIDE 15

SHISA Features

  • Mobile IPv6 (RFC3775)
  • Mobile Node, Home Agent, Correspondent Node
  • Including Route Optimization
  • NEMO BS (RFC3963)
  • Multiple Care-of Addresses Registration (based on

the older draft)

  • Dual Stack Mobile IPv6 (based on the -01 draft)
slide-16
SLIDE 16

SHISA Design

  • Easier development
  • Adaptability to various network movement

detection mechanisms

  • Simple application interface
  • Minimum modification of kernel code
slide-17
SLIDE 17

Easier Development

  • We wanted to move the code to user space
  • Destination Opt v.s. Mobility Header
  • Separate signal processing part and packet

forwarding processing part

  • Signal processing is done in user space

programs

  • Packet forwarding is done in the kernel
  • Similar to the BSD routing mechanism
slide-18
SLIDE 18

Easier Development

  • Signal processing is too much to implement

in the kernel

  • We can use various debugging tools for

user space programs

  • Bigger number of user space application

developers than kernel developers

slide-19
SLIDE 19

Adaptability

  • The requirements of mobile device

movement detection may vary based on the technologies of mobile carriers

  • Movement detection mechanism is

implemented as a separate program so that each operator can replace the program

slide-20
SLIDE 20

Easier Application Interface

  • Mobility activities can be monitored by the

special socket interface

  • All mobility kernel function can be

controlled with the socket interface

  • Similar to the Routing Socket
slide-21
SLIDE 21

Minimum Modification

  • f the Kernel
  • The final goal of our project is to merge

the mobility function to the original BSD

  • perating systems
  • The modification of the kernel should be

minimized to make the integration work easier

slide-22
SLIDE 22

Program Organization

mnd Mobile Host Functions had Home Agent Functions (for both Mobile IPv6 and NEMO BS) cnd Route Optimization Function babymdd A simple movement detector mrd Mobile Router Functions nemonetd Tunnel setup for NEMO BS Kernel Forwarding, tunneling processing

  • SHISA consists of 6 programs and kernel
slide-23
SLIDE 23
  • Selection of running programs decides the

node type

  • For Mobile Host
  • mnd, babymdd and cnd (if RO as a

CN is required)

  • For Home Agent
  • had, cnd (if RO as a CN is required)

and nemonetd (if NEMO BS is required)

Node Configuration

slide-24
SLIDE 24

SHISA Modules

New module Modified module

babymdd mnd had nemonetd mrd cnd

Binding Management Module Mobility Socket Routing Socket Address Management Module Neighbor Discovery Module Forwarding Module Binding Update Database (Subset) Binding Cache Database (Subset) Routing Table Management Module Routing Table

user space kernel space

Binding Update Database Binding Cache Database Destination Options Header Module Routing Header Module Tunneling Module

slide-25
SLIDE 25

Mobility Socket

  • A new communication domain socket (Mobility

Socket, AF_MOBILITY) is designed

  • Similar to the Routing Socket
  • Address family independent (may be used with
  • ther mobility protocols)
  • Mobility Socket provides
  • 1. Kernel interface to application programs
  • 2. Communication method between application

programs

slide-26
SLIDE 26

Mobility Socket Messages

NODETYPE_INFO Configure the type of node (MN, MR, HA, CN) BC_ADD Add a Binding Cache entry BC_REMOVE Remove a Binding Cache entry BC_FLUSH Clear all Binding Cache entry BUL_ADD Add a Binding Update List entry BUL_REMOVE Remove a Binding Update List entry BUL_FLUSH Clear all Binding Update List entry MD_INFO Movement information HOME_HINT A hint message that a node returns home RR_HINT A hint message that a node receives a bi-directional tunneled packet BE_HINT A control message from kernel to send a Binding Error message DAD A control message to kernel to perform DAD for a specified address

slide-27
SLIDE 27

Message Passing Ex. 1

  • Creating a Binding Update List entry

kernel babymdd mnd Detect movement MD_INFO message with a new CoA BUL_ADD message BUL entry creation BU / BA exchange with Home Agent

slide-28
SLIDE 28

Message Passing Ex. 2

  • Creating a BUL entry in the NEMO BS case

kernel babymdd mrd Detect Movement MD_INFO message with a new CoA BUL_ADD message BUL entry creation BU / BA exchange with Home Agent nemonetd NEMO tunnel setup BUL_ADD message

slide-29
SLIDE 29

Message Passing Ex. 3

  • Notification from the kernel

kernel mnd Receive tunneled packet RR_HINT message with the CN's address Perform the RR procedure BU (/ BA) exchange with the CN BUL_ADD message BUL entry creation

slide-30
SLIDE 30

Movement Detection

  • The babymdd program provides a basic

movement detection function

  • Based on the Neighbor Unreachability

Detection (NUD)

  • When a router becomes unreachable, the

prefixes advertised by the router becomes DETACHED state

slide-31
SLIDE 31

Movement Detection

mnd babymdd

Mobility Socket

user space kernel space

Routing Socket

Neighbor Discovery module

Address list Prefix list Default router list

Raw output module

Raw Socket

slide-32
SLIDE 32

Movement Detection

mnd babymdd

Mobility Socket

user space kernel space

Routing Socket

Neighbor Discovery module

Address list Prefix list Default router list

Raw output module

Raw Socket

A router becomes unreach

slide-33
SLIDE 33

Movement Detection

mnd babymdd

Mobility Socket

user space kernel space

Routing Socket

Neighbor Discovery module

Address list Prefix list Default router list

Raw output module

Raw Socket

Make related prefix DETACHED

slide-34
SLIDE 34

Movement Detection

mnd babymdd

Mobility Socket

user space kernel space

Routing Socket

Neighbor Discovery module

Address list Prefix list Default router list

Raw output module

Raw Socket

Associated addresses become DETACHED

slide-35
SLIDE 35

Movement Detection

mnd babymdd

Mobility Socket

user space kernel space

Routing Socket

Neighbor Discovery module

Address list Prefix list Default router list

Raw output module

Raw Socket

Send RTM_ADDRINFO message

slide-36
SLIDE 36

Movement Detection

mnd babymdd

Mobility Socket

user space kernel space

Routing Socket

Neighbor Discovery module

Address list Prefix list Default router list

Raw output module

Raw Socket

MD_INFO message with available CoA

slide-37
SLIDE 37

Movement Detection

mnd babymdd

Mobility Socket

user space kernel space

Routing Socket

Neighbor Discovery module

Address list Prefix list Default router list

Raw output module

Raw Socket

Binding Update message

slide-38
SLIDE 38

Movement Detection

  • The NUD mechanism is not necessarily

utilized

  • The requirement to send a Binding Update

message is to send MD_INFO message

  • Layer 2 aware, or some other special

movement detection programs may enhance the handover performance

slide-39
SLIDE 39

Address Flag Extension

  • IN6_IFF_HOME
  • Used with a home address to identify the

address is a special address

  • Default Address Selection
  • IN6_IFF_DEREGISTERING are added
  • Used with a home address to mark the address

is not usable because of de-registration procedure

slide-40
SLIDE 40

Pseudo Interface

  • Home addresses are assigned to the physical

interface attached to the home network while a mobile node is at home

  • When the mobile node moves to a foreign

network, the home addresses cannot stay there

  • The mip pseudo interface is defined as a

placeholder of the home addresses and as a virtual home interface

slide-41
SLIDE 41

Pseudo Interface

  • All packets sent from a mobile node is delivered to

the mip interface and tunneled to the home agent

  • f the mobile node
  • Similar to the gif interface, but has been tightly

integrated to mobility functions

Mobile Host mip0 ed0 Physical Addresses (CoAs) are assigned here Home Address is assigned here Mobile Host mip0 ed0 Home Address is assigned here Not used while a mobile node is at home Packet flow Packet flow

Home Foreign

slide-42
SLIDE 42

Pseudo Interface

  • To support NEMO BS, we also use other

pseudo interface (the mtun interface) for packet tunneling from/to nodes inside a mobile network

Mobile Router mip0 ed0 Packet flow ed1 mtun0 Mobile network

slide-43
SLIDE 43

Tunneling Call Graph (on Mobile Node)

upper layer

  • utput function

ip6_output() nd6_output() mip_output() mtun_output() ip6_output() set next hop router datalink layer

  • utput function

nd6_output()

  • riginal

packet processing tunneled packet processing forwarding from MNP on MR MN encapsulate ip6_forward()

datalink layer input function ip6_input() mtun_input() mip6_tunnel_ input() ip6_forward() upper layer input function

  • riginal

packet processing tunneled packet processing decapsulate forwarding to MNP on MR MN

  • utput

input

slide-44
SLIDE 44

Mobility Header Messages

  • Used to deliver IPv6 mobility signaling messages
  • Defined as one of the extension headers in the

specification (protocol number = 135)

  • However, in the current spec, the header is

always the final header and never have following headers

  • The kernel and application programs treat the

header as a kind of transport header

slide-45
SLIDE 45

Mobility Header Messages

  • Implemented as one of the raw sockets
  • The inet6sw[] instance is extended

to support this new header

  • The input routine simply validates the

incoming messages and passes them to raw sockets

  • Application programs can send the

messages using raw sockets

slide-46
SLIDE 46

Consideration

  • Duplicated mobility tunneling mechanisms
  • IPsec policy management
  • Mobility message passing mechanism

unification

  • IKE interaction
  • Porting to other systems
slide-47
SLIDE 47

Duplicated Mobility Tunnel

  • The tunneling mechanism for Mobile *Host* traffic

and that for Mobile *Network* are implemented separately

  • It is too confusing and we are now planning to

integrate these tunneling

  • You may wonder why we don’t use the gif interface
  • We need many mobility related processing in the

tunnel packet processing, and it is not a good idea to extend the gif interface to do the jobs

slide-48
SLIDE 48

IPsec Policy Management

  • As defined in RFC, mobility signaling

messages must be protected by the IPsec mechanism

  • But the policy is different based on the

location of a mobile node

  • e.g. HoT/HoTI messages
  • Need to modify the policy entries dynamically
slide-49
SLIDE 49

Mobility Message API

  • We defined the Mobility Socket to exchange mobility

related information between kernel and applications, or between applications

  • Such interface may be useful for other mobile aware

applications

  • Also, it may increase portability of the mobility

protocol processing applications

  • e.g. Porting SHISA to other OSes
  • We may need to standardize the API
slide-50
SLIDE 50

IKE Interaction

  • Configuring IPsec SA entries is not an easy

task, especially we manage many nodes

  • Dynamic SA creation is necessary when we

think real deployment scenarios

  • We are not working with the Racoon2

development team to provide IKE integration to SHISA

slide-51
SLIDE 51

Porting to Other BSDs

  • The original SHISA (developed in the KAME project)

supported FreeBSD5.4R and NetBSD2.0 (and partially OpenBSD3.0)

  • Currently we are concentrating our resource to port the

developed code to NetBSD-current

  • Once we have completed the integration to a certain

level, we will start working on FreeBSD, and OpenBSD later

  • (BTW, although it is unofficial, Tsuyoshi Momose who is
  • ne of SHISA developers is porting SHISA to Darwin)
slide-52
SLIDE 52

Conclusion

  • Designed a mobility stack with the following

characteristics

  • Signal/Data processing separation for easy

development

  • Adaptive movement detection mechanism
  • Simple mobility application interface
  • Small kernel modification
  • Implemented the stack to satisfy the above

requirements

  • The code is freely available from the KAME project
  • Now we are working to integrate the developed code

to integrate to the BSD operating systems

slide-53
SLIDE 53

Thank you!

Any Questions?