KR100636274B1 - Packet forwarding device of network processor and method thereof - Google Patents
Packet forwarding device of network processor and method thereof Download PDFInfo
- Publication number
- KR100636274B1 KR100636274B1 KR1020050002959A KR20050002959A KR100636274B1 KR 100636274 B1 KR100636274 B1 KR 100636274B1 KR 1020050002959 A KR1020050002959 A KR 1020050002959A KR 20050002959 A KR20050002959 A KR 20050002959A KR 100636274 B1 KR100636274 B1 KR 100636274B1
- Authority
- KR
- South Korea
- Prior art keywords
- information
- tunnel
- address information
- output interface
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 네트워크 프로세서의 패킷 포워딩에 관한 것으로서, 제1네트워크에서 발생된 멀티캐스트 패킷을 제2네트워크를 통하여 제3네트워크로의 전송을 위해 터널 정보를 설정하고, 상기 노드에 인접한 하나 이상의 노드와의 멀티캐스트 라우팅 정보를 수집하고, 멀티캐스트 라우팅 정보를 이용하여 멀티캐스트 패킷의 전송이 이루어질 노드의 출력인터페이스 정보를 포함한 포워딩 정보를 설정하고, 상기 설정된 포워딩 정보 중 출력인터페이스가 터널인터페이스인 경우에 터널 정보를 이용하여 터널헤더를 발생하고, 멀티캐스트 패킷에 터널헤더를 부가하여 제2네트워크로 포워딩 하는 네트워크 프로세서의 패킷 포워딩 장치 및 그 방법을 제안한다. The present invention relates to packet forwarding of a network processor. The present invention relates to setting up tunnel information for transmission of a multicast packet generated in a first network to a third network through a second network, and having at least one node adjacent to the node. Collects multicast routing information, sets forwarding information including output interface information of a node to which multicast packets are transmitted using the multicast routing information, and tunnel information when the output interface is the tunnel interface among the set forwarding information. The present invention proposes a packet forwarding apparatus and a method of a network processor for generating a tunnel header and forwarding the multicast packet to a second network by adding the tunnel header.
Description
도 1은 종래 네트워크 프로세서를 이용한 패킷 포워딩 장치에 대한 블록 구성을 나타낸 도면.1 is a block diagram illustrating a packet forwarding apparatus using a conventional network processor.
도 2는 본 발명의 일 실시예에 따른 네트워크 프로세서를 패킷 포워딩 장치에 대한 블록 구성을 나타낸 도면.2 is a block diagram of a packet forwarding apparatus for a network processor according to an embodiment of the present invention;
도 3은 본 발명의 일 실시예에 따른 MFCE 테이블을 나타낸 도면.3 illustrates an MFCE table according to an embodiment of the present invention.
도 4a, 도 4b는 본 발명의 일 실시예에 따른 네트워크 프로세서를 이용한 패킷 포워딩 방법에 대한 플로우챠트를 나타낸 도면.4A and 4B are flowcharts illustrating a packet forwarding method using a network processor according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
202 : 멀티캐스트 라우팅 데몬 모듈 202: multicast routing daemon module
204 : 멀티캐스트 포워딩 매니저 모듈204: Multicast Forwarding Manager Module
206 : 주소 테이블 208 : MFCE 테이블206: address table 208: MFCE table
210 : 멀티캐스트 L2테이블 212 : CLI 모듈210: multicast L2 table 212: CLI module
214 : 터널 매니저 모듈 216 : 터널 테이블214: Tunnel Manager Module 216: Tunnel Table
218 : 포워딩 모듈218: forwarding module
본 발명은 네트워크 프로세서의 패킷 포워딩에 관한 것으로, 더욱 자세하게는 IPv6 멀티캐스트 패킷을 IPv4 네트워크로 전송하는 경우 설정된 터널(Configured Tunnel)정보를 이용하여 IPv6 패킷에 IPv4 헤더를 붙여 포워딩 하는 네트워크 프로세서의 패킷 포워딩 장치 및 그 방법에 관한 것이다. The present invention relates to packet forwarding of a network processor. More particularly, the present invention relates to packet forwarding of an IPv6 packet by forwarding an IPv4 header by using configured tunnel information when transmitting an IPv6 multicast packet to an IPv4 network. An apparatus and a method thereof are provided.
TCP/IP(Transmission Control Protocol/Internetworking Protocol) 중 네트워크 계층 프로토콜은 현재 IPv4(Internetworking Protocol, version 4)로 운용되고 있다. IPv4는 인터넷상에서 시스템간 호스트 대 호스트 통신을 제공한다. 비록 IPv4가 잘 설계되었다고는 하지만 IPv4가 나온 1970년 이후 발전을 거듭하고 있는 인터넷에 IPv4를 적용하기에 부적절한 결점들이 발견되고 있다.Among the Transmission Control Protocol / Internetworking Protocols (TCP / IP), the network layer protocol is currently operating as IPv4 (Internetworking Protocol, version 4). IPv4 provides intersystem-to-system communication over the Internet. Although IPv4 is well-designed, there are some inadequate flaws found in the adoption of IPv4 in the Internet, which has evolved since the 1970s.
IPv4는 다섯 개의 클래스(class)로 구성된 2 레벨 주소 구조로 되어 있는데, 이 주소공간에 비효율적인 면이 내포되어 있다. IPv4의 주소 지정방식은 주소공간을 고갈시키고 얼마 지나지 않아 인터넷 연결을 원하는 새로운 시스템에 할당할 주소가 남아 있지 않게 되는 문제점을 지닌 것이다.IPv4 has a two-level address structure consisting of five classes, which are inefficient in this address space. IPv4 addressing has a problem that it exhausts the address space and soon there are no addresses left to assign to new systems that want to connect to the Internet.
또한, 인터넷은 실시간 오디와 비디오 전송을 수용해야만 하는데, 이러한 전송방식은 IPv4의 설계에서는 제공되지 않은 최소 지연 전략과 자원의 예약을 요구하며, 인터넷의 일부 응용 분야에서는 데이터 암호와 인증을 필요로 하는데, 암호 화와 인증은 IPv4에서는 제공되지 않는다.In addition, the Internet must accommodate real-time audio and video transmissions, which require minimum latency strategies and resource reservations that are not provided in IPv4 design, and some applications of the Internet require data encryption and authentication. However, encryption and authentication are not provided in IPv4.
이러한 결점을 극복하기 위해 IPng(Internetworking Protocol, next generation)이라고도 알려진 IPv6(Internet Protocol, version 6)이 제안되었고 현재 표준이 되었다. IPv6에서 인터넷 프로토콜은 엄청나게 발전하는 인터넷을 수용하기 위해 많은 부분이 수정되었다. 예를 들어, IP 주소의 형식과 길이가 패킷 형식과 함께 변화되었다. ICMP(Internet Control Message Protocol)등과 같은 관련 프로토콜이 수정되었다. 네트워크 계층에서 ARP(Address Resolution Protocol), RARP(Reverse Address Resolution Protocol) 그리고 IGMP(Internet Group Management Protocol)와 같은 프로토콜 등이 삭제되거나 ICMP 프로토콜에 포함되었다. 또한, RIP(Routing Information Protocol), OSPF(Open Shortest Path First) 등과 같은 라우팅 프로토콜이 이러한 변화를 수용하기 위해 약간씩 수정되었다.To overcome this drawback, the Internet Protocol, version 6 (IPv6), also known as the Internetworking Protocol, next generation (IPng), has been proposed and is now the standard. In IPv6, the Internet protocol has been modified a lot to accommodate the evolving Internet. For example, the format and length of IP addresses have changed with the packet format. Related protocols, such as the Internet Control Message Protocol (ICMP), have been modified. At the network layer, protocols such as Address Resolution Protocol (ARP), Reverse Address Resolution Protocol (RARP), and Internet Group Management Protocol (IGMP) have been removed or included in the ICMP protocol. In addition, routing protocols such as Routing Information Protocol (RIP), Open Shortest Path First (OSPF), and the like have been slightly modified to accommodate this change.
이처럼 IPv6가 제안되어 현재 표준이 되어 점차적으로 IPv6 기반으로 동작하는 시스템들이 개발되고 있지만, 인터넷에는 엄청나게 많은 시스템이 존재하기 때문에 IPv4에서 IPv6로의 천이가 급격하게 일어날 수는 없다. 즉, 인터넷상의 모든 시스템이 IPv4에서 IPv6로 전환에는 많은 시간이 필요하다. 따라서 천이(transition)는 IPv4 시스템과 IPv6 시스템 사이에 발생되는 문제를 방지하기 위해 점진적으로 이루어져야 한다.As such, IPv6 has been proposed, and standards-based systems are gradually being developed. However, because there are so many systems on the Internet, the transition from IPv4 to IPv6 cannot occur rapidly. That is, every system on the Internet needs a lot of time to switch from IPv4 to IPv6. Therefore, transitions should be made gradually to avoid problems between IPv4 and IPv6 systems.
이러한 전략은 IETF(Internet Engineering Task Force)에 의해 고안되었는데, 이중스택(Dual Stack)을 이용하는 방법, 헤더 변환(Header Translation)방법, 터널링(Tunneling)방법의 세 가지 방법이 있다.This strategy was devised by the Internet Engineering Task Force (IETF), and there are three methods of using a dual stack, a header translation method, and a tunneling method.
이중 스택(Dual Stack)을 이용하는 방법은 IPv6로 완전하게 이전하기 전에 모든 호스트가 이중 스택(Dual Stack) 프로토콜을 갖는 것을 의미한다. 즉, 인터넷의 모든 시스템이 IPv6를 사용할 때까지 IPv4와 IPv6를 동시에 운용하도록 하는 방법이다.Using a dual stack means that all hosts have a dual stack protocol before fully migrating to IPv6. In other words, IPv4 and IPv6 can be operated simultaneously until all systems on the Internet use IPv6.
헤더 변환(Header Transition)방법은 대부분의 인터넷이 IPv6을 사용하지만 아직도 일부 시스템이 IPv4를 사용하는 경우에 유용한 방법이다. 즉, 송신자는 IPv6를 사용하기 원하나 수신자는 IPv6를 이해하지 못할 때 송신자가 IPv6 패킷의 헤더를 IPv4 헤더로 변환하여 전송하는 방법이다.Header transition is a useful method when most of the Internet uses IPv6, but some systems still use IPv4. That is, when the sender wants to use IPv6 but the receiver does not understand IPv6, the sender converts the header of the IPv6 packet into the IPv4 header and transmits it.
터널링(Tunneling) 방법은 IPv6을 사용하는 두 호스트가 서로통신 하려고 하는데 IPv4를 사용하는 영역을 통과해야만 할 때 사용되는 방법이다. 즉, IPv6 패킷이 IPv4를 사용하는 영역에 들어갈 때 IPv6 패킷을 IPv4 패킷 내에 캡슐화(encapsulation)하였다가 IPv4 영역을 빠져나올 때 탈캡슐화(decapsulation)하는 방법이다.Tunneling method is used when two hosts using IPv6 try to communicate with each other and have to go through the area using IPv4. That is, a method of encapsulating an IPv6 packet in an IPv4 packet when the IPv6 packet enters an area using IPv4 and then decapsulating when leaving the IPv4 area.
이러한 터널링 방법에는 자동 터널링(Automatic Tunneling)과 설정 터널링(Configured Tunneling)이 있다.Such tunneling methods include automatic tunneling and configured tunneling.
자동 터널링은 IPv4 호환주소를 이용하여, IPv4 구간을 통과할 때 IPv4 호환주소에 내포되어 있는 IPv4주소를 터널 종단 주소로 하여 자동으로 터널링 하는 방식이다.Automatic tunneling is an automatic tunneling method using an IPv4 compatible address and using an IPv4 address contained in an IPv4 compatible address as a tunnel end address when passing through an IPv4 interval.
이에 반해, 설정 터널링은 터널종단의 주소정보가 관리자에 의해 설정되는 방식으로 6Bone(IPv6 Backbone)이 대표적인 예로서, 발신 호스트에서 생성된 IPv6 패킷의 목적지 주소는 최종 목적지의 IPv6 호스트 주소를 포함하고 있게 된다. 여기서, 6Bone은 기존 인터넷상에서 IPv6을 지원하는 라우터와 호스트로 구성된 가상 네트워크를 가리킨다.On the other hand, the configuration tunneling is a 6Bone (IPv6 Backbone) is a way that the address information of the tunnel termination is set by the administrator, the destination address of the IPv6 packet generated by the originating host includes the IPv6 host address of the final destination do. Here, 6Bone refers to a virtual network composed of routers and hosts supporting IPv6 on the existing Internet.
한편, 고속화되고 다양화된 인터넷 서비스 수요가 증대함에 따라 다양한 프로토콜을 수용하는 고성능 네트워크 장비의 필요성이 대두되게 되었다. 네트워크 장비에서 다양한 프로토콜 기반의 패킷처리를 지원하기 위하여 각 프로토콜에 적합한 라인 인터페이스의 개발은 필수적으로 요구된다. 다양한 프로토콜을 수용하는 라인 인터페이스를 구현하기 위하여 복잡하고 다양한 패킷처리 알고리즘을 고속으로 수행하는 프로세서가 필요하게 되었다. 이러한 요구를 충족시키기 위하여 네트워크 프로세서(Network Processor)라는 새로운 기능성 소자가 개발되게 되었다.Meanwhile, as the demand for high-speed and diversified Internet services increases, the need for high-performance network equipment that accommodates various protocols has emerged. In order to support packet processing based on various protocols in network equipment, development of a line interface suitable for each protocol is essential. In order to implement a line interface that accommodates various protocols, a processor that executes complex and various packet processing algorithms at high speed is required. To meet this need, a new functional device called a network processor has been developed.
이러한 종래 네트워크 프로세서를 이용하여 IPv6 패킷의 포워딩을 처리하는 장치의 블록 구성을 나타낸 도면이 도 1에 도시되어 있다. FIG. 1 is a block diagram illustrating an apparatus for processing forwarding of an IPv6 packet using such a conventional network processor.
도 1에 도시된 바와 같이, 종래 네트워크 프로세서(100)는, 멀티캐스트 라우팅 데몬 모듈(Multicast routing daemon module)(102), 멀티캐스트 포워딩 매니저 모듈(Multicast forwarding manager module)(104), 포워딩 테이블(106), 멀티캐스트 포워딩 모듈(108), CLI(Command Line Interface) 모듈(110), 터널 매니저 모듈(Tunnel manager module)(112), 터널 테이블(114), 터널 포워딩 모듈(Tunnel forwarding module)(116), 인터페이스 테이블(118)을 포함하고 있다. 한편, 네트워크 프로세서(100)는 IPv6 네트워크와 IPv4 네트워크의 경계에 위치한 노드에 포함되는 것이 바람직하다.As shown in FIG. 1, the
CLI 모듈(110)은 관리자로부터 입력된 6in4 설정 터널(Configured Tunnel) 정보를 터널 매니저 모듈(112)에 제공한다. 여기서, 6in4 설정 터널 정보는 출발 터널(Start Tunnel) IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, 터널 인터페이스 IPv6 주소정보, 터널 명칭(Tunnel ID)정보, 목적 IPv6 네트워크 주소정보, 터널경로(Path)의 MTU(Maximum Transfer Unit)정보, TTL(Time To Live)정보, 터널인터페이스로 사용될 출력인터페이스 정보 중 어느 하나를 포함한다. 관리자는 터널인터페이스로 사용될 출력인터페이스 정보와 상응하도록 출발 터널(Start Tunnel) IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, 터널 인터페이스 IPv6 주소정보, 터널 명칭(Tunnel ID)정보, 목적 IPv6 네트워크 주소정보, 터널경로(Path)의 MTU(Maximum Transfer Unit)정보, TTL(Time To Live)정보를 설정할 수 있다.The
터널 매니저 모듈(112)은 6in4 설정 터널 정보를 터널인터페이스로 사용될 출력인터페이스 정보에 터널경로(Path)의 MTU 정보, 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보가 상응하는 형식으로 터널 테이블(114)에 저장한다. The
멀티캐스트 라우팅 데몬 모듈(102)은 PIM-SM(Protocol Independent Multicast-Sparse Mode) 프로토콜, DVMRP(Distance Vector Multicast Routing Protocol) 등과 멀티캐스트 라우팅 프로토콜을 이용하여 인접한 라우터와 제어메시지를 교환함으로써, 멀티캐스트 라우팅 정보를 수집하고, 수집된 멀티캐스트 라우팅 정보를 멀티캐스트 포워딩 매니저 모듈(104)에 제공한다. 여기서, 멀티캐스트 라우팅 정보는 소스 IPv6 주소정보, 그룹(group) IPv6 주소정보, 출력인터페이스 리스트(Output Interface List)정보, 입력인터페이스(Input Interface)정보, 출력인터페이스의 개수 정보 중 어느 하나를 포함한다.The multicast routing daemon module 102 exchanges control messages with an adjacent router using a protocol independent independent multicast-sparse mode (PIM-SM) protocol, a distance vector multicast routing protocol (DVMRP), and the like, and a multicast routing protocol. Information is collected and the collected multicast routing information is provided to the multicast
멀티캐스트 포워딩 매니저 모듈(104)은 멀티캐스트 라우팅 데몬 모듈(102)에서 제공된 멀티캐스트 라우팅 정보에서 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응되는 입력인터페이스 정보, 출력인터페이스 리스트 정보, 출력인터페이스의 개수 정보를 포워딩 테이블(106)에 저장한다.The multicast
인터페이스 테이블(118)은 관리자에 의해서 CLI 모듈(110)을 통하여 설정될 수 있으며, 출력인터페이스의 종류정보를 저장하고 있다. 즉, 출력인터페이스의 종류에는 IPv6 네트워크와 IPv4 네트워크간 전송되는 패킷의 터널링에 이용되는 터널인터페이스와 물리인터페이스(Physical Interface) 두 가지가 있을 수 있다. 여기서, 물리인터페이스는 예를 들어, T1과 같은 경우 물리적으로 1개의 포트라 할지라도 28개의 채널을 생성하여 28개의 논리적인 인터페이스를 만들 수 있는데, 이러한 논리적인 인터페이스와 구별하기 위한 실제적인 물리적 인터페이스를 나타낸다.The interface table 118 may be set by the administrator through the
멀티캐스트 포워딩 모듈(108)은 IPv6 네트워크로부터 멀티캐스트 패킷이 수신된 경우에 멀티캐스트 패킷에 포함된 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 이용하여 포워딩 테이블(106)에서 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응하는 출력인터페이스의 개수정보, 출력인터페이스 리스트 정보를 룩업(lookup)한다.The
멀티캐스트 포워딩 모듈(108)은 룩업(lookup)결과 얻어진 출력인터페이스의 개수만큼 멀티캐스트 패킷을 복사하여 생성하고, 인터페이스 테이블(118)을 참조하여 출력인터페이스의 종류를 파악한다. The
멀티캐스트 포워딩 모듈(108)은 파악된 출력인터페이스의 종류가 물리인터페이스인 경우에 복사하여 생성된 멀티캐스트 패킷에 2계층 제1주소정보를 붙여 제1 IPv6 패킷을 발생하여 해당 물리인터페이스를 통하여 목적지로 포워딩(forwarding) 한다. 이는 도 1에서 도시된 바와 같이 "Not Tunnel"인 경우이다. 여기서, 2계층 제1주소정보는 물리인터페이스의 MAC(Medium Access Control)주소정보, 멀티캐스트 패킷에 포함된 그룹 IPv6 주소정보에서 얻어진 그룹 MAC주소정보, 프로토콜 타입정보 중 어느 하나를 포함한다. The
반면, 멀티캐스트 포워딩 모듈(108)은 인터페이스 테이블(118)을 참조하여 파악된 출력인터페이스의 종류가 터널 인터페이스인 경우에 복사하여 생성된 멀티캐스트 패킷에 2계층 제2주소정보를 붙여 제2 IPv6패킷을 생성하여 터널 포워딩 모듈(116)로 제공한다. 이는 도 1에 도시된 바와 같이 "Tunnel"인 경우이다. 여기서, 2계층 제2주소정보는 터널 인터페이스의 MAC주소정보, 멀티캐스트 패킷에 포함된 그룹 IPv6 주소정보에서 얻어진 그룹 MAC주소정보, 프로토콜 타입정보 중 어느 하나를 포함한다.On the other hand, the
터널 포워딩 모듈(116)은 제2 IPv6패킷에 포함된 소스 IPv6주소정보 및 그룹 IPv6 주소정보를 이용하여 포워딩 테이블(106)을 룩업하고, 룩업결과 얻어진 출력인터페이스 리스트에 해당되는 타입을 인터페이스 테이블(118)을 조사하여 얻게 된다.The
터널 포워딩 모듈(116)은 인터페이스 테이블(118)을 조사하여 얻어진 출력인터페이스의 종류가 터널인터페이스인 경우에 해당 출력인터페이스 정보를 이용하여 터널 테이블(114)을 룩업(lookup)하고, 룩업결과 터널인터페이스에 해당되는 출력인터페이스 정보와 상응하는 터널경로(Path)의 MTU 정보, 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보를 얻게 된다. The
터널 포워딩 모듈(116)은 제2 IPv6패킷의 크기(size)를 MTU정보와 상응하는 크기로 변환하고, 제2 IPv6패킷에 터널 헤더를 붙여서 터널인터페이스를 통하여 IPv4 네트워크로 전송한다. 여기서, 터널 헤더는 출발터널 IPv4 주소정보, 목적터널 IPv4 주소정보, TTL 정보 중 어느 하나를 포함한다.The
그런데, 네트워크 프로세서(100)로 멀티캐스트 패킷이 수신된 경우에 멀티캐스트 포워딩 모듈(108)이 멀티캐스트 패킷에 포함된 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 이용하여 포워딩 테이블(106) 및 인터페이스 테이블(118)에서 멀티캐스트 패킷이 넥스트 홉(Next hop)으로 전송될 출력인터페이스의 종류를 조사하고, 조사결과 출력인터페이스의 종류가 터널인터페이스인 경우에 멀티캐스트 패킷을 복사하여 생성된 제2 IPv6패킷을 터널 포워딩 모듈(116)에 제공한다.However, when the multicast packet is received by the
터널 포워딩 모듈(116)은 제 2IPv6패킷에 포함된 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 이용하여 포워딩 테이블(106) 및 인터페이스 테이블(118)에서 멀티캐스트 패킷이 넥스트 홉(Next hop)으로 전송될 출력인터페이스의 종류를 조사하고, 조사결과 출력인터페이스의 종류가 터널인터페이스에 해당되는 경우에 출력인터페이스 정보와 상응하는 터널경로(Path)의 MTU 정보, 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보를 터널 테이블(114)에서 얻게 된다The
이와 같이, 멀티캐스트 포워딩 모듈(108)은 네트워크 프로세서(100)에 수신된 멀티캐스트 패킷이 전송될 출력인터페이스의 종류를 체크하기 위해 포워딩 테이블(106)과 인터페이스 테이블(118)을 체크하고, 출력인터페이스의 종류가 터널인터페이스인 경우에 터널 포워딩 모듈(116)이 다시 제 2IPv6패킷에 포함된 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 이용하여 포워딩 테이블(106) 및 인터페이스 테이블(118)에서 멀티캐스트 패킷이 넥스트 홉(Next hop)으로 전송될 출력인터페이스의 종류를 조사하는 동작을 반복함으로써, 터널링을 통한 패킷의 전송지연을 가져오게 된다.As such, the
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로, 수신된 멀티캐스트 패킷을 넥스트 홉으로 전송하기 위한 출력인터페이스가 터널인터페이스인 경우에 멀티캐스트 패킷을 넥스트 홉으로 전송하기 위해 터널링에 필요한 정보를 얻기 위해 재차 출력인터페이스의 종류를 체크하지 않도록 하는 네트워크 프로세서의 패킷 포워딩 장치 및 그 방법을 제공하는 것에 그 목적이 있다.Accordingly, the present invention was devised to solve the above problems, and is required for tunneling in order to transmit a multicast packet to the next hop when the output interface for transmitting the received multicast packet to the next hop is a tunnel interface. It is an object of the present invention to provide a packet forwarding apparatus and a method of a network processor which do not check the type of the output interface again to obtain information.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 서로 다른 주소형식을 갖는 네트워크의 경계에 위치한 노드를 통한 패킷 포워딩 방법은, 제1네트워크에서 발생된 멀티캐스트 패킷을 제2네트워크를 통하여 제3네트워크로의 전송을 위해 터널 정보를 설정하는 단계, 상기 노드에 인접한 하나 이상의 노드와의 통신을 통해 멀티캐스트 라우팅 정보를 수집하고, 멀티캐스트 라우팅 정보를 이용하여 멀티캐스트 패킷의 전송이 이루어질 노드의 출력인터페이스 정보를 포함한 포워딩 정보를 설정하는 단계, 상기 제1네트워크에서 멀티캐스트 패킷이 전송되면, 상기 멀티캐스트 패킷에 포함된 주소정보에 해당되는 상기 포워딩 정보 중 출력인터페이스가 터널 인터페이스이면, 상기 터널 정보를 이용하여 터널헤더를 발생하고, 멀티캐스트 패킷에 터널헤더를 부가하여 제2네트워크로 포워딩 하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of packet forwarding through a node located at a boundary of a network having different address formats, wherein a multicast packet generated in a first network is transmitted through a second network. Setting tunnel information for transmission to a network, collecting multicast routing information through communication with one or more nodes adjacent to the node, and using the multicast routing information, an output interface of a node to which a multicast packet is to be transmitted. Setting forwarding information including information, and when the multicast packet is transmitted in the first network, if the output interface of the forwarding information corresponding to the address information included in the multicast packet is a tunnel interface, the tunnel information is used. To generate tunnel headers, and to tunnel multicast packets By adding a step of forwarding to the second network.
상기 제1네트워크 및 제3네트워크는 IPv6 네트워크이고, 제2네트워크는 IPv4 네트워크임이 바람직하다.Preferably, the first network and the third network are IPv6 networks, and the second network is an IPv4 network.
상기 터널 정보는, 출발 터널(Start Tunnel) IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, 터널 인터페이스 IPv6 주소정보, 터널 명칭(Tunnel ID)정보, 목적 IPv6 네트워크 주소정보, 터널경로(Path)의 MTU(Maximum Transfer Unit)정보, TTL(Time To Live)정보, 터널인터페이스로 사용될 출력인터페이스 정보 중 어느 하나를 포함한다.The tunnel information may include: start tunnel IPv4 address information, end tunnel IPv4 address information, tunnel interface IPv6 address information, tunnel name ID information, destination IPv6 network address information, and tunnel path. It includes any one of the MTU (Maximum Transfer Unit) information, TTL (Time To Live) information, the output interface information to be used as the tunnel interface.
상기 멀티캐스트 라우팅 정보는, 소스 IPv6 주소정보, 그룹(group) IPv6 주소정보, 상기 멀티캐스트 패킷의 전송을 위한 노드의 출력인터페이스 리스트(Output Interface List)정보, 상기 멀티캐스트 패킷을 수신한 노드의 입력인터페이스(Input Interface)정보, 출력인터페이스의 개수 정보 중 어느 하나를 포함한다.The multicast routing information includes source IPv6 address information, group IPv6 address information, output interface list information of a node for transmitting the multicast packet, and an input of a node receiving the multicast packet. It includes any one of the interface (Input Interface) information, the number of output interface information.
상기 포워딩 정보는, 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 포함한 주소정보, 출력인터페이스 정보, 출력인터페이스의 MAC 주소정보 및 목적지 그룹 MAC주소정보를 포함한 MAC주소정보 중 어느 하나를 포함한다.The forwarding information includes any one of address information including source IPv6 address information and group IPv6 address information, output interface information, MAC address information of output interface and MAC address information including destination group MAC address information.
상기 출력인터페이스 정보는, 출력인터페이스 리스트 정보, 출력인터페이스의 개수 정보, 출력인터페이스의 종류(물리인터페이스, 터널인터페이스)정보, 출력인터페이스의 MTU정보 중 어느 하나를 포함한다.The output interface information includes any one of output interface list information, information on the number of output interfaces, type of output interface (physical interface, tunnel interface) information, and MTU information of the output interface.
상기 목적지 그룹 MAC 주소정보는 상기 그룹 IPv6 주소정보에 의해서 생성될 수 있다.The destination group MAC address information may be generated by the group IPv6 address information.
상기 멀티캐스트 패킷의 주소정보는, 소스 IPv6 주소정보, 그룹(group) IPv6 주소정보 중 어느 하나를 포함한다.The address information of the multicast packet includes any one of source IPv6 address information and group IPv6 address information.
상기 터널 헤더는, 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보 중 어느 하나를 포함한다.The tunnel header includes any one of a start tunnel IPv4 address information, an end tunnel IPv4 address information, and TTL information.
한편, 본 발명의 일 측면에 따른 서로 다른 주소형식을 갖는 네트워크의 경계에 위치한 노드를 통한 패킷 포워딩 장치는, 제1네트워크에서 발생된 멀티캐스트 패킷을 제2네트워크를 통하여 제3네트워크로의 전송을 위해 터널 정보를 설정하는 터널 정보 설정부; 상기 노드에 인접한 하나 이상의 노드와의 통신을 통해 멀티캐스트 라우팅 정보를 수집하고, 멀티캐스트 라우팅 정보를 이용하여 멀티캐스트 패킷의 전송이 이루어질 노드의 출력인터페이스 정보를 포함한 포워딩 정보를 설정하는 포워딩 정보 설정부; 및 상기 제1네트워크에서 멀티캐스트 패킷이 전송되면, 상기 멀티캐스트 패킷에 포함된 주소정보에 해당되는 상기 포워딩 정보 중 출력인터페이스가 터널 인터페이스이면, 상기 터널 정보를 이용하여 터널헤더를 발생하고, 멀티캐스트 패킷에 터널헤더를 부가하여 제2네트워크로 포워딩 하는 포워딩부를 포함한다.On the other hand, the packet forwarding apparatus through a node located at the boundary of the network having a different address format according to an aspect of the present invention, the multicast packet generated in the first network to the third network through the second network Tunnel information setting unit for setting the tunnel information for; A forwarding information setting unit configured to collect multicast routing information through communication with at least one node adjacent to the node, and to set forwarding information including output interface information of a node to which a multicast packet is to be transmitted using the multicast routing information. ; And when the multicast packet is transmitted in the first network, if an output interface of the forwarding information corresponding to the address information included in the multicast packet is a tunnel interface, a tunnel header is generated using the tunnel information, and the multicast packet is generated. And a forwarding unit configured to add the tunnel header to the packet and forward the packet to the second network.
이하 본 발명에 따른 네트워크 프로세서의 패킷 포워딩 장치 및 그 방법을 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, a packet forwarding apparatus and a method thereof of a network processor according to the present invention will be described in detail with reference to the accompanying drawings.
또한, 이해의 편의를 위하여 비록 다른 도면에 속하더라도 동일한 구성요소에는 동일한 부호를 부여하였음을 주의하여야 한다.In addition, it should be noted that the same reference numerals are given to the same elements, although belonging to different drawings for convenience of understanding.
도 2는 본 발명의 일 실시예에 따른 네트워크 프로세서를 이용한 패킷 포워딩 장치에 대한 블록 구성을 나타낸 도면이다.2 is a block diagram of a packet forwarding apparatus using a network processor according to an embodiment of the present invention.
도 2에 도시된 바와 같이, 본 발명에 따른 네트워크 프로세서를 이용한 패킷 포워딩 장치는, 멀티캐스트 라우팅 데몬 모듈(202), 멀티캐스트 포워딩 매니저 모듈(204), 주소테이블(206), MFCE(Multicast Forwarding Cache Entry) 테이블(208), 멀티캐스트 L2 테이블(210), CLI(Command Line Interface) 모듈(212), 터널 매니저 모듈(214), 터널 테이블(216), 포워딩 모듈(218)을 포함하고 있다.As shown in FIG. 2, a packet forwarding apparatus using a network processor according to the present invention includes a multicast
CLI 모듈(212)은 관리자로부터 설정되어 입력된 6in4 설정 터널(Configured Tunnel) 정보를 터널 매니저 모듈(214)에 제공한다. 여기서, 6in4 설정 터널 정보는 출발 터널(Start Tunnel) IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, 터널 인터페이스 IPv6 주소정보, 터널 명칭(Tunnel ID)정보, 목적 IPv6 네트워크 주소정보, 터널경로(Path)의 MTU(Maximum Transfer Unit)정보, TTL(Time To Live)정보, 터널인터페이스로 사용될 출력인터페이스 정보 중 어느 하나를 포함한다. 관리자는 터널인터페이스로 사용될 출력인터페이스 정보와 상응하도록 출발 터널(Start Tunnel) IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, 터널 인터페이스 IPv6 주소정보, 터널 명칭(Tunnel ID)정보, 목적 IPv6 네트워크 주소정보, 터널경로(Path)의 MTU(Maximum Transfer Unit)정보, TTL(Time To Live)정보를 설정할 수 있다. 즉, 터널 매니저 모듈(214)은 출력인터페이스의 종류가 터널인터페이스인 출력인터페이스에 대한 정보를 가지고 있다.The
터널 매니저 모듈(214)은 6in4 설정 터널 정보를 터널인터페이스로 사용될 출력인터페이스 정보에 터널경로(Path)의 MTU 정보, 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보가 상응하는 형식으로 터널 테이블(216)에 저장한다. The
멀티캐스트 라우팅 데몬 모듈(202)은 PIM-SM(Protocol Independent Multicast-Sparse Mode) 프로토콜, DVMRP(Distance Vector Multicast Routing Protocol) 등과 멀티캐스트 라우팅 프로토콜을 이용하여 인접한 라우터와 제어메시지를 교환함으로써, 멀티캐스트 라우팅 정보를 수집하고, 수집된 멀티캐스트 라우팅 정보를 멀티캐스트 포워딩 매니저 모듈(204)에 제공한다. 여기서, 멀티캐스트 라우팅 정보는 소스 IPv6 주소정보, 그룹(group) IPv6 주소정보, 출력인터페이스 리스트(Output Interface List)정보, 입력인터페이스(Input Interface)정보, 출력인터페이스의 개수 정보 중 어느 하나를 포함한다. 즉, 소스 IPv6 주소정보와 그룹 IPv6 주소정보를 포함한 패킷이 수신된 입력인터페이스와 해당 패킷이 네트워크 프로세서(200)에서 전송될 출력인터페이스 리스트 및 개수에 관한 정보를 포함하는 것이다.The multicast
멀티캐스트 포워딩 매니저 모듈(204)은 소스 IPv6 주소정보 및 그룹 IPv6주소정보에 관한 출력인터페이스의 타입을 체크하기 위해 출력인터페이스의 리스트 정보를 터널 매니저 모듈(214)에 제공한다.The multicast
이에 터널 매니저 모듈(214)은 멀티캐스트 포워딩 매니저 모듈(204)로부터 제공된 출력인터페이스 리스트에 대해 터널인터페이스로 설정된 출력인터페이스 정보를 확인하고, 터널인터페이스로 설정된 출력인터페이스정보를 저장한 터널 테이블(216)의 어드레스 정보, 터널인터페이스로 설정된 출력인터페이스의 MTU 정보, 터널인터페이스로 설정된 출력인터페이스 정보를 멀티캐스트 포워딩 매니저 모듈(204)에 제공한다.Accordingly, the
멀티캐스트 포워딩 매니저 모듈(204)은 터널 매니저 모듈(214)에서 제공된 터널인터페이스로 설정된 출력인터페이스 정보, 터널인터페이스로 설정된 출력인터페이스정보를 저장한 터널 테이블(216)의 어드레스 정보, 터널인터페이스로 설정된 출력인터페이스의 MTU 정보를 MFCE 테이블(208)에 저장한다.The multicast
또한, 멀티캐스트 포워딩 매니저 모듈(204)은 터널 매니저 모듈(214)로부터 제공된 출력인터페이스 리스트에 대해 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 가진 패킷이 전송될 출력인터페이스 중 물리인터페이스를 조사하기 위해 물리인터페이스 테이블(도시하지 않음)을 룩업하고, 룩업결과 얻어진 물리인터페이스로 설정된 출력인터페이스 정보와 물리인터페이스로 설정된 출력인터페이스를 저장한 물리인터페이스 테이블의 어드레스 정보, 물리인터페이스로 설정된 출력인터페이스의 MTU정보를 MFCE 테이블(208)에 저장한다. 여기서, 물리인터페이스 테이블에 저장되는 물리인터페이스인 출력인터페이스, 물리인터페이스로 설정된 출력인터페이스를 저장하고 있는 물리인터페이스 테이블의 어드레스 정보, 물리인터페이스인 출력인터페이스의 MTU 정보는 관리자에 의해서 CLI 모듈(212)을 통하여 설정될 수 있다.The multicast
한편, 멀티캐스트 포워딩 매니저 모듈(204)은 출력인터페이스의 MAC(Medium Access Control)주소정보, 그룹 IPv6 주소정보의 마지막 4바이트(byte)에서 얻어진 목적지 그룹 MAC주소정보(예로, 33:33:A:B:C:D 형식의 MAC주소에서 그룹 IPv6 주소정보의 마지막 4바이트를 "A:B:C:D"에 채워 넣어 목적지 그룹 MAC주소가 얻어짐), 출력인터페이스에 전송될 패킷의 프로토콜 정보를 멀티캐스트 L2 테이블(210)에 저장한다.On the other hand, the multicast
이렇게 멀티캐스트 L2 테이블(210)에 저장되는 출력인터페이스의 MAC주소정보, 목적지 그룹 MAC주소정보, 프로토콜정보를 MAC어드레스 정보라 칭하기로 한다. 그리고, MAC어드레스 정보의 저장은 출력인터페이스 정보(출력인터페이스 포트번호)별로 이루어지는 것이 바람직하다.MAC address information, destination group MAC address information, and protocol information of the output interface stored in the multicast L2 table 210 will be referred to as MAC address information. The MAC address information is preferably stored for each output interface information (output interface port number).
멀티캐스트 포워딩 매니저 모듈(204)은 출력인터페이스 리스트에 해당되는 MAC 어드레스 정보가 저장된 멀티캐스트 L2 테이블의 어드레스를 MFCE 테이블(208)에 저장한다. The multicast
MFCE 테이블(208)은 멀티캐스트 포워딩 매니저 모듈(204)에서 제공된 입력인터페이스 정보, 출력인터페이스 리스트 정보, 출력인터페이스의 개수 정보, 출력인 터페이스의 종류(물리인터페이스, 터널인터페이스)정보, 출력인터페이스의 MTU정보, 터널 테이블(216)의 어드레스 정보, 멀티캐스트 L2 테이블(210)의 어드레스 정보를 저장하고 있다. 이는 도 3에 도시되어 있다.The MFCE table 208 includes input interface information, output interface list information, output interface count information, type of output interface (physical interface, tunnel interface) information provided by the multicast
도 3에 도시된 바와 같이, MFCE 테이블은, Input Interface(Iif), Oif coun(15-4), Reg flag(0), The address of Byte counter table.(Base address+(NHIDx4)), Port ID, MTU, Multicast L2 index/Tunnel index, Nexthop type을 포함하고 있다. 이러한 MFCE 테이블은 소스 IPv6 주소정보 및 그룹 IPv6 주소정보마다 적어도 하나 이상 존재할 수 있으며, 각각 MFCE 테이블은 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응되는 어드레스 정보가 멀티캐스트 포워딩 매니저 모듈(204)에 의해서 설정될 수 있다. As shown in FIG. 3, the MFCE table includes an Input Interface (Iif), an Oif coun (15-4), a Reg flag (0), the address of Byte counter table. (Base address + (NHIDx4)), a Port ID, It includes MTU, Multicast L2 index / Tunnel index, and Nexthop type. At least one such MFCE table may exist for each source IPv6 address information and group IPv6 address information, and each of the MFCE tables may include address information corresponding to source IPv6 address information and group IPv6 address information by the multicast
Input Interface는 입력 인터페이스 번호를 나타내고, Oif coun는 출력인터페이스 리스트의 개수를 나타내고, Reg flag는 입력인터페이스가 레지스터 인터페이스인지를 나타내기 위한 것이고, 'The address of Byte counter table.(Base address+(NHIDx4))'는 SPT(Shortest Path Tree) 스위칭에 사용되는 기준 카운터를 위한 엔트리를 나타내고, Base address는 터널테이블(216)과 멀티캐스트 L2테이블(210) 각각의 최하위 어드레스를 나타낸다. Port ID는 출력인터페이스 번호를 나타내고, MTU(Maximum Transfer Unit)은 출력인터페이스를 통하여 전송되는 패킷의 크기인 MTU를 나타내고, Multicast L2 index/Tunnel index에서 Multicast L2 index의 경우 멀티캐스트 L2 테이블의 어드레스를 나타내고, Tunnel index의 경우 터널 테이블의 어드레스를 나타내고, Nexthop type은 출력인터페이스의 종류(물리인터페이 스, 터널인터페이스)를 나타낸다.Input Interface indicates the input interface number, Oif coun indicates the number of output interface lists, Reg flag indicates whether the input interface is a register interface, 'The address of Byte counter table. (Base address + (NHIDx4)) 'Indicates an entry for the reference counter used for the SPT (Shortest Path Tree) switching, and the base address indicates the lowest address of each of the tunnel table 216 and the multicast L2 table 210. Port ID represents the output interface number, MTU (Maximum Transfer Unit) represents the MTU, which is the size of a packet transmitted through the output interface, and in the case of Multicast L2 index / Tunnel index to Multicast L2 index, the address of the multicast L2 table , Tunnel index indicates the address of the tunnel table, and Nexthop type indicates the type of output interface (physical interface and tunnel interface).
멀티캐스트 포워딩 매니저 모듈(204)은 멀티캐스트 라우팅 데몬 모듈(202)에서 제공된 멀티캐스트 라우팅 정보에서 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 주소테이블(206)에 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응되는 인덱스 정보와 함께 저장한다. 여기서, 인덱스 정보는 MFCE 테이블의 어드레스 정보일 수 있다.The multicast
포워딩 모듈(218)은 네트워크 프로세서(200)에 멀티캐스트 패킷이 수신된 경우, 멀티캐스트 패킷에 포함된 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 이용하여 주소 테이블(106)을 룩업하여 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응하는 인덱스정보(MFCE 테이블의 어드레스 정보)를 확인한다. When the multicast packet is received by the
포워딩 모듈(218)은 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응하는 인덱스정보를 이용하여 MFCE 테이블(208)을 룩업하여 출력인터페이스에 대한 타입을 체크한다. 이에 대해서 좀 더 구체적으로 살펴보면, 포워딩 모듈(218)은 MFCE 테이블(208)에 저장된 출력인터페이스의 개수만큼 멀티캐스트 패킷을 복사하여 생성한다. 이후, 포워딩 모듈(218)은 MFCE 테이블(208)에서 설정된 출력인터페이스의 종류를 체크하고, 출력인터페이스의 종류가 터널인터페이스인 경우에 터널 테이블(216)에서 터널인터페이스로 설정된 출력인터페이스정보를 저장한 터널 테이블의 어드레스 정보를 이용하여 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보를 얻게 된다. The
포워딩 모듈(218)은 상기 복사하여 생성된 패킷의 크기를 터널인터페이스로 설정된 출력인터페이스에서 전송될 패킷의 MTU정보와 상응하는 크기로 변환하고, 상기 복사하여 생성된 패킷에 터널 헤더를 붙여서 터널인터페이스를 통하여 IPv4 네트워크로 전송한다. 여기서, 터널 헤더는 출발터널 IPv4 주소정보, 목적터널 IPv4 주소정보, TTL 정보 중 어느 하나를 포함한다. The
한편, 포워딩 모듈(218)은 출력인터페이스의 종류가 물리인터페이스인 경우, 물리인터페이스인 출력인터페이스에 해당되는 MAC 어드레스 정보가 저장된 멀티캐스트 L2 테이블의 어드레스를 이용하여 MFCE 테이블(208)을 룩업하여 MAC 어드레스 정보를 확인한다. 포워딩 모듈(218)은 상기 복사하여 생성된 멀티캐스트 패킷에 MAC 어드레스 정보를 붙여 해당 물리인터페이스를 통하여 목적지로 포워딩(forwarding) 한다. Meanwhile, when the type of the output interface is the physical interface, the
도 4a, 도 4b는 본 발명의 일 실시예에 따른 네트워크 프로세서를 이용한 패킷 포워딩 방법에 대한 플로우챠트를 나타낸 도면이다.4A and 4B are flowcharts illustrating a packet forwarding method using a network processor according to an embodiment of the present invention.
도 4a에서, CLI 모듈(212)은 관리자로부터 설정되어 입력된 6in4 설정 터널(Configured Tunnel) 정보를 터널 매니저 모듈(214)에 제공한다. 터널 매니저 모듈(214)은 6in4 설정 터널 정보를 터널인터페이스로 사용될 출력인터페이스 정보에 터널경로(Path)의 MTU 정보, 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보가 상응하는 형식으로 터널 테이블(216)에 저장한다(S400). In FIG. 4A, the
멀티캐스트 라우팅 데몬 모듈(202)은 멀티캐스트 라우팅 프로토콜을 이용하여 인접한 라우터와 제어메시지를 교환함으로써, 멀티캐스트 라우팅 정보를 수집하고, 수집된 멀티캐스트 라우팅 정보를 멀티캐스트 포워딩 매니저 모듈(204)에 제공한다. 멀티캐스트 포워딩 매니저 모듈(204)은 소스 IPv6 주소정보 및 그룹 IPv6주소정보에 관한 출력인터페이스의 타입을 체크하기 위해 출력인터페이스의 리스트 정보를 터널 매니저 모듈(214)에 제공한다. 터널 매니저 모듈(214)은 멀티캐스트 포워딩 매니저 모듈(204)로부터 제공된 출력인터페이스 리스트에 대해 터널인터페이스로 설정된 출력인터페이스 정보를 확인하고, 터널인터페이스로 설정된 출력인터페이스정보를 저장한 터널 테이블(216)의 어드레스 정보, 터널인터페이스로 설정된 출력인터페이스의 MTU 정보, 터널인터페이스로 설정된 출력인터페이스 정보를 멀티캐스트 포워딩 매니저 모듈(204)에 제공한다. 멀티캐스트 포워딩 매니저 모듈(204)은 터널 매니저 모듈(214)에서 제공된 터널인터페이스로 설정된 출력인터페이스 정보, 터널인터페이스로 설정된 출력인터페이스정보를 저장한 터널 테이블(216)의 어드레스 정보, 터널인터페이스로 설정된 출력인터페이스의 MTU 정보를 MFCE 테이블(208)에 저장한다. 또한, 멀티캐스트 포워딩 매니저 모듈(204)은 터널 매니저 모듈(214)로부터 제공된 출력인터페이스 리스트에 대해 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 가진 패킷이 전송될 출력인터페이스 중 물리인터페이스를 조사하기 위해 물리인터페이스 테이블을 룩업하고, 룩업결과 얻어진 물리인터페이스로 설정된 출력인터페이스 정보와 물리인터페이스로 설정된 출력인터페이스를 저장한 물리인터페이스 테이블의 어드레스 정보, 물리인터페이스로 설정된 출력인터페이스의 MTU정보를 MFCE 테이블(208)에 저장한다. 멀티캐스트 포워딩 매니저 모듈(204)은 출력인터페이스의 MAC(Medium Access Control)주소정보, 그룹 IPv6 주소정보의 마지막 4바이트(byte)에서 얻어진 목적지 그룹 MAC주소정보, 출력인터페이스에 전송될 패킷의 프로토콜 정보를 멀티캐스트 L2 테이블(210)에 저장한다. 멀티캐스트 포워딩 매니저 모듈(204)은 출력인터페이스 리스트에 해당되는 MAC 어드레스 정보가 저장된 멀티캐스트 L2 테이블의 어드레스를 MFCE 테이블(208)에 저장한다. 멀티캐스트 포워딩 매니저 모듈(204)은 멀티캐스트 라우팅 데몬 모듈(202)에서 제공된 멀티캐스트 라우팅 정보에서 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 주소테이블(206)에 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응되는 인덱스 정보와 함께 저장한다(S402, S404). The multicast
도 4b에서, 포워딩 모듈(218)은 네트워크 프로세서(200)에 멀티캐스트 패킷이 수신된 경우(S420), 멀티캐스트 패킷에 포함된 소스 IPv6 주소정보 및 그룹 IPv6 주소정보를 이용하여 주소 테이블(106)을 룩업하여 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응하는 인덱스정보(MFCE 테이블의 어드레스 정보)를 확인한다(S422). 포워딩 모듈(218)은 소스 IPv6 주소정보 및 그룹 IPv6 주소정보와 상응하는 인덱스정보를 이용하여 MFCE 테이블(208)을 룩업하여 출력인터페이스에 대한 타입을 체크한다(S424). 이때, 포워딩 모듈(218)은 출력인터페이스에 대한 타입을 체크하기 전에 MFCE 테이블(208)에 저장된 출력인터페이스의 개수만큼 멀티캐스트 패킷을 복사하여 생성한다. 포워딩 모듈(218)은 출력인터페이스의 종류가 터널인터페이스인가를 판단하고(S426), 출력인터페이스의 종류가 터널인터페이스인 경우에 터널 테이블(216)에서 터널인터페이스로 설정된 출력인터페이스정보를 저장한 터널 테이블의 어드레스 정보를 이용하여 출발터널 IPv4 주소정보, 목적 터널(End Tunnel) IPv4 주소정보, TTL 정보를 얻게 된다. 포워딩 모듈(218)은 상기 복사하여 생성된 패킷의 크기를 터널인터페이스로 설정된 출력인터페이스에서 전송될 패킷의 MTU정보와 상응하는 크기로 변환하고, 상기 복사하여 생성된 패킷에 터널 헤더를 붙여서 터널인터페이스를 통하여 IPv4 네트워크로 전송한다(S428). In FIG. 4B, when the multicast packet is received by the network processor 200 (S420), the
한편, 포워딩 모듈(218)은 출력인터페이스의 종류가 물리인터페이스인 경우, 물리인터페이스인 출력인터페이스에 해당되는 MAC 어드레스 정보가 저장된 멀티캐스트 L2 테이블의 어드레스를 이용하여 MFCE 테이블(208)을 룩업하여 MAC 어드레스 정보를 확인한다. 포워딩 모듈(218)은 상기 복사하여 생성된 멀티캐스트 패킷에 MAC 어드레스 정보를 붙여 해당 물리인터페이스를 통하여 목적지로 포워딩 한다(S430). Meanwhile, when the type of the output interface is the physical interface, the
이상에서 본 발명은 기재된 구체 예에 대해서만 상세히 설명하였지만 본 발명의 기술 사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.Although the present invention has been described in detail only with respect to the described embodiments, it will be apparent to those skilled in the art that various modifications and changes are possible within the technical spirit of the present invention, and such modifications and modifications belong to the appended claims.
상술한 바와 같이, 본 발명에 따른 네트워크 프로세서의 패킷 포워딩 장치 및 그 방법에 따르면, 수신된 멀티캐스트 패킷을 넥스트 홉으로 전송하기 위한 출력인터페이스가 터널인터페이스인 경우에 멀티캐스트 패킷을 넥스트 홉으로 전송하기 위해 터널링에 필요한 정보를 얻기 위해 재차 출력인터페이스의 종류를 체크하지 않도록 함으로써, 멀티캐스트 패킷을 빠르게 넥스트 홉으로 전송할 수 있다.As described above, according to the packet forwarding apparatus and method of the network processor according to the present invention, if the output interface for transmitting the received multicast packet to the next hop is a tunnel interface to transmit the multicast packet to the next hop The multicast packet can be forwarded to the next hop quickly by not checking the type of output interface again in order to obtain information necessary for tunneling.
Claims (18)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020050002959A KR100636274B1 (en) | 2005-01-12 | 2005-01-12 | Packet forwarding device of network processor and method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020050002959A KR100636274B1 (en) | 2005-01-12 | 2005-01-12 | Packet forwarding device of network processor and method thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20060082460A KR20060082460A (en) | 2006-07-18 |
| KR100636274B1 true KR100636274B1 (en) | 2006-10-19 |
Family
ID=37173129
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020050002959A Expired - Fee Related KR100636274B1 (en) | 2005-01-12 | 2005-01-12 | Packet forwarding device of network processor and method thereof |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR100636274B1 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100746858B1 (en) * | 2005-12-09 | 2007-08-07 | 한국전자통신연구원 | Interface management method and apparatus in line card capable of IPv6 packet forwarding |
| KR100778347B1 (en) * | 2006-12-06 | 2007-11-22 | 한국전자통신연구원 | Tunnel Source Information Management Apparatus and Method of Distributed IP69 Router |
| KR100778348B1 (en) * | 2006-12-07 | 2007-11-22 | 한국전자통신연구원 | Tunnel forwarding information establishment method in line card of IP6 router |
| KR101301188B1 (en) * | 2007-01-02 | 2013-08-29 | 삼성전자주식회사 | MOBILE IPv6 NETWORK SYSTEM AND PACKET FORWARD METHOD THEREOF |
-
2005
- 2005-01-12 KR KR1020050002959A patent/KR100636274B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| KR20060082460A (en) | 2006-07-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110784411B (en) | Method, apparatus and system for establishing a BIER forwarding entry | |
| US7483439B2 (en) | VPN services using address translation over an IPv6 network | |
| US7852774B2 (en) | User datagram protocol traceroute probe extension | |
| US7206288B2 (en) | Methods and apparatus for characterizing a route in fibre channel fabric | |
| JP5373625B2 (en) | Method and apparatus for multicast routing | |
| JP2023549797A (en) | BIER packet forwarding methods, devices, and systems | |
| CN100563215C (en) | A message routing switching device and method thereof | |
| CN112532563B (en) | Method and device for sending message | |
| CN114465946B (en) | Method, device and system for acquiring forwarding table item | |
| JP7322088B2 (en) | Packet detection method and first network device | |
| WO2022111606A1 (en) | Message transmission method, segment list generation method, compressed segment identifier acquisition method, and apparatuses | |
| JP2001156835A (en) | Apparatus and method for compressing destination address of multicast message | |
| CN113285878A (en) | Load sharing method and first network device | |
| KR102568754B1 (en) | Bierv6 packet forwarding method, device, and system | |
| US7673061B2 (en) | Method and apparatus for neighborhood discovery across disparate point-to-point networks | |
| JP2023527932A (en) | BIER Multicast Traffic Statistics Collection Method, Apparatus, and System | |
| KR100636274B1 (en) | Packet forwarding device of network processor and method thereof | |
| KR100636273B1 (en) | Apparatus and method for transmitting MPL multicast packet through Ethernet | |
| JP7273125B2 (en) | Method and first network device for transmitting BIERv6 packets | |
| RU2461131C2 (en) | Server, transmission system and gre tunnel encapsulation transferring method thereof | |
| TWI281804B (en) | Packet forwarding method and system | |
| JP2003348148A (en) | Ip multicast control method and ip multicast control system employing the same | |
| CN114221892B (en) | Automatic equipment allocation method and device in BIER network and electronic equipment | |
| US20240195741A1 (en) | Segment Routing over Internet Protocol Version 6 (“IPv6”) Data Plane (“SRv6”) Replication Segment Identifier (SID) for use with Point to Multipoint (P2MP) Signaling Protocols Such as mLDP and RSVP-TE | |
| US20240214296A1 (en) | Bit index explicit replication (bier) with anycast |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20120927 Year of fee payment: 7 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| FPAY | Annual fee payment |
Payment date: 20130927 Year of fee payment: 8 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20140929 Year of fee payment: 9 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 9 |
|
| FPAY | Annual fee payment |
Payment date: 20150925 Year of fee payment: 10 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 10 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 11 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20171013 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20171013 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |