2017-05-11 9 views
0

미니 포트가있는 POX 컨트롤러를 사용합니다. 토폴로지를 감지하기 위해 많은 이벤트를 듣고 있으며 링크와 정보를 전환하는 데 성공했습니다.Pox 컨트롤러를 사용하여 호스트 포트 번호를 얻으십시오.

지금은 내가 호스트 추적기 모듈을 시도

... 모든 호스트 정보 (스위치와 호스트 ID 요법에 연결된 호스트의 포트를 얻는 방법을 알고 싶습니다하지만 난 단지 Mac과 IP 주소를 얻을 .

답변

1

호스트 추적기로 당신은 당신이 원하는 정보를 가질 수 있습니다. 당신의 초기화에 리스너를 추가하는 것보다 모듈

import pox.host_tracker 

추가`

당신이 즉시 스위치 컨트롤러에 연결되어 시작에 해고되는 스위치 이벤트 리스너는 달리 주석에서 볼 때, 호스트를 얻을

def _handle_HostEvent(self, event): 
     """ 
     Listen to host_tracker events, fired up every time a host is up or down 
     To fire up we must issue a pingall from mininet cli. 
     Args: 
      event: HostEvent listening to core.host_tracker 
     Returns: nada 
     """ 
     macaddr = event.entry.macaddr.toStr() 
     port = event.entry.port 
     # your code here 

core.host_tracker.addListenerByName("HostEvent", self._handle_HostEvent) # listen to host_tracker 

나중에는에 리스너 메소드를 구현 정보 우리 네트워크에서 데이터를 실행해야합니다. 모든 정보를 얻으려면 mininet 토폴로지의 ping을 모두 실행하십시오. 토폴로지의 모든 호스트를 가져 오기 위해 패킷을 처음으로 범람시키는 사용자 지정 컨트롤러 코드가있는 경우 기억하십시오.

호스트의 ID를 얻으려면 --mac arg와 함께 미니 넷 토폴로지를 시작해야합니다. 이 방법으로 호스트의 MAC 주소는 다음과 같습니다. 00:00:00:00:01 마지막 2 개의 숫자는 호스트의 ID를 나타냅니다.

+0

고맙습니다. 하지만 어떻게 ID 또는 호스트 이름을 얻나요?. 또한 스위치 포트 또는 호스트 포트의 포트입니까? 내가 호스트 추적기 소스 코드에서 볼 수있는 것은이 포트가 스위치에 속한 in_port라는 이벤트에서 패킷을 수신한다는 것입니다. – engbarakat

+0

여기서 pox 소스 코드와 포트 정보를 추적했습니다. host_tracker.py에 의해 catch 된 packetIn 이벤트에서 오는 것입니다. 그것은 스위치에서 온다. 또한 IP 주소 정보를 업데이트하기 전에 이벤트가 발생하면 IP 주소를 얻기 위해 소스 코드 편집 작업을해야했습니다. – engbarakat

+0

내가 라우팅 등에서 사용할 수없는 것 같아 호스트 포트를 사용하지 않을 것입니다 그래서 내 계획을 변경합니다 ... – engbarakat