버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

코드 블럭
titleBasic Tunneling
----------------------------------------------------------------- Basic Forwarding과 다르게 Tunnel에 관련된 헤더가 추가되어 패킷을 분석할때 Tunnel에 관련된 헤더도 분석하기 위해 경우를 추가.
state parse_ethernet {
packet.extract(hdr.ethernet);
transition select(hdr.ethernet.etherType) {
TYPE_MYTUNNEL: parse_myTunnel;
TYPE_IPV4: parse_ipv4;
default: accept;
    }
}

----------------------------------------------------------------------etherType 이 Tunnel인 경우 parse_myTunnel의 함수를 이용하여 패킷을 먼저 분리 그 다음에 Forwarding과 같이 IPV4에 관하여 분석.
state parse_myTunnel {
packet.extract(hdr.myTunnel);
transition select(hdr.myTunnel.proto_id) {
TYPE_IPV4: parse_ipv4;
default: accept;
   }
}

----------------------------------------------------------------------ingress하기 위해 터널 헤더에 맞는 테이블 값이 있을 시에 행동을 취하게 끔 분석 및 전송을 하는 함수.
action myTunnel_forward(egressSpec_t port) {
standard_metadata.egress_spec = port;
    }


table myTunnel_exact {
key = {
hdr.myTunnel.dst_id: exact;
      }
actions = {
myTunnel_forward;
drop;
      }
size = 1024;
default_action = drop();
 }  


코드 블럭
titleP4Runtime
# 1) Tunnel Ingress Rule
table_entry = p4info_helper.buildTableEntry(
table_name="MyIngress.ipv4_lpm",
match_fields={
"hdr.ipv4.dstAddr": (dst_ip_addr, 32)
},
action_name="MyIngress.myTunnel_ingress",
action_params={
"dst_id": tunnel_id,
})
ingress_sw.WriteTableEntry(table_entry)
print("Installed ingress tunnel rule on %s" % ingress_sw.name)

#2) Tunnel Transit Rule
table_entry = p4info_helper.buildTableEntry(
table_name="MyIngress.myTunnel_exact",
match_fields={
"hdr.myTunnel.dst_id": tunnel_id
},
action_name="MyIngress.myTunnel_forward",
action_params={
"port": SWITCH_TO_SWITCH_PORT
})
ingress_sw.WriteTableEntry(table_entry)
print("Installed transit tunnel rule on %s" % ingress_sw.name)

# 3) Tunnel Egress Ruletable_entry = p4info_helper.buildTableEntry(
table_name="MyIngress.myTunnel_exact",
match_fields={
"hdr.myTunnel.dst_id": tunnel_id
},
action_name="MyIngress.myTunnel_forwardegress",
action_params={
"dstAddr": dst_eth_addr,
"port": SWITCH_TO_SWITCHHOST_PORT
})
ingressegress_sw.WriteTableEntry(table_entry)
print("Installed transitegress tunnel rule on %s" % ingressegress_sw.name)
 


2/17 - 

일일회고


2 / 132/142/152/162/17
Facts

Vagrant를 이용하여 간단한 VM이미지 설치 및 활용

P4 스위치를 활용한 간단한 실습, wireshark를 이용한 패킷 캐치

부서업무지원 일을 모두 처리.

들어야 하는 교육자료 모두 수강 완료.




Feeling

vagrant 이미지를 처음 사용해봐서 버벅거렸지만,

다른 인턴 직원의 도움으로 쉽게 할 수 있었습니다.

P4가 무엇을 하는지 조금 더 알아야한다고 생각햇습니다.

P4 스위치에 대해서 알아보기에 신체적으로

힘듬을 느껴 오늘 하루는 서류 작업 및 끝낼 수 있는

과제들 모두 해결.




Finding

다음에 행할 실습에 대비해서 P4스위치에 대해서 개념적으로

접근해야 될것같습니다.

내일부터는 다시 부서 실습에 맞는 교육 실습에

임해야 겠다.




...