Staticflow Entry의 match 조건에서 ip_proto 에 대한 질문입니다.

49 views
Skip to first unread message

Jun-Hong Park

unread,
May 27, 2014, 10:07:22 AM5/27/14
to open...@googlegroups.com
안녕하세요!

현재 Flow Record의 Match 에서 ipproto (ip_proto에 대응되는 것으로 판단) 값 표기가  ipproto=1 또는 ipproto=11 이런 형태로 표시가 됩니다.

ethtype(eth_type에 대응되는 것으로 판단) 값은 확인 결과 hexa 값으로 확인되었습니다.


ethtype의 경우 "ety_type": "0x0800" 과 같이 입력하여 설정이 적용됩니다.

그런데, ipproto의 경우도 hexa 값으로 판단이 됩니다.

Protocol Number 의 decimal 11 (0x0B) 의 값은 NVP-II (Network Voice Protocol) 이고, decimal 17 (0x11) 이 UDP  입니다.

현재 DNS Query 질의/응답에 대한 처리 중 staticflow entry 가 적용이 되지 않는 상황에서 확인되었고,

wireshark 을 통해서 패킷 수준에서 확인된 결과 udp 를 통해서 DNS Query 질의가 진행되는 것을 확인하였습니다.

따라서 ip_proto 의 값을 설정하기 위해서 "ip_proto": "0x11"의 값을 입력하는 경우,

class etri.sdn.controller.module.staticentrymanager.StaticFlowEntryStorage 의 616 라인에서 NumberFormatException 을 발생시킵니다.

그래서 0x11 대신 decimal 값  11 을 입력하게 되면, Flow Record Match에  ipproto=b 라고 나타나면 udp 관련 패킷이 하나도 적용받지 않습니다.

아무래도 ip_proto 값을 처리하는 부분에 버그가 있는 것 같습니다.

수고하십시오.


Jisoo Shin

unread,
Jun 1, 2014, 9:51:03 PM6/1/14
to open...@googlegroups.com
안녕하세요. 신지수입니다.
일반적으로 IP protocol 필드를 표시할 때 decimal 표현을 쓰기 때문에
UDP의 경우 17로 입력을 받도록 설계되어 있습니다.
hexa로 입력받는 것을 고려하도록 하겠습니다.

Jisoo Shin

unread,
Jun 2, 2014, 8:17:54 PM6/2/14
to open...@googlegroups.com
ip_proto 타입에 혼선을 줄이기 위해 일부 코드가 수정되었습니다. (~OpenIRIS v2.0.11)
- ip_proto 값은 decimal, hexa 타입 모두 지원합니다. 
  hexa 타입으로 입력 시 반드시 '0x' prefix가 필요합니다.
- UI에서 출력 시에는 decimal 타입으로 출력됩니다.

예를 들어 UDP의 경우 0x11, 17 모두 입력으로 가능합니다. 단 UI에서는 17로 보입니다.
감사합니다. 
Reply all
Reply to author
Forward
0 new messages