2016-11-08 15 views
0

TCP 포트를 RYU SDN 컨트롤러와 함께 사용하여 특정 서버로 TCP 플로를 리디렉션하려고합니다. ovs1에 대한TCP 포트를 기반으로 TCP 흐름 일치 Ryu 컨트롤러

host -- ovs1 -- ovs2 -- server 

경기 규칙 :이 (첫 번째 단계에 대한 간단한) 내 토폴로지

match = parse.OFPMatch(in_port=port,eth_type=0x0800, ipv4_dst=server_ip, tcp_src=tcp_pkt.src_port) 

하지만 난 다음 오류 수 :

EventOFPErrorMsg received. 
version=0x4, msg_type=0x1, msg_len=0x4c, xid=0x370bf1bf 
`-- msg_type: OFPT_ERROR(1) 
OFPErrorMsg(type=0x4, code=0x9, data=b'\x04\x0e\x00\x70\x37\x0b\xf1\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x28\x80\x00\x00\x04\x00\x00\x00\x01\x80\x00\x0a\x02') 
|-- type: OFPET_BAD_MATCH(4) 
|-- code: OFPBMC_BAD_PREREQ(9) 
`-- data: version=0x4, msg_type=0xe, msg_len=0x70, xid=0x370bf1bf 
    `-- msg_type: OFPT_FLOW_MOD(14) 

는 점입니다 , tcp_src 옵션을 제거하면 모든 것이 정상적으로 작동하므로 문제는 포트를 어떻게 지나가고 있는지와 관련이 있다고 생각합니다.

아이디어가 있으십니까?

미리 감사드립니다.

답변

1

좋아,이 문제와 함께 많은 시간을 보낸 후 나는 대답을 얻었다.

match = parse.OFPMatch(in_port=port,eth_type=0x0800, ip_proto=6, ipv4_dst=server_ip, tcp_src=tcp_pkt.src_port) 

내가 여기에 해답을 발견 : OpenFlow Switch Specification

TCP 포트가 특정 일치를 정의하기 위해, 우리는 모든 전제 조건을 만족해야합니다, 내 경우에는 ip_proto 필드를 추가 할 필요가 있음을 의미