다음 이전 차례

5. Problems문제점

이와 같은 간단한 문서를 사용하여 잘못 될 수 있는 것들이 무수히 많이 있다. 특수한 경우가 많기 때문이다. 가능성 있는 문제점의 대다수가 내부 및 외부 네트워크 장치의 구성에 원인을 두고 있다. 내가 시도하고 문제점을 가진 사람들한테 응답할 것이다. 무엇이 잘못 되었는지 알아 내고, 특수한 경우의 문제점을 가진 사람들이 도움을 자세히 찾아낼 수 있도록 하기 위하여 이 아래에 링크를 추가할 것이다. pramsey@refractions.net로 나와 연락하는 것을 편하게 여겨라.

5.1 ICQ가 작동하지 않는다

ICQ의 어떤 부분은 매스커레이딩 상에서 제대로 작동한다. 다른 부분은 전혀 작동하지 않는다. 그렇지만, 매스커레이딩 상에서 ICQ를 실행하는 데 부족한 어떤 (그러나 전체가 아닌) 것을 맡아 주는 개발 중인 beta quality ICQ module이 있다. 소스 코드 배포 파일에 포함된 README 파일은 모듈을 컴파일 하는 방법을 기술한다. 일단 여러분이 컴파일 하고 설치하였다면, /sbin/modprobe ip_masq_icq를 호출하라.

5.2 레드햇 6.X가 아닌 칼데라 2.X를 가지고 있다.

알아 두어야 하는 몇 가지 중요한 변경 사항이 있다:

  1. 인터페이스를 위한 /etc/sysconfig/network-scripts/ifcfg-eth0 & eth1에서 GATEWAY=xxx.xxx.xxx.xxx 문장 (로컬 인터페이스는 리모트 인터페이스 IP 주소를 사용하고 리모트 인터페이스는 서비스 제공자의 게이트웨이 IP를 사용한다)
  2. /etc/sysconfig/daemons/dhcpd 스크립트가 ROUTE_DEVICEeth0이 아닌 eth1로 나열하는지 확인한다.
  3. /etc/dhcpd.conf는 인터페이스 둘 모두를 위한 서브넷 문장을 필요로 한다. (나는 내가 두 번째 문장을 만든 바와 같은 이유를 완전히 확신하지 못한다: 어떤 다른 옵션조차 없는 subnet 216.102.154.201 netmask 255.255.255.255 { } DHCP 서버는 eth0와 eth1 뿐만 아니라 폴백(fallback) 상에서 수용하고(listen) 전송한다.)
  4. /etc/rc.d/init.d/dhcpd 스크립트에 add host route 255.255.255.255를 추가하지 말아라. 칼데라는 이미 문제점을 고쳤다. 스크립트 내에서 eth0에 참조하는 전부를 eth1로 변경하고 확인하라.

5.3 내부 장비 중의 한 대가 웹 서버가 되기를 바란다

식은 죽 먹기와 같다! 그렇지만, 이렇게 쉬운 안내로 작동하기 위해서는 여러분은 정적인 IP 주소를 가져야 할 필요가 있다. 만일 여러분이 동적인 주소를 가진다면, 주소가 변경될 때 여러분의 IP 주소가 포트 전달 명령으로 갱신되어지는 것을 보장하도록 몇 가지 추가적인 스크립트를 조작할 필요가 있다.

명심하라, 외부 포트를 내부 장비로 전달하는 것은 여러분의 "내부" 장비를 이전보다 덜 "내부"적으로 만든다는 것을. 그러나 매우 명백하게 받아 들여질 수 있고, 거의 없거나 아예 없는 성능 degredation을 마치게 된다. 리눅스 커널에 있는 IP 매스커레이딩 코드의 부작용의 하나는 네트워크 레이어(network layer)에 당도할 때 패킷을 사용하여 몇 가지 상당히 재미있는 일을 하는 능력이다. ipmasqadm 유틸리티는 그런 능력을 이용하기 위해 제작되었다.

몇 가지 이유 때문에 ipmasqadm이 모든 레드햇과 맨드레이크 변종과 함께 선적되지 않는다. 그래서 유지관리자의 웹 사이트로부터 가져 와야 할 것이다. -- 이용 가능한 RPM 뿐만 아니라 소스 코드도 있다.

일단 여러분이 RPM을 가지고, 설치하라. 그 다음에 /etc/rc.d/rc.local 파일에 다음의 행들을 추가하라:

/usr/sbin/ipmasqadm portfw -f 
/usr/sbin/ipmasqadm portfw -a -P tcp -L x.x.x.x 80 -R 192.168.1.x 80 
 

첫 번째 명령은 포트 전달 규칙을 강제로 내보내고, 두 번째 명령은 외부 인터페이스 상의 포트 80으로부터 내부 장비 상의 포트 80으로 전달을 추가한다. 외부의 정적인 IP 주소는 x.x.x.x 자리에 들어 가고, 내부 장비 IP 주소는 192.168.1.x 자리에 들어간다.

이제 포트 80을 위한 외부의 요청은 명백하게 내부 장비의 포트 80으로 보내어질 것이다. 여러분은 내부 장비 중 한 대로부터 여러분의 게이트웨이의 포트 80에 텔넷을 하거나 연결하는 것으로는 이것을 시험하지 못한다는 것을 주의하라: 포트 전달자는 외부 인터페이스에서 들어오는 요청을 그저 이행할 뿐이다.


다음 이전 차례