Trans:GentooAmd64Handbook2013-1-3

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기

네트워크 설정하기

자동 네트워크 감지

아마 바로 동작하겠죠?

시스템이 DHCP서버로 이더넷을 통해 연결했다면, 여러분을 위해 네트워크 설정이 이미 자동으로 다 된 것이나 마찬가지 입니다. 만약 그렇다면, ssh, scp, ping, irssi, wget, links 등과 같은 명령 중 설치 CD에 있는 수많은 네트워크 관련 명령을 실행할 장점을 취할 수 있습니다.

네트워크가 이미 설정됐다면 /sbin/ifconfig 명령은 eth0과 같은 lo와 함께 있는 네트워크 장치를 보여줍니다.


코드 예제 1.1: 동작하는 네트워크 설정에 대한 /sbin/ifconfig
# /sbin/ifconfig

(...)

eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A
         inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
         inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
         RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
         collisions:1984 txqueuelen:100
         RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb)
         Interrupt:11 Base address:0xe800


시스템에 있는 인터페이스의 이름은 eth0과는 좀 다를 수도 있습니다. 최근 설치 미디어에서는 eno0, ens1, enp5s0와 같은 네트워크 인터페이스 이름을 보여줄지도 모릅니다. 로컬 네트워크와 관련하여 IP 주소를 가진 인터페이스를 ifconfig에서 찾아보십시오.

이 문서의 나머지 부분에서는 네트워크 인터페이스를 그냥 eth0이라고 가정하겠습니다.

선택요소: 프록시 설정하기

프록시를 통해 인터넷에 접근한다면 설치 과정중에 프록시 정보를 설정할 필요가 있을지도 모릅니다. 프록시를 설정하는건 매우 쉽습니다. 단지 프록시 서버 정보가 들어있는 변수를 설정하는 것만 필요합니다.

대부분의 경우 그냥 서버 호스트이름을 사용하여 변수 값을 설정할 수 있습니다. 예를 들자면 포트번호 8080proxy.gentoo.org 프록시 서버가 있다고 가정해보겠습니다.


코드 예제 1.2: 프록시 서버 설정하기
(프록시가 HTTP 트래픽을 걸러내는 경우)

# export http_proxy="http://proxy.gentoo.org:8080"
(프록시가 FTP 트래픽을 걸러내는 경우)

# export ftp_proxy="ftp://proxy.gentoo.org:8080"
(프록시가 RSYNC 트래픽을 걸러내는 경우)

# export RSYNC_PROXY="proxy.gentoo.org:8080"


프록시에서 사용자 이름과 암호를 필요로 하면, 변수에 다음 문법을 사용하십시오.


코드 예제 1.3: 프록시 서버에 사용자 이름 / 암호 추가하기

http://username:password@proxy.gentoo.org:8080


네트워크 시험

네트워크에 패킷이 도달하는지, DNS 이름 해석이 제대로 동작하는지 등을 확인해보기 위해 ISP의 DNS 서버(/etc/resolv.conf에서 찾을 수 있습니다)와 원하는 웹 사이트에 핑 신호를 보내보려 할 수도 있습니다.


코드 예제 1.4: 추가 네트워크 시험
# ping -c 3 www.gentoo.org


여러분의 네트워크를 사용할 수 있다면 나머지 장을 건너뛰어 디스크 준비하기로 진행하고, 그렇지 않다면, 다음을 계속 읽어내려가십시오.

자동 네트워크 설정

네트워크가 바로 동작하지 않을 경우, 일부 설치매체에서 net-setup(보통 혹은 무선 네트워크용), pppoe-set(ADSL 사용자용), pptp(PPTP사용자용. x86, amd64, alpha, ppc, ppc64에서 사용할 수 있습니다)를 사용할 수 있습니다.

설치 매체에 이들 도구가 없거나 네트워크가 아직도 동작하지 않는다면, 수동 네트워크 설정으로 계속 진행하십시오.

기본: net-setup 사용하기

자동 설정이 안 되었을 경우 가장 간단한 네트워크 설정 방법은 net-setup 스크립트 실행입니다:


코드 예제 2.1: net-setup 스크립트 실행하기
# net-setup eth0


net-setup은 네트워크 환경에 대한 몇가지 질문을 할 것입니다. 이 과정이 모두 끝나면 네트워크 연결이 동작할 것입니다. 앞서 언급하던 대로 네트워크를 시험 해보십시오. 시험 결과가 정상이라면 축하드립니다! 이제 젠투를 설치할 준비가 되었습니다. 나머지 장을 건너뛰고 디스크 준비하기로 계속 진행하십시오.

그래도 동작하지 않는다면 수동 네트워크 설정으로 계속 진행하십시오.

대안: PPP 사용하기

인터넷에 연결하기 위해 PPPoE의 필요성을 고려하여, 설치 CD(아무거나)에 ppp를 포함하여 여러분에게 과정을 쉽게 처리해주는 수많은 것들을 넣었습니다. 제공된 pppoe-setup 스크립트를 사용하여 연결을 설정합니다. ADSL 모뎀에 연결한 이더넷 장치, 사용자이름과 암호, DNS 서버의 IP, 기본 방화벽 필요성의 유무를 물어볼 것입니다.


코드 예제 2.2: PPP 사용하기
# pppoe-setup

# pppoe-start


뭔가 잘못됐다면, /etc/ppp/pap-setrets나 /etc/ppp/chap-secrets에 사용자이름과 암호를 올바르게 입력했는지 다시 확인하고, 올바른 이더넷 장치를 사용하고 있는지 확인해보십시오. 만약 이더넷 장치가 없다면, 적당한 네트워크 모듈을 불러와야 할 것입니다. 이 경우 적당한 네트워크 모듈을 어떻게 불러오는지 설명하는 수동 네트워크 설정으로 계속 진행하십시오.

모든 것이 잘 동작한다면 디스크 준비하기로 계속 진행하십시오.

대안: PPTP 사용하기

PPTP 지원이 필요하다면 설치 CD에서 제공하는 pptpclient를 사용할 수 있습니다. 그러나 그 이전에 여러분의 설정이 올바른지부터 확인할 필요가 있습니다. 올바른 사용자이름/암호 조합이 들어가도록 /etc/ppp/pap-secrets나 /etc/ppp/chap-secrets를 편집하십시오.


코드 예제 2.3 /etc/ppp/chap-secrets 편집
# nano -w /etc/ppp/chap-secrets


그 다음 필요하다면 /etc/ppp/options.pptp를 조절합니다.


코드 예제 2.4 /etc/ppp/options.pptp 편집
# nano -w /etc/ppp/options.pptp


모든게 끝났다면, 서버에 연결하기 위해 그냥 pptp를 실행합니다 (여러분이 options.pptp에 설정할 수 없던 옵션을 따릅니다)


코드 예제 2.5 전화걸기 서버에 접속
# pptp <server ip>


이제 디스크 준비하기로 계속 진행하십시오.


수동 네트워크 설정

적당한 네트워크 모듈 불러오기

설치 CD를 시동할때 모든 하드웨어 장치를 감지하고, 여러분의 하드웨어를 지원하는 적당한 커널 모듈(드라이버)을 불러오려고 합니다. 대부분의 경우 매우 잘 동작합니다만, 어떤 경우에는 여러분이 필요로 하는 커널 모듈을 자동으로 불러오지 못할 수도 있습니다.

net-setup이나 pppoe-setup을 실패했다면, 네트워크 카드를 바로 못찾았을 가능성이 있습니다. 즉 적당한 커널 모듈을 직접 불러와야 할지도 모른다는 얘깁니다.

네트워크를 위해 제공하는 커널 모듈을 찾으려면 ls 명령을 사용합니다


코드 예제 3.1: 제공하는 모듈 검색
# ls /lib/modules/`uname -r`/kernel/drivers/net


네트워크 카드에 맞는 드라이버를 찾았다면 커널 모듈을 불러오기 위해 modprobe를 사용하십시오.


코드 예제 3.2: 커널 모듈을 불러오는 modprobe 사용하기
(예를 들어 pcnet32 모듈을 불러온다고 해봅시다)

# modprobe pcnet32


네트워크 카드가 감지되었는지 확인하려면 ifconfig를 사용합니다. 감지한 네트워크 카드는 다음과 같은 결과를 보여줍니다.


코드 예제 3.3: 네트워크 카드 유효성 시험 및 성공
# ifconfig eth0

eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00
          BROADCAST NOARP MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)


그러나 오류가 나타나면 네트워크 카드가 감지된 것이 아닙니다:


코드 예제 3.4: 네트워크 카드 유효성 시험 및 실패
# ifconfig eth0

eth0: error fetching interface information: Device not found


시스템에 존재하는 네트워크 인터페이스 이름은 /sys 파일 시스템에서 찾아볼 수 있습니다:


코드 예제 3.5: 존재하는 네트워크 인터페이스 살펴보기
# ls /sys/class/net
dummy0 eth0 lo sit0 tap0 wlan0


위의 예제에서 6개의 인터페이스를 찾았습니다. eth0은 아마 (유선) 이더넷 어댑터이며, 이와 마찬가지로 wlan0은 무선 이더넷 어댑터인 것 같습니다.

감지한 네트워크 카드를 확보했음을 가정하면, net-setup이나 pppoe-setup을 다시 실행해볼 수 있습니다 (이제 다시 동작할 것입니다), 하지만 여러분과 같이 열의에 찬 사람들을 위해 네트워크를 어떻게 수동으로 설정하는지 설명했습니다.

네트워크 설정에 기반하여 다음 장 중 하나를 선택하십시오.

DHCP 사용하기

DHCP(동적 호스트 설정 프로토콜)은 자동으로 네트워크 정보(IP주소, 넷마스크, 브로드캐스트 주소, 게이트웨이, 이름 서버 등)를 받을 수 있게 해줍니다. 여러분의 네트워크에 DHCP 서버가 있을 때만 동작합니다(또는 여러분의 서비스 제공자가 DHCP서비스를 제공할 때도 동작합니다). 네트워크 인터페이스가 자동으로 네트워크 정보를 받으려면 dhcpcd를 사용하십시오.


코드 예제 3.5: dhcpcd 사용하기
# dhcpcd eth0

어떤 네트워크 관리자는 여러분에게 DHCP서버에서 제공하는
호스트 이름과 도메인 이름을 사용하라고 요구합니다.
이런 경우 다음 명령을 사용하십시오

# dhcpcd -HD eth0


만약 (구글같은 인터넷 서버에 핑 신호를 날려서) 동작한다면, 모두 설정하고 계속할 준비가 된 것입니다. 나머지 장을 건너 뛰고 디스크 준비하기로 계속 진행하십시오.

무선 연결 준비하기


참고: iwconfig 명령의 지원은 x86, amd64, ppc 설치 CD에서만 사용할 수 있습니다. linux-wlan-ng 프로젝트의 지시사항을 따라 다른 경우에 동작하는 확장 내용을 구할 수 있습니다


무선 네트워크 (802.11) 카드를 사용하고 있다면, 더 진행하기 전에 무선 연결을 설정할 필요가 있을지도 모릅니다. 현재 무선 연결 설정을 보려면 iwconfig를 사용할 수 있습니다. iwconfig를 실행하면 다음과 같이 나타납니다.


코드 예제 3.6: 현재 무선 연결 설정 보기
# iwconfig eth0

eth0 IEEE 802.11-DS ESSID:"GentooNode"
          Mode:Managed Frequency:2.442GHz Access Point: 00:09:5B:11:CC:F2
          Bit Rate:11Mb/s Tx-Power=20 dBm Sensitivity=0/65535
          Retry limit:16 RTS thr:off Fragment thr:off
          Power Management:off
          Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
          Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
          excessive retries:237 Invalid misc:350282 Missed beacon:84



참고: 어떤 무선 네트워크 카드는 eth0대신에 wlan0ra0 장치 이름을 가질수도 있습니다. 올바른 장치 이름을 확인하려면 명령줄 인자 없이 iwconfig를 실행하십시오.


대부분 사용자분들이 바꿔야 할 중요한 설정은 ESSID(또는 무선 네트워크 이름) 또는 WEP 키 두가지 밖에 없습니다. ESSID 와 액세스 포인트 주소가 여러분의 액세스 포인트의 것이고 WEP를 사용하지 않는다면 무선 연결이 동작하는 것입니다. ESSID를 바꾸거나 WEP 키를 추가할 필요가 있다면 다음 명령들을 실행할 수 있습니다.


참고: 무선 네트워크가 WPA나 WPA2로 설정되어 있다면 wpa_supplicant가 필요합니다. 젠투 리눅스에서 무선 네트워크를 설정하는 더 자세한 내용은 젠투 핸드북의 [무선 네트워크]장을 읽으십시오.



코드 예제 3.7: ESSID를 바꾸거나 WEP 키 추가하기
(네트워크 이름을 "GentooNode"로 설정합니다)

# iwconfig eth0 essid GentooNode

(16진수 WEP 키 값을 설정합니다)

# iwconfig eth0 key 1234123412341234abcd
(ASCII 키 값을 설정합니다. 앞에 "s:"를 붙입니다)

# iwconfig eth0 key s:some-password


iwconfig를 사용해서 다시 한번 무선 연결 설정을 확인할 수 있습니다. 무선 연결이 잘 동작한다면 다음 장 네트워크 용어의 이해에서 설명한 IP 수준 네트워크를 설정하거나 이전에 설명한대로 net-setup 도구를 사용할 수 있습니다.

네트워크 용어 이해


참고: IP 주소와 브로드캐스트 주소, 넷마스크, 이름서버에 대해 안다면 이 하위 장을 건너뛰고 ifconfig와 route 사용하기로 계속 진행하십시오.


위의 모든 경우에 대해 전부 실패했다면 여러분의 네트워크를 직접 설정해야 할 것입니다. 다 어려운 것은 아닙니다만, 여러분의 기대에 따라 네트워크를 설정할 필요가 있는 만큼 일부 네트워크 용어에 익숙할 필요가 있습니다. 이 부분을 읽고 나면 여러분은 게이트웨이가 무엇인지, 넷마스크가 왜 있는 것인지, 브로드캐스트 주소는 어떻게 구성되고 왜 이름 서버가 필요한지를 알게 될 것입니다.

네트워크의 호스트는 IP 주소 (인터넷 프로토콜 주소)로 식별합니다. 제각각의 주소는 0부터 255까지의 네 자리 숫자의 조합으로 구성합니다. 음, 이게 최소한 우리가 알아내는 방법입니다. 실제로 각각의 IP 주소는 32비트(0과 1)로 구성되어 있습니다. 예를 보도록 합시다


코드 예제 3.8: IP 주소의 예
IP Address (numbers):   192.168.0.2
IP Address (bits):      11000000 10101000 00000000 00000010
                        -------- -------- -------- --------
                           192      168       0        2


어떤 IP 주소는 최대한 멀리 접근 가능한 모든 네트워크를 고려했을 때 유일한 존재입니다 (예를 들어 여러분이 도달할 수 있는 모든 호스트는 고유의 IP 주소를 가져야 합니다). 내 외부 네트워크의 호스트를 서로 구별하기 위해 IP 주소를 두 부분으로 쪼갭니다. 네트워크호스트부분입니다.

이 구분은 1들 뒤에 0들이 따라오는 넷마스크로 적습니다. 1들에 대응하는 IP 부분은 네트워크 부분이고, 다른 부분은 호스트 부분입니다. 보통 넷마스크는 ip주소처럼 적습니다.


코드 예제 3.9: 네트워크 호스트 분리의 예
IP-address:    192      168      0         2
            11000000 10101000 00000000 00000010
Netmask:    11111111 11111111 11111111 00000000
               255      255     255        0
           +--------------------------+--------+
                    Network              Host


다른 말로, 192.168.0.14는 예제 네트워크의 일부이지만, 192.168.1.2는 그렇지 않습니다.

브로드캐스트 주소는 여러분의 네트워크와 같은 네트워크 부분을 지닌 IP 주소지만, 호스트 부분은 1로만 구성합니다. 네트워크의 모든 호스트는 이 IP 주소를 감청합니다. 진짜 의미는 브로드캐스팅 패킷에 대한 것입니다.


코드 예제 3.10: 브로드캐스트 주소
IP-address:    192      168      0         2
            11000000 10101000 00000000 00000010
Broadcast:  11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     Network             Host


인터넷을 탐색할 수 있으려면 인터넷 연결을 공유하는 호스트를 알아야 합니다. 이 호스트를 게이트웨이라고 합니다. 일반 호스트이기 때문에 일반 IP 주소(예를 들어 192.168.0.1)를 갖습니다.

앞에서 모든 호스트는 자신의 IP 주소를 갖는다고 했습니다. 이 호스트에 (IP 주소 대신)이름으로 접근할 수 있으려면 이름(dev.gentoo.org 같은 것)을 IP 주소(64.5.62.82 같은 것)로 변환하는 서비스가 필요합니다. 이런 서비스를 이름 서비스라고 합니다. 이 서비스를 사용하려면 필요한 이름 서버를 /etc/resolv.conf에 지정해야 합니다.

대부분의 경우 여러분의 게이트웨이는 이름 서버처럼 동작합니다. 아니면 여러분의 ISP가 제공하는 이름 서버에 진입해야 할 것입니다.

요약하자면, 계속하기 전에 여러분은 다음 정보가 필요할 것입니다.

네트워크 요소 예시
IP 주소 192.168.0.2
넷마스크 255.255.255.0
브로드캐스트 192.168.0.255
게이트웨이 192,168.0.1
이름 서버 195.130.130.5, 195.130.130.133

ifconfig와 route 사용하기

네트워크를 설정은 3단계로 구성됩니다. 첫번째는 ifconfig를 사용하여 자신의 IP 주소를 설정합니다. 그 다음 route를 사용하여 게이트웨이 라우팅을 설정합니다. 그 다음 /etc/resolv.conf에 네임서버 IP를 설정하여 마무리합니다.

IP 주소를 할당하려면 여러분의 IP주소, 브로드캐스트 주소, 넷마스크가 필요합니다. 그 다음, ${IP_ADDR} 에는 IP 주소를, ${BROADCAST} 에는 브로드캐스트 주소를, ${NETMASK} 에는 넷마스크를 각각 대입하여 다음 명령을 실행합니다.


코드 예제 3.11: ifconfig 사용하기
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up


이제 route를 사용하여 라우팅을 설정합니다. ${GATEWAY} 에는 게이트웨이 IP 주소를 대입합니다.


코드 예제 3.12: route 사용하기
# route add default gw ${GATEWAY}


이제 여러분의 취향인 편집기로 /etc/resolv.conf 를 엽니다. (우리 같은 경우 nano를 사용합니다)


코드 예제 3.13: /etc/resolv.conf 만들기
# nano -w /etc/resolv.conf


이제 다음 양식을 사용하여 네임 서버 주소를 채워넣습니다. ${NAMESERVER1} ${NAMESERVER2} 에 적당한 이름 서버 주소가 들어갔는지 확인합니다.


코드 예제 3.14: /etc/resolv.conf 양식
nameserver ${NAMESERVER1}

nameserver ${NAMESERVER2}


다 되었습니다. 이제 아무 인터넷 서버(구글 같은 곳)에 핑 신호를 날려서 네트워크를 시험해보십시오. 동작한다면, 축하드립니다. 이제 젠투를 설치할 준비가 되었습니다. 디스크 준비하기로 계속 진행하십시오.