차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
linuxfromscratch:12.1:155-general_network_configuration [2024/05/27 12:25] – 만듦 - 바깥 편집 127.0.0.1linuxfromscratch:12.1:155-general_network_configuration [2024/06/15 12:56] (현재) baecy
줄 1: 줄 1:
 +^  Linux From Scratch - Version 12.1-systemd  ^^^
 +^  Chapter 9. System Configuration  ^^^
 +|[[.:154-introduction|이전]]  |  [[.:09-System Configuration|위로]] / [[.:12.1|처음으로]]  |  [[.:156-overview_of_device_and_module_handling|다음]]|
  
 +|개요  |  장치 및 모듈 처리|
 +
 +----
 +
 +===== 9.2. 일반적인 네트워크 설정 =====
 +
 +이 섹션은 네트워크 카드를 구성할 경우에만 적용됩니다.
 +
 +==== 9.2.1. 네트워크 인터페이스 구성 파일 ====
 +
 +버전 209부터 systemd는 기본 네트워크 설정에 사용할 수 있는 **systemd-networkd**라는 네트워크 설정 데몬을 제공합니다. 또한 버전 213부터는 정적 ''/etc/resolv.conf'' 파일 대신 **systemd-resolved**로 DNS 확인을 처리할 수 있습니다. 두 서비스 모두 기본적으로 활성화되어 있습니다.
 +
 +<WRAP info center round 90%>
 +**참고** \\ 
 +시스템이 네트워크에 연결되어 있지 않거나 네트워크 구성에 ''NetworkManager''와 같은 다른 유틸리티를 사용하려는 경우 등 네트워크 구성에 ''systemd-networkd''를 사용하지 않으려면 서비스를 비활성화하여 부팅 중에 오류 메시지가 표시되지 않도록 하세요.
 +<code bash>
 +systemctl disable systemd-networkd-wait-online
 +</code>
 +</WRAP>
 +
 +**systemd-networkd**(및 **systemd-resolved**)에 대한 구성 파일은 ''/usr/lib/systemd/network'' 또는 ''/etc/systemd/network''에 위치하고 있습니다. ''etc/systemd/network''에 있는 파일은 ''/usr/lib/systemd/network''에 있는 파일보다 우선순위가 높습니다. 구성 파일에는 세 가지 유형이 있습니다: ''.link'', ''.netdev'' 및 ''.network'' 파일. 이러한 구성 파일에 대한 자세한 설명과 예제 내용은 [[https://man.archlinux.org/man/systemd.link.5|systemd.link(5)]], [[https://man.archlinux.org/man/systemd.netdev.5|systemd.netdev(5)]], [[https://man.archlinux.org/man/systemd.network.5|systemd.network(5)]] 매뉴얼 페이지를 참조하세요.
 +
 +=== 9.2.1.1. 네트워크 장치 이름 지정 ===
 +
 +Udev는 일반적으로 enp2s1과 같은 물리적 시스템 특성을 기반으로 네트워크 카드 인터페이스 이름을 할당합니다. 인터페이스 이름이 무엇인지 확실하지 않은 경우 시스템을 부팅한 후 언제든지 ''ip link''를 실행할 수 있습니다.
 +
 +<WRAP info center round 90%>
 +**참고** \\
 +인터페이스 이름은 시스템에서 실행 중인 udev 데몬의 구현 및 구성에 따라 다릅니다. LFS용 udev 데몬([[.:145-systemd-255|8.75절 "Systemd-255"]]에 설치된 systemd-udevd)은 LFS 시스템으로 부팅되지 않으면 실행되지 않습니다. //따라서 chroot 환경에 있더라도// 호스트 배포판에서 이러한 명령을 실행하여 LFS 시스템에서 사용 중인 인터페이스 이름을 확인하는 것은 신뢰할 수 없습니다.
 +</WRAP>
 +
 +대부분의 시스템에는 각 연결 유형에 대해 하나의 네트워크 인터페이스만 있습니다. 예를 들어 유선 연결의 일반적인 인터페이스 이름은 eth0입니다. 무선 연결은 일반적으로 wifi0 또는 wlan0이라는 이름을 갖습니다.
 +
 +기본 또는 사용자 지정 네트워크 인터페이스 이름을 사용하려는 경우 세 가지 대체 방법이 있습니다:
 +
 +  * 기본 정책에 대해 udev의 ''.link'' 파일을 마스킹합니다. \\ <code>ln -s /dev/null /etc/systemd/network/99-default.link</code>
 +  * ''internet0'', ''dmz0'' 또는 ''lan0''과 같은 인터페이스 이름을 지정하는 등 사용자 지정 이름 체계를 만듭니다. 이렇게 하려면 네트워크 인터페이스의 명시적인 이름이나 더 나은 명명 체계를 선택하는 ''.link'' 파일을 /etc/systemd/network/에 만드세요. 예를 들어 \\ <code bash>cat > /etc/systemd/network/10-ether0.link << "EOF"
 +[Match]
 +# Change the MAC address as appropriate for your network device
 +MACAddress=12:34:45:78:90:AB
 +
 +[Link]
 +Name=ether0
 +EOF</code>
 +  * ''/boot/grub/grub.cfg'' 설정에서 커널 명령줄을 통해서 ''net.ifnames=0''을 전달하세요.
 +
 +=== 9.2.1.2 정적 IP 설정 ===
 +
 +다음 명령은 정적 IP를 위한 기본 설정을 생성합니다 (systemd-networkd와 systemd-resolved를 둘다 사용합니다).
 +
 +<code bash>
 +cat > /etc/systemd/network/10-eth-static.network << "EOF"
 +[Match]
 +Name=<network-device-name>
 +
 +[Network]
 +Address=192.168.0.2/24
 +Gateway=192.168.0.1
 +DNS=192.168.0.1
 +Domains=<Your Domain Name>
 +EOF
 +</code>
 +
 +DNS 서버가 두 개 이상인 경우 DNS 항목을 여러줄 추가할 수 있습니다. 정적 /etc/resolv.conf 파일을 사용하려는 경우 DNS 또는 도메인 항목을 포함하지 마세요.
 +
 +=== 9.2.1.3. 동적 IP 설정 ===
 +
 +다음은 IPv4 DHCP를 사용하는 기본설정을 작성합니다.
 +
 +<code bash>
 +cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
 +[Match]
 +Name=<network-device-name>
 +
 +[Network]
 +DHCP=ipv4
 +
 +[DHCPv4]
 +UseDomains=true
 +EOF
 +</code>
 +
 +----
 +
 +==== 9.2.2. /etc/resolv.conf 파일 설정 ====
 +
 +시스템을 인터넷에 연결하려면 인터넷 도메인 이름을 IP 주소로 또는 그 반대로 확인하기 위해 DNS(도메인 이름 서비스) 이름 확인 수단이 필요합니다. 이 방법은 ISP 또는 네트워크 관리자로부터 제공받은 DNS 서버의 IP 주소를 ''/etc/resolv.conf''에 입력하는 것이 가장 좋습니다.
 +
 +=== 9.2.2.1. 시스템 확인 구성 ===
 +
 +<WRAP info center round 90%>
 +**참고** \\
 +systemd-resolved와 호환되지 않는 방법을 사용하여 네트워크 인터페이스를 구성하는 경우(예: ppp 등) 또는 로컬 확인 유형(예: bind, dnsmasq, unbound 등) 또는 ''/etc/resolv.conf''를 생성하는 기타 소프트웨어(예: systemd에서 제공하는 프로그램 이외의 **resolvconf** 프로그램)를 사용하는 경우 **systemd-resolved** 서비스를 사용하지 않아야 합니다.
 +
 +systemd-resolved를 비활성화하려면 다음 명령을 실행합니다:
 +
 +<code bash>
 +systemctl disable systemd-resolved
 +</code>
 +</WRAP>
 +
 +DNS 구성에 **systemd-resolved**를 사용하는 경우 ''/run/systemd/resolve/stub-resolv.conf'' 파일을 생성합니다. 그리고 ''/etc/resolv.conf''가 존재하지 않으면 **systemd-resolved**에 의해 ''/run/systemd/resolve/stub-resolv.conf''에 대한 심볼릭 링크로 만들어집니다. 따라서 ''/etc/resolv.conf''를 수동으로 생성할 필요가 없습니다.
 +
 +=== 9.2.2.2. 정적 resolv.conf 구성 ===
 +
 +정적 ''/etc/resolv.conf''가 필요한 경우 다음 명령을 실행하여 생성합니다:
 +
 +<code bash>
 +cat > /etc/resolv.conf << "EOF"
 +# Begin /etc/resolv.conf
 +
 +domain <Your Domain Name>
 +nameserver <IP address of your primary nameserver>
 +nameserver <IP address of your secondary nameserver>
 +
 +# End /etc/resolv.conf
 +EOF
 +</code>
 +
 +''domain''은 생략하거나 ''search'' 문으로 대체할 수 있습니다. 자세한 내용은 resolv.conf의 매뉴얼 페이지를 참조하세요.
 +
 +<IP address of your nameserver>를 설정에 가장 적합한 DNS 서버의 IP 주소로 바꿉니다. 종종 두 개 이상의 항목이 있을 수 있습니다(요구 사항에 따라 폴백 기능을 위한 보조 서버가 필요합니다). DNS 서버가 하나만 필요하거나 원하는 경우 파일에서 두 번째 네임서버 행을 제거하세요. IP 주소는 로컬 네트워크의 라우터일 수도 있습니다. 또 다른 옵션은 아래 IP 주소를 네임서버로 사용하는 Google 공인 DNS 서비스를 사용하는 것입니다.
 +
 +<WRAP info center round 90%>
 +**참고** \\
 +Google 공인 IPv4 DNS 주소는 IPv4의 경우 ''8.8.8.8'' 및 ''8.8.4.4''이며, IPv6의 경우 ''2001:4860:4860::8888'' 및 ''2001:4860:4860::8844''입니다.
 +</WRAP>
 +
 +----
 +
 +==== 9.2.3. 시스템 호스트 이름 설정하기 ====
 +
 +부팅 프로세스 중에 ''/etc/hostname'' 파일은 시스템의 호스트 이름을 설정하는 데 사용됩니다.
 +
 +''etc/hostname'' 파일을 생성하고 다음과 같이 호스트 이름을 입력합니다.
 +
 +<code bash>
 +echo "<lfs>" > /etc/hostname
 +</code>
 +
 +//<lfs>//는 컴퓨터에 부여된 이름으로 대체해야 합니다. 여기에 FQDN(정규화된 도메인 이름)을 입력하지 마세요. 해당 정보는 ''/etc/hosts'' 파일에 저장됩니다.
 +
 +----
 +
 +==== 9.2.4. etc/hosts 파일 사용자 정의하기 ====
 +
 +FQDN(정규화된 도메인 네임)((fully-qualified domain name))과 ''/etc/hosts'' 파일에 사용할 별칭을 결정합니다. 고정 IP 주소를 사용하는 경우 IP 주소도 결정해야 합니다. 호스트 파일 항목의 형식은 다음과 같습니다.
 +
 +<code bash>
 +IP_address myhost.example.org aliases
 +</code>
 +
 +컴퓨터가 인터넷에 공개되지 않는 한(즉, 등록된 도메인과 유효한 할당된 IP 주소 블록이 있는 경우 - 대부분의 사용자는 그렇지 않습니다) IP 주소가 사설 네트워크 IP 주소 범위 내에 있는지 확인하세요. 유효한 범위는 다음과 같습니다:
 +
 +<code bash>
 +사설 네트워크 주소 범위 일반 접두사
 +10.0.0.1 - 10.255.255.254 8
 +172.x.0.1 - 172.x.255.254 16
 +192.168.y.1 - 192.168.y.254 24
 +</code>
 +
 +x는 16-31 범위의 임의의 숫자일 수 있습니다. y는 0-255 범위의 임의의 숫자일 수 있습니다.
 +
 +유효한 개인 IP 주소는 192.168.1.1이 될 수 있습니다.
 +
 +컴퓨터가 인터넷에 표시되도록 하려면 도메인 이름 자체 또는 접두사(주로 호스트 이름)와 도메인 이름을 "." 문자로 연결하여 만든 문자열이 유효한 FQDN이 될 수 있습니다. 또한 도메인 공급업체에 문의하여 FQDN을 공인 IP 주소로 확인해야 합니다.
 +
 +컴퓨터가 인터넷에 표시되지 않더라도 MTA와 같은 특정 프로그램이 제대로 작동하려면 FQDN이 필요합니다. 이를 위해 특수 FQDN인 ''localhost.localdomain''을 사용할 수 있습니다.
 +
 +다음 명령을 사용하여 ''/etc/hosts'' 파일을 만듭니다:
 +
 +<code bash>
 +cat > /etc/hosts << "EOF"
 +# Begin /etc/hosts
 +
 +<192.168.0.2> <FQDN> [alias1] [alias2] ...
 +::1       ip6-localhost ip6-loopback
 +ff02::  ip6-allnodes
 +ff02::  ip6-allrouters
 +
 +# End /etc/hosts
 +EOF
 +</code>
 +
 +//<192.168.0.2>// 및 //<FQDN>// 값은 특정 용도나 요구 사항에 따라 변경해야 합니다(네트워크/시스템 관리자가 IP 주소를 할당하고 머신이 기존 네트워크에 연결되는 경우). 선택적 별칭 이름은 생략할 수 있으며, //<192.168.0.2>// 줄은 DHCP 또는 IPv6 자동 구성으로 구성된 연결을 사용하거나 ''localhost.localdomain''을 FQDN으로 사용하는 경우 생략할 수 있습니다.
 +
 +''localhost'', ''localhost.localdomain'' 또는 호스트 이름(도메인 제외)은 //myhostname// NSS 모듈에서 처리하므로 ''/etc/hostname''에는 해당 항목이 포함되지 않습니다. 자세한 내용은 [[https://man.archlinux.org/man/nss-myhostname.8|nss-myhostname(8)]] 매뉴얼 페이지를 참조하세요.
 +
 +::1 항목은 127.0.0.1의 IPv6 대응 항목이며 IPv6 루프백 인터페이스를 나타냅니다.
  • linuxfromscratch/12.1/155-general_network_configuration.1716812714.txt.gz
  • 마지막으로 수정됨: 2024/05/27 12:25
  • 저자 127.0.0.1