Engineering/Network 19

curl 명령어로 postman 업로드 API 대체

postman 으로 파일 업로드는 UI 메뉴에서 file 파라미터에 해당하는 파일을 로컬 PC 에서 잘 선택해서(Select files..) 호출하면 잘 동작한다. 문제는 윈도우에서 postman 에서 제공하는 Code snippet 명령어로 하면 아래와 같은 오류가 나면서 동작을 안한다는 것이다.curl --location 'http://service.com/apk/upload' \ --form 'file=@"/D:/download/test.apk"' \ --form 'code="12345"'curl: (26) Failed to open/read local data from file/application 윈도우즈 파일 경로가 안 맞는거 같아서 조금 바꿔서 다음과 같이 하면 된다.curl -F file=..

Engineering/Network 2024.06.19

[kafka] NotLeaderOrFollowerException 에러 확인

kafka 를 통해 메시지를 전달하는데, 어느 순간 부터 Topic and partion to exceptions: topic-name-0 -> org.apache.kafka.common.errors.NotLeaderOrFollowerException (kafka.server.KafkaApis) 에러가 발생하고 있다. 토픽 정보를 확인할 수 있는 명령어 kafka-topics.sh 로 토픽 정보를 확인해보니깐 2번 브로커가 0 번 파티션의 리더를 맡고 있다. hostname@kafka-client:/$ kafka-topics.sh --describe --bootstrap-server kafka-0.kafka-headless.default.svc.cluster.local:9092,kafka-1.kafka-..

Engineering/Network 2022.07.13

dhcp 인터페이스를 static 으로 변경

동적(dhcp) IP 로 사용중인 인터페이스를 고정(static) 으로 변경(in CentOS) 1. IP 주소 및 gateway 확인# ip route default via 172.25.50.1 dev enp2s0 proto static metric 100 172.25.50.0/23 dev enp2s0 proto kernel scope link src 172.25.51.123 metric 100 172.25.252.252 via 172.25.50.1 dev enp2s0 proto dhcp metric 100 -> IP 주소가 172.25.51.123, netmask 는 255.255.254.0 (172.25.50.0/23) 이고, default gateway 는 172.25.50.1, 인터페이스 명이 ..

Engineering/Network 2018.11.23

FD 최대값 테스트(리눅스 용)

리눅스에서 FD 사이즈가 기본적으로 1024 인데, include 파일을 수정하여 임의로 확장한 후 테스트를 위해서 다음 소스를 이용하였다. (윈도우용 소스를 급하게 리눅스에서 돌아가도록 작성...) - 서버 //#include #include #include #include #include #include #include #define LINE1024 //#define MAXCLIENT5 #define MAXCLIENT1200 #defineSERV_PORT8787 int maxfdp1; int chatuser;// 채팅 참가자 수 unsigned int client_s[MAXCLIENT]; char *escape = "/quit";// 종료 명령 /* i번째 유저 계정삭제 */ void disconCl..

Engineering/Network 2012.03.06

maillog 로그중에 NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied

/var/log/maillog 로그에 계속 "NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied" 이 나타나는 경우가 있다. command 라인에서 mail 테스트를 했을때는 정상적으로 메일전송이 되는 것을 확인이 되는데, 웹서버를 사용해서 메일전송을 할 경우에(웹 어플리케이션에서 메일 전송) 해당 로그가 발생한다. 일단 /var/spool/clientmqueu 디렉토리 권한을 확인하면 smmsp:smmsp 사용자만 쓸 수 있다. # ls -la drwxrwx---. 2 smmsp smmsp 4096 2012-01-10 18:18 clientmqueue 그래서 clientmqueu 디렉토리 권한을 777 로..

Engineering/Network 2012.01.10

로컬호스트의 열려진 포트(바인딩하지 않은 포트) 알아오는 간단한 소스

포트 번호를 순차적으로 얻어오는 프로그램을 코딩하는데 방법은 간단하다. connect() 함수를 이용해서 return 값이 0 보다 작을 경우에는 사용중인 포트로 간주한다. (사실 EADDRINUSE 에러번호로 정확히 확인해야겠지만 간단하게 작성하기로 한다.) #include #include #include #include main() { struct sockaddr_in cliaddr; int sockfd; int port = 3306; while (port < 65500) { memset(&cliaddr, 0, sizeof(struct sockaddr_in)); cliaddr.sin_family = AF_INET; cliaddr.sin_addr.s_addr = inet_addr("127.0.0.1")..

Engineering/Network 2011.11.16

sqlplus 로 oracle 접속시 tcpdump 패킷 분석

sqlplus 로 oracle 접속시 tcpdump 패킷 분석입니다. [root@]# tcpdump -ibr0 host 192.168.100.200 -X -s0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes 15:43:25.927261 arp who-has 192.168.100.200 tell 192.168.100.217 0x0000: 0001 0800 0604 0001 0017 083a 4a4b c0a8 ...........:JK.. 0x0010: 64d9 0000 0000 0000 c0a..

Engineering/Network 2011.03.31

bridge 인터페이스의 slave 인터페이스 확인

bridge 인터페이스의 slave 인터페이스들을 확인하기 위해 ioctl() 함수를 찾아보았으나, BSD 계열에서는 SIOCBRDGIFS 가 보였는데 redhat(centos) 쪽에서 쉽게 예제가 안보였다. 물론 "brctl show br명"으로 가능하기는 하나, 화면 출력값이 여러 라인으로 출력된다. brctl 소스를 확인해보면 인터페이스 리스트를 확인하는 api 가 존재할거 같으나 찾기가 쉽지 않았다. 그래서, 다른 방법을 사용했는데, /sys/class/net/brXXX 디렉토리를 확인해보자. /sys/class/net/brXXX/brif 에 slave 인터페이스의 링크 디렉토리가 존재한다. # ls /sys/class/net/br0/brif eth2 eth3 사실 brctl 라이브러리 소스를 직..

Engineering/Network 2011.03.04

STP(spanning tree protocol) 정의

STP는 동일한 두개의 컴퓨터 네트웍 세그먼트를 서로 연결하기 위해 두개의 브리지가 사용된 곳에서 브리지 간에 정보를 교환할 수 있도록 함으로써, 주어진 메시지를 둘 중 오직 한 개의 브리지만이 처리할 수 있도록 해주는 프로토콜이다. STP는 흔히 '브리지 루프'라고 알려져 있는 상황을 예방한다. 이더넷이나 토큰링과 같은 근거리 통신망에서, 컴퓨터는 공유하고 있는 전송로를 서로 먼저 사용하기 위해 경쟁한다. 만약 너무 많은 수의 컴퓨터가 동시에 데이터를 전송하려 시도하면, 네트웍의 전반적인 효율이 악영향을 받을 수 있으며 심지어 트래픽 전달이 거의 멈추는 지경에 까지 이를 수 있다. 이러한 개연성을 최대한 줄이기 위해, 브리지라고 불리는 장치를 이용하여 근거리 통신망을 두개 이상의 네트웍 세그먼트로 나누..

Engineering/Network 2011.02.25