다음 이전 차례

8. 네트워크 상호 접속

Linux에는 풍부한 네트워킹 기능이 있다. Linux 박스를 router, bridge, 등으로 활동 할 수 있다. 그 몇개를 아래에 기술한다.

8.1 루터 (Router)

Linux는 커넬에 routing 기능 지원을 수 있다. 상용 router 의 몇분의 일의 비용으로 Linux 박스를 IP 나 IPX router로 충분히 활동 할 수 있다. 최근의 커넬에서는 머신을 주요 router로서 사용하기 위한 특별한 옵션 이 있다.

8.2 Bridge

Linux의 커넬에 Ethernet Bridge 기능을 내장 할 수 있다. Ethernet Bridge란, Ethernet 각각의 세그먼트를 모아, 하나의 Ethernet 처럼 보이게 하는 것이다. 몇개의 Bridge를 함께 사용해, IEEE802.1의 spanning tree 알고리즘을 이용한 Ethernet으로 결구된 큰 네트워크를 만들 수 있다. 이것은 표준이기 때문에, Linux의 Bridge는 다른 third party Bridge 제품과 상호 접속할 수 있다. 패키지를 추가하면 , IP 나 IPX 와 MAC 어드레스에 의한 필터링도 할 수 있다.

관련 HOWTO

8.3 IP Masquerade

IP Masquerade은 Linux에서 개발중인 네트워크 기능이다. IP Masquerade를 유효하게 한 Linux의 호스트를 인터넷에 접속하고 있는다. 그 때, 그 호스트에게 접속하고 있는(같은 LAN에서도, 모뎀 경유의 접속에서 가능하다. ) 컴퓨터도, 공식적으로 할당되어진 IP 어드레스를 가지고 있지 않아도, 인터넷에 연결되어 진다. 모뎀 접속 하나만을 사용해 많은 사람이 인터넷에 억세스할 수 있기 때문에, 비용 절감이 되기도 하고, 보안 증대에도 도움이 된다.(공식적으로 할당되어지지 않은 어드레스는 네트워크의 밖으로부터 억세스할 수 없으므로, 이 호스트는 firewall의 역할을 할 수 있다).

IP Masquerade 관련 문서

8.4 IP Accounting

Linux 커넬의 이 옵션은, IP 네트워크 트래픽의 기록을 취해, 패킷의 로깅과 통계를 작성하는 것이다. 일련의 규칙을 정 의할 수 있어, 패턴에 일치하는 특정의 패킷 시에 카운터를 증가시키거나, 승인 / 거부등을 할 수 있다.

8.5 IP aliasing

Linux 커넬의 IP alias기능은, 하나의 저레벨 네트워크 디바이스 드라이버상에 복수의 네트워크 어드레스를 설정할 수 있도록 한다. (예를 들면, 하나의 Ethernet 카드에 두개의 IP 어드레스등). 일반적으로 사용하는것은, 청취하고 있는 어드레스에 의해 역할을 다르게 하는 것 같은 서비스(예로는 ``멀티 호스트'' , ``가상 도메인'', ``가상 호스트 서비스'')이다.

관련 HOWTO

o IP Aliasing HOWTO metalab.unc.edu/mdw/HOWTO/mini/IP-Alias.html

8.6 Traffic Shaping

Traffic Shaper는 가상 네트워크 디바이스로, 또 하나의 네트워크 디바이스로부터 자료 흐름의 속도를 제한할 수 있는 것이다. ISP 등으로 각 클라이언트가 사용하는 대역폭의 량을 통제하는 policy를 실현하는데 특히 도움이 된다. ( Web 서비스 전용이지만)클라이언트로부터의 IP 접속수나 사용 대역폭을 제한하는 Apache 모듈도 사용할 수 있을 것이다.

o metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO.html#ss6.15

8.7 FireWall

FireWall이란, 공공 부분(인터넷 전체)로부터 사적인 네트워크를 보호하는 디바이스이다. FireWall은 각 패킷 내에 들어있는 송신원, 송신지, 포트, 패킷 타입의 정보를 사용해, 패킷의 흐름을 콘트롤하는 것이다.

Linux에는 다양한 FireWall 툴킷이 있고, 커넬에 내장 지원도 있다. 또 다른 FireWall은 TIS 와 SOCKS 이다. 이것들의 툴킷은 매우 정확도가 높고, 다른 툴과 조합해서 사용하면, 모든 종류의 트래픽과 프로토콜의 blocking / redirection 을 할 수 있다. configuration file이나 GUI 프로그램을 사용해 설 정하고, 복수의 다른 policy를 실현할 수 있다.

8.8 Port forwarding

CGI-bin이나 Java 애플릿을 사용해 데이타베이스의 다른 서비스로 접근시켜 대화식으로 하는 Web 사이트가 증가하고 있다 . 이 접근은 보안 문제를 일으키기 쉽기 때문에, 데이타베이스를 가지고 있는 머신은 인터넷 에 직접 접속시키지 말아야한다.

port forwarding은 이 접근 문제에 대하여 거의 이상적인 해결책을 제 제공할 수 있다. firewall상에서 특정의 포트 번호로 들어 오는 패킷이 다시 기록될수있고, 실제의 서비스를 제공하는 내부 서버에 포워드 되어진다. 내부 서버로부터의 응답 패킷은 그 firewall로부터 나왔던 것처럼 보이도록 하기 위하여 다시 기록된다.

port forwarding의 정보는 여기 www.ox.compsoc.net/~steve/portforwarding.html에서 발견 할 수 있다.

8.9 Load Balancing

데이타베이스 / Web 서버에 다수의 클라이언트가 동시에 억세스하는 경우 에는, 보통은 부하 밸런스를 취할 필요가 있다. 같은 서버를 복수로 두고 부하가 적은 서버에 요구를 redirect하는 것이 바람직 할 것이다. 이것은 Network Address Translation techniques ( NAT )로 실현할 수 있다. 이것의 서브 세트가 IP masquerading 이다. 네트워크 관리자는, Web 서비스등의 어플리케이션을 하나의 서버에서 공급하는 대신에, 복수의 서버에 하나의 IP 어드레스를 공유시킨 복수 서버의 논리적인 집합으로 대체할 수 있다. 들어 오는 접속은 특정한 하나의 서버를 향해 들어온다. 그 서버는 load balancing 알고리즘을 사용한다. 그 가상 서버는 입력과 출력의 패킷을 다시 기록하고, 서버는 하나인것같은 클라이언트 로 가장해, 투과적으로 억세스시킨다.

Linux IP-NAT의 정보는 여기 www.csn.tu-chemnitz.de/HyperNews/get/linux-ip-nat.html에서 볼수있다.

8.10 EQL

EQL는 Linux의 커넬에 통합 되어 있다. 어딘가의 컴퓨터에게 시리얼 접속이 2개있어(보통 이것에는 2개의 전화선과 모뎀 2개가 필요하다), 거기에 SLIP이나 PPP (전화선으로 인터넷 트래픽을 송신하는 프로토콜) 을 사용하고 있을 것이다. 이 때 EQL 드라이버를 사용하면 2배의 속도인 하나의 접속 처럼 사용할 수 있다. 당연하지만, 이것은 상대측에서도 서포트 되어야만한다.

o metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.2

8.11 Proxy Server

Proxy라는 용어는 「다른 사람의 대리로서 무엇인가를 하는 것」이다. 네트워크 용어로 말하면, Proxy Server 컴퓨터는 복수의 클라이언트를 대리로 할 수 있다. HTTP Proxy에서는 다른 머신(머신 A )로부터 Web 페이지 요구를 받는다. 이 Proxy는 요구된 페이지를 얻은 결과를 머신 A 에 돌려준다. 이 Proxy는 요구된 페이지의 cache를 가질 수 있기 때문에, 다른 머신이 같은 페이지를 부탁해 왔다면 cache 내의 복사본를 대신 돌려준다. 이것으로 대역폭 자원을 유효하게 이용할 수 있고, 빠르게 응답할 수 있다. 부가적으로, 클라이언트 머신이 외부 세계에 직접 접속하지 못하기 때문에, 내부 네트워크를 안전하게 하는 방법으로 사용할 수 있다. 잘 설정된 Proxy는 효율을 향상시키는 것과 동시에, 좋은 firewall이 될 수 있다.

Linux용의 Proxy Server가 몇개 있다. 인기있는 솔루션은 Apache 프락시 모듈이다. 좀 더 완전하고 강력한 HTTP 프락시의 실현은 SQUID이다.

8.12 Diald on demand

on demand의 dial 목적은, 사용자가 리모트 사이트에 상시 접속하고 있는 것처럼 보이게 하는 것이다. 보통은, 흥미있는(흥미를 일으키는, 규칙/우선 순위/ 사용 권한의 세트로 보통 정의된다.)패킷이 도달 하는 장소에 패킷 트래픽을 감시하는 demon이 있어, 그 demon이 리모트 끝에 접속 한다. 일정시간 그 채널이 비어 있으면 demon이 접속을 끊는다.

o Diald HOWTO metalab.unc.edu/mdw/HOWTO/mini/Diald.html

8.13 tunnelling, mobile IP, virtual private network

Linux의 커넬은 프로토콜 tunnelling(캡슐화)를 할 수 있다. IP밖에 통과시킬 수 없는 링크에서도 IPX 네트워크 같은 종류를 접속할 수 있는 것처럼, IP를 개입시킨 IPX의 tunnelling을 할 수 있다. 또 IP-IP tunnelling도 할 수 있고, 이것은 모빌 IP , 멀티 캐스트, 아마츄어 무선을 서포트하는데 중요하다. http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.8를 보시오.

mobile IP는, 인터넷에서 mobile node로 IP datagrams을 투 과적으로 루팅할 수 있는 확장 사양을 정의하고 있다. 각 mobile node는, 인터넷의 현재 접속점에는 무관계하게 언제나 자신의 홈 어드레스에의해 식별된다. mobile node는 자신의 홈에서 떨어져 있는 동안에 지금 어디서 인터넷으로 접속되고 있는지의 정보( care-of address )도 가져고 있다. 이 프로토콜은 그 정보를 홈 agent에게 등록 하고, 홈 agent는 datagram을 care-of address의 터널을 통해 mobile node를 향해 송신 한다. 그 터널의 끝에 도달하면 각 datagram는 mobile node로 배달된다.

Point-to-Point Tunneling Protocol (PPTP)는, 안전한 virtual private network(VPN)으로서 인터넷을 이용 가능하게 하는 네트워크 기술이다. PPTP는 Windows NT Server에 내장된 Remote Access Services(RAS) 서버에 통합 되어 있다. PPTP에 의해 로컬 ISP로 dialing도, 인터넷에로 직접 접속도, 유저는 자신의 디 스크에 있는 것과 같이 자신의 네트워크로 억세스할 수 있다. PPTP는 close 프로토콜로 최근 보안이 문제시 되고있다 . 이것 대신에 Linux를 베이스로한 대체품을 사용하도록 강하게 권유한다, 이곳은 주의깊게 검토 테스트된 open 표준이기 때문이다.

모빌 IP

Virtual Private Networks 관련 문서


다음 이전 차례