"장치 영역 네트워크"에 가장 적합한 개인 주소 선택


8

어플라이언스 내부에서 이더넷으로 연결된 여러 하위 장치로 구성된 어플라이언스를 구축 중입니다. 어플라이언스가 고객 네트워크에 연결됩니다. 고객 네트워크는 개인 IP 주소를 사용할 수 있습니다. 내부 네트워크와의 주소 충돌이 문제가 될 수 있습니다 (두 네트워크에 연결된 하위 장치가 혼동 될 수 있습니다). IPv6은 옵션이 아닙니다.

IPv4 주소를 구매해야합니까? 아니면 TEST-NET-3 (203.0.113.0/24) 또는 이와 비슷한 것을 사용하여 벗어날 수 있습니까? 모범 사례는 무엇입니까?


1
고객 네트워크가 하위 장치에 직접 액세스해야합니까, 아니면 장치의 "관리"유형 LAN 포트를 통해서만 장치에 연결됩니까? EMC와 다른 사람들이 고객 네트워크에 연결된 전용 관리 NIC로 컨트롤러 등을 위해 SAN에서 사설 파이버 IP 통신을 사용하기 때문에 묻습니다. mgmt NIC는 고객 LAN으로부터 DHCP 주소를 얻거나 고객 네트워크에 상주하도록 정적으로 할당됩니다.
TheCleaner

1
'하위 장치'간의 통신을 위해 TCP / IP 스택을 사용해야합니까? 계층 2에 머무르면 IP 충돌과 관련된 문제가 없습니다.
jlehtinen

고객 네트워크는 클라우드 서비스에 연결하기위한 수단 일뿐입니다. 따라서 고객의 기본 게이트웨이는 내부 네트워크와 겹치지 않아야합니다. 하위 장치 중 하나는 IPv4 전용이며 다른 방법으로는 제어 할 수 없습니다.
proski

3
"IPv6은 옵션이 아닙니다." 우리는 지금 2014 년을 가지고 있습니다. 옵션이어야합니다. "IPv4 주소를 구입해야합니까?" 글쎄, 당신이 할 수 있다면-아시아에서, 그들은 유럽에서도
지칠 것입니다

1
장치가 있다면 하지 않는 IPv6를 지원, 난하지 않습니다 고려 그때 뭔가, 장치의 예상 수명 전에 잘 교체해야하기 때문에, 그들을 구입 하지 IPv6를 지원합니다. (물론, 어쨌든 고객을 위해. 이미 이중 스택 인 내 네트워크에서는 IPv6를 지원하지 않는 장치는 목적에 맞지 않는 것으로 간주됩니다.)
Michael Hampton

답변:


10

@yoonix 님이 해결책이있을 수있는 링크를 보냈습니다.

APIPA라고도하는 링크 로컬

169.254.0.0/16- "링크 로컬"블록입니다. RFC3927에 설명 된대로 단일 링크에서 호스트 간의 통신을 위해 할당됩니다. 호스트는 DHCP 서버를 찾을 수없는 경우와 같이 자동 구성을 통해 이러한 주소를 얻습니다.

내가 당신의 고객이라면, 나는 이것을 직접 구성하고 /하거나 DHCP를 사용하는 옵션을 원하기 때문에 확실합니다. (아직 잘 모르겠습니다. 아마도 오래된 표준입니까?) 이것이 바로 APIPA가 사용되는 것입니다.

편집-이제 게이트웨이 장치의 방화벽 규칙에 해당하기 때문에 솔루션의 개별 호스트에 대해 IP 주소가 정적이어야한다고 언급 했으므로 링크를 사용하여 작업하려면 약간의 노력이 필요합니다. 로컬 IPv4 주소 지정; 당신이 소비하지 않을 것이라고 노력합니다. 따라서 기본적으로 이를 구성 할 수 있어야 합니다. 클라이언트가 사용할 가능성이 적은 기본값으로 제공 할 수 있지만 충돌시이를 변경할 수있는 메커니즘이 있어야합니다. 클라이언트 또는 사용자가 구현 / UAT의 일부로 제공합니다.


어플라이언스가 내부 네트워크에서 하위 장치 중 하나에 대해 DHCP를 사용하고 있습니다 ( DHCP없이 구성 하기가 매우 어렵습니다). tools.ietf.org/html/rfc3927#section-1.6 DHCP가 내부적으로 DHCP를 사용할 필요가 없다면 DHCP 서버가 링크 로컬 범위에서 IP 주소를 유인 하는 것이 불편 합니다. 그것은 나의 첫번째 선택이었을 것입니다.
proski

아니요 아니요 아니요, 명시 적으로 인용 한 것처럼 APIPA (링크 로컬) 주소는 DHCP 서버를 찾을 수없는 경우 장치가 자신 에게 할당 주소 입니다. APIPA 주소를 할당하기 위해 DHCP를 사용하는 것이 좋습니다.
mfinni

하위 장치에는 특정 역할이 있으며 라우터는 해당 역할에 따라 iptables를 구성해야합니다. 라우터가 주소를 발견하고 그에 따라 iptables를 변경하는 것을 원하지 않습니다. 또한 임의의 IP 주소를 할당하면 주소 충돌이 발생하며 하드웨어가이를 해결하기에 충분히 똑똑하지는 않습니다.
proski

이것을 읽으십시오 : tools.ietf.org/html/rfc3927- 로컬 링크를 사용하는 모든 것이 충돌 감지를 구현해야합니다.
mfinni

나도 알아 이것이 제품에 구현 될 방법이 없습니다. 하위 장치에는 역할이 있으며 특정 iptables 구성이 있습니다.
proski

5

구성 가능하게하십시오.

IPv4 주소를 구매해야합니까?

네. 시도하십시오. 첫째, 당신은 그들을 구매하지 않습니다, 당신은 회원으로 그들을 "임대". 둘째, AS와 2 개의 업 링크가 필요합니다. 셋째, 여기에는 이유가 필요하며 "적절한 네트워크 인프라 스트럭처를 가정하고 싶지 않다"는 IP 주소를 할당받지 않고 웃음 (및 거부)을 유발하는 이유입니다.

또는 TEST-NET-3 (203.0.113.0/24)을 사용하여 벗어날 수 있습니다.

혹시. 그 날까지 누군가는 심한 방치 때문에 물건을 고치기위한 비용을 oyu에게 요구합니다.

모범 사례는 무엇입니까?

구성 가능하게하십시오. 또는 IPV6을 사용하십시오-일부 예약으로 벗어날 수 있습니다.


내부 사용을 위해 IPv4 주소를 얻는 것 (인터넷으로 라우팅하지 않는 것)은 완벽하게 유효한 사용 사례입니다. 불행히도 APNIC 및 RIPE 지역에는 더 이상 IPv4 주소가 남아 있지 않으므로 IPv6으로 이동하는 것이 실제로 유일한 미래 보장 솔루션입니다 ... ULA 주소는 좋은 옵션처럼 들립니다.
샌더 스테판

3
유효한 사용 사례가 아닙니다. 제한된 IPv4 주소 공간이 아닙니다. 이것이 개인 주소입니다. 그들은 "기존의 보존 절차를 따르지 않거나 기꺼이 따르지 않는"회사들에게 낭비하지 않을 것입니다.
TomTom

오늘날 유효한 유스 케이스는 아니지만 지금까지는 잘 모르겠습니다. 어설 션을 백업 할 문서가 있습니까? @SanderSteffann?
mfinni

3
@proski 아, 아니. 테스트 용 TEST-NET-3 주소는 참조하십시오. 테스트에 사용하는 고객은 유효한 사례가 있습니다. SOmeone 운송 기기는 무지하거나 이러한 주소와 관련된 정책을 고의로 무시하므로 무시합니다. 두 경우 모두.
TomTom

1
@SanderSteffann APNIC에 대해 잘 모르지만 RIPE에는 웹 사이트의 최신 상태 업데이트에 따라 약 1400 만 개 (8 개 중 0.85 개)의 IPv4 주소가 있습니다.
Jules

5
  1. Wikipedia에서 : Assigned as "TEST-NET-3" in RFC 5737 for use solely in documentation and example source code and should not be used publicly.-TEST-NET-3을 사용해서는 안된다는 메시지가 표시됩니다.

  2. 간과하는 것으로 보이는 한 가지 : 장치와 통신 할 수 있거나 장치의 IP 주소를 구성하지 않으면 장치가 다른 장치와 통신 할 수 있고 그 반대도 가능하다고 가정하는 방법 클라이언트 네트워크를 위해? 클라이언트 네트워크에서 사용하지 않는 네트워크에서 IP 주소를 할당하면 (You : 192.168.1.0/24-Them : 10.0.0.0/8) 네트워크 통신이 어떻게 작동한다고 가정합니까? 이것이 바로 DHCP를 사용하도록 장치를 구성하고 클라이언트가 정적으로 구성 할 수있게하는 이유입니다.

DHCP를 사용할 수 없으면 APIPA를 사용하십시오.


공용으로 사용 되지 않습니다 . 내부 주소는 절대 외부에 노출되지 않습니다. 통신은 NAT를 사용합니다. 그러나 두 네트워크가 겹치는 주소를 사용하는 경우 NAT를 수행 할 수 없습니다.
proski

1
알았지 만 내 대답은 NAT에 관한 것이 아닙니다. 내부 네트워크와 동일한 서브넷에없는 IP 주소를 사용하는 경우 장치가 동일한 내부 네트워크의 다른 장치와 어떻게 통신합니까?
joeqwerty

분명히 어플라이언스에는 두 네트워크 모두에 주소가있는 라우터가 포함되어 있습니다. 라우터는 NAT를 수행합니다. 고객은 클라우드 서비스를 통해서만 어플라이언스와 통신합니다.
proski

나는 코를 trying 지 않으려 고 노력하고 있지만, 그 점이 어떻게 명백합니까? 우리는 당신이 당신의 질문에서 우리에게 말한만큼만 알고 있으며 당신은 그 사실을 언급하지 않았습니다.
joeqwerty

1
아마 나야 나는 확실히 어떤 공격을 의미하지 않으며 이것이 무례하게 사라질 것입니다. 그러나 "두 네트워크에 연결된 하위 장치가 혼란 스러울 것"이라는 진술이 장치에 내장 라우터가 있거나 라우팅 기능이 있다는 것을 어떻게 의미합니까? 내 컴퓨터에는 각각 다른 네트워크에 연결된 두 개의 네트워크 인터페이스가 있지만 컴퓨터는 라우터가 아닙니다. 어쩌면 나는 바보 일 뿐이다. 귀하의 질문에 귀하의 장치에 라우터가 내장되어 있거나 라우팅 기능이 있다고 생각하는 것을 읽지 못했습니다. 어쨌든,이 rant는 당신을 돕기 위해 제공되지 않으므로이 시점에서 삭제하겠습니다.
joeqwerty

4

이론적으로 개인 IP 범위는 개인 네트워크에서 사용될 수 있으므로 주소를 하드 코딩하는 경우 모범 사례 또는 보편적으로 적용 할 수있는 모든 것을 찾을 수있을 것입니다. 가장 좋은 방법은 구성 가능하게하고 클라이언트 네트워크가 장치에 개인 주소를 할당하도록하는 것입니다 (예 : DHCP를 통해).

이것이 옵션이 아닌 경우, 누구도의 절반을 거의 사용하지 172.16.0.0/12않는다는 것을 알았습니다. ( 172.25.0.0/16정확하게 실행하고 있다고 생각합니다 .) 아직 주소 충돌이 발생하지 않았으며 많은 개인 네트워크에 VPN을 연결했습니다.

IPv4 개인 주소를 사용해야하는 경우 10.0.0.0/8블록이 널리 사용되고 192.168.0.0/16블록이 거의 모든 것의 기본값 인 경우 가장 좋은 방법이라고 생각 합니다 172.16.0.0/12. 물론,이 블록은 다른 사설 네트워크 블록의 광범위한 사용으로 인해 주소 충돌을 피하기 위해 VPN에 종종 사용되므로 (내 경험상) 해당 블록에서 가장 적게 사용되는 서브넷이므로 상위 주소를 사용하십시오. .


1
10.0.0.0/8 범위에서 임의의 / 24를 선택하고 기존 장치에서 주소를 합리적으로 사용한다고 가정하면 (즉, 최대 24 개의 서브넷이 사용 중임) 네트워크 설정을 다음과 같이 생각하는 경향이 있습니다. 4 개의 서브넷 (3 개의 서로 다른 위치 및 VPN간에 라우팅 할 VPN)이 있다고 가정하면 충돌 가능성은 <0.01 %입니다. 나는 일반적으로 대부분의 상황에서이 위험을 감수 할 의향이 있습니다.
Jules

1
@Jules는 기본값으로 인해 전체 / 8 서브넷을 사용하는 (불행하게도 일반적인) 네트워크를 제외하고.
Grant

더 작은 네트워크로의 경로가 우선합니다. 실제로 내부적으로 / 29를 사용하여 위험을 더욱 줄일 수 있습니다. 그러나 그 위험을 제거하지 않으면 아무리 작더라도 나쁠 것입니다. 고객 지원 센터는 이에 대해 알고 고객의 네트워크 구성을 확인해야합니다.
proski

2

우리는 똑같은 것을 설계하고 임의의 fc00 : nnnn 접두사가 붙은 IPv6 사이트 로컬 주소를 사용하기로 결정했습니다.


1
나쁜. ULA 블록을 얻으십시오.
TomTom

1

이러한 하위 장치 중 어느 것도 어플라이언스 외부에서 직접 연결이 필요하지 않다고 가정하면이를 위해 루프백 네트워크를 사용해야합니다 (127.0.0.0/8).

RFC 5735/3 절

위키 백과의 루프백


3
이것이 어떻게 작동할까요? 그의 "하위 장치"는 개별 호스트입니다. 루프백은 호스트가 자신과 통신하는 것입니다.
mfinni

1
좋은 지적이야, 맹세 컨데 이전에 이런 식으로 사용 된 것을 본 적이있다. 곧 답변을 삭제하겠습니다.
yoonix

그러나 그 문서에는 내가 좋아하는 또 다른 제안이 있습니다!
mfinni

실제로 내부 네트워크에 127.0.1.0/255를 사용하려고합니다. TEST-NET-3보다 나은지 확실하지 않습니다.
proski

1
작동하지 않습니다. 작동하지 않습니다. 루프백입니다. 루프백 주소와 통신하는 호스트는
ITTALE

1

"주 컨트롤러"가 DHCP 서버를 실행하고 "내부"인터페이스에서 DHCP 임대를 제공 할 수 있습니까?

나는 과거에 우리 회사의 상용 제품 중 하나를 위해 무언가를 사용했습니다. 이 장치에는 2 개의 이더넷 포트가 있으며 그 중 하나는 PC에서 "직접"연결하기위한 것입니다. 문제는 비슷했다. 우리는 고객의 내부 LAN (아마도 개인 IP 네트워크에서)과 전세계의 IP 주소 충돌을 피하고 싶었습니다.

이 장치의 논리는 "공용"LAN 포트 (eth0)의 자체 IP 구성에 따라 "직접"LAN 포트 (eth1)에서 DHCP 서버 (명령 줄 옵션을 통해 "udhcpc")를 동적으로 구성하는 것이 었습니다. 장치가 DHCP를 통해 또는 고정 설정을 통해 고유 한 IP 주소를 획득했는지 여부에 관계없이 설정을 적용한 모듈은 DHCP 서버 구성을 변경하여 충돌을 피합니다.

예를 들어, 장치가 주소 192.168.0.100/netmask 255.255.255.0 (eth0)을 얻은 경우, 사용 가능한 다음 네트워크 192.168.1.0/255.255.255.0에 대해 자체 DHCP 서버 (eth1)를 구성합니다.

192.168.0.0/24 ... 192.168.254.0/24 172.16.0.0/16 ... 172.31.0.0/16 10.0.0.0/8 중 하나에서 선택합니다.

도움이 되었기를 바랍니다.


무엇을 내가 사용하고있는 경우 192.168.0.0/16내 사이트의 접두사로,하지만 당신은 단지 사용하여 VLAN에 연결되어 있는지 192.168.0.0/24? 192.168.1.0/24같은 사이트의 다른 VLAN에서 사용하고 있지만 방금 하이재킹 했습니다.
fukawi2

이론적으로는 좋은 생각입니다. 실제로 하위 장치 중 하나는 고정 IP 주소를 사용하고 다른 장치는 DHCP 클라이언트를 사용합니다. 출하 된 제품에서는 구성 할 수 없습니다. 따라서 주소를 미리 구성해야하지만 로컬 링크 주소는 작동하지 않습니다.
proski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.