This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Handbook:X86/Networking/Modular/ko
네트워크 모듈
netifrc 스크립트는 모듈러 네트워크 스크립트를 지원하며, 기존 모듈과의 호환성을 유지하면서 새 인터페이스 형식과 설정 모듈을 쉽게 추가할 수 있음을 의미합니다.
모듈이 필요한 꾸러미를 설치했다면 모듈에서 기본적으로 불러옵니다. 설치한 꾸러미에서 지정하지 않은 모듈을 사용자가 지정하면 설치해야 할 꾸러미를 나타내면서 오류를 표시합니다. 모듈 설정은 동일한 서비스를 지닌 둘 이상의 꾸러미를 설치했을 때만 사용하며, 설치한 꾸러미 중 하나를 선호해야합니다.
특별히 다른 부분을 지정하지 않는 이상 여기서 언급하는 모든 설정은 /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
# To prefer ifconfig over iproute2 if both are installed as openrc prefers # to use iproute2 then modules="ifconfig"
ifconfig와 iproute2 둘 다 매우 비슷하기에 두 프로그램에서 모두 동작하는 기본 설정을 허용하겠습니다. 아래 두 코드는 사용자가 어떤 모듈을 쓰든지간에 상관 없이 동작합니다.
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에 덮어쓰기 안함
# 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
dhcpcd와 pump에서는 기본적으로 현재 호스트 이름을 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_strict를 YES
로 설정했는지 확인하십시오.
이제 /etc/conf.d/net을 설정해야합니다.
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에 암호를 설정할 수도 있습니다.
# 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을 이머지하십시오.
# 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를 참고하십시오.
우선 연결할 인터페이스의 설정을 지우겠습니다:
config_eth0="null" config_eth1="null" config_eth2="null"
다음, 인터페이스간 본딩을 지정하십시오:
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 모뎀으로 인터넷에 연결할 수 있도록 하는 무선 액세스 카드를 보유한 시스템이 있다면 두 인터페이스를 브릿지로 한데 묶을 수 있습니다.
# 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 주소
네트워크 설정 파일을 통해서도 인터페이스 맥 주소를 바꿀 수 있습니다.
# 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"
터널링
터널링은 인터페이스 핸들러가 처리할 수 있으므로 프로그램을 추가로 설치할 필요가 없습니다.
# 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 번호를 지정하십시오:
vlans_eth0="1 2"
다음 각각 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로 처리합니다:
vlan1_name="vlan1" vlan1_ingress="2:6 3:5" eth0_vlan1_egress="1:2"
일부 VLAN 설정을 위해, 변수 이름 문서를 참고하십시오.