>> Read No. 995 article  
하나로ADSL+STP외장모뎀+리눅스컴 서버로 쓰기...

등록 2001-02-07 12:35:00     조회 4
이름 Raymundo    

		팁 같지도 않은 팁이긴 합니다만... 저처럼 유용하게 쓰실 분이 계실 듯
하여서 올립니다...
 하나로 ADSL 을 쓰는데, 얼마전 장애처리 끝에 ADSL 모뎀을 내장형에서
외장형 SpeedTouchPro 로 교체하였습니다.
 (인터넷)
     |
     | <-(하나로에서 주는 공인IP)
     |
(외장형모뎀)
     | <-(10.emoticon.138)
     |
     | <-(10.emoticon.1)
(내 컴퓨터)
 이 상태에서 외부에서 텔넷으로 제 컴퓨터에 접속하고자 합니다. 이 때
문제는 내 공인IP가 바뀌어버린다는 것이지요. (외장형 모뎀을 계속 켜
두면 어지간하면 오랫동안 유지되긴 하는데, 가끔은 제멋대로 접속이
끊어졌다 재연결되면서 IP가 바뀌어버립니다) 따라서,
http://www.dyndns.org 에서 제공하는 DynamicDNS 서비스를 사용해서
동적으로 raymundo.dyndns.org 라는 이름과 제 유동IP를 연결하고자
합니다.
 대충 상황 설명은 되었고, dyndns 사용 방법은 위 홈페이지에서직접
살펴보시고요, 현재의 문제점은
 1. ifconfig로 얻을 수 있는 내 컴퓨터의 IP주소는 죽었다 깨어나도
10.emoticon.1 밖에 없다... 따라서 내 공인IP주소를 얻을 수 없다.
 2. dyndns 서비스에 내 IP를 갱신하는 ddup 역시 10.emoticon.1 을 가지고
갱신을 시도한다. 따라서 외부에서 raymundo.dyndns.org 라는이름으로
접속할 수 없다.
 입니다. 따라서 ADSL모뎀에서 http 로 자신의 상태를 보여줌을 이용하여서
부여받은 IP 를 얻어내고, 기존의 IP와 비교해서 바뀌었으면 ddup 를
이용하여 갱신하는 스크립트를 작성해보았습니다. (매우 허접합니다)
 ~/bin/update_my_ip :
 #! /bin/bash
 # IP주소를 남겨두는 디렉토리입니다. 미리 만들어둬야 합니다.
TEMP=$HOME/.send_my_ip
 # 모뎀이 접속이 안 된 채로 버티고 있는 경우를 대비해서,
# 모뎀의 동작을 위해서 ping 을 날린다
ping -c 3 147.46.80.1 > /dev/null
 # 기존의 IP주소를 백업한다.
mv -f $TEMP/ip_new $TEMP/ip_old
 # 새 IP주소를 알아낸다. ifconfig 를 쓸 수 없으므로, wget 을 이용하여 모
뎀에서
# 직접 ip 주소를 담고 있는 cgi/router/index.html 파일을 읽어낸다
( cd $TEMP ; wget http://10.emoticon.138/cgi/router/index.html )
 # index.html 로부터 현재의 IP 주소 추출
# 아래의 grep 부터 ip_new 까지를 한줄로 작성할 것.
# ^M 은 vi 에서 ^V와 ^M을 연속으로 눌러 입력한다.
# s/" 와 <TD 사이에는 ^V와 TAB을 연속으로 눌러서 탭이 들어가도록 한다.
# 아래의 행이 실행되면 ip_new 란 파일에 정확히 IP주소만남는다.
grep "21" $TEMP/index.html | sed 2,$d | sed s/^M//g |
sed s/" <TD ALIGN=CENTER >"//g | sed s/"</TD>"//g > $TEMP/ip_new
 # 기존의 IP주소와 새로 얻은 IP주소를 diff로 비교하여 결과를 ip_diff 에
저장
diff $TEMP/ip_new $TEMP/ip_old > $TEMP/ip_diff
 # ip_diff파일의 크기가 0보다 클 경우는 IP주소가 바뀌었다는 것이다
if [ -s $TEMP/ip_diff]
then
# IP가 바뀌었을 때에는 dyndns 갱신
  /usr/local/sbin/ddup --ip `cat $TEMP/ip_new` --host
raymundus.dyndns.org
 # dyndns 서비스의 불안정으로 갱신이 제때에 되지 않을 경우에 대비해서 새
로운
# IP주소를 메일로도 보낸다.
  cat $TEMP/ip_diff | mail -s `cat $TEMP/ip_new` 내@메일.주소
fi
rm -f $TEMP/index.html
# 스크립트의 끝
  위 스크립트에 실행권한을 주어 ~/bin 디렉토리에 넣고 crontab 을 이용하
여
적절한 간격 (저는 5분으로 했습니다) 으로 실행되게 해 두면, 도중에 IP주
소가
바뀌더라도 자동으로 dyndns 에 갱신을 해주고, 새로운 주소를 메일로도보
내
주기 때문에 외부에서 자기의 컴퓨터에 접속하는 것이 가능합니다. 이 외장
형모뎀이
텔넷이나 FTP 포트 등은 자동으로 내부네트웍의 컴퓨터로 패킷을 넘겨주는
듯
하더군요. emoticon
 아예 리눅스머신의 NIC에다 외장형모뎀이 부여받은 IP를 그대로 부여할 수
있는
방법도 있는 듯 한데 (하나넷 리눅스동호회 뒤져보면 나와 있습니다) 이 경
우는
두 대 이상의 컴퓨터에 인터넷 공유를 하기 위해서는 리눅스머신과 다른 컴
퓨터
사이를 다시 랜으로 연결해줘야 한다는군요. (위의 경우에는 모뎀에서 막바
로
허브로 연결할 수 있지요) 어쨌든 이럴 때는 자기의 IP주소를 ifconfig 로
쉽게
알 수 있기 때문에 위와 같이 힘들게 할 필요는 없겠습니다만...
이름
암호


>> 관련글
995 하나로ADSL+STP외장모뎀+리눅스컴 서버로 쓰기...  Raymundo  2001.02.07  ....
  답장 RE: DHCP-Spoofing 기능을 이용하세요.  하나로야  2001.02.07  ....
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.80 초 ] 작업시간: [ 0.28 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791037946
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.