Handbook:PPC/Networking/Modular/ko

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:PPC/Networking/Modular and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎
PPC 핸드북
설치
설치 정보
매체 선택
네트워크 설정
디스크 준비
스테이지 3 설치
베이스 시스템 설치
커널 설정
시스템 설정
도구 설치
부트로더 설정
마무리
젠투 활용
포티지 소개
USE 플래그
포티지 기능
초기화 스크립트 시스템
환경 변수
포티지 활용
파일 및 디렉터리
변수
소프트웨어 브랜치 함께 사용하기
추가 도구
꾸러미 저장소 개별 설정
고급 기능
네트워크 설정
시작하기
고급 설정
모듈러 네트워크
무선 네트워크
기능 추가
동적 관리


네트워크 모듈

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

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

참고
특별히 다른 부분을 지정하지 않는 이상 여기서 언급하는 모든 설정은 /etc/conf.d/net에 저장합니다.
파일 /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는 더욱 강력하고 유연한 꾸러미입니다.

root #emerge --ask sys-apps/iproute2
파일 /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 둘 다 매우 비슷하기에 두 프로그램에서 모두 동작하는 기본 설정을 허용하겠습니다. 아래 두 코드는 사용자가 어떤 모듈을 쓰든지간에 상관 없이 동작합니다.

파일 /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에 덮어쓰기 안함
파일 /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
참고
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을 설정해야합니다.

파일 /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에 암호를 설정할 수도 있습니다.

파일 /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을 이머지하십시오.

파일 /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를 참고하십시오.

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

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

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

파일 /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 모뎀으로 인터넷에 연결할 수 있도록 하는 무선 액세스 카드를 보유한 시스템이 있다면 두 인터페이스를 브릿지로 한데 묶을 수 있습니다.

파일 /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"
중요
일부 브릿지 설정을 활용하려면, 변수 이름 문서를 참고하십시오.
중요
IPv6 브릿징을 할 경우, 위 예제와 같이 SLAAC 에서 STP 를 1로 설정해야합니다.

MAC 주소

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

파일 /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"

터널링

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

파일 /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 번호를 지정하십시오:

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

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

파일 /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로 처리합니다:

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