Security in CPS/Networking
-
TCP checksum errorSecurity in CPS/Networking 2020. 8. 6. 16:03
tcpdump를 이용해 http 패킷 정보를 보던 중 checksum error 가 발생하였습니다. 물론 네트워크의 근본 원인을 파악한 후 해결을 했지만, 일시 방편으로 문제를 해결하고자 ethool을 사용해 옵션을 변경해 보았습니다. 기본적으로 tx/rx 체크섬 체크는 enable 되어 있으며 아래처럼 ethtool을 사용해 해당 설정을 읽어오거나 일시적으로 rx-checksumming, tx-checksumming 을 off 시킬 수 있습니다. 다만 데이터 링크단에서의 HW 시그널 이슈로 인해 패킷 정보가 바뀐 경우가 아닌 악의적으로 패킷의 헤더 정보가 바뀐 경우가 있으니 임의적으로 해당 옵션은 disable 하는 것은 추천하지 않으며, 일시적인 문제가 아니라 지속적으로 발생한다면 근본 원인을 찾아 ..
-
Ryu_manager Openflow1.0 -> Openflow1.3 변경Security in CPS/Networking 2020. 8. 4. 23:28
SDN Controller 로 Ryu_manager 를 사용중인데 최근 여러가지 이슈들로 인해 Openflow1.3으로 변경하여 실험을 진행해 보았다. Openflow1.0에선 Version negotiation 이후 스위치에 매칭되는 flow rule이 존재하지 않을 경우 자동으로 Controller 로 패킷을 포워딩하는 기능이 내재되어 있었다. 하지만 Openflow1.3에서는 이를 명시적으로 rule 을 추가해야만 컨트롤러에서 스위치로 부터 패킷을 전달받을 수 있다. 이는 Simple_switch_13.py에 이미 포함되어 있으나 Openflow1.0만을 사용하던 나로써는 당황스러울 수밖에 없었다. 다음은 Simple_switch_13.py에서 해당하는 코드 snippet이다. @set_ev_cls..
-
[Openflow] Physical Port of FeatureResponseSecurity in CPS/Networking 2020. 7. 31. 15:18
flowgrammable.org/sdn/openflow/message-layer/port/ SDN / OpenFlow / Message Layer / Port | Flowgrammable Each port structure refers to a single port on the OpenFlow switch. This port is identified by the port id, with several reserved ones for special ports (Max, Flood, Controller, etc). The hw addr is the link layer address associated with the port, for inst flowgrammable.org
-
[Openflow] FeatureRequest and FeatureResponseSecurity in CPS/Networking 2020. 7. 31. 11:45
Openflow 스위치에서 지원하고 있는 기능을 확인하기 위해 OFPSwitchFeatures 의 응답을 확인하면 됩니다. 지금 테스트 하고 있는 HW 스위치의 경우 아래와 같이 응답을 하고 있는데요. 2020-07-31 11:26:18,792 switch features ev version=0x1,msg_type=0x6,msg_len=0x530,xid=0x3838af4f,OFPSwitchFeatures(actions=2047,capabilities=199,datapath_id=725782937349696,n_buffers=0,n_tables=16,ports=... 이 중에서 capabilities 와 actions 값을 통해서 스위치가 지원하고 있는 Action/Feature의 값을 확인할 수 있습니다..
-
[Network] 데이터 Bandwidth에 영향을 미치는 설정값과 변경Security in CPS/Networking 2020. 7. 22. 21:52
[Physical Model] ethtool을 사용해 하드웨어(이더넷 케이블)가 지원하는 데이터 속도를 확인할 수 있다. 아래의 예를 보면 최대 1Gbps 를 지원하고 있다. $> ethtool eth0 Settings for ens1f1: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100b..
-
[http] axelSecurity in CPS/Networking 2020. 7. 22. 15:09
HTTP 서버의 throughput 을 측정하기 위해 사용해 보았다. Option으로 --max speed 도 제공하고 있어서 Bandwidth을 측정하는데 유용할 것 같다. 다운로드 단계(퍼센트)에 따라 결과을 보여주기 때문에 손쉽게 성능을 측정할 수 있었다. $ axel --max-speed=5120000 http://url/4mb.html Initializing download: http://url/4mb.html File size: 4122826 bytes Opening output file 4mb.html.17 State file found: 3192823 bytes downloaded, 930003 to go. Starting download ,,,,,,,,,, ,,,,,,,... ........
-
NIC 의 MTU 변경하기Security in CPS/Networking 2020. 7. 20. 21:35
Maximum Transmission Unit (MTU)는 네트워크 계층에서 전송가능한 데이터의 최대 사이즈를 의미합니다. 전송 계층 따라 크기(byte)가 정해져 있는데 컴퓨터에서 주로 사용되는 Ethernet의 경우 1500으로 설정되어 있습니다. 네트워크의 트래픽 상황에 따라 전송 속도가 느려질 수 있기 때문에 너무 큰 MTU는 패킷 충돌을 유발할 수도 있겠네요. ifconfig로 MTU를 변경할 수 있는데 이더넷의 경우 최대 9000 까지만 확장이 가능합니다. #> ifconfig eth0 mtu 9000 https://en.wikipedia.org/wiki/Maximum_transmission_unit Maximum transmission unit - Wikipedia From Wikipedia..