ipv6 시험망 구축 방법 - linux.co.kr · 2002-10-13 · cisco ios 12.1 ipv6 기능 인스톨...
TRANSCRIPT
IPv6 시험망 구축 방법
1
IPv6 포럼 코리아 기술문서 2 0 0 1 - 0 0 1
무단복제 금지
IPv6 시험망 구축 방법IPv6 Experimenta l Network Implementation and Configuration Guidel
신명기(M.K. Shin) ETRI
박정수(J.S. Park) ETRI
이승윤(S.Y. Lee) ETRI
이장연(J.Y. Lee) i2soft
이재호( J. H. Lee) NCA
김용진 (Y. J. Kim) ETRI
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
2
I. IPv6 시험망 개요 및 요구사항
IPv6 로 구성된 차세대 인터넷 망은
어느 한 순간에 기존 IPv4 망에서 이전되
지 않으므로 이와 관련된 선행 기술들을
실제 망에 적용하기에 앞서 시험망을 구축
하여 예상되는 문제점들을 앞서 해결해야
하며, 이러한 차세대 인터넷 시험망들 간
의 연동시험을 통해 기술적인 검증 작업을
병행하여야 한다. IPv6 시험망 구축은 실
제 IPv6 망을 인터넷 상으로 확장하기 이
전에 시범 사이트 수준에서 이를 사용하고
검증한다는 데 목적이 있다. 현재 전세계
적으로 소규모의 테스트베드에서 한 기관
의 사이트 규모에 이르기까지 다양한
IPv6 시험망이 구축 운용되고 있다.
IPv6 시험망은 구축 초기에는 IPv4/IPv6
듀얼모드로 구성되는 라우터 및 호스트들
로 구성되어 외부 라우팅은 6Bone 과의
연동을 통해 구축되는 방식이 일반적이며,
점차 망이 확장되고 응용 프로그램이 추가
로 지원되면서 IPv4/IP6 듀얼모드 망 보
다는 IPv6 순수(native) 망 구축으로 전
환되어 구축되는 것이 바람직하다. 이때
IPv6 순수망과 IPv4 기존 인터넷 망과의
IPv6 시험망 구축 방법IPv6 Experimenta l Network Implementation and Configuration Guide
신명기(M.K. Shin) ETRI
박정수(J.S. Park) ETRI
이승윤(S.Y. Lee) ETRI
이장연(J.Y. Lee) i2soft
이재호(J. H. Lee) NCA
김용진 (Y. J. Kim) ETRI
본 문서에서는 IPv6 시험망을 구성하기 위한 요구사항 및 환경 등을 기술하고, 이를 기반으로 Cisco, FreeBSD, Linux , Windows2000 등 각
플랫폼 별 IPv6 설정 및 구동 방법 등을 소개한다..
IPv6 시험망 구축 방법
3
연동은 NAT-PT(Network Address
Translation – Protocol Translation) 같
은 IPv4/IPv6 변환 게이트웨이를 IPv6 의
순수망의 출구쪽에 설치하여 운용하면 된
다. 현재 IPv6 시험망을 구축하기 위해서
는 크게 IPv6 기능이 지원 가능한 라우터
와 호스트 장비, 그리고 응용 프로그램으
로 크게 나눌 수 있으며, 이러한 시험망
연결이 완료되면, 체계적인 주소할당 및
라우팅 계획, 외부와의 연동 및 운용 정책
결정 등이 요구된다. 시범 사이트의 구축
을 위한 주요 요구사항은 다음과 같다.
l IPv6 지원 가능한 라우터 및 호
스트 준비
l IPv6 시험망 내에서 요구되는
IPv6 응용 환경(WWW, DNS,
Mail 등)의 선정
l IPv6 시험용 주소, 혹은 공식 주
소를 획득하고, 이를 기반으로 체
계적인 주소할당 및 라우팅 계획,
외부와의 연동 및 운용 정책등을
결정
l 실제 IPv6 시험망을 한 서브넷
규모, 혹은 시범 사이트 규모로
구축할 것인지를 결정하고, 외부
망과의 연동을 위해 국내
6Bone-KR, KOREN 등 IPv6 기
반 차세대 인터넷 망과의 연결을
추진
l IPv6 순수망 혹은 IPv4/IPv6 듀
얼모드의 망을 목적 및 필요에 따
라 적절히 나누어 구성하고, IPv6
순수망의 경우에는 외부 IPv4 망
과의 연동을 위해 IPv4/IPv6 변
환기 등을 구축
l IPv6 시험망 구성이 완료되면, 이
러한 망을 점차 실제 망으로 확산,
진화하기 위한 중장기 계획을 체
계적으로 수립
Ⅱ. IPv6 시험망 구축 환경 및 사양
3Com, Bay, 시스코 시스템즈, 디지털
등 전세계 주요 라우터 벤더들은 IPv6 를
지원하는 제품을 개발하여 시험 출시하고
있으며, FreeBSD, Linux 와 같은 공개용
플랫폼에서는 응용 프로그램을 포함한 다
양한 환경의 IPv6 사양들이 제공되고 있
다.
이런 시험용 제품들의 제약점은 모두
IPv6 순수 환경 기반의 제품들로 기존
IPv4 와의 호환성을 완벽히 제공하지 못하
고 있는 실정이다. 그러나 최근 IPv6 도입
가능성이 유럽과 아시아 국가들의 중심으
로 확산되고 있으며, 특히 무선 인터넷 서
비스 사업자들이 많은 관심을 갖고 있어
관련 벤더들이 2001 년∼2002 년 사이 상
업용 IPv6 정식 제품들이 출시될 것이라
고 발표를 하고 있다.
대표적인 IPv6 벤더로는 시스코 시스
템즈와 마이크로소프트를 들 수 있고, 시
스코의 경우 2000 년 하반기 중에 IOS
12.1(5)T IPv6 정식 버전을 출시하기로
발표하였으며, 마이크로소프트 역시 윈도
우 2000 에 이미 IPv6 기본 프로토콜을
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
4
구현하여 패치 형식으로 제공하고 있다.
마이크로스프트의 Internet Explorer 의
경우도 IPv6 버전을 2000 년 하반기 중으
로 제공할 것이라고 발표한 바 있다.
IPv6 시험망 구축을 위한 환경 사양
으로는 크게 라우터와 호스트 장비 및 응
용 프로그램 등으로 구분되며, 구축하고자
하는 규모 및 응용 요구사항에 맞추어
IPv6 시험망을 구축 가능하다. 예를 들어
IPv6 순수 사이트 규모의 IPv6 시험망은
(그림 1)과 같이 구축 가능하다. 이를 위
해 필요한 IPv6 지원 가능 라우터 제품
및 호스트 목록, 그리고 응용 프로그램의
사양들은 각각 <표 1>, <표 2 >, <표 3 >에
나타내었다.
<표 3>에 나타낸 바와 같이 현재 일
반적으로 사용되는 웹, 메일, DNS 등 한
사이트 규모에서 사용되는 응용들은 모두
IPv6 지원이 가능함으로 별다른 불편없이
IPv6 시험망을 구축 가능하다. 예를 들어
<그림 1>에서 보는 바와 같이 IPv6 백본
를 기반으로 프린트 서버, 파일 서버, 웹
서버, 메일 서버들을 구축하고 일반 사용
자 들은 IPv6 호스트로써 동작하면 IPv4
와 동일한 사이트를 구성 가능하며 이러한
IPv6 사용자가 외부 IPv4 인터넷과의 연
동을 요구할 경우를 위해 IPv4/IPv6 변환
기를 사이트의 출구 게이트웨이에 설치해
두고, 특별히 웹 트랙픽이 많을 경우를 대
피하여 IPv4/IPv6 웹 프락시 등을 구축한
다면, 최적의 IPv6 사이트를 구축할 수 있
다. 이러한 IPv6 사이트는 중장기 적으로
진화를 위해 (그림 2)와 같이 ISP 의 변화
에 따라 좀더 효율적으로 IPv6 라우팅이
가능해 질것으로 예측된다.
IPv6 시험망 구축 방법
5
(그림 1) IPv6 순수 사이트 구성 예 및 기존 IPv4 인터넷과의 연동 구조
(그림 2) IPv6 순수 사이트의 단기/중장기 발전 전략
IPv4 INTERNET
IPv4 -Router
IPv6 CorporateBackbone
IPv6/IPv4 – Border(Edge) RouterWWW ProxyFirewall IPv6/IPv4 Translator
DNS server(IPv6)
IPv6 - RouterIPv6 - Router
IPv6 - Router
File server(IPv6)
Print server(IPv6)
WWW server(IPv6)
IPv6 Host
IPv6 Host
IPv6 Host
IPv6 - Router
ISPIPv4
INTERNET
IPv6
IPv6/IPv4 RouterIPv6/IPv4 Translator
IPv4
IPv6 only Customer
IPv4 Router
IPv4 Router
IPv4 Router
IPv4 Customer
단기 전략
(2002년 ~2005년 )
ISPIPv4/IPv6INTERNET
IPv6
IPv6/IPv4 RouterIPv6/IPv4 Translator
IPv4
IPv4 Router
IPv4 Customer
중 장 기 전 략(2005년 이후 )
IPv6 only Customer
IPv6 only Customer
IPv6
IPv6/IPv4 Router
IPv6/IPv4 Router
IPv6/IPv4 Router
IPv6
IPv4
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
6
<표 1> IPv6 지원 가능 라우터 제품 목록
회사 (제공자) 제품이름 URL
6com http://www.6com.net,http://www.3com.com/nsc/ipv6.html
3Com Enterprise OSSoftwarev11.4
http://www.support.3com.com/infodeli/tools/bridrout/u_guides/html/eos114/family/ref/index.htm
IOS(12.1) http://www.cisco.com/warp/public/732/ipv6/
Cisco Statement ofDirection
http://www.cisco.com/warp/public/732/ipv6/IP_Vers6_SD_0622.pdf
Ericsson Telebit IPv6 Modules http://www.tbit.dk/Products/Software.htm
GateDConsortium GateD http://www.gated.org/gated-
web/code/doc/info/source/source.html
GR2000GigabitRouter
http://www.hitachi.co.jp/New/cnews/E/2000/000120B.html
Hitachi
NR60 Routerhttp://www.hitachi.co.jp/Prod/comp/network/nr60e.html
Multi-threadedRoutingToolkit(MRT)
MRT-2.20a http://www.merit.edu/~mrt/
Nortel Networks NortelNetworks 웹 페이지 없음
Sumitomo Suminet 3700 http://seusa.sumitomo.com/htmls/randd/ipv6/ipv6.html
Thomson CSFDetexis
Thomson CSFDetexis 웹 페이지 없음
Zebra Zebra 0.84 http://www.zebra.org
IPv6 시험망 구축 방법
7
<표 2> IPv6 지원 가능 호스트 제품 목록
회사(제공자) 제품 이름 URL
FreeBSD 4.0 http://www.freebsd.org/releases/4.0R/announce.html
KAME http://www.kame.net
INRIA ftp://ftp.inria.fr/network/ipv6
NRL's IPv6 http://web.mit.edu/network/isakmp/
BSD
IPv6-DRET http://www-rp.lip6.fr/IPv6/
Tru64 http://www.digital.com/info/ipv6/host-implementation.html#COMPAQ Tru64 UNIX
CompaqOpenVMS http://www.digital.com/info/ipv6/host-
implementation.html#OpenVMS
FTP/NetManage
OnNet HostSuite
http://www.netmanage.com/products/onnethost/specs.asp
Hitachi Toolnet6 http://www.hitachi.co.jp/Prod/comp/network/pexv6-e.htm
HP/UX11.0(1998/12)
http://www.software.hp.com/products/IPv6DK/index.html
HPHP/UX11.0(2000/03)
http://www.software.hp.com/cgi-bin/swdepot_parser.cgi/cgi/displayProductInfo.pl?productNumber=IPV6AA
AIX 4.3 http://www.austin.ibm.com/software/OS/aix43.html
NextGenerationInternet
http://www.ngi.ibm.comIBM
OS/390http://www-4.ibm.com/software/network/commserver/downloads/demos/demo_csos390.html
ISI(IntegratedSystem Inc)
IPv6 inembeddedsystem
http://www.isi.com/index.htm
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
8
IPv6 UsersGroup JP http://www.v6.linux.or.jp/
IPv6 HowTo http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html
IPv6 Meat http://bofh.st/ipv6/apps.shtml
Debian IPv6Project http://www.debian.org/~csmall/ipv6/
Linux
Linux IPv6 RPMProject http://v6rpm.jindai.net/
Windows NTstack http://www.research.microsoft.com/msripv6
OfficialWindows 2000press release
http://www.microsoft.com/presspass/press/2000/Mar00/IPv6PR.asp
Microsoft
Windows 2000preview version
http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp
Mentat Mentat TCP http://www.mentat.com/tcp/tcp.html
SCO UnixWare 7 http://www.sco.com/unixware/getonit.html
Sun Solaris 8 http://www.sun.com/solaris/ipv6
Trumpet Winsock 5.0 http://www.trumpet.com/winsock/
IPv6 시험망 구축 방법
9
<표 3> IPv6 지원 가능 IPv6 응용 프로그램 목록
응용프로토콜
클라이언트 URL 서버 URL
Resolver with IPv4transport(Linux, Solaris 7,Windows NT/2000)
Bind and Newbiewith IPv6transport(FreeBSD Inriaand KAME)
http://www.sfc.wide.ad.jp/~doi/softs/DNS DNS
Resolver with IPv6transport(FreeBSD KAME)
Bind with IPv4transport(Linux, Solaris 7)
Internet Explorer(Windows NT/2000)
http://www.research.microsoft.com/msripv6
Apache(Linux, FreeBSDInria and KAME)
mMosaic (Solaris 7)NCSA HTTPServer(Solaris 7)
Mozilla(FreeBSD KAME)
Fnord!(WindowsNT/2000)
http://www.research.microsoft.com/msripv6
Lynx(FreeBSD KAME)
Inframail(WindowsNT/2000)
http://infradig.com/inframail/index.shtml
http
MMM(FreeBSD Inria)
WWW
Chimera (Linux)http://www.bieringer.de/linux/IPv6
프린트Lpr(FreeBSD Inria andKAME)
Lpd(FreeBSD Inriaand KAME)
e-mail POP, SMTP,IMAP
Sendmail(all Unix platforms)Qmail(FreeBSD KAME)Fetchmail(FreeBSD KAME)
Sendmail(FreeBSD Inriaand KAME, Linux)Inframail(WindowsNT/2000)TrumpetWinsock/Fanfare(Windows3.11/95/NT)
http://infradig.com/inframail/index.shtml
http://www1.trumpet.com.au/ipv6
파일
전송ftp
standard ftp clientwith textualinterface(all UNIX platforms)ncftp(FreeBSD KAME,Linux, WindowsNT/2000)
ftpd(all UNIXplatforms)Inframail(Windows NT)TrumpetWinsock/Fanfare(Windows3.11/95/NT)
http://infradig.com/inframail/index.shtml
http://www1.trumpet.c
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
10
om.au/ipv6
원격
제어telnet
standard telnetclient with textualinterface(all Unix platforms)
telnetd(all Unixplatforms)TrumpetWinsock/Fanfare(Windows3.11/95/NT)
http://www1.trumpet.com.au/ipv6
네트웍관리
SNMPIPv6 MIBs
Some IPv6 MIBs(FreeBSD KAME)
Some IPv6 MIBs(FreeBSD KAME)
파일관리
NFS(based onRPC andXDR)
mount_nfs(FreeBSD Inria)
nfsd(FreeBSD Inria)
IPv6 시험망 구축 방법
11
Ⅲ. 시스템별 IPv6 라우터/ 호스트
구축 방법
1. Cisco IOS 12.1 IPv6 기능 인스톨
및 설정 방법
가. 시스템 요구사항
아래와 같은 기종의 시스코 라우터에
서는 IPv6 기능을 제공하는 IOS 설치가
가능하다.
l c1000,c1005,c1400,c1600, c1700
l c2500, c2600
l c3620, c3640, c3660
l c4500
l c5300
l c6400
l c7100, c7200
l c800, c805
나. 시스코 라우터 IOS 업그레이드 방법
(1) ftp 서버에서 IOS 파일을 다운로드 받
는다.
Router#
Router#copy ftp flash
Address or name of remote host []?
129.254.15.18
Source filename []? c7200-p-mz.19991126
Destination filename [c7200-p-mz.19991126]?
c7200-p-mz.19991126
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
file transfered succefully
(2) 잘 다운로드가 되었는가 확인한다.
Router#dir
Directory of slot0:/
1 -rw- 6081142 Dev 09 193 08:53:26
c7200-is-mz.19991126
2 -rw- 6085776 Dec 08 1916 04:54:26
c7200-p-mz.19991126
20578304 bytes total (10920284 bytes free)
(3) 기존에 있었던 IOS 이미지가 있으면
지운다.
Router#del c7200-is-mz.19991126
Router#dir
Directory of slot0:/
2 -rw- 6085776 Dec 08 1916 04:54:26
c7200-p-mz.19991126
20578304 bytes total (10920284 bytes free)
(4) 새로 다운로드 받은 이미지를 리로드
한다.
Router#reload
다. 시스코 라우터 설정 개요
Cisco 라우터를 접근할 때에는 일반유
저 레벨과 수퍼유저 레벨이 있다. 처음에
콘솔이나 telnet 을 하여서 password 를
입력하여 나타나는 프롬포트(Router#)가
일반유저의 단계로서 설정 값 들을 볼 수
가 없는 단계이고, enable 명령으로 수퍼
유저 단계로 진입할 수 가 있다. (앞으로의
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
12
모든 설정은 수퍼 유저의 권한에서 실행한
다.)
라우터의 설정을 하기 위해서는
configuration mode 로 들어가야 한다. 따
라서, 수퍼 유저 레벨에서 config terminal
명령으로 설정모드로 들어간다.
모든 설정이 완료되어서 configuration
mode 를 나오려 할때에는 “Ctrl-z”키를
사용하여 configuration mode 를 종료하고
설정 값을 적용하기 위하여 write 명령을
실행한다.
라. 시스코 라우터 IOS 12.1(2000 년 6 월
버전 beta) IPv6 기능 설정 방법
(1) Ethernet interface 에 IPv6 주소 설
정
; 아래의 예는 ethernet0 인터페이스에
IPv6 주소만을 설정하는 경우를 나타낸
것이다. 이러한 경우는 주로 IPv6 native
서브넷을 구축할 경우 사용된다.
Router#config terminal
Router(config)#interface ethernet 0
; Ethernet submenu 로 이동
Router(config-if)#no shutdown
; Ethernet interface를 enable
Router(config-if)#no ip address
; 이 interface는 IPv6 로만 사용하므로 IPv4
address 를 설정하지 않는다.
ip-address 를 설정하지 않았다면 이 명령을 입
력할 필요가 없지만 설정을 한적이 있다면 이
명령으로 지운다.
Router(config-if)#ipv6 enable
; IPv6 주소 설정을 enable
Router(config-if)#ipv6 address 2001:230::/64
eui-64
; IPv6 주소 입력, 뒤에 eui-64 파라미터를 이
용하여 MAC 주소를 그대로 auto-configuration
할 수 있다
Router(config-if)#exit
; 아래의 예는 ethernet1 인터페이스에
IPv6 와 IPv4 주소를 모두 함께 주는 경
우를 나타낸 것이다. 이러한 경우는 주로
6Bone 과 같이 IPv6-in-IPv4 터널을 사
용할 때 이러한 인터페이스가 설정되어 있
어야 한다.
Router(config)#interface ethernet 1
Router(config-if)#ip address 129.254.254.86
255.255.255.240
Router(config-if)#media-type 10BaseT
Router(config-if)#ipv6 enable
Router(config-if)#ipv6 address 3ffe:2e0::0/64
eui-64
Router(config-if)#exit
(2) ATM interface 에 IPv6 설정 및
ATM PVC, map-group 작성
Router(config)#interface atm0
; ATM interface submenu 로 이동
Router(config-If)#no shutdown
; ATM interface를 enable
Router(config-if)#map-group ipv6
; PVC 로 연결된 상대방을 찾아가는 방법을 지
IPv6 시험망 구성 방법
13
정하는 것으로 ipv6 는 global 에서 정의한
table 의 이름이다.
Router(config-if)#exit
; 한단계 위로(Global 부분) 되돌아간다.
Router(config)#map-list ipv6
; table 를 설정한다.
Router(config-map-list)#ipv6 2001:230:E:C::2
atm-vc 1
; 2001:230:E:C::2 를 찾아갈때는 PVC 1을 사용
하라고 지정한다.
Router(config-map-list)#exit
Router(config)#interface atm0.1 point-to-point
; 가상의 atm device를 설정한다.
Router(config-If)#no shutdown
; 가상의 ATM interface를 enable
Router(config-If)#atm pvc 1 0 66 aal5snap
; ATM LLC/SNAP encapsulation PVC PVC 1 번
<0/66> 설정
Router(config-if)#ipv6 enable
Router(config-if)#ipv6 address 2001:230:E:C::1
/64
; 가상의 interface에 ipv6 address 를 설정
(3) IPv6-in-IPv4 터널 설정
Router(config)# interface Tunnel0
Router(config)#description CERNET hswu@ns.
6test.edu.cn
Router(config-if)#ipv6 address 3FFE:3200:1:6
::2/64
Router(config-if)#tunnel source ethernet 1
; 상대편 tunnel endpoint 가 연결된 interface
를 지정한다.
Router(config-if)#tunnel destination 202.38.99.1
; 상대편 tunnel endpoint 의 ipv4 address 를 지
정한다.
Router(config-if)#tunnel mode ipv6ip
; ipv6 packet 을 ipv4 packet 으로 encapsulate
하기 위한 static tunnel
interface 를 정의
Router(config-if)#exit
; 필요하다면 다음과 같이 static 으로
route 혹은 디폴트 라우터를 설정함
Router(config)#ipv6 route 3ffe:2e01::0/48
Tunnel1
; ipv6 에 대한 static route 설정
Router(config)#ipv6 route 0::0/0 Tunnel2
; ipv6 default gateway 를 설정
(4) IPv6 BGP 설정
Router#config terminal
Router(config)#router bgp 3748
; 내부에 AS 에 대해서 ipv4 BGP 를 먼저 구성
Router(config-router)#exit
Router(config)#no ipv6 bgp synchronization
; ibgp route synchronization 을 disable
Router(config)# neighbor 3FFE:3200:1:6::1
remote-as 4538
Router(config)# no neighbor 3FFE:3200:1:6::1
activate
; AS4538 로 BGP 를 연동하고 있는 Route 를 지
정한다
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
14
Router(config)#address-family ipv6
Router(config)#neighbor 3FFE:3200:1:6::1
activate
Router(config)#neighbor 3FFE:3200:1:6::1
override-capability-neg
Router(config)#neighbor 3FFE:3200:1:6::1
prefix-list FULL in
Router(config)#neighbor 3FFE:3200:1:6::1
prefix-list 6bone out
Router(config)#network 2001:230::/35
Router(config)#network 3FFE:2E00::/24
Router(config)#aggregate-address 2001:230::/35
summary-only
Router(config)#aggregate-address
3FFE:2E00::/24 summary-only
; 라우터가 관리하는 ipv6 network 을 기록하고
aggregation 을 설정한다.
; IPv6 route 필터링은 다음과 같이 설정
할 수 있다.
Router(config)#ipv6 prefix-list 6bone seq 1 deny
2001:200::/35 le 128
Router(config)#ipv6 prefix-list 6bone seq 2 deny
2001:228::/35 le 128
Router(config)#ipv6 prefix-list FULL seq 1
permit 3FFE::/16 le 24
Router(config)#ipv6 prefix-list FULL seq 2
permit 2001::/16 le 35
Router(config)#ipv6 prefix-list FULL seq 3
permit 2002::/16 le 48
(5) 기타 monitoring command
Router#show ipv6 interface
;IPv6 Interface 설정된 상황을 보여준다
ATM0 is up, line protocol is up
IPv6 is enabled, link-local address is
FE80::D0:BBFB:10A9:2
Description: apan-6tap, opicom
No global unicast address is configured
Joined group address(es):
FF02::1
FF02::2
FF02::1:FFA9:2
MTU is 4470 bytes
ICMP error messages limited to one every
500 milliseconds
Hosts use stateless autoconfig for
addresses.
ATM0.1 is up, line protocol is up
IPv6 is enabled, link-local address is
FE80::D0:BBFB:10A9:1C
Description: etri -> kaist,
Global unicast address(es):
2001:230:E:C::1, subnet is
2001:230:E:C::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FFA9:1C
FF02::1:FF00:1
MTU is 4470 bytes
ICMP error messages limited to one every 500
IPv6 시험망 구성 방법
15
milliseconds
Hosts use stateless autoconfig for addresses.
Router#show ipv6 tunnel
;IPv6 터널이 설정된 상황을 보여준다
Tun Route LastInp Packets Description
0-00:00:08 4438 CERNET [email protected]
1-00:00:00 21145 6bone JOIN,
2-00:00:10 11934 6bone VIAGENEI,
Marc Blanchet, M
3-00:00:04 25692 6bone MERIT, Masaki Hirabaru,
4-00:00:54 5031 6bone CISCO,
5-00:00:00 28115 6bone NTT-ECL,
6-00:00:00 16232 6bone CHTTL-TW,
7-00:00:30 6665 6bone ISI-LAP, SEKIYA Yuji,
Router# show bgp ipv6 summary
; IPv6 bgp 가 설정된 상황을 보여준다
BGP router identifier 129.254.254.86, local AS
number 3748
BGP table version is 385, main routing table
version 385
79 network entries and 418 paths using 37022
bytes of memory
364 BGP path attribute entries using 19032
bytes of memory
349 BGP AS-PATH entries using 8424 bytes of
memory
2 BGP community entries using 48 bytes of
memory
0 BGP route-map cache entries using 0 bytes of
memory
0 BGP filter-list cache entries using 0 bytes of
memory
BGP activity 164/47003 prefixes, 5212/4794
paths, scan interval 15 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd2001:230:E:A::2 4 4753 1486 3229 385 0 0 03:09:36 12001:230:E:C::2 4 7622 1491 3151 385 0 0 03:09:51 22001:230:E:D::2 4 1273 1494 3099 385 0 0 03:09:38 23FFE:B00:C18::2 4 10566 12086 4537 385 0 0 03:09:52 693FFE:C00:E:C::1 4 109 2637 3077 385 0 0 03:09:33 63
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
16
Router# show ipv6 route
;IPv6 라우팅 테이블을 보여준다.
IPv6 Routing Table - 143 entries
Codes: C - Connected, L - Local, S - Static, R -
RIP, B - BGP
Timers: Uptime/Expires
B 2001:200::/35 [20/2]
via FE80::250:DAFF:FEB2:63D, Tunnel5,
03:09:25/never
B 2001:208::/35 [20/2]
via FE80::250:DAFF:FEB2:63D, Tunnel5,
00:29:27/never
B 2001:218::/35 [20/1]
via FE80::250:DAFF:FEB2:63D, Tunnel5,
03:09:25/never
B 2001:220::/35 [20/1]
via FE80::50:BD44:7800:22, ATM0.2,
03:10:55/never
B 2001:228::/35 [20/2]
via FE80::250:DAFF:FEB2:63D,
Tunnel5, 03:09:25/never
L 2001:230::2D0:BBFF:FEFB:10A9/128
[0/0]
via 2001:230::2D0:BBFF:FEFB:10A9,
Ethernet0, 1d00h/never
C 2001:230::2D0:BBFF:FEFB:10A9/64
[0/0]
via 2001:230::2D0:BBFF:FEFB:10A9,
Ethernet0, 1d00h/never
S 2001:230:0:1::/64 [1/0]
via ::, Tunnel18, 1d00h/never
L 2001:230:E:A::1/128 [0/0]
via 2001:230:E:A::1, ATM0.3,
03:14:29/never
C 2001:230:E:A::1/64 [0/0]
via 2001:230:E:A::1, ATM0.3,
03:14:29/never
L 2001:230:E:C::1/128 [0/0]
via 2001:230:E:C::1, ATM0.1,
03:16:34/never
2. FreeBSD/KAME IPv6 기능 인스톨
및 설정 방법
가. 시스템 요구사항
l Pentium PC
l FreeBSD 운영체제 – 버전 2.8 ~ 4.1
(본 환경에서는 FreeBSD 3.1 버전 사
용)
l Kame IPv6 stack - FreeBSD Version
3.1 을 위한 Version 19990412.
(FreeBSD4.0 이상 버전에서는 IPv6 스
택이 built-in 되어 있어 별도로 KAME
IPv6 패치 부분을 인스톨 할 필요는 없
다)
나. FreeBSD 설치
(1) 부팅
PC 의 바이오스 셋업으로 들어가서 제
1 순위 부팅 장치를 CD 롬으로 맞추고,
CD 롬에 FreeBSD CD 를 넣고 부팅하면
된다.
(2) 커널 설정
IPv6 시험망 구성 방법
17
부팅 후에 처음으로 뜨는 메뉴로 다음
과 같은 3 개의 메뉴가 뜬다.
Skip kernel configuration and continue with
installation
Start kernel configuration in full screen Visual
mode
Start kernel configuration in CLI mode
이후 KAME 를 설치할 때 kernel
compile 을 하므로 여기서는 kernel
configuration 을 생략하고 진행한다.
kernel 을 설정할 때의 Visual 모드는 메뉴
방식으로 설정을 하는 것이고, CLI 모드는
커맨드라인 모드이다.
(3) 설치방법 선택
위의 과정을 거처 부팅이 되면
"/stand/sysinstall"이라는 설치프로그램이
실행된다. 처음 화면에는 다음과 같은 메
뉴와 간단한 설명이 나타난다.
Usage
Novices
Express
Custom
Configure
Doc
Keymap
Options
Fixit
Upgrade
Load Config
index
일반적인 설치, 각각의 단계를 미세하
게 조절할 수 있는 고급 설치, 빠른 설치
중 원하는 설치방법에 따라 Novice,
Custom, Express 설치 중 하나를 선택한
다. 여기서는 custom 방법에 따라 설명한
다.
(4) Custom 설치 과정
Custom 설치를 선택하면 다음과 같
은 메뉴와 간단한 설명이 나타난다.
Options
Partition
Label
Distributions
Media
Commit
Exit
partition
메뉴를 보고 원하는 명령을 선택하기
바란다. 보통은 A 를 눌러 쓸 수 있는 용
량을 모두 선택하면 된다. 원하는 만큼 나
누고 싶다면 C 를 눌러 용량을 지정할 수
있는데, 100 메가를 잡고 싶다면 100M 이
라고 쓰면 된다. 해당 파티션에서 부팅하
고 싶다면 그 파티션에서 S 를 누르면
Flags 에 A 가 나올 것이다. 그리고 나중
에 포맷할 때 bad-sector 를 자동 체크하
기를 원한다면 해당 파티션에서 B 를 눌러
두면, Flags 에 B 가 추가한다. 다 되었으
면 다시 한번 잘 보고, q 를 눌러 나가자.
w 는 선택하지 말기 바란다. 이건 나중에
설치 후 파티션을 바꿀 때 쓰는 것이다. q
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
18
를 누르면 Boot Manager 를 설치할 곳을
설정한다.
"BootMgr"을 선택하면 FreeBSD 의
표준 멀티부팅 프로그램인 booteasy 를
설치한다. "Standard"를 선택하면 MBR 에
booteasy 가 아닌 앞에서 부팅 할 때 보
았던 그 프로그램만 설치한다. "None"은
아무 일도 안 한다. MBR 영역을 사용하는
Linux 의 LILO 나 windows NT 등이 이미
설치되어 있지 않다면 "BootMgr"을 선택
한다. 그렇지 않으면 multi-booting 에 관
한 문서를 보고 설치를 하는 것이 좋다.
Label
label 은 기본 파티션 내에서
FreeBSD 를 위한 파티션을 따로 잡는 것
이다. 레이블도 파티션과 비슷한 인터페이
스로 편집 할 수 있다. 위에 나열되는 것
은 각 드라이브와 그에 있는 파티션, 그리
고 아직 레이블되지 않은 공간의 크기가
나온다. 아래에는 레이블된 파티션, 용량,
마운트될 디렉토리, 포맷할 지의 여부이다.
레이블을 만들려면, 일단 위의 디스크
선택에 올라가서 레이블을 만들 파티션에
커서를 두고, C 를 눌러 용량을 적어준 뒤,
이 레이블을 스왑용으로 쓸지 그냥 파일시
스템으로 쓸지 지정하고, 마운트할 디렉토
리를 적어주면 된다. 만약 드라이브가 하
나이고, FreeBSD 파티션이 하나밖에 없다
면 A 를 눌러 그냥 자동적으로 나누도록
하는 것도 하나의 방법이다. 스왑은 보통
램의 2 배 정도를 잡는다.
Distribution(배포본)
다음과 같은 배포본이 있고 이 중에서
는 All 을 선택한다.
종류 설명
Developer 개발자용. 전체 소스와 바이너리,문서가 제공되지만 게임은 없다
X-Developer X 개발자용. Developer+X 윈도시스
템
Kern-Developer
커널 개발자용. 전체 바이너리와
문서가 제공되지만, 소스는 커널
소스만이 포함된다.User 일반 사용자. 바이너리와 문서만
이 설치된다.X-User X 사용자. User+X 윈도시스템
Minimal bin 배포본만을 설치한다. 최소
Custom 여러분이 마음대로 선택할 수 있
다.All 모두 다 설치. 하드가 많다면 얼
마든지…
선택하고 나면 DES 설치에 대한 것을
따로 물어볼 것이다. DES 는 자신이 미국
과 캐나다에 살지 않는 한 설치하면 안 된
다. DES 는 암호화 방식에 대한 표준인데,
DES 특허에 대한 사항 때문에 미국과 캐
나다 이외의 나라에서는 사용해서는 안 된
다. 그 뒤에 또한 "Select the encryption
facilities you wish to install"에서는 모두
선택한다. 또한 그 후에 FreeBSD port
collection 을 설치 할 것인가를 물어올 것
이다. "YES"를 선택한다.
IPv6 시험망 구성 방법
19
Media
CD-ROM 을 선택한다.
Commit
위에서 설정한 것을 저장하고 설치를
시작한다.
(5) 환경설정
"Custom" 설치를 마치고 나면 환경설
정을 할 것인지 물어 올 것이다. "YES"를
선택한다. 환경설정의 메뉴는 다음과 같다 .
Distributions
Packages
Root Password
Label
Fdisk
User management
Console
Time Zone
Media
Mouse
Networking
Startup
Options
HTML DOcs
XFree86
Register
Exit
Distributions
배포판을 선택은 설치 메뉴에서 볼 수
있는 것들이지만 설치 후의 재설정을 위해
이 메뉴에 들어있다.
Packages
설치하고 싶은 패키지를 선택하고 설
치한다. FreeBSD 의 패키지는 4.4BSD 와
FreeBSD 개발팀이 개발하지 않는 프로그
램들을 FreeBSD 용으로 포팅한 것들은
모두 package 라고 생각하면 된다.
패키지는 여러 종류로 나누어져 있으
며 다음과 같이 분류되어 있다.
All afterstep archivers
astro audio benchmarks
biology cad comms
converters databases deskutils
devel editors elisp
emulators games german
gnome graphics japanese
kde lang mail
math mbone misc
net news offix
palm perl5 plan9
print python russian
security shells sysutils
tcl76 tcl80 tcl81
textproc tk42 tk80
Vietnamese windowmaker www
x11 x11-clock x11-fm
x11-fontsx11-toolkits x11-wm
이 중에서 원하는 것을 일단 선택하
면(ENTER 로 한다) 그 안에서 설치 가능
한 패키지들이 나타난다. 이것들을 선택을
하고(SPACE 로 한다) OK 를 선택해 나오
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
20
고 "Install"을 선택하면 선택한 패키지들
이 나열되며, 최종적으로 O K 를 선택하면
설치를 시작한다.
설치 중, 패키지가 없거나 포맷이 잘
못된 경우에는 설치 에러가 나면서 설치하
고자 하는 패키지의 설치를 거부하게 된다.
이때 설치를 중단시키지 말고 "OK"를 선
택해 다른 패키지의 설치를 계속 진행한다.
이 중에서 "archivers", "comms",
"devel", "net", "shell", "www"에 관련된
패키지는 설치하는 것이 좋다.
Root Password
root 패스워드를 설정한다.
Label, Fdisk
Label 과 Fdisk 는 설치 메뉴에서 볼
수 있는 것들이지만 설치 후의 재설정을
위해 이 메뉴에 들어있다.
User Management
user 와 group 을 설정한다.
Console
console 의 font, keymap, repeat,
saver, screen map 을 원하는 대로 설정
한다.
Time Zone
현재 자신이 속한 시간대를 맞추기 위
한 것이다. BIOS 시계가 그리니치 표준시
로 동작할 때에만 "YES"라고 답한다. 그
리고 지역을 선택하고 나라를 선택한다.
그리고 지금 선택한 시간대가 맞는지 다시
한번 물어본다. 맞으면 "YES"를 선택한다.
Media
Media 는 설치 메뉴에서 볼 수 있는
것들이지만 설치 후의 재설정을 위해 이
메뉴에 들어있다.
Mouse
마우스의 Type 과 Port 를 설정하고
Enable 을 실행시켜보면 마우스가 움직이
는지를 물어보는데 움직인다면 "YES"를
선택하면 된다. 움직이지 않는다면 자신의
마우스의 Type 과 Port 를 확인하고 다시
설정한다. 마우스 설정을 지우려면
Disable 을 선택하면 된다.
Networking
networking 에 관련된 설정을 한다.
다음과 같은 메뉴를 가지고 있다.
"Custom"설치의 경우 "Interfaces"설정을
해야만 network 을 이용할 수 있다. 그 외
의 것은 자신의 목적에 맞게 설정한다. 특
히 NAT-PT 를 설치하기 위해 network
card 를 두 개를 설치하였으므로
"Interfaces"에서 두 개의 network card
가 다 잡혀 있는지 확인하고 IPv4 용
network card 는 할당된 IP 주소로 설정을
하고, IPv6 용 network card 는 설정하지
않는다. 그리고 이 컴퓨터는 router 역할
을 해야하므로 router daemon 은 설정하
지 않더라도 gateway 는 설정하여야 한다.
l Interfaces : interface card 에 ip,
IPv6 시험망 구성 방법
21
gateway, dns server, net-mask 등을
설정한다.
l NFS client : NFS client 로 사용하고자
하면 선택한다.
l NFS server : NFS server 로 사용하고
자 하면 선택한다.
l AMD : 자동마운트(AMD)를 사용하고자
하면 선택한다.
l AMD Flags : 자동마운트(AMD)의 옵션
을 설정한다.
l TCP Extensions : TCP Extension 을
허용하려면 선택한다.
l Gateway : 이 컴퓨터를 gateway 로 사
용하려면 선택한다.
l Ntpdate : 주변에 네트워크 시간 서버가
있다면 이를 선택해서 컴퓨터의 시간을
자동으로 맞추어주게 할 수 있다.
l Router : router daemon 을 사용하려면
선택한다. (router daemon 이름과 옵션
을 설정한다.)
l Rwhod : rwho daemon 을 실행시키려면
선택한다.
l Anon FTP : FTP 서버에 Anonymous 의
접근을 허용하려면 설정한다.
l PCNFSD : client 들을 위한 인증서버를
실행시키려면 선택한다.
Startup
시스템이 부팅 할 때의 초기 서비스를
선택할 수 있고 초기설정을 조절 할 수 있
다. 메뉴는 다음과 같다. 자신의 목적에 설
정한다.
l APM : Auto-power management 를 사
용하려면 선택한다.
l Pccard : 노트북 사용자를 위한 선택사
항이다.
l Pccard mem : 노트북 사용자를 위한 선
택사항이다.
l Pccard ifconfig : 노트북 사용자를 위한
선택사항이다.
l startup dirs : 시스템 기본 애플리케이션
이 아니라 패키지로 설치되는 프로그램
이나 사용자 설정의 초기 시작 디렉토리
를 지정하는 곳이다.
일반적으로 /usr/local/etc/rc.d 와
/usr/X11R6/etc/rc.d 를 지정하는데 그
대로 놓아두도록 하자.
l named : Domain name server 인 bind
의 시작을 설정한다.
l named flags : Domain name server 인
bind 의 옵션을 설정한다.
l nis client : Network Information client
로 사용하고자 하면 선택한다.
l nis server : Network Information
server 로 사용하고자 하면 선택한다.
l accounting : 프로세스 사용 기록을 남기
려면 선택한다.
l Lpd :프린터를 사용할 수 있도록 하려면
선택한다.
l linux : 리눅스 에뮬레이션 모드를 처음
부터 작동시키려면 선택한다.
l quotas : 사용자 쿼터를 설정하도록 한다.
l SCO : SCO 에뮬레이션 모드(IBCS2)를
처음부터 작동시키려면 선택한다.
Options
이것은 설치 메뉴에서 볼 수 있는 것
들이지만 설치 후의 재설정을 위해 이 메
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
22
뉴에 들어있다.
XFress86
GUI 방식 설정 프로그램인
XFree86Setup, Shell-script 형식인
xf86config, GUI 방식 설정 프로그램인
XF98Setup(PC98) 중 하나를 실행할 수
있다.
Register
FreeBSD 사용자로 등록을 한다.(안
해도 되지만 하는 것이 좋다고 한다.)
(6) 이것으로 설치와 환경설정을 마치고
하단의 "Exit Install"을 선택하여 절
차를 완전히 종료한다.
다. KAME 설치
다음을 가정하고 설치를 시작한다.
l FreeBSD 의 커널 소스 tree 는
"/usr/src/sys"에 위치한다.
l KAME 소스는 "$SOMEWHERE/kit/"에
위치한다.($SOMEWHERE 는 임시로 지
정한 디렉토리이다.)
l v6 명령과 라이브러리는 "/usr/local/v6"
에 저장된다.
(1) 다음의 처리에 의해 변경되는
"/usr/src/sys"와 "/usr/include" 디렉토리
백업
# cd /usr
# tar zcvf include.tar.gz. include
# cd /usr/src
# tar zcvf sys.tar.gz sys
(2) 패키지 가져오기와 압축풀기
① 다음의 ftp 사이트에서 패키지를 가져
온다.
ftp.kame.net/pub/kame/stable/kame-19990412
-fbsd31-stable.tgz
② 압축풀기
#cd $SOMEWHERE
#gzip -c -d kame-980930-fbsd227-stable.tgz |
tar -xvf -
#cd kit
(3) 커널 설치
① FreeBSD 커널을"$SOMEWHERE/
kit/sys227.diff" 파일로 패치 한다.
이것은 IPv6 용 커널 환경 설정 파일
의 샘플인 "/usr/src/sys/i386/conf/GEN
ERIC.v6"을 만든다.
# cd /usr/src/sys
# patch -p1 -f < $SOMEWHERE/kit/sys-227.diff
② 커널의 환경을 설정한다.
"/usr/src/sys/i386/conf/GENERIC.v6"을
복사해서 자신의 환경 설정 파일을 만든다.
# cd /usr/src/sys/i386/conf
# cp GENERIC.v6 IP6
# vi IP6
③ 위의 IP6 에서 다음의 항을 보고 추가
또는 개선한다.
options "INET6"
IPv6 시험망 구성 방법
23
options "GATEWAY6"
options IPSEC
#options IPSEC_DEBUG
pseudo-device bpfilter 16
pseudo-device gif 16
"GATEWAY6"을 정의한다면 이 노드
는 라우터처럼 행동하고, 정의하지 않으면
이 노드는 호스트처럼 행동한다. 다음의
명령에 의해서 호스트를 라우터로 변경할
수 있다.
이 이상의 정보는 "/usr/local/v6/etc/
rc.net6"를 참고한다.
sysctl -w net.inet6.ip6.forwarding=1
IPsec 을 이용하기를 원한다면,
IPSEC "opeions"라인을 추가하면 된다.
IPSEC_DEBUG 는 IPsec 처리부분의 디
버깅을 위한 것이다.
"bpfilter" 뒤의 숫자는 BPF interface
의 수를 나타내며 NAT-PT의 설치를 위
해 최소한 5 개 이상은 설정해야 한다.
"gif" 뒤의 숫자는 설정된 tunnel 의 수를
나타낸다.
ATM 장치를 원한다며 다음의 항을
추가한다.
options NATM
pseudo-device atm
④ 위의 설정이 끝나면 다음을 수행한다.
이 작업은 커널을 컴파일하고 설치하는 과
정이다.
# config IP6
# cd ../../compile/IP6
# make depend
# make
# make install
(4) "/usr/local/v6"에 저장되는 모든 명령
과 라이브러리를 만든다.
① include 파일을 업데이트 한다.
# cd /usr/include
# patch -p1 -f < $SOMEWHERE/kit/include-
227.diff
② 커널 소스를 가리키기 위해 symbolic
link 를 생성한다. 이것으로 모든 명령과
라이브러리를 만들 준비는 끝난다.
# mv net net-dist
# ln -s ../src/sys/net
# mv netinet netinet-dist
# ln -s ../src/sys/netinet
# mv netkey netkey-dist
# ln -s ../src/sys/netkey
# mv sys sys-dist
# ln -s ../src/sys/sys
# mv machine machine-dist
# ln -s ../src/sys/i386/include machine
# ln -s ../src/sys/netinet6
③ "kit" 디렉토리에서 userland tool 을
만든다.
% cd $SOMEWHERE/kit
% make
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
24
% su
# make install
(5) "/etc/rc" 파일에 다음을 추가시킨다.
[ -f /usr/local/v6/etc/rc.net6 ] && sh
/usr/local/v6/etc/rc.net6
"/usr/local/v6/etc/rc.net6.sample"을
"rc.net6"으로 복사하고 이 파일을 자신의
환경에 맞게 편집한다.
(6) 새로운 커널로 재부팅 한다.
# shutdown -r now
(7) "/etc/manpath.config"에
“/usr/local/v6/man"을 추가한다.
"PATH"에 "/usr/local/v6/bin"과
"/usr/local/v6/sbin"을 추가한다 .
(8) 환경 설정
v6 명령은 "/usr/local/v6/bin",
"/usr/local/v6/sbin"에 위치해 있다. 그러
므로 이 디렉토리를 PATH 에 추가시키거
나 "bin", "sbin"에 symbolic link 파일을
만들어서 사용하여도 된다. 나는 좀 귀찮
은 일이지만 본래의 이름에 "6"을 추가하
여 symbolic link 를 만들어서 사용하였다.
(예, ifconfig -> ifconfig6)
① 자신을 gateway 로 설정
이것은 "/usr/local/v6/etc/rc.net6"에서
설정할 수 있는데 이 파일에서 다음의 것
을 "1"로 설정하면 된다.
sysctl -w net.inet6.ip6.forwarding=1
이것은 rc.net6 파일에서 ip6router 를
"YES"로 설정하면 자동으로 설정되고,
router deamon 이 뜨게된다. router
deamon 을 사용하지 않고 gateway 로만
사용하려면 ip6router 를 "NO"로 설정하
고 이 파일의 아래쪽에
net.inet6.ip6.forwarding 을 "0"으로 설정
하는 자리가 있을 것이다. 이곳에서
net.inet6.ip6.forwarding 을 "1"로 설정하
면 된다.
② IPv6 주소 할당
다음의 명령으로 IPv6 주소를 할당 할
수 있다.
ifconfig6 [장치명] inet6 [IPv6 주소] prefixlen 64
alias
예를 들어, 장치명이 "ep0"이고, 할당할
주소가
"2001:230:0:1:220:afff:fe86:f996"이고
prefix 가 64bit 라면 다음과 같은 명령을
실행하면 된다.
ifconfig6 ep0 inet6 2001:230:0:1:220:afff:fe86
:f996 prefixlen 64 alias
여기에서,
"2001:230:0:1:220:afff:fe86:f996"은
prefix 와 네트웍 카드의 MAC 어드레스
를 이용하여 만든 주소이다. 이 방법은 다
음과 같다. MAC 어드레스가
"00:20:af:86:f9:96"이라면 다음과 같이
IPv6 시험망 구성 방법
25
변환하여 64bit 를 만다.
변환하여 만들어진 "02:20:af:ff:fe:86:f9:
96"을 prefix 64bit 와 결합하여 주소를
만들면 위에서 사용한 주소를 만들 수 있
다.
③ routing 경로 설정
다음이 명령으로 routing 경로를 설정
할 수 있다.
route6 [command] -inet6 [host | network]
destination gateway
[command]는 add, delete 등이 있으며,
"-inet6"은 IPv6 망에 관하여 설정하고
있으므로 한정 시켜 놓은 것이다. [host |
network]은 어떤 IP 주소나 네트웍을 나
타내는 prefix 등을 나타내면 destination
gateway 는 목적지 router 나 gateway 를
나타낸다. default router 가
"2001:230:0:1:220:afff:fe86:f996"이라
면 다음과 같이 설정할 수 있다.
route6 add -inet6 default 2001:230:0:1:220:afff
:fe86:f996
예를 들어"aaaa:bbbb:cccc:dddd:eeee:
ffff/64" 이러한 prefix 를 가지는
address 는 "2001:230:0:1:220:230:afff
:fr86:f996"의 주소를 가지는 router 에서
routing 되게 하고 싶다면 다음과 같이 설
정하면 된다 .
route6 add -inet6
aaa:bbbb:cccc:dddd:eeee:ffff/64
2001:230:0:1:220:afff:fe86:f996
④ tunnel 의 설정
tunneling 은 "gif" 장치를 사용하며, 다
음의 순서로 tunneling 을 한다.
gifconfig6 <interface 명> <gif tunnel 주
소(자기의 주소)> <상대편 주소>
ifconfig6 <interface 명> inet6 <자신의
IPv6 주소
(상대편이 renumbering 으로 지정시
그 주소)> <상대편 router 주소>
예를 들어, "129.254.254.83"의 라우터
와 "129.254.254.86"의 라우터를
tunneling 한다면 다음과 같이 설정할 수
있다. "129.254.254.86"의 라우터에서
numbering 으로 지정한 "3ffe:2e00:e:fffd
::3" ("129.254.254.83" 쪽 주소)와,
"3ffe:2e00:e:fffd::2" ("129.254.254.86"쪽
주소)를 사용한다.
gifconfig6 gif0 129.254.254.83 129.254.254.86
00 20 af 86 f9 96
00 20 af ↑ ↑ 86 f9 96ff fe
00 20 af ff fe 86 f9 96
0 0 0 0 0 0 0 0↑1 "Universal/Local" bit
1=globally unique
02 20 af ff fe 86 f9 96
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
26
ifconfig6 gif0 inet6 3ffe:2e00:e:fffd::3
3ffe:2e00:e:fffd::2 prefixlen 127
위에서 설명한 것은 자동으로 저장되어
다시 부팅할 때 계속 유지되는 것이 아니
므로 하나의 스크립트를 만들어 부팅할 때
마다 실행 시켜주는 것이 좋다. 하나의 스
크립트로 만들면 나중에 설정을 바꾸기도
편하고 이 파일을 부팅할 때 같이 실행되
게 하면 편하게 현재의 설정을 유지할 수
있다.
3. Linux IPv6 기능 인스톨 및 설정
방법
가. IPv6 를 지원하는 커널 및 기본 네트워
크 도구 설정
(1) Linux 커널 설정
일반적으로 Redhat 과 같은 패키지를
이용해서 Linux 를 설치하게 되므로, 이
패키지들이 IPv6 를 포함하고 있는 지를
파악하는 것이 중요하다. 현재, RedHat
6.1, 6.2 에는 2.2.14 버전이 포함되어 있
다. 2.2.x 버전대의 커널들은 IPv6 를 포
함하고 있고 있으므로, 커널을 재컴파일할
넣을 필요가 없다. 그러나, 내가 원하는
네트워크 Option 들을 설정하거나 최신의
안정된 커널을 사용하고자 한다면, 새로운
커널을 down 받아서 컴파일해서 사용하
는 것이 좋을 것이다. 2.2.18 버전이 안정
화된 버전이며, 2.4.0 대 버전들이 테스트
중이다. 2.4.0 대 버전들은 네트워킹 등을
위한 내부 구조가 많이 바뀌었으므로, 안
정된 시험망을 구축하고자 한다면, 2.2.x
대 버전을 사용하기 바란다. 또한, 2.2.14
버전들은 보안상의 문제가 있다고 알려져
있으므로, 웹 등과 같은 응용을 설치하고
자 한다면, 피하는 것이 좋을 것이다.
(참고, http://www.bieringer.de/linux/)
이제 커널 컴파일 과정을 살펴보자. 다
음의 순서에 따라 수행하면, 문제없이 컴
파일이 될 것이다.
cd /usr/src
rm linux
tar xzf linux-2.2.16.tar -C /usr/src
mv linux linux-2.2.16
ln -sf linux-2.2.16 linux
cd linux
make mrproper
make config | menuconfig | xconfig
l 아래의 도표를 통해
configuration 과정에서, 기본적으
로 IPv6 네트워킹을 위해 설정해
야하는 것을 명시하였다. 특히,
"Networking option" 항목에 있
는 "IPv6 Protocol", "IPv6:enable
EUI-64 token format"과
"IPv6:disable provider based
address" 항목들은 반드시 설정해
야 한다.
IPv6 시험망 구성 방법
27
<표 4> IPv6 를 포함한 Linux 커널 컴파일을 위해 설정해야 할 옵션 리스트
커널 옵션 설정유무Codematuritylevel options
Prompt for developmentand/or incompletecode/drivers
- yes- IPv6 모듈들은 아직 실험버전
이므로 이 값을 설정해야 한다.
Enable loadable modulesupport
- yes- 모듈들을 자유롭게 삽입/삭제
하기 위해 설정Set version information onall symbols for modules - yes
Loadablemodulesupport
Kernel module loader - yes
Generalsetup
Video mode selectionsupport
- yes- 콘솔에서 수직으로 50 줄이
나타나도록 하기 위해
Packet socket
- yes or module - tcpdump 와 같은 응용을 사
용하기 위해 설정- Linux 만의 새로운 소켓인
SOL_PACKET 을 사용하기 위
해Unix domain sockets - yesTCP/IP networking - yes
The IPv6 protocol- yes or module- 모듈로 설정하면, 예기치 못
한 에러 발생할 수 있음.IPv6: enable EUI-64 tokenformat - yes
Networkingoptions
IPv6: disable provider basedaddress - yes
File systems /proc filesystem support - yesKernelhacking Magic sysrq key - yes
l 선택할 때는, 커널내부에 포함시키
는 형태와 module 로 포함시키는
형태가 있는데, 개발자가 아니라면
커널 내부에 포함될 수 있도록 하
는 것이 좋을 것이다.
l 이외에도 QoS, 보안 등을 지원하
고자 한다면, scheduler 관련 옵
션, NAT, Filter 옵션 등을 추가적
으로설정해야 할 것들이 있다.
l make dep
- make xconfig 등의 명령어를
통해 설정한 것들의 의존관계
를 조사하여, 특정 옵션이 선
택되면 반드시 함께 선택되어
야 할 것들을 찾아서 설정해
준다.
l make clean
- 이전에 컴파일된 정보들을 모두
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
28
지운다.
l make bzImage | zImage
- 커널 image 를 만든다.
bzImage 가 좀더 소규모의 커널
을 만들어준다. 선택한 옵션이
매우 많은 경우는 bzImage 를
선택하는 것이 좋을 것이다.
l make modules
- 모듈로 포함될 것들만 컴파일
해 준다.
l make modules-install
- 모듈로 컴파일된 것들을 커널
에 포함시키는 과정이다.
l depmod -a 2.2.16
- 커널에 포함되어야 할 모듈들
이 제대로 포함되었는 지를 조
사하여, 잘못된 것은 고쳐준다.
l cp arch/i386/boot/bzImage
/boot/vmlinuz-2.2.16; cp
System.map /boot/
- 커널 이미지 및 시스템 맵을
/boot 디렉토리에 복사한다.
l lilo
- 새롭게 컴파일된 커널 이미지
를 linux 하드디스크의 boot 영
역에 위치시킨다.
l reboot
(2) 주요 네트워킹 도구
기본적인 IPv6 네트워크 설정 기능을
수행하는 응용에 net-tools 가 있다. 이
net-tools 에는 hostname, netstat, arp,
ifconfig, rarp, route, iptunnel 등이 IPv6
를 지원하도록 확장된 버전을 포함하고 있
다. 이중에서 가장 많이 사용하는 것이
ifconfig 와 route 이다. ifconfig 는 인터페
이스의 상태 정보 획득, 인터페이스 IPv6
주소 할당 등을 위해 사용되며, route 는
인터페이스를 이용하는 IPv6 route 정보
를 설정한다. 현재, 새로운 RedHat 6.2
패키지를 설치만 하면 기본적으로 설치되
며, Redhat 6.1 을 설치한 경우는 net-
tool 을 설치해야 한다.
(http://www.tazenda.demon.co.uk/phil/n
et-tools/, net-tools-1.54.tar.gz)
TCP/IP 응용들은 internet super
daemon 에 의해 요구가 있을 때 마다, 각
각 응용의 데몬이 fork 되어 자신의 기능
을 수행한다. 이 super daemon 은 IPv4
를 지원하므로, IPv6 를 지원할 수 있도록
확장되어야 한다. “eXtended Internet
superDaemon (xinetd)”은 IPv4 와 IPv6
를 동시에 지원하는 데몬이므로 기존의 것
을 대치하는 것이 좋을 것이다. 이 데몬은
/etc/rc.d/init.d/inet 이라는 스크립트에 의
해서 호출되고 실행되는데, xinetd 를 설치
한 후에 이 스크립트 파일을 xinetd 를 구
동시키도록 변경해 주면 된다. 이 xinetd
데몬은 /etc/xinetd.conf 파일을 참고하여
수행된다.
(http://synack.net/xinetd/, xinetd-2.1.8.
8p2.tar.gz)
IPv6 기능의 동작 유무를 조사하기 위
해, IPv6 디버깅 도구들도 설치하는 것이
좋을 것이다. ping, traceroute 등의 IPv6
IPv6 시험망 구성 방법
29
버전을 포함하고 있는 iputilities(ftp://ftp.
inr.ac.ru/ip-routing/, iputils-20000121)를
설치해야 하며, 네트워크를 통해 전달되는
패킷들을 Capture 하기 위해 tcpdump
(http://www.tcpdump.org/, tcpdump-
current.tar.gz, libpcap-current.tar.gz)
또는 ethereal (http://www.ethereal.com
/,ethereal-0.8.12.tar.gz)를 설치하는 것
이 좋을 것이다.
나. Linux IPv6 네트워크 설정
앞에서도 설명하였지만, Linux 부팅시
자동으로 수행되는 스크립트 파일들은
/etc/rc.d/init.d 디렉토리에 위치하고 있다.
만약, 새로운 네트워크 정보를 부팅시 자
동으로 설정되게 하고자 한다면,
/etc/rc.d/init.d 디렉토리에는 파일을 위치
시키고, 각 runlevel 별 디렉토리에 링크시
켜 두면 된다.
다음은 네트워크 설정을 하고자 한다면
기본적으로 알아야 할 사항을 정리하였다 .
l init 프로세서는 디폴트 runlevel
에 따라 /etc/rc.d/rc 스크립트를
수행한다.
l RedHat6.1 은 /etc/rc.d/rc0.d/에
서 /etc/rc.d/rc6.d/까지 runlevel
에 상응하는 디렉토리를 가지고
있다. 이 디렉토리에 있는 파일들
은 모두 /etc/rc.d/init.d 디렉토리
에 있는 스크립트 파일들에 링크
되어 있다.
l 시스템 부팅과정에서 수행하고자
하는 스크립트가 있다면, 먼저
/etc/rc.d/init.d/ 디렉토리에 원하
는 스크립트를 가져다 놓고, <그림
2>에서 처럼 디폴트 runlevel=3
이면 /etc/rc.d/rc3.d/ 디렉토리에
init.d 디렉토리에 넣어둔 스크립
트에 대한 링크를 넣어 두면 된다.
그러면, 부팅시 자동적으로 수행될
것이다.
l 현재, init.d 디렉토리에서 네트워
크 설정과 관련된 기본적인 스크
립트는 network 과 inet 이다.
network 은 관련된 물리적/논리적
인 인터페이스들을 사용가능 상태
로 만드는 역할을 수행하며, inet
은 TCP/IP inet daemon 을 실행
시킨다.
l /etc/rc.d/rcN.d/ 디렉토리에는 각
각 두가지 형태로 저장되는데, 첫
번째는 S10syslog 와 같이 S 로
시작하고, 두번째는 K92network
과 같이 K 로 시작한다. S 는
"start"를 의미하며, K 는 "kill"을
의미한다.
l 시스템 부팅시, 디렉토리내의 S 로
시작하는 모든 파일들이 수행되며,
S10syslog 처럼 두자리 숫자값에
따라 순서적으로 실행된다. 현재,
10 이전값은 없기 때문에,
S10syslog 가 시스템 부팅 후에
가장 먼저 실행되는 스크립트이다.
이제, IPv6 네트워크 설정을 위한 예를
살펴보고자 한다. 아직은 IPv4 망이 주류
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
30
를 이루고 있기 때문에, IPv4 망상에서 터
널링을 통해 설정하는 방법을 살펴보고자
한다. 그러므로, 기본적으로 호스트 시스
템은 IPv4 와 IPv6 듀얼스택이 설치되어
있는 것을 가정하고 있다. 만약, IPv6
Single 스택만을 갖추고 있는 경우라면,
이후로 설명할 스크립트들에서 터널링에
관련된 것만 제거하면 될 것이다.
(1) IPv6 터널링을 위한 새로운 스크립트
추가 예
앞에서 설명한 것처럼, IPv4 네트워크
를 위해 “network” 스크립트가 존재하고
있다. 이제, “network”과 유사한 IPv6 를
위한 새로운 “network6”라는 스크립트를
추가하는 과정을 살펴보자. 이 스크립트는
(그림 3)과 같은 IPv6 네트워크 환경을
설정하기 위해 사용될 것이며, 2.2.14,
2.2.16 커널 환경에서 테스트되었다.
Router 와의 터널링은 Numbered
Tunneling 방식을 채택하였다. 그러나,
2.4.0 커널에서는 Numbered 방식을 지원
하지 않는다.
(참고, http://www.bieringer.de/linux/IPv6/
IPv6-HOWTO/IPv6-HOWTO-5.html)
Physically IPv4 Network
sit1
… sit0
sit1
…
sit2
eth0
Linux Router
sit0 Linux Host B
sit1
… sit0
Linux Host A
eth0
eth0
3ffe:2e00:e:fffd::0/127
Cisco Router
3ffe:2e01:1:1::/64
129.254.164.142 3ffe:2e00:e:fffd::1/127 3ffe:2e01:1:1::1/64
129.254.254.86 3ffe:2e00:e:fffd::0/127
129.254.164.240 3ffe:2e01:1:1::2/64
Numbered Tunneling
Local IPv6 Network
(그림 3) IPv6 네트워킹을 위한 네트워크 환경 예
IPv6 시험망 구성 방법
31
① /etc/rc.d/init.d 디렉토리에 (그림
4)와 같은 “network6” 스크립트
를 넣는다.
A. IPv6 Prefix: 3ffe:2e01:1:1::/64
B. Host IPv6 Address:
3ffe:2e01:1:1::1/64
C. Gateway Address: 129.254.254.86,
3ffe:2e01:1:1::a/64
D. Numbered Tunneling Host
Address: 3ffe:2e00:e:fffd::1/127
E. Numbered Tunneling Router
Address: 3ffe:2e00:e:fffd::0/127
② /etc/rc.d/rcN.d 디렉토리에 링크
시킨다.
A. ln –s /etc/rc.d/init.d/network6
/etc/rc.d/rc2.d/S26network6
B. ln –s /etc/rc.d/init.d/network6
/etc/rc.d/rc3.d/S26network6
C. ln –s /etc/rc.d/init.d/network6
/etc/rc.d/rc6.d/K26network6
③ /etc/rc.d/init.d 디렉토리의 inet
스크립트에 포함된 inet daemon
실행 파일을 IPv6 가 지원되는 것
을 가리키도록 변경한다(예,
extended InterNet Super
Daemon, xinetd)
④ 시스템을 재부팅한다
#! /bin/sh # Copyright (c) 1998 Peter Erbuth. All rights reserved. # Author: Peter Erbuth , 1998 # after an example of inetd: # Author: Florian La Roche, Werner Fink , 1996 # /sbin/init.d/inet6-client # ## rc.config needs the following defines: # # start the inet6-services (for IPv6) ("yes" or "no") # #START_INET6="yes" ## # If you say "yes" above, # give us the needed Prefix, Address and Tunnelpoint: IPv6_PREFIX="3ffe: 2e01:1:1" # Your IPv6 Prefix IPv6_ADDRESS="1" # Hostpart of this Machine IPv6_v4_TUNNEL="129.254.254.86 # IPv6-in-IPv4-Tunnel ## # # start the inet6-client (for IPv6) ("yes" or "no") # (only needed, if this machine doesn't act as an IPv6-Gateway, # (START_INET6="no") but though uses IPv6 via an IPv6 Router # #START_INET6_CLIENT="yes" . /etc/rc.config export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/inet6/bin export HOME=/ test "$START_INET6" = yes || exit 0
case "$1" in start)
echo "Starting IPv6 services. (inet6)" 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 echo 1 > /proc/sys/net/ipv6/conf/all/forwarding echo 1 > /proc/sys/net/ipv4/ip_forward echo 0 > /proc/sys/net/ipv6/conf/all/router_solicitations /sbin/ifconfig eth0 add $IPv6_PREFIX::$IPv6_ADDRESS/64 /sbin/route -A inet6 add $IPv6_PREFIX::0/64 dev eth0 /sbin/ifconfig sit0 up /sbin/ifconfig sit0 tunnel ::$IPv6_v4_TUNNEL /sbin/ifconfig sit1 up /sbin/ifconfig sit1 inet6 add 3ffe:2e00:e:fffd::1/127 /sbin/route -A inet6 add ::0/0 gw 3ffe::2e00:e:fffd::0 dev sit1 /usr/sbin/radvd & ;;
stop) echo -n "Shutting down IPv6 services (inet6):" #Still have to figure out, what has to be done here. ;;
*) echo "Usage: $0 {start|stop}" exit 1
esac exit 0 ifconfig sit1 up ifconfig sit1 inet6 add 3ffe:2e00:e:fffd::1/127 route -A inet6 add ::0/0 gw 3ffe:2e00:e:fffd::0 dev sit1
(그림 4) IPv6 네트워킹을 위한 network6 스크립트 예
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
32
(그림 4)의 스크립트 파일에서 중요한
부분을 설명하면 다음과 같다.
l /sbin/ifconfig eth0 add
3ffe:2e01:1:1::1/64
- 물리적인 인터페이스 (eth0)에
IPv6 주소를 설정함.
l echo"1">/proc/sys/net/IPv6/con
f/all/forwarding
- IPv6 포워딩 기능을 Turn-on
한다. 터널링 모드를 사용하고자
한다면, IPv4 포워딩도 함께 On
상태로 만들어야 한다.
l /sbin/ifconfig sit0 up
- 디폴트 터널 인터페이스(sit0)를
On 상태로 만든다.
- Linux 는 sit 터널 인터페이스를
통해 IPv6-in-IPv4 터널을 설
정한다.
l /sbin/ifconfig sit0
tunnel ::129.254.254.
- sit0 인터페이스에 터널 상대편의
IPv4 주소를 설정한다.
l /sbin/ifconfig sit1 up
- Numbered 터널링을 위한 인터
페이스를 ON 시킨다.
- Linux 2.4.0-test4 커널에서는
동작하지 않는다.
- Linux 2.4.0-test4 커널은 sit0
를 시스템 부팅과정에서 초기화
시키므로, ifconfig sit0 up 만으
로 sit0 인터페이스가 생성되지만,
sit1 이상은 ifconfig 의 up 명령
만으로 설정되지 않는다. Net-
tools 에 포함된 iptunnel 명령어
를 참고하기 바란다.
l /sbin/ifconfig sit1 inet6 add
3ffe:2e00:e:fffd::1/127
- Numbered 터널의 Host 측
IPv6 주소 설정
l /sbin/route -A inet6 add ::0/0
gw 3ffe:2e00:e:fffd::0 dev sit1
- Numbered 터널의 Router 측
IPv6 주소 설정
- ::0/0 대신 default 를 사용할 수
있지만, 가급적 ::0/0 를 사용할
것.
(2) IPv6 터널링을 위한 기존의
“network” 스크립트 수정 예
앞에서 설명한 것처럼, IPv4 네트워크
를 위해 /etc/rc.d/init.d 디렉토리에는
“network” 스크립트가 존재하고 있다. 이
제, 이 파일을 수정하여 IPv6 도 동시에
지원하도록 하자. 이 스크립트 파일과 함
께 IPv6 를 지원하기 위해 수정되거나 첨
가되어야 할 스크립트 파일들은 다음과 같
다.
(http://www.bieringer.de/linux/IPv6/I
Pv6-WTO/scripts/current/index.html)
l 함수 라이브러리 파일:
- /etc/sysconfig/network-
scripts/network-functions-
ipv6
ü 인터페이스들에 대한 IPv6
IPv6 시험망 구성 방법
33
네트워킹을 위한 함수 라이브러
리
ü IPv6 를 지원하도록 새롭
게 첨가된 파일
l 설정파일 (per interface):
- /etc/sysconfig/network-
scripts/ifcfg-eth0
ü 이더넷 인터페이스를 위한
설정파일
ü IPv6 를 지원하도록 기존
의 파일을 수정
l /etc/sysconfig/network-
scripts/ifcfg-sit1, ifcfg-sit2
ü IPv6-in-IPv4 터널 인터
페이스를 위한 설정파일
ü IPv6 를 지원하도록 새롭
게 첨가된 파일
l 설정파일 (per sytems):
- /etc/sysconfig/network
ü 디바이스명, 네트워킹 허용
여부 등을 지시하는 매개변수들
명시
ü IPv6 를 지원하도록 수
정된 파일
ü 예,
NETWORKING_IPV6=yes
- /etc/sysconfig/static-routes-
ipv6
ü 기본적으로 설정되어야 할
IPv6 route 를 명시
ü IPv6 를 지원하도록 새롭
게 첨가된 파일
l 스크립트 파일:
- ifup / ifdown
ü /etc/sysconfig/network-
scripts/ifup, ifdown
ü 주요 인터페이스 초기화
스크립트,
/etc/rc.d/network 스크립
트에 의해 실행된다.
ü IPv6 를 지원하도록 수정
된 파일
- ifup-ipv6 / ifdown-ipv6
ü /etc/sysconfig/network-
scripts/ifup-ipv6, ifdown-
ipv6
ü IPv6 관련 인터페이스 초
기화 스크립트, ifup 스크립트에
서 호출된다.
ü IPv6 를 지원하도록 새롭
게 첨가된 파일
- ifup-sit / ifdown-sit
ü /etc/sysconfig/network-
scripts/ifup-sit, ifdown-sit
ü IPv6 를 지원하도록 새롭
게 첨가된 파일
이제 (그림 3)과 같은 IPv6 네트워크를
설정하기 위해 각 파일별로 수정해야 할
부분을 살펴보면 다음과 같다. 이와 함께
앞의 예에서 처럼 inet daemon 을 수정해
야 한다
� /etc/sysconfig/network-scripts/ifcfg-
eth0
- IPV6INIT="yes"
ü 이 물리적인 인터페이스에
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
34
대한 IPv6 설정을 허용하겠다는
의미.
- IPV6FORWARDING="yes"
ü 이 인터페이스를 통해
IPv6 패킷의 포워딩을 허용하겠
다는 의미
ü 결국 “echo 1 >
/proc/sys/net/
ipv6/conf/all/forwarding”를 수
행하게 된다.
ü Network-functions-
ipv6 파일의 forwarding-
ipv6() 함수 참조
- IPV6ADDR="3ffe:2e01:1:1::1" ,
IPV6PREFIXLENGTH="64"
ü 이 인터페이스에 대한 기
본적인 IPv6 주소 설정
- IPV6ADDR_0=""/IPV6PREFIX
LENGTH_0="",
IPV6ADDR_1=""/IPV6PREFIX
LENGTH_1=""
ü 이 인터페이스에 대한 추
가적인 IPv6 주소 설정
� /etc/sysconfig/network-scripts/ifcfg-
sit1
(IPv6 in IPv4 tunnel interface)
- DEVICE="sit1",
BOOTPROTO="none",
ONBOOT="yes"
ü 논리적인 인터페이스 명을
명시한다.
ü ONBOOT 매개변수에 따
라 부팅과정에서 설정할 것인지
를 결정한다.
- IPV6INIT="yes"
ü 이 논리적인 인터페이스에
대한 IPv6 설정을 허용하겠다는
의미.
- IPV6TUNNELIPV4="129.254.2
54.86"
ü 터널 상대편의 IPv4 주소
설정
- IPV6TUNNELROUTE="3ffe:2
e01:1:1::/16"
ü 이 터널을 통해 라우팅될
IPv6 Prefix 를 설정한다.
� /etc/sysconfig/static-routes-ipv6
(IPv6 static routes)
- eth0
fec0:0:0:2::/64 fec0:0:0:1:0:
0:0:20
ü 인터페이스마다 첨가될
IPv6 루트(route)를 설정하기
위해 사용된다.
ü 첫번째 값은 인터페이스명
이고, 두번째는 라우팅될 네트워
크이며, 세번째는 G/W 이다.
마지막으로, 각 스크립트들의 호출관계
를 살펴보고자 한다. 추후, 스크립트 파일
자체를 이해하고자 하는 경우를 위함이다.
IPv6 시험망 구성 방법
35
이 디렉토리에서 "ifcfg-"로 시작되는 모든 파일을 읽는다 .
/etc/rc.d/init.d/network
/etc/sysconfig/network
/etc/rc.d/init.d/functions
/sbin/ifup eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-sit1
/etc/sysconfig/network-scripts/ifcfg-xxx
NETWORKING == yes
YES
/sbin/ifup은 /etc/sysconfig/network-scripts/ifup을 링크하고 있다.
/sbin/ifup gre0
/sbin/ifup sit1
...
"ifcfg-"를 제거하고, 읽어들인 모든 인터페이스를 동작가능상태로 만든다
/sbin/ifup eth0
/etc/sysconfig/network-scripts/network-functions
NETWORKING_IPV6 == yes
YES
/etc/sysconfig/network-scripts/ifup-ipv6
eth0
/etc/sysconfig/network-scripts/network-functions-ipv6
(그림 5) IPv6 네트워킹을 위한 스크립트간의 호출관계
(3) IPv6 네트워킹을 위한 라우터 터널링
설정과정
앞 절에서는 터널의 한쪽 종단인 호스트
에서의 설정 과정을 살펴보았다. 이제 다
른 한쪽 종단인 라우터에서의 설정 과정을
살펴보고자 한다. 동일 sub-domain 에서
만 시험하고자 한다면, 이 설정과정은 필
요하지 않지만, 분리된 IPv4 도메인 상에
있는 호스트들을 터널링으로 연결하여 새
로운 가상 IPv6 도메인을 만들고자 이 과
정은 포함되어야 할 것이다. (그림 6)은
Linux 라우터와 Cisco 라우터를 연결하기
위한 Cisco 에서의 설정을 기술하고 있지
만, Linux 라우터가 아니고 호스트인 경우
도 마찬가지로 설정되어야 한다.
RTB (Linux Router) - 129.254.164.142 - 3FFE:2E00:E:FFFD::1/127
HA (Linux Host)
PC
Internet
RTC (Cisco Router) - 129.254.164.86 - 3FFE:2E00:E:FFFD::0/127
Tunnel End Points
(그림 6) IPv6 라우터 설정을 위한 환경 예시
Cisco 라우터에서 터널을 설정하는 예
이다. Numbered Tunneling 을 위해 사용
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
36
될 IPv6 주소를 할당하고, 터널 상대 종단
의 IPv4 를 할당하는 과정이다.
l telnet 129.254.254.86
- password: xxxxxxx
l router> enable
- password: xxxxxxx
l router# configure terminal
l router(config)# interface
Tunnel17
- Router(config-if)# no ip
address
- Router(config-if)# ipv6
enable
- Router(config-if)# ipv6
address
3FFE:2E00:E:FFFD::0/127
- Router(config-if)# tunnel
source Ethernet1
- Router(config-if)# tunnel
destination 129.254.164.142
- Router(config-if)# tunnel
mode ipv6ip
- End with CNTL/Z
l router # write
앞에서 설정된 터널을 통해 라우팅될
IPv6 Prefix 를 할당하는 과정이다.
l router# configure terminal
l router(config)# ipv6 route
3FFE:2E01::0/48 Tunnel17
- 해제: no ipv6 route
3FFE:2E01::0/48 Tunnel17
l router# write
앞의 모든 설정과정을 거친 후에
(router# show config)를 통해 설정된 정
보를 보면 다음과 같다.
… interface Tunnel17 description linux no ip address ipv6 enable ipv6 address 3FFE:2E00:E:FFFD::0/127 tunnel source Ethernet1 tunnel destination 129.254.164.142 tunnel mode ipv6ip …
(4) IPv6 BGP 네트워킹을 위한 라우터
설정 과정
이제 라우터와 라우터간에 IPv6 라우팅
정보를 교환하기 위해 사용되는 BGP 연결
의 설정 과정을 살펴보고자 한다. (그림
7)은 설정 환경에 대한 예이다. Linux 라
우터에 Zebra 를 설치하여 Cisco 라우터
와 연결을 시험하였다.
(http://www.zebra.org/)
IPv6 시험망 구성 방법
37
v6
v6
v6
v6
v6
AS xxx
AS 3748
RTB (Cisco Router) 6bone-gw.6bone.ne.kr
- 129.254.254.86 - 3ffe:2e00::2d0:bbff:fefb:10ac - 3ffe:2e00:e:fffd::0/127
RTA v6
v6
AS xxx
RTD
RTC (Linux Router, Zebra BGP) pc-412i.etri.re.kr
- 129.254.164.142 - 3ffe:2e00:e:fffd::1/127
network - 3ffe:2e01:1::/64
IBGP
EBGP
EBGP
n IGP n EGP n IBGP
n EBGP
(그림 7) IPv6 BGP 환경 설정을 위한 예시
(그림 8)은 Cisco 라우터에서의 설정과정이다.
# telnet 6bone-gw.6bone.ne.kr Password: xxxx … Router> enable Password: xxxx … Router# configure terminal Router(config)# ipv6 bgp neighbor 3ffe:2e00:e:fffd::1 remote-as 3748 Router(config)# no ipv6 bgp neighbor 3ffe:2e00:e:fffd::1 remote-as 3748 Router(config)# exit Router# show ipv6 bgp | show ipv6 bgp summary | show ipv6 bgp neighbors Router# show ipv6 bgp regexp <regexp> | show ipv6 bgp <prefix> Router# exit
(그림 8) RTB 의 BGP 설정과정
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
38
(그림 9)는 Zebra 를 이용한 Linux 라
우터에서의 설정 파일의 예시이다. 이
Linux 라우터는 Cisco 라우터와 동일한
AS 번호를 가지고 있기 때문에 IBGP 를
통해 설정과정이 이루어진다. 이 과정은
Cisco 라우터 처럼 터미널 모드를 통해
직접 설정할 수도 있으며, config 파일에
명시해도 된다.
# vi /usr/local/etc/bgpd.conf !Zebra configuration ! hostname bgpd password xxxx enable password xxxx log stdout ! ! bgpd configuration router zebra ! router bgp 3748 bgp route-id 129.254.164.142 ! ipv6 bgp network 3ffe:2e01:1::/64 ! ipv6 bgp neighbor 3ffe:2e00:e:fffd::0 remote-as 3748 ipv6 bgp neighbor 3ffe:2e00:e:fffd::0 route-map set-nexthop out ! route-map set-nexthop permit 10 match ipv6 address all set ipv6 next-hop global 3ffe:2e00::2d0:bbff:fefb:10ac set ipv6 next-hop local fe80::81fe:a48e
(그림 9) RTC 의 BGP 설정과정
IPv6 시험망 구성 방법
39
4. Windows2000 IPv6 기능 인스톨
및 설정 방법
가. 시스템 요구사항
l Windows2000 : Windows2000 beta 버
전을 제외한 모든 Windows2000 버전
가능 (Windows 2000 Professional,
Server, Advanced User)
l 이더넷 네트웍 카드 : Windows2000 에
서 지원하는 모든 네트웍 카드 지원 가
능
l IPv4 프로토콜 : Windows2000 상에
IPv4 - TCP/IP 가 인스톨 되어 있어야
함
※ IPv6 Native 로만 구성된 단말로
만들 경우, 반드시 IPv4 프로토콜이
configuration 될 필요는 없음
l 본 IPv6 Technology Preview 는
WindowsNT 4.0, 95, 98 에는 사용 불가
능함
나. Windows2000 용 IPv6 Technology
Preview(IPv6 Kit) 다운로드
아래 사이트에서 다운로드 한다.
http://msdn.microsoft.com/downloads/sdks
/platform/tpipv6.asp
다. 인스톨 절차
(1) Windows2000 에 local
administrator privileges 를 가진 사용자
계정으로 로그온 한다.
(2) Windows2000 데스크탑 상에서 다
운받은 exe 파일을 run 하여 인스톨한다.
라. 설정방법
IPv6 Technology Preview 는 현재
GUI 형태의 configuration 은 지원하지 않
으며, 따라서 DOS 창을 열어 아래와 같은
command tool 를 이용하여 line by line
으로 configuration 해 준다.
※ 도스창에 line by line 으로
configuration 한 것은 reboot 시 저장되
지 않음으로 별도로 메모창등을 이용, 스
크립트 형태로 파일에 저장해 두는 것이
좋다.
Configuration Tool 목록
net.exe - IPv6 프로토콜을 start 또는
stop 가능
예) net stop tcpip6
net start tcpip6
※ 일반적으로 시스템이 부팅되면
net.exe 가 자동으로 구동됨으로 run 시킬
필요는 없음
ipv6.exe - IPv6 인터페이스, 주소, route
등을 manually configuration 할 때 사용
예) ipv6 if
ipv6 rtu 2001:230:0:1::/64 4
ipv6 adu 4/2001:230:0:1:210:5aff:fe67:ca7c
ipv6 rtu ::/0 4/2001:230:0:1:220:afff:fe86:
f996
ipv6 if [if#] : 인터페이스를 display
ipv6 ifc if# [forwards] [advertises] [-forwards] [-
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
40
advertises] [mtu #bytes]
[site site-identifier] : 인터페이스 속
성을 제어
ipv6 ifd if# : 인터페이스를 삭제
ipv6 nc [if# [address]] : neighbor cache 를 display
ipv6 ncf [if# [address]] : neighbor cache 를
flush
ipv6 rc [if# address] : route cache 를 display
ipv6 rcf [if# [address]] : 기술한 route cache 를
flush
ipv6 bc : binding 된 cache 를 display
ipv6 adu if#/address [lifetime VL[/PL]]
[anycast] [unicast] : 주소를 추가, 삭제
ipv6 spt : 현재 site prefix 테이블을 display
ipv6 spu prefix if# [lifetime L] : site prefix 를 추
가, 삭제, 변경
ipv6 rt : 현재 라우팅 테이블의 route 를
display
ipv6 rtu prefix if#[/nexthop] [lifetime L]
[preference P] [publish]
[age]
[spl site-prefix-length]
: 라우팅 테이블에 route 를 추가,
삭제, 변경
ping6.exe - ping(IPv4) 과 동일
예) ping6 2001:230:0:1:220:afff:fe86:f996
tracert6.exe - tracert(IPv4) 와 동일
예) tracrt6 2001:230:0:1:220:afff:fe86:f996
6to4cfg.exe - 6to4 구성시 사용
6to4cfg [-r] [-s] [-u] [-R relay] [-b] [-S address]
[filename].
ipsec6.exe - IPv6 IPsec 을 위한 policy
및 SA 구성시 사용
ipsec6 sp [interface]
ipsec6 c [filename (with no extension)]
ipsec6 a [filename (with no extension)]
ipsec6 i [policy] [filename (with no extension)]
ipsec6 d [type = sp sa] [index]
· checkv4.exe - 기존 IPv4 소스 코드
에서 IPv6 코드를 지원하기 위해 수정해
야 할 부분을 식별하기 위한 툴
---------------------------
구동결과 예 :
test.c(35) : gethostbyname : use getaddrinfo
instead
test.c(48) : SOCKADDR_IN : use
SOCKADDR_STORAGE instead, or
use
SOCKADDR_IN6 in addition for IPv6
support
test.c(49) : gethostbyaddr : use getnameinfo
instead
test.c(57) : AF_INET : use AF_INET6 in addition
for IPv6 support
test.c(89) : inet_addr : use WSAStringToAddress
or getaddrinfo with
AI_NUMERICHOST instead
----------------------------
(1) 한 서브넷 상에서 link-local 주소의
configuration 방법
IPv6 시험망 구성 방법
41
Windows2000 IPv6 TP 는 부팅시에
IPv6 link-local 주소를 stateless auto-
configuration 함으로 별다른 작업을 할
필요가 없다. 다음과 같이 현재 구성된 상
태를 확인해 본다.
C:\>ipv6 if
Interface 4 (site 1): Local Area Connection
uses Neighbor Discovery
link-level address: 00-10-5a-aa-20-a2
preferred address
fe80::210:5aff:feaa:20a2,
infinite/infinite
multicast address ff02::1, 1 refs, not
reportable
multicast address ff02::1:ffaa:20a2, 1
refs, last reporter
link MTU 1500 (true link MTU 1500)
current hop limit 128
reachable time 43500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 1
Interface 3 (site 1): 6-over-4 Virtual Interface
uses Neighbor Discovery
link-level address: 10.0.0.2
preferred address fe80::a00:2,
infinite/infinite
multicast address ff02::1, 1 refs, not
reportable
multicast address ff02::1:ff00:2, 1 refs,
last reporter
link MTU 1280 (true link MTU 65515)
current hop limit 128
reachable time 34000ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 1
Interface 2 (site 0): Tunnel Pseudo-Interface
does not use Neighbor Discovery
link-level address: 0.0.0.0
preferred address ::10.0.0.2,
infinite/infinite
link MTU 1280 (true link MTU 65515)
current hop limit 128
reachable time 0ms (base 0ms)
retransmission interval 0ms
DAD transmits 0
Interface 1 (site 0): Loopback Pseudo-
Interface
does not use Neighbor Discovery
link-level address:
preferred address ::1, infinite/infinite
link MTU 1500 (true link MTU 1500)
current hop limit 1
reachable time 0ms (base 0ms)
retransmission interval 0ms
DAD transmits 0
Windows2000 IPv6 는 모두 4 개의 인터
페이스를 가지고 있다.
l Interface 4 (site 1): Local Area
Connection
: NDP 사용, IPv6 주소 할당을 통한 실제
라우팅에 사용되는 인터페이스
l Interface 3 (site 1): 6-over-4 Virtual
Interface
: 6over4 전용 인터페이스
IPv6 포럼코리아 기술문서 2001-001 무단복제금지
42
l Interface 2 (site 0): Tunnel Pseudo-
Interface
: 6to4, IPv6-in-IPv4 터널링 등을 위한
인터페이스
l Interface 1 (site 0): Loopback Pseudo-
Interface
: 루프백 인터페이스
일반적으로 터널링은 인터페이스 2 번,
주소 할당(3ffe::/16, 2001::/16 등) 등은
인터페이스 4 번을 사용하게 된다.
(2) 한 서브넷 상에서 Global 유니캐스트
주소의 configuration 방법
일반적으로 IPv6 상용 라우터들은 RA
메시지를 전송하여 단말에서 IPv6 주소를
auto-configuration 가능하게 한다. 이러
한 기능이 라우터에 구현되어 있지 않으면,
다음과 같이 명시적으로 주소의 할당 및
라우터 지정이 가능하다.
ipv6 rtu 2001:230:0:1::/64 4
ipv6 adu 4/2001:230:0:1:210:5aff:fe67:ca7c
ipv6 rtu ::/0 4/2001:230:0:1:220:afff:fe86:f996
(3) 6to4 구축 방법
ipv6 rtu 2002::/16 2
ipv6 adu 2/2002:ac1f:2aef::ac1f:2aef
ipv6 rtu ::/0 2/::131.107.152.32
(4) IPv6-in-IPv4 터널링 구축 방법
ipv6 rtu 3ffe:2e00:e:fffd::0/64 2
ipv6 adu 2/3ffe:2e00:e:fffd::1
ipv6 rtu ::/0 2/3ffe:2e00:e:fffd::2