SuSE 리눅스 네트워크 설정
- LAN(Local Area Network)에 리눅스 연결 -

배철수:리눅스월드 발행인

 

 

    리눅스는 3대 주요 랜 표준( Ethernet, TokenRing, Arcnet)을 지원한다. 여기서는 세계적으로 가장 많이 사용되는 이더넷에 리눅스 호스트를 연결하는데 필요한 셋업 과정을 설명한다.

    ▶ 참고
    이더넷은 매체 접근 기법으로서 CSMA/CD(Carrier Sense Multiple Access with Collision Detecion)를 사용한다. CSMA/CD는 랜카드에서 매체(케이블)에 패킷을 실을 때 우선 다른 노드(랜 카드)에서 패킷을  매체(케이블)에 보내고 있는지를 확인 후 전송이 없으면 패킷을 케이블에 싣는다. 그러나 다른 노드에서도 동시에 전송을 하는 경우 패킷 충돌이 일어나 패킷은 깨지며 이 때는 각 노드는 노드마다 고유한 일정 시간 경과 후 재 전송을 시도한다.

    이더넷의 기본 전송 속도는 10Mbps이며, 매체(케이블)로는 UTP(Unshielded Twisted-Pair), Thick, Thin 케이블 등이 사용된다.

    이더넷은 랜의 노드 수가 많아 질 경우 패킷 충돌이 많아 급격히 속도가 떨어지는 단점이 있으며 이를 극복하기 위해 Fast Ethernet(100Mbps), Switching 기법 등을 사용한다.

- 프로토콜

    리눅스에서는 TCP/IP, IPX, AppleTalk 등의 프로토콜을 사용 가능하다. TCP/IP는 인터넷에서 사용하는 프로토콜이며, IPX는 노벨 네트웨어(Netware)에서, AppleTalk는 맥킨토시에서 사용한다. 여기서는 TCP/IP 프로토콜을 사용하기 위한 설정만을 기술한다.

 

1. 전제 조건

    1.1 랜카드가 리눅스에서 인식되어야 한다. 아래 방법으로 확인할 수 있다.

      (1) 부트 때의 커널 메시지
      dmesg 명령으로 부트 때의 커널 메시지에서 확인이 가능하다.
      eth0: 3Com 3c905 Boomerang 100baseTx at 0xd000, 00:60:97:bc:8f:11, IRQ 10
      8K word-wide RAM 3:5 Rx:Tx split, autoselect/NWay Autonegotiation interface.
      MII transceiver found at address 24, status 7869.
      Enabling bus-master transmits and whole-frame receives.
      3c59x.c:v0.99E 5/12/98 Donald Becker
      http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html

      ■ 3Com 3c905 Boomerang : 랜카드 제조회사 및 모델명, 이 모델은 PCI 타입임.

      ■ eth0 : 이더넷 카드의 인터페이스 이름이다. 랜카드가 여러 개이면 eth1, eth2 등으로 표시된다.

      ■ 100BaseTx : 랜카드 전송속도가 100Mbps이며 배선에 UTP 케이블을 사용한다는 뜻임.

      ■ 0xd000  : I/O address(PCI 슬롯에서 자동 할당됨)

      ■ 00:60:97:bc:8f:11는 48비트의 이더넷 어드레스임, 전세계에서 생산되는 모든 이더넷 카드는 다른 카드와 중복되지 않는 고유의 이더넷 주소를 갖는다.

      TCP/IP 네트워크에서는 FQDN(Fully Qualified Domain Name) -> IP Address -> 이더넷어드레스  순서로 특정 호스트가 찾아진다.

      ■ Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html :
      리눅스의 거의 모든 이더넷 카드 드라이버는 미국 나사(NASA)에 근무하는 Donald Becker 씨가 개발하였다. 만약  자신의 이더넷 카드가 리눅스에서 인식이 되지않으면 위 홈페이지를 체크해 보시길.

      (2)  cat /proc/net/dev 명령

      www:~ # cat /proc/net/dev
      Inter-|   Receive                  |  Transmit
      face |packets errs drop fifo frame|packets errs drop fifo colls carrier
      lo:          6       0     0     0      0          6       0     0    0     0       0
      eth0:   403       0     0     0      0       212       0     0    0     0       0
      “eth0:” 로 시작하는 라인이 있어야한다.

    1.2 커널이 TCP/IP 네트워크 사용이 가능하도록 설정되어 있어야한다.

    커널을  컴파일 할 때 make config에서 아래 부분 설정이 중요하다.

    TCP/IP networking (CONFIG_INET) [Y/n/?]
    Network device support (CONFIG_NETDEVICES) [Y/n/?]
    Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [Y/n/?]

    이외에도 사용 목적에따라 커널 컴파일에 여러 옵션이 추가되야 한다. 커널 컴파일에 관한 사항은 리눅스 월드 ‘99년 5월호의 “커널 컴파일 가이드”나 Kernel-Howto를 참고한다.

     

2. 설정 전에 결정할 사항

    2.1  호스트 네임
    8자 이내여야하며 리눅스 호스트가 속한 도메인에서 다른 호스트에서 사용하지 않아야 한다.

    2.2  IP Address
    32비트이며 8비트  4개로 구분하여 십진수로 표시한다.

    IP주소는 아래의 세 클라스로 나뉜다.
    A 클라스 : 1.0.0.0  ~ 126.0.0.0
    *. 10.0.0.0 은 내부 랜 전용임
    *. 127.0.0.0 은 특수한 용도로 사용됨

    B 클라스 : 128.1.0.0 ~ 191.254.0.0
    *. 172.16.0.0 ~ 172.31.255.255 는 내부 랜 전용

    C 클래스 : 192.0.1.0 ~ 223.255.254
    *. 192.168.0.0 ~ 192.168.255.255 는 내부랜 전용

    2.3  도메인네임
    도메인네임은 우리나라의 경우 한국전산원에서 관장한다.

    2.4  게이트웨이 어드레스
    게이트웨이란 두개의 네트워크에 동시에 연결되 있는 컴퓨터나 라우터를 말한다.
    랜이 한 개이고 ISP와 랜투랜으로 연결된 경우의 게이트웨이 어드레스는 라우터의 이더넷 포트 어드레스이다.

    2.5  네트마스크
    IP address에서 네트워크와 호스트 부분을 구별해주는 역할을 한다.

    서브네팅을 않는 경우는 아래와 같다.
     A 클라스 :  255.0.0.0
     B 클라스 : 255.255.0.0
     C 클라스 : 255.255.255.0

    서브네팅을 한다면 네트마스크는 네트워크를 몇 개로 분할하느냐에따라 달라진다.

    예를들어 C 클라스 네트워크를 4개로 분할하면(즉 64개씩 할당) subnetmask 는 255.255.255.192가 된다.

    이유는 C 클라스의 경우 호스트 부분에 할당되는 비트가 8비트인데 이를 4개로 분할하려면 앞의 2비트를 네트워크 어드레스로 재할당하기 때문이다.

    1    1   | 0 0 0 0 0 0  : 여기서 앞의 2비트가 네트워크를 가르키므로  128 + 64 = 192 이다.   

    *. 서브네팅에대한 자세한 사항은 리눅스 월드 99년 2월호를 참고할 것.

    2.6  네트워크 어드레스
    서브네팅을 않으면 네트워크 어드레스는 호스트 부분이 모두 0인 주소이다.

    2.7  브로드캐스트 어드레스 (broadcast address)
    서브네팅을 않으면 브로드캐스트 어드레스는 호스트 부분이 모두 1인 주소이다.

    2.8  네임서버 주소
    네임서버는 각 도메인에대해 보통 2대를 운영한다. 이에대한 사항은 네트워크 관리자에게 문의해야한다.

    예]
    C 클라스 주소인 192.168.1.X 주소를  서브네팅해서 4개의 네트워크로 분할했다면 netmask는 255.255.255.192 가 되고, 리눅스는 두번째 네트워크를 할당 받았다면 이때의 네트워크 어드레스는 192.168.1.64 브로드캐스트 어드레스는 192.168.1.127이 된다.

     

3. 네트워크 셋업

    3.1  root로 login

    3.2  “YaST”를 실행 후 “system administration” ->
           “Network configuration” ->

    Number Active  Type of network  Device name  IP address     PtP address   

    [0]    [X]       Ethernet            eth0     192.168.1.3
    [1]    [ ]    <No device>
    [2]    [ ]    <No device>
    [3]    [ ]    <No device>
                 <Create an additional network>                         
    F1=Help     F4=Deactivate     F5=Device   F6=IP address  F7=Hardware   F8=ISDN     F10=Save

    3.3 F5를 누른 후 Ethernet를 선택한다.

    3.4 F6를 누른 후 아래 처럼 입력(이는 보기이니 실제는 각자의 네트워크에 따라 다르다)

    Type of network:   eth0
             IP address of your machine:  :192.168.1.3
       Netmask (usually 255.255.255.0):  :255.255.255.0
    Default gateway address (if required):  :192.168.1.1
    IP address of the Point-to-Point partner  :                  

    3.5  Continue

    3.6  F4 를 눌러 선택한 내트워크를 활성화한다.
          (Active에 X가 표시된다)

    3.7  F10을 눌러 저장한다.

    3.8  Change host name : 호스트네임을 변경함

    3.9  Configure network services : inetd, portmapper를 셋업하거나, NFS 서버를 시작하려 할 때

    3.10  Configuration nameserver : 네임서버의 주소 지정

    3.11 Configure sendmail : sendmail 설정 변경

    이 과정이 끝나면 SuSEconfig가 가동된다.
    셋업 변경이 효력을 발생하려면 데몬을 재실행 해야한다.
    # rcnetwork  restart

     

4. 수동으로 설정하기

    /etc/rc.config 파일을 수정 후에 SuSEconfig를 실행한다.

     

5. 네트워크 설정에 관련된 파일들

    5.1 /etc/rc.config
    이 파일을 YaST로 변경 한 후 SuSEconfig를 실행하면 대부분의 구성 파일이 바뀐다. 부트 스크립트도 변경된다.

    5.2 /etc/hosts
    호스트 이름과 IP Address가 할당된다. 만약 네임서버가 사용되지 않으면 연결하고자 하는 모든 호스트의 이름과 IP Address가 여기에 지정되어야 한다.
    넣는 형식은 아래와 같다.

    IP address      FQDN    별명(nickname)

    *.  FQDN : Fully Qualified Domain Name

    5.3 /etc/networks
    네트워크 이름과 주소가 지정된다.

    형식]
    Network Name    Network Address

    5.4 /etc/host.conf
    이 파일은 호스트 네임을 찾는 방법을 지정한다.
    다음 사항들이 가능하다.

    Order bind hosts : 호스트네임을 찾는 순서를 지정한다. 즉 bind는 네임서버를 말하며 hosts는 /etc/hosts 파일을 말한다.

    multi  on/off : /etc/hosts 파일에 한 호스트에대해 여러 개의 IP Address 지정이 가능한가를 결정한다.

    5.5 /etc/nsswitch.conf
    hosts, network,protocols 등의 각종 데이터베이스가 어떤 순서로 찾아지는가를 결정한다.

    예를들어
    hosts : files dns
    이는 호스트 이름을 찾을 때 우선 파일(/etc/hosts)에서 찾고 다음에 DNS를 참조하라는 뜻이다.
    여기에 지정 가능한 데이터베이스에는 아래 종류가 있다.

    Aliases
    Ethers
    Group
    Hosts
    Networks
    Passwd
    Protocols
    Services
    Shadow
    등이다.

    5.6 /etc/resolv.conf
    네임서버를 지정한다(3개 까지). 그리고 FQDN(Fully Qualified Domain Name)을 지정하지 않고 호스트 이름만을 지정시 뒤에 덧 붙일 도메인네임을 지정한다. 보통 호스트가 속한 도메인네임을 넣는다.

    Nameserver  127.0.0.1
    Search      linuxlab.co.kr

    5.7 /etc/HOSTNAME
    호스트네임(FQDN)을 지정한다. 한 개만 가능하다.

     

6. 네트워크 설정 스크립트

    이 스크립트는 멀티유저 모드에서 가동한다.

    6.1 /sbin/init.d/network
    /etc/rc.config에서 지정한 바에의거 부트시에 네트워크 하드웨어 및 소프트웨어를 설정한다.
    IP Address, network address, netmask, gateway 등이다

    6.2 /sbin/init.d/inetd
    /etc/rc.config에 지정한바대로 inetd를 시작한다. 이 데몬은 네트워크 login을 가능케 한다.

    6.3 /sbin/init.d/rpc
    NFS에 필요한 RPC 서버를 시작한다.

    6.4 /sbin/init.d/sendmail
    /etc/rc.config에 지정한 sendmail 과정을 시작한다.




▲ top

home으로...