고정 IP 주소를 설정하는 방법과 이유
주의! NetworkManager와 같은 다른 네트워크 설정 방법에 대해서는 이야기하지 않습니다. 언급 된 모든 장치 /etc/network/interfaces
는 NM에 의해 만지지 않습니다
IP 네트워크 (IPv4 및 IPv6)를 통해 통신하려면 컴퓨터가 보유한 IP 주소를 알아야합니다. 따라서 address
컴퓨터에 지시하려면 지시문이 필요합니다.
그런 다음 컴퓨터가 다른 컴퓨터와 통신하려고 할 때 다른 컴퓨터의 IP 주소를 사용하여 해당 컴퓨터가 동일한 네트워크 LAN에 있는지 확인합니다. 그렇다면 컴퓨터가 다른 컴퓨터와 직접 통신 할 수 있습니다.
그렇다면 컴퓨터가 같은 LAN에있는 컴퓨터와 통신하는시기를 어떻게 알 수 있습니까? 네트워크를 사용하면 netmask
주소의 넷 부분이 1로 설정되고 호스트 부분이 0으로 설정됩니다. 따라서 IP 주소의 각 비트와 넷 마스크 사이에 비트 단위 AND 연산을 수행하면 호스트 부분이 0 인 IP 주소의 네트워크 주소를 얻게됩니다. 따라서 컴퓨터의 IP 주소와 다른 컴퓨터의 IP 주소에서이 작업을 수행하면 각 네트워크 주소를 얻습니다. 동일한 경우 컴퓨터가 동일한 네트워크에 있고 서로 직접 통신 할 수 있습니다.
네트워크 주소가 같지 않으면 서로 다른 LAN에 있고 서로 직접 통신 할 수 없습니다. 그런 다음 컴퓨터는 다른 LAN에 연결된 특수 컴퓨터를 사용해야합니다. 해당 컴퓨터는 라우터입니다 (방화벽과 NAT도있을 수 있음). 따라서 컴퓨터가 LAN 외부의 다른 컴퓨터와 통신하려면 gateway
지시문으로 설정된 해당 컴퓨터의 주소를 알아야합니다 . 다른 인터페이스가 이미 gateway
값을 설정 한 경우이 인터페이스에 다른 게이트웨이 지시문을 설정하지 않아야합니다. 이 gateway
지시문은 컴퓨터의 기본 경로를 설정하므로 각 컴퓨터에서 IPv4에 대해 하나만, IPv6에 대해 하나만 필요합니다. 이 네트워크 주소는 network
지시문을 사용하여 수동으로 설정할 수 있습니다 .
때때로 컴퓨터는 LAN의 모든 컴퓨터와 통신하기를 원하며 브로드 캐스트 주소를 사용합니다. 이 주소는 동일한 LAN에있는 모든 컴퓨터에서 수신합니다. 이것은 호스트 부분이 모두 0이 아니라 모든 1을 제외하고는 기본적으로 네트워크 주소와 동일합니다. 이 브로드 캐스트 주소는 broadcast
인터페이스 의 지시문 에 의해 설정됩니다 .
인터페이스 network
주소는 한 번만 계산하고 보통과는 제대로 계산 필요 address
와 netmask
지시어. broadcast
주소 와 동일 합니다. 따라서 설정할 필요가 없습니다. 실제로 하나 또는 둘 모두를 잘못된 값으로 설정하면 인터넷의 LAN 및 다른 컴퓨터와의 연결이 끊어 질 수 있습니다. 따라서 이상한 값이 없으면 컴퓨터가 계산하도록합니다.
따라서 최소 정적 설정 또는 스탠자 는 개인 네트워크 /etc/network/interfaces
의 장치 eth1
에 대해 다음과 같이 보일 수 있습니다.
iface eth1 static inet
address 192.168.44.10
netmask 255.255.255.0
gateway 192.168.44.1
이름 확인 작동 방식 및 DNS와의 연결 방식
도메인 이름은 위에서 언급 한 것처럼 사람이 도메인 이름을 읽고 기억하기 쉬운 IP 주소와 기억하기 쉽지 않은 컴퓨터 간을 변환하는 데 사용됩니다. 이것을 이름 확인 이라고 합니다.
이것은 보통 파일 /etc/nsswitc.conf
과로 시작하는 줄에 의해 제어됩니다 hosts:
. 컴퓨터가 컴퓨터에 연결하도록 요청하면 my.example.com
이 파일을 살펴보고 이름에서 IP 주소를 확인하려고합니다 my.example.com
. 이 파일은 실제로 "어떤 IP가 my.example.com에 포함되어 있는지"라는 질문에 대답하지 않고 컴퓨터가 답을 찾을 수있는 위치를 알려줍니다.
일반적으로 /etc/hosts
파일은 정적 로컬 이름으로 먼저 시도한 다음 mDNS
동적 로컬 이름으로 avahi 를 시도한 다음 인터넷에서 이름을 얻기 위해 DNS 도메인 이름 resovler를 시도합니다.
이 중 일부가 귀하의 질문에 느리게 응답하면 컴퓨터가 잠시 동안 멈추는 것처럼 보일 수 있습니다. 따라서 이름을 확인하면 먼저 이름 확인을 확인하십시오.
따라서 고정 주소를 추가하면 /etc/hosts
파일에 추가 할 수 있습니다 . 그건 그렇고, 당신이 고정 주소를 가지고 있다면, 아마도 당신의 컴퓨터에 대한 IP 주소를 기본값이 아닌 IP 주소로 변경해야 할 것입니다 127.0.1.1
(localhost가있는 localnet 네트워크에 있음 127.0.0.1
). 그것은 클라이언트에서만 작동하며 서버에서는 작동하지 않습니다.
avahi
패키지 가있는 Linux 컴퓨터와 Apple 컴퓨터 (및 iTunes가있는 MS Windows)에서 얻는 동적 주소 . 그것은 "매직"에 의해 처리되며이를 고칠 필요는 없습니다.
DNS는 인터넷에 연결하는 데 사용되며 사용하려는 DNS 서버의 위치, 사용할 IP 주소 및 기본 DNS 도메인이 무엇인지 컴퓨터에 알려야합니다.
이것은 파일에서 수행되며 /etc/resolv.conf
정적으로 설정할 수 있습니다. 정적이 아닌 세계에서는 잘 작동하지 않으므로 일반적으로 resolvconf
설치된 패키지 가 있습니다. 이를 통해 /e/n/interfaces
파일 에서 이러한 설정을 구성 할 수 있습니다.
따라서 Google의 DNS 서버 중 하나 8.8.8.8
와 ISP의 DNS 서버 192.0.2.1
및 도메인 my.example.org
도메인을 기본값 으로 추가한다고 가정 하면 /etc/network/interfaces
파일을 편집 하고 스탠자에서 정적 장치의 두 줄을 추가하면됩니다.
dns-nameservers 8.8.8.8 192.0.2.10
dns-search my.example.org
DNS 확인자는 최대 3 개의 DNS 서버 만 사용한다는 것을 알 수 있습니다. 의 man
페이지 에서 찾아보십시오 resolv.conf
. 로 일반적으로, 당신은 명령을 사용할 수 있습니다 man nsswitch.conf
, man resolv.conf
그리고 man resolvconf
더 많은 정보를 얻을 수 있습니다.
또한 ISP 예제 DNS 서버에 도메인 example.com 및 example.org 및 IP 네트워크 192.0.2.0/24를 사용합니다. 이들은 예에서 사용되도록 명시 적으로 정의됩니다. http://example.com/ 또는 http://tools.ietf.org/html/rfc2606 및 rfc5735를 참조하십시오 .
그런 다음 어떻게 작동하는지 확인합니까?
여러 가지 방법으로 할 수 있지만 보통은
getent hosts my.test.com
이름 확인을 위해 전체 설정을 테스트합니다. DNS가 작동하는지 확인하고 싶다면 다음 명령 중 하나를 사용하십시오.
host my.test.com
dig my.test.com
그러나 /etc/resolv.conf
파일 의 설정을 통해서만 DNS를 테스트 하고 /etc/nsswitch.conf
일부 는 테스트 하지 않습니다 . 원하는 것일 수도 있고 아닐 수도 있습니다.