성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>오라클 클라우드의 리눅스 VM - 9000 MTU Jumbo Frame 테스트</h1> <p> 지난 글에서, IP MTU의 값이 대개 1500이라고 했는데요,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 이더넷(Ethernet) 환경의 TCP 통신에서 MSS(Maximum Segment Size) 확인 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12521'>https://www.sysnet.pe.kr/2/0/12521</a> </pre> <br /> <a target='tab' href='https://www.sysnet.pe.kr/2/0/12520'>오라클에 있는 리눅스 VM</a>에서 mtu를 확인해 보니 9000 값이 나옵니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>ip link show</span> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> <span style='color: blue; font-weight: bold'>mtu 9000</span> qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 02:00:17:00:b0:a2 brd ff:ff:ff:ff:ff:ff </pre> <br /> 정말 이렇게 해도 통신이 잘 되는지 직접 ping을 통해 확인해 볼까요? ^^ 이를 위해 우선, 오라클의 Ubuntu VM 버전은,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>lsb_release -a</span> No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04 LTS Release: 20.04 Codename: <span style='color: blue; font-weight: bold'>focal</span> </pre> <br /> ping 등의 네트워크 도구가 없으므로 별도로 설치해야 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Ping command not found on Ubuntu 20.04 Focal Fossa Linux ; <a target='tab' href='https://linuxconfig.org/ping-command-not-found-on-ubuntu-20-04-focal-fossa-linux'>https://linuxconfig.org/ping-command-not-found-on-ubuntu-20-04-focal-fossa-linux</a> </pre> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>sudo apt install iputils-ping</span> </pre> <br /> 이후 지난번처럼 ping을 이용해 테스트하면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>ping www.microsoft.com -s 8972 -c 1 -v -M do</span> PING e13678.dscb.akamaiedge.net (23.201.37.168) 8972(9000) bytes of data. From 140.91.214.3 (140.91.214.3) icmp_seq=1 <span style='color: blue; font-weight: bold'>Frag needed and DF set (mtu = 1500)</span> --- e13678.dscb.akamaiedge.net ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms </pre> <br /> 오류가 발생합니다. 즉, 저 MTU 값으로는 통신이 안 되는 것입니다. 왜냐하면, MTU 9000은 Jumbo Frame이 활성화되어 있는 것으로,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > How to test if 9000 MTU/Jumbo Frames are working ; <a target='tab' href='https://blah.cloud/hardware/test-jumbo-frames-working/'>https://blah.cloud/hardware/test-jumbo-frames-working/</a> </pre> <br /> 대상 서버(위의 경우 www.microsoft.com)까지의 라우터 장비를 비롯한 모든 네트워크가 이를 지원해야 하기 때문에 실패한 것입니다. (사실, TCP Connection의 3-way handshake에 MSS 크기 협상도 포함되어 때문에 상대편이 제시한 MSS 크기가 작다면 그것으로 낮춰서 통신하므로 MTU 9000으로 설정되었다고 해서 통신이 안 되는 것은 아닙니다.)<br /> <br /> 만약 MTU 9000을 꼭 테스트하고 싶다면, 가장 좋은 방법이 같은 오라클 클라우드 내의 장비끼리 통신하는 것입니다. 가령, 제 경우에 또 다른 VM이 하나 더 있었는데 그곳으로 ping을 해보면 8972(= 9000 - 20바이트 IP header - 8바이트 ICMP header)까지 잘 되는 것을 확인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>ping -M do -c 1 -s 8972 [...oracle_vm_ip...]</span> PING [...oracle_vm_ip...] ([...oracle_vm_ip...]) 8972(9000) bytes of data. 8980 bytes from [...oracle_vm_ip...]: icmp_seq=1 ttl=63 time=0.437 ms --- [...oracle_vm_ip...] ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.437/0.437/0.437/0.000 ms </pre> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>ping -M do -c 1 -s 8973 [...oracle_vm_ip...]</span> PING [...oracle_vm_ip...] ([...oracle_vm_ip...]) 8973(9001) bytes of data. ping: local error: <span style='color: blue; font-weight: bold'>message too long</span>, mtu=9000 --- [...oracle_vm_ip...] ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms </pre> <br /> 그러니까, 현실적으로 봤을 때 Jumbo Frame이 활성화된 통신은 intranet 환경 정도에서나 쓸만한 것입니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1978
(왼쪽의 숫자를 입력해야 합니다.)