보드 작업에 2019 SDN 두 번째

보드 작업에 2019 SDN 두 번째

1.3 프로토콜, 호스트 이름 및 올바른 대응하는 스위치 포트의 이름,주고 토폴로지 Mininet 결과 연결 포트를 보여주십시오 OpenFlow mininet 필요한 토폴로지 지원을 사용하여 토폴로지를 작성하십시오

  • 토폴로지 만들기

mytopo.py 스크립트를 구축

다음과 같이 코드입니다 :

from mininet.topo import Topo
class Topo2( Topo ):
    def __init__( self ):
        # Initialize topology
        Topo.__init__( self )

        # add switches  
        s1 = self.addSwitch('s1')
        s2 = self.addSwitch('s2')

    # add hosts  
        h1 = self.addHost('h1')
        h2 = self.addHost('h2')
        h3 = self.addHost('h3')
        h4 = self.addHost('h4')
        h5 = self.addHost('h5')
        h6 = self.addHost('h6')

        # add links
        self.addLink(h1,s1,1,1)
        self.addLink(h2,s1,1,2)
        self.addLink(h3,s1,1,3)
        self.addLink(s1,s2,4,4)
        self.addLink(h4,s2,1,1)
        self.addLink(h5,s2,1,2)
        self.addLink(h6,s2,1,3)

topos = { 'mytopo': ( lambda: Topo2() ) }

명령 줄을 입력 만들 수있는 스크립트를 실행하고보기 토폴로지에 그물 토폴로지 명령을 사용하여

sudo mn --custom ./sy2_topo.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653 --switch ovsk,protocols=OpenFlow13

를 사용하면 모든 노드 연결의 초기 명령 상태를 감지 pingall

2. vSwitch는이 항목별로 발행 나타난 의미 흐름주세요 상기 VLAN 가상 네트워크와 다음 세그먼트를 얻기 위해, 플로우 테이블에 직접

  • H1 - H4 교환
  • H2 - H5 교환
  • H3 - H6 교환
  • 갑자기 호스트 나머지

참조 : 일반적으로 요약의 사용과 명령어를 사용 OVS

OVS 흐름 테이블 명령 발행

  • S1
//将主机h1、h2、h3发送给交换机s1的数据包打上不同的vlan tag,并从s1的端口4向交换机s2转发
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:4
//将发送给交换机s1端口4的数据包去除vlan tag,并根据不同的标签发送给相对应的主机
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output:2
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=2,actions=pop_vlan,output:3
  • S2
//将主机h4、h5、h6发送给交换机s2的数据包打上不同的vlan tag,并从s2的端口1向交换机s1转发
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:4
//将发送给交换机s2端口1的数据包去除vlan tag,并根据不同的标签发送给相对应的主机
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output:2
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=2,actions=pop_vlan,output:3

오픈 vSwitch는 흐름 테이블 뷰의 구현 3. 직접적인 결과는 명령을 제출 OVS

sudo ovs-ofctl -O OpenFlow13 dump-flows s1
sudo ovs-ofctl -O OpenFlow13 dump-flows s2

호스트 연결성 시험 결과는 플로우 테이블의 유효성을 검증 제출 4.

연결 테스트 호스트의 결과로부터 알 수있는 바와 같이, 호스트는 호스트의 H1, H4와 통신 만 가능, H2 호스트가 호스트 (H5)와 통신 할 수있는, H3 호스트는 호스트 H6 호스트의 나머지 부분과 통신 할 수없는 통신 만 할 수있다.

5. Wireshark를 캡처, 확인하기 위해 특정 패킷을 분석

  • Wireshark를 설치

  • 시작 와이어 샤크

  • 다른 단자는 와이어 샤크 개시 열고 ICMP 패킷 필터에 의해 선택 될 수있다 와이어 샤크 캡처 패킷 단말기 수립 토폴로지를 pingall 명령을 실행하는 호스트 사이의 통신 내용을 볼

6. 실험 요약

첫 번째 실험 명령을 사용하여 실험의 시작 부분에서 "sudo는 백만 --custom mytopo.py --topo mytopo"모든 호스트가 서로 통신을 시작하는 것이 발견 당시의 연결을 확인, 스크립트 빌드 토폴로지를 실행합니다. 돌아 가기에 사용 openflow1.3에 대한 프로토콜 "$ sudo는 백만 --custom ./sy2_topo.py --topo mytopo --controller = 원격, IP는 127.0.0.1 포트 = 6653 --switch ovsk, 프로토콜 = OpenFlow13을 =" 상호 접속 개시 토폴로지를 생성하기 위하여, 흐름에 나타난 방법을 발표 하였다. 이 실험을 통해, 오픈 vSwitch는 예비 이해 pingall 호스트와 어떻게 명령을 확인하는 방법을 분석하여 와이어 샤크를 사용하는 방법의 효과를 감지하기 위해 연결 테스트를 캡처,이 도구를 사용하여 머리 유량계를 배우고 테이블보기를 흐르게하는 OVS 특정 메시지.

추천

출처www.cnblogs.com/JokerLSJ/p/11825268.html