2012년 11월 26일 월요일

'slattach'로 SLIP 연결 만들기

SLIP(Serial Line IP)은 옛날 옛적에 컴퓨터도 인터넷도 완전 느려터지고 이더넷 기반의 인터넷 연결이 쉽지 않던 불행한 시기에 값싼 시리얼 케이블로 인터넷을 해보고자 시리얼 라인에 IP 패킷을 전송하기 위한 프로토콜이다. 그렇다고 뭔가 특별한 기능이 있는 것은 아니고 시리얼의 문자단위 전송을 패킷단위 전송으로 바꿔주는 역할을 한다. 이런 프로토콜은 SLIP에서 시작해서 TCP/IP 헤더 압축까지 지원하는 CSLIP, 최근에는 PPP까지 발전해왔다. 하지만, 여전히 자원이 제한된 임베디드 장치에서는 여전히 SLIP은 매력적인 프로토콜이다.

안타깝게도 윈도에서는 공식적으로 (운영체제 레벨에서) SLIP 연결을 지원하지는 않지만, 여전히 리눅스, 유닉스, Mac OS X 등에서는 운영체제에서 SLIP 연결을 지원하고 있다. 바로 'slattach'라는 툴을 사용하면 된다.

최근 임베디드 보드를 만들 때에는 갈수록 줄어드는 PC의 시리얼 포트를 고려하여 FTDI, CP210x 같은 USB-to-Serial 칩을 많이 쓴다. 이런 환경을 우선적으로 고려하면 간단하게 다음과 같이 타이핑하여 SLIP 연결을 만들 수 있다.

$ sudo slattach -p slip -s 115200 -L -m /dev/tty# 
$ sudo ifconfig sl0 up

이렇게 하니까 된다. 간단하게 설명하자면 -p는 프로토콜을 지정하는 옵션인데 기본적으로 cslip이므로 slip으로 설정했다. -s는 눈치챘겠지만 속도를 지정하는 옵션이다.  -L 옵션은 CLOCAL 옵션을 활성화하고, -m 옵션은 CRTSDTS 옵션을 사용하지 않게 한다.

  • CLOCAL: 모뎀 제어 라인 무시
  • CRTSDTS: 하드웨어 흐름 제어(flow control) 사용

기타 자세한 정보는 'man slattach'와 구글을 참고하시길...