네트워크 인터페이스를 수동으로 구성하려면 언제 네트워크, 브로드 캐스트 및 게이트웨이가 필요합니까?


10

https://wiki.debian.org/NetworkConfiguration#Bridging_without_Switching

위의 URL은 다음과 같이 말합니다. 그러나 그들이 선택적이고 언제 그렇지 않은지는 분명하지 않습니다. 이것을 설명하는 참고 자료에 대한 링크를 제공해 주시겠습니까? 감사.

수동으로 구성하는 경우 다음과 같은 기본 게이트웨이가 설정됩니다 (네트워크, 브로드 캐스트 및 게이트웨이는 선택 사항 임).

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254

2
dnsmasq를 사용하는 최근 Ubuntu 버전에서는 DNS 이름 서버도 선언해야합니다.
chili555

@ chili555, 패키지 resolvconf를 추가하면 작동합니다. 이 답변 아래에서 내 대답을 읽으십시오. ;-) 답이 user1424739입니까?
Anders

최근 우분투 버전에서는 resolvconf가 기본적으로 설치되어 있다고 생각합니다. 아니??
chili555

1
@Anders의 답변을 검토 할 시간이 있습니까? 누군가 내 질문에 대답 할 때 어떻게해야합니까?를
user.dz

@ chili555 그렇습니다. 그러나 나는 그 패키지와 / e / n / interfaces의 dns-servers 사이의 연결을 분명히하고 싶었습니다. 확실하지 않으면 죄송합니다.
Anders

답변:


25

고정 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주소는 한 번만 계산하고 보통과는 제대로 계산 필요 addressnetmask지시어. 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일부 는 테스트 하지 않습니다 . 원하는 것일 수도 있고 아닐 수도 있습니다.


1
좋은 설명 감사합니다. chili555가 도메인 이름을 확인하는 데 DNS의 중요성을 언급 했으므로 이에 대한 요점을 추가하면 좋을 것입니다. (인터넷 또는 WAN 연결의 경우 모두 설정해야합니다)
user.dz

이 같은?
Anders

1
아니에요. :-) 사용자에 대한 충분한 답변인지 궁금합니다. 1424739
Anders

어쨌든, /etc/internet/interfaces자신의 찬성, 우분투에 의해 폐기 될하려고 NetPlan, 볼 /etc/netplan/*.yamlNM(와 수정할 수있는 nm-tools).
Anders
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.