2011년 4월 8일 금요일

Mobile IPv6 For Linux 설치 하기

[Mobile IPv6 for Linux]
베포판 : 데비안 5.10
커널 : 2.6.12

 mip.zip
위 파일 압축

1] 관련 파일 다운 받기 (http://www.mobile-ipv6.org/)
2] 현재 패치가 커널 2.6.15용밖에 없으므로 이 버젼의 커널 소스 다운 받기
다운 받기 : wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar.gz
앞축 풀기: tar zvfx linux-2.6.15.tar.gz
이동 : mv linux-2.6.15 /usr/src/linux
3] mipv6-2.0.1.tar.gz 압축 풀기
압축 풀기 : root@ubuntu:~ # tar zvfx mipv6-2.0.1.tar.gz
이동 : mv mipv6-2.0.1 /usr/src/linux/mipv6-2.0.1
4] 받은 패치 파일을 커널 소스 파일 위치로 이동
이동 : root@ubuntu:~ # mv mipv6-2.0.1-linux-2.6.15.patch.gz /usr/src/linux/

5] 패치하기
소스 디렉토리 이동 : cd /usr/src/linux
패치 하기 :# zcat mipv6-2.0.1-linux-2.6.15.patch.gz | patch -p1

6] 재 컴파일 하기
# make menuconfig 
-> Networking 
-> Networking Option 
->IPv6 붙은거 다 y 설정 (MN용, 라우터는 아래 설정 파일 참고)-> ./config로 저장하고 나오기 

* 컴파일전 필요 패키지들 깔기
# apt-get install kernel-package libncurses5-dev

 config.txt
라우터 컴파일 옵션 설정값
7]  위 설정 커널 소스가 MIP지원 가능한지 테스트
# ./mipv6-2.0.1/chkconf_kernel.sh /usr/src/linux/
7-1] 아래 처럼 나오면 .config의 설정을 Warning에 맞게 수정(공백도 인식하므로 조심)
Checking kernel configuration...
Using /usr/src/linux//.config
Warning: CONFIG_NET_KEY should be set to y (m)
Warning: CONFIG_NET_KEY_MIGRATE should be set to y (not supported)
Above 2 options may conflict with MIPL.
If you are not sure, use the recommended setting.
7-2] 아래 메시지 나오면 커널 패치 실시
Checking kernel configuration...
Using /usr/src/linux//.config
All kernel options are as they should.
8] 커널 컴파일
# make-kpkg --revision=2.6.15.MIPv6 --initrd binary-arch
상위 디렉토리로 이동 cd ..

# dpkg -i kernel-headers-xxx.deb

# dpkg -i kernel-image-xxx.deb
9]  재부팅 


[MN 설정]1] RA 메시지 수신하여 자신의 정보 수정 하도록 설정
echo 1 > /proc/sys/net/ipv6/conf/all/autoconf
echo 1 > /proc/sys/net/ipv6/conf/all/accept_ra
echo 1 > /proc/sys/net/ipv6/conf/all/accept_redirects

2] 무선랜 장치에 IPv6주소 적용하기 (통신은 터널링을 통하여 하므로 static하게 주소 설정)
vi /etc/network/interfaces
#iface eth1 inet6 static
#        address 2001:0220:1404:5::3
#        netmask 64

3] mipv6d 데몬 설치하기 
# cd /usr/src/linux/mipv6-2.0.1
# CPPFLAGS='-isystem /usr/src/linux/include' ./configure --enable-vt(telnet localhost 7777 로 들어가기 위해 설정)
# make
# make install
4] mip6d.conf  파일 수정 
/usr/src/linux/mipv6-2.0.1/extras폴더의 파일중 노드의 성격에 맞는 파일을 수정
 mip6d.conf.txt
mip6d.con 메뉴얼


5] /usr/local/etc/mip6d.conf 에 복사
# mkdir /usr/local/etc
*예제파일 보기*


6] 실행
/usr/local/sbin/mip6d ?[모드] 
Ex ) /usr/local/sbin/mip6d ?M  


6-1] 확인 : 실행후 ifconfig로 터널링 인터페이스 생성확인

ip6tnl1   Link encap:UNSPEC  HWaddr 20-01-02-20-14-04-00-03-00-00-00-00-00-00
        inet6 addr: fe80::200:f0ff:fe85:14ae/64 Scope:Link
         inet6 addr: 2001:220:1404:3::100/128 Scope:Global
7] 홈에이전트 AP적용하기
# iwconfig eth1 mode Managed essid IMTL_AP1
7-1] 확인 : 라우터의 RA수신후 또 다른 글로벌 주소 생성 확인
eth1   Link encap:Ethernet  HWaddr 00:08:A3:FD:38:80  
         inet addr:192.168.3.101  Bcast:192.168.3.255  Mask:255.255.255.0
         inet6 addr: 2001:220:1404:3::101/64 Scope:Global
         inet6 addr: 2001:220:1404:3:208:a3ff:fefd:3880/64 Scope:Global
         inet6 addr: fe80::208:a3ff:fefd:3880/64 Scope:Link
[라우터 설정 ]

1] 포워딩 기능 enable
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
echo 0 > /proc/sys/net/ipv6/conf/all/accept_redirects

2] router advertisement daemon설치 
apt-get install radvd

3] 
설정 파일 작성 
/etc/radvd.conf


*예제 설정 보기*

*설정파일 설명 보기*

4] 데몬 실행
/etc/init.d/radvd start
[HA설정]1] 기본 라우터 설정 적용

2] mip6d 데몬 적용 (HA모드 및 HA설정 파일 적용)

[CN설정]
1] mip6d 데몬 적용 (HA모드 및 CN설정 파일 적용)
2] /usr/local/etc/mip6d.conf 설정
NodeConfig CN;

## If set to > 0, will not detach from tty
DebugLevel 0;
## Support route optimization with MNs
DoRouteOptimizationCN enabled;


[테스트 하기]
IPv6 tcpdump실행
tcpdump -i eth1 -vv ip6 or proto ipv6
tcpdump -i eth1 -vv ip6

핸드 오프 실시 
# iwconfig eth1 essid IMTL_AP[변경]



*rc.locla 추가 부분 보기*


작성자 : 임헌정
작성일 : 2006.05.17
http://www.4ellene.net
참고 : http://www.redhat.com/mirrors/LDP/HOWTO/Mobile-IPv6-HOWTO/index.html

댓글 없음:

댓글 쓰기