Translations:Handbook:Parts/Full/Networking/4/ko

From Gentoo Wiki
Jump to:navigation Jump to:search


네트워크 모듈

netifrc 스크립트는 모듈러 네트워크 스크립트를 지원하며, 기존 모듈과의 호환성을 유지하면서 새 인터페이스 형식과 설정 모듈을 쉽게 추가할 수 있음을 의미합니다.

모듈이 필요한 꾸러미를 설치했다면 모듈에서 기본적으로 불러옵니다. 설치한 꾸러미에서 지정하지 않은 모듈을 사용자가 지정하면 설치해야 할 꾸러미를 나타내면서 오류를 표시합니다. 모듈 설정은 동일한 서비스를 지닌 둘 이상의 꾸러미를 설치했을 때만 사용하며, 설치한 꾸러미 중 하나를 선호해야합니다.

참고
특별히 다른 부분을 지정하지 않는 이상 여기서 언급하는 모든 설정은 /etc/conf.d/net에 저장합니다.
FILE /etc/conf.d/net모듈 지정
# Prefer ifconfig over iproute2
modules="ifconfig"
  
# You can also specify other modules for an interface
# In this case we prefer pump over dhcpcd
modules_eth0="pump"
  
# You can also specify which modules not to use - for example you may be
# using a supplicant or linux-wlan-ng to control wireless configuration but
# you still want to configure network settings per ESSID associated with.
modules="!iwconfig"

인터페이스 핸들러

현재 인터페이스 처리 프로그램을 두가지로 제공하고 있으며, 하나는 ifconfig, 다른 하나는 iproute2입니다. 어떤 네트워크 설정을 진행하든 둘 중 하나만 필요합니다.

두가지 경우 시스템 프로파일의 기본 요소로 설치합니다. iproute2는 더욱 강력하고 유연한 꾸러미입니다.

FILE /etc/conf.d/netiproute2를 설치했지만 아직도 ifconfig를 선호함
# To prefer ifconfig over iproute2 if both are installed as openrc prefers
# to use iproute2 then
modules="ifconfig"

ifconfig와 iproute2 둘 다 매우 비슷하기에 두 프로그램에서 모두 동작하는 기본 설정을 허용하겠습니다. 아래 두 코드는 사용자가 어떤 모듈을 쓰든지간에 상관 없이 동작합니다.

FILE /etc/conf.d/net설정에 대한 접근 차이 예제
config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"
  
# We can also specify broadcast
config_eth0="192.168.0.2/24 brd 192.168.0.255"
config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"

DHCP

DHCP란 네트워크 주소 정보(IP 주소, DNS 서버, 게이트웨이 등)를 DHCP 서버에서 가져옴을 뜻합니다. 네트워크 상에 동작하는 DHCP 서버가 있다면 사용자는 DHCP를 사용하겠다고 각 클라이언트에서 알리고 네트워크를 자체적으로 설정합니다. 물론 사용자는 DHCP를 사용할 수 있기 전에 무선 네트워크, PPP 등 필요한 모든 수단에서 설정해야 합니다.

DHCP는 dhclient, dhcpcd, pump에서 제공합니다. 각각의 DHCP 모듈에는 장단점이 있습니다. 간단하게 내용 진행하고 넘어가겠습니다.

DHCP 모듈 꾸러미 장점 단점
dhclient net-misc/dhcp BIND DNS 프로그램을 만든 사람들인 ISC에서 만들었습니다. 상당히 이리저리 설정하기 좋습니다 전반적으로 설정이 복잡하며, 프로그램이 필요이상 크고 DHCP에서 NTP 서버를 가져올수 없으며, 기본적으로 호스트 이름을 보내지 못합니다
dhcpcd net-misc/dhcpcd 오랫동안 젠투 기본 프로그램이며, 외부 도구에 의존하지 않고, 젠투에서 열심히 개발했습니다 가끔은 느려질 수 있으며 IP 대여 시간이 한없이 지속되면 데몬 동작이 안됩니다
pump net-misc/pump 가벼우며, 외부 도구에 의존하지 않습니다. 업스트림에서 더이상 관리하지 않아 신뢰성이 없으며, 특히 모뎀을 통해서는 DHCP에서 NIS 서버를 가져올 수 없습니다

하나 이상의 DHCP 클라이언트를 설치했다면 어떤 클라이언트를 사용할지 지정하십시오. 그렇지 않으면 dhcpcd가 있다고 할 경우 dhcpcd를 기본으로 사용합니다.

DHCP 모듈로 지정 돕션을 보내려면 module_eth0="..." 옵션을 사용하십시오(사용할 DHCP 모듈로 모듈을 바꿈 - 예: dhcpcd_eth0).

DHCP를 어떤 식으로든 쓸 수 있게 해보겠습니다. dhcp_eth0 변수를 사용하여 다음 명령을 지원합니다. 기본값은 다음 어떤 명령도 설정하지 않습니다:

release
재사용할 IP 주소를 릴리스
nodns
/etc/resolv.conf에 덮어쓰기 안함
nontp
/etc/ntp.conf에 덮어쓰기 안함
nonis
/etc/yp.conf에 덮어쓰기 안함
FILE /etc/conf.d/netDHCP 설정 예제
# Only needed if you have more than one DHCP module installed
modules="dhcpcd"
  
config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Timeout after 10 seconds
dhcp_eth0="release nodns nontp nonis" # Only get an address
Note
dhcpcdpump에서는 기본적으로 현재 호스트 이름을 DHCP서버로 보내므로 별도로 지정할 필요가 없습니다.

PPPoE/PPPoA로 ADSL 연결

우선 ADSL 프로그램을 설치하겠습니다:

root #emerge --ask net-dialup/ppp

그 다음 PPP net 스크립트를 만들고 PPP에서 사용할 이더넷 인터페이스용 net 스크립트도 만드십시오:

root #ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
root #ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

/etc/rc.conf 에서 rc_depend_strictYES로 설정했는지 확인하십시오.

이제 /etc/conf.d/net을 설정해야합니다.

FILE /etc/conf.d/net기본 PPPoE 설정
config_eth0=null (Specify the ethernet interface)
config_ppp0="ppp"
link_ppp0="eth0" (Specify the ethernet interface)
plugins_ppp0="pppoe"
username_ppp0='user'
password_ppp0='password'
pppd_ppp0="
noauth
defaultroute
usepeerdns
holdoff 3
child-timeout 60
lcp-echo-interval 15
lcp-echo-failure 3
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp"
  
rc_need_ppp0="net.eth0"

/etc/ppp/pap-secrets에 암호를 설정할 수도 있습니다.

FILE /etc/ppp/pap-secretspap-secrets 예제
# The * is important
"username"  *  "password"

USB 모뎀에 PPPoE를 사용한다면 br2648ctl을 이머지했는지 확인하십시오. 올바르게 설정하는 방법은 /usr/portage/net-dialup/speedtouch-usb/files/README를 읽어보십시오.

중요
/usr/share/doc/netifrc-*/net.example.bz2의 ADSL and PPP절을 주의깊게 읽어보십시오. 필요할지도 모르는 PPP 설정의 각 모든 부분의 자세한 설명이 들어있습니다.

APIPA(자동 개인 IP 주소 지정)

APIPA는 인터페이스의 임의 주소 범위에서 ARP를 수행하여 169.254.0.0-169.254.255.255 범위에서 사용할 수 있는 주소를 찾습니다. 응답이 없으면 인터페이스에 주소를 할당합니다.

DHCP 서버가 없어 인터넷에 바로 연결할 수 없으며 모든 컴퓨터가 APIPA를 사용하는 경우에만 LAN 상에서 쓸만합니다.

APIPA 지원 기능을 활용하려면, arping USE 플래그를 설정한 후 net-misc/iputils를 이머지하거나 net-analyzer/arping을 이머지하십시오.

FILE /etc/conf.d/netAPIPA 설정
# Try DHCP first - if that fails then fallback to APIPA
config_eth0="dhcp"
fallback_eth0="apipa"
  
# Just use APIPA
config_eth0="apipa"

본딩

본딩은 네트워크 대역폭을 늘리거나 하드웨어 문제에 직면했을 때 탄력적 복구기능을 개선하는 용도로 사용합니다. 시스템에 동일한 네트워크에 연결한 두 네트워크 카드가 붙어있다면 관리자는 이들을 본딩하여 프로그램이 하나의 인터페이스로 간주하여 쓸 수 있습니다만, 이 경우 실제로는 두 네트워크 카드를 다 사용합니다.

본딩을 설정하는 방법은 여러가지가 있습니다. 이 중에서 802.3ad LACP 모드 같은 경우는 네트워크 스위치의 지원과 추가 설정이 필요합니다. 개별 옵션에 대한 참고사항은 로컬 사본 /usr/src/linux/Documentation/networking/bonding.txt를 참고하십시오.

우선 연결할 인터페이스의 설정을 지우겠습니다:

FILE /etc/conf.d/net인터페이스 설정 지우기
config_eth0="null"
config_eth1="null"
config_eth2="null"

다음, 인터페이스간 본딩을 지정하십시오:

FILE /etc/conf.d/net본딩 지정
slaves_bond0="eth0 eth1 eth2"
config_bond0="192.168.100.4/24"
# Pick a correct mode and additional configuration options which suit your needs
mode_bond0="balance-alb"

실행 레벨에서 net.eth* 서비스를 제거하고 net.bond0을 만들어 올바른 실행 레벨에 추가하십시오.

브릿징(802.1d 지원)

브릿징은 네트워크를 함께 이을때 사용합니다. ADSL 모뎀으로 인터넷에 연결하는 서버와 다른 컴퓨터가 ADSL 모뎀으로 인터넷에 연결할 수 있도록 하는 무선 액세스 카드를 보유한 시스템이 있다면 두 인터페이스를 브릿지로 한데 묶을 수 있습니다.

FILE /etc/conf.d/net브릿지 설정
# Configure the bridge - "man brctl" for more details
bridge_forward_delay_br0=0
bridge_hello_time_br0=200
bridge_stp_state_br0=1
  
# To add ports to bridge br0
bridge_br0="eth0 eth1"
  
# You need to configure the ports to null values so dhcp does not get started
config_eth0="null"
config_eth1="null"
  
# Finally give the bridge an address - you could use DHCP as well
config_br0="192.168.0.1/24"
  
# Depend on eth0 and eth1 as they may require extra configuration
rc_need_br0="net.eth0 net.eth1"
중요
일부 브릿지 설정을 활용하려면, 변수 이름 문서를 참고하십시오.
Important
IPv6 브릿징을 할 경우, 위 예제와 같이 SLAAC 에서 STP 를 1로 설정해야합니다.

MAC 주소

네트워크 설정 파일을 통해서도 인터페이스 맥 주소를 바꿀 수 있습니다.

FILE /etc/conf.d/netMAC 주소 변경 예제
# To set the MAC address of the interface
mac_eth0="00:11:22:33:44:55"
  
# To randomize the last 3 bytes only
mac_eth0="random-ending"
  
# To randomize between the same physical type of connection (e.g. fibre,
# copper, wireless) , all vendors
mac_eth0="random-samekind"
  
# To randomize between any physical type of connection (e.g. fibre, copper,
# wireless) , all vendors
mac_eth0="random-anykind"
  
# Full randomization - WARNING: some MAC addresses generated by this may
# NOT act as expected
mac_eth0="random-full"

터널링

터널링은 인터페이스 핸들러가 처리할 수 있으므로 프로그램을 추가로 설치할 필요가 없습니다.

FILE /etc/conf.d/net터널링 설정
# For GRE tunnels
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
  
# For IPIP tunnels
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
  
# To configure the interface
config_vpn0="192.168.0.2 peer 192.168.1.1"

VLAN (802.1q 지원)

VLAN 기능 지원을 사용하려면 sys-apps/iproute2를 설치했는지, ifconfig대신 iproute2를 설정 모듈로 사용중인지 확인하십시오.

가상랜은 각각의 네트워크 장치가 하나의 네트워크 세그먼트에 연결했을 때(설사 그렇지 않더라도)취할 수 있는 네트워크 장치 그룹입니다. VLAN 구성원은 동일한 물리 네트워크를 공유하더라도 동일한 VLAN의 구성원만을 볼 수 있습니다.

VLAN을 설정하려면 우선 다음과 같이 /etc/conf.d/net에 VLAN 번호를 지정하십시오:

FILE /etc/conf.d/netVLAN 번호 지정
vlans_eth0="1 2"

다음 각각 VLAN의 인터페이스를 설정하십시오:

FILE /etc/conf.d/net각각의 VLAN에 대한 인터페이스 설정
config_eth0_1="172.16.3.1 netmask 255.255.254.0"
routes_eth0_1="default via 172.16.3.254"
  
config_eth0_2="172.16.2.1 netmask 255.255.254.0"
routes_eth0_2="default via 172.16.2.254"

VLAN별 설정은 다음과 같이 vconfig로 처리합니다:

FILE /etc/conf.d/netVLAN 설정
vlan1_name="vlan1"
vlan1_ingress="2:6 3:5"
eth0_vlan1_egress="1:2"
중요
일부 VLAN 설정을 위해, 변수 이름 문서를 참고하십시오.