WIZnet Developer Forum

W5500을 사용하여 사설ip에서 공인ip로 접속하려면 어떻게 하나요

  1. KT 유동IP(사설IP) 받아서 공유기 WAN Port 셋팅 하고
    PC에서 공유기 사설IP 받아서
    ping 59.18.44.251
    정상 됩니다.

하지만

  1. Pc가 아닌 w5500에서 TCP/IP 올려서
    IP 셋팅을 192.168.254.100
    Submask : 255.255.255.0
    G/w ; 192.168.254.1
    셋팅하여 Ping 59.18.44.251
    하면 Ping 안됩니다.

아래 PC에서는 잘되고요
3. PC IP : 192.168.254.231 ==> google : 59.18.44.251
Ping 59.18.44.251
잘됩니다.

기존 여러 답변은 잘보았습니다.
답변은 아래와 같습니다.

  1. 고정IP를 사용하거나 Mac address 사용하면 당연히 됩니다.
  2. Dhcp 사용하여 테스트는 불가능 합니다
    DHCP는 서버에서 IP를 임대요청 하므로 W5500이 DHCP 서버에 접속할수 없습니다.
  3. DNS 프로그래밍 한다면 어떻게 될까요
    DNS 서버 IP는 공인IP이고 IP확인 되면 도메인으로 연결되는 서버 이므로 가능하지 않을 까요

※ [b]W5500 사설 IP에서 외부 WAM망 공인IP로 Ping test 성공 할수 있는 방법 부탁드립니다

고수님들의 고견을 듣고 싶습니다.[/b]

왜 그런건가요?

고견을 부탁드립니다.
감사합니다

아래 게시물 참조하시기 바랍니다.
[url]Local 망의 W5500 에서 공인 IP 로 ping test 를 하면 안됩니다]

지금 글을 봐서 질문이 정확히 무엇인지 파악이 잘안되는데요…

고정 IP를 사용하거나 Mac address 사용하면 당연히 된다는 말이 잘 이해가 안됩니다. TCP 통신에 있어서 IP와 Mac은 꼭 있어야하는 것 입니다. 고정 IP 는 직접 Setting을 해주는 IP를 말하고 말씀하신 공유기 사설 IP는 DHCP 받은 IP입니다. PC는 DHCP를 받아서 사용하는 것 같은데 W5500은 왜 DHCP 사용해 테스트하는 것은 왜 불가능 한지요? W5500이 DHCP 서버에게 IP 할당 받는 것이 가능합니다.
그리고 DNS는 단지 google.com 과 같은 도메인 네임을 IP에 맞게 매핑시켜주는 역할을 합니다. 말씀하신 개념과는 다릅니다. 오히려 말씀하신 개념은 DHCP 쪽에 더 가깝네요 DHCP 서버는 공인 IP이고 DHCP 서버가 사설 IP를 나눠주는 역할을 하니까요.

W5500에서 인터넷망으로 Ping을 성공하시는 방법은 DHCP로 IP할당 받고 ICMP를 이용하셔서 Ping request를 요청 하는 방법과 공인 IP를 W5500에 할당하고 ICMP를 이용해 Ping request를 요청하는 방법이 있겠네요.

도움이 되셨으면 좋겠네요 감사합니다. :slight_smile:

안녕하십니까?

처음 W5500 사설IP 에서 공인IP 로 ping 및 접속을 문의했던 사람입니다.
hancouple 님의 질문과 justinkim 의 답변을 보면서 한가지 궁금한점이 있어 질문드립니다.

PC 에서는
PC Local 고정IP 로 해놓고 ip공유기를 거쳐, 공인IP 로 ping 및 접속을 하면 되는데

왜 W5500 에서는
dhcp 를 쓰고 Local IP 를 고정으로 하고 ip공유기를 거쳐, 공인IP 로 ping 및 접속을 하면 안되고,
dhcp 를 쓰고 유동으로 해놓고 ip공유기를 거쳐, 공인IP 로 ping 및 접속을 해야하는지요?

즉, w5500 에 어떤 program(dhpc, dns 등) 을 올리고
W5500 IP 를 고정하고 ip공유기를 거쳐, 공인IP 로 ping 및 접속할수 있는 방법이없나요?

답변 부탁드립니다.

감사합니다.

안녕하세요.

위에 두분의 질문이 비슷한것같습니다.

먼저, github.com/Wiznet/ioLibrary_Dri … r/Internet
저희가 제공하는 DHCP library를 사용하셔서 공유기로부터 ip를 할당받을 수 있습니다. (사설 ip, 192.168~~~)

그리고 외부망(공인 ip)과 W5500(사설 ip) 간의 통신을 원하신다면, 이건 공유기단에서의 문제입니다.
공유기사마다 조금은 다를 수도 있지만, 보통 포트포워딩, ddns의 기능을 찾아보시면 해결하실 수 있을 것 같습니다.

간단하게 말씀드리면,
[]예를들어 공유기(공인ip 111.222.111.222)
[
]W5500(사설 ip 192.168.0.100으로 공유기에 연결되어있음)

포트포워딩은 외부망(예를 들어 59.18.44.251)에서 내부 사설망(192.168.0.100)으로 접속은 당연히 불가능하기 때문에
외부에서 공유기 ip의 특정 port(111.222.111.222:5000)으로 접속할 때 공유기가 192.168.0.100으로 연결해주도록 설정하는 기능입니다.

ddns는 공유기의 ip가 고정일 수도 있지만 유동일 수도 있기 때문에 ip가 아닌 주소형태로 접속할 수 있도록 해주는 기능입니다.
예를들어 공유기의 ip를 ddns 기능으로 'abc.ccc’라고 설정해 두었다면, 외부망에서 ‘abc.ccc:5000’ 으로 접속한다면 W5500으로 접속할 수 있게 해주는 기능입니다.

그런데 이러한 기능들은 저희 제품이 아닌, 공유기의 기능이라는 걸 다시한번 말씀드리고 싶습니다.

네 잘알겠습니다.

감사합니다.

그러면, PC 에서 유동IP 로 해놓고 ip공유기를 거쳐, 공인IP 로 ping 및 접속을 하면 되는것은
PC에 dhcp protocol 있어서 인가요?
또 ip공유기의 어떤 protocol 때문인가요?

또한 PC ip를 Local 고정IP 로 해놓고도 ip공유기를 거쳐, 공인IP 로 ping 및 접속을 하면 되는것은
PC 와 ip 공유기에 또다른 protocol 이 있어서 그런가요?
그렇다면 그 protocol 은 무었인가요?

고견을 부탁드립니다.
감사합니다.

안녕하세요

공인 ip와 사설 ip를 변경해주는 기술을 NAT(network address translation)이라고 합니다.
포트포워딩도 NAT의 응용기술이구요.

추가 질문의 의미를 이해하지 못하겠습니다.
공유기에서 유동IP는 DHCP로 할당받은 IP를 말씀하시는것 같고, Local 고정 IP는 공유기에서 Static으로 하신다는 말씀이신것 같은데…
위 두 IP는 모두 사설 IP(192.168~~)입니다.

PC에서 외부로 나가는건 공유기의 NAT에서 routing table에 의해 처리해 주는 부분이구요.
외부에서 PC로 접속하는것은 가능하지 않습니다.(사설 IP)

예를 들면, 공유기에 연결된 telee5212님의 PC에서 구글 Server에 ping을 날리고, 응답을 받는것은 가능합니다.
그런데 구글에서 telee5212님의 PC에 ping을 날리는건 안됩니다.(공유기의 공인IP에는 가능하겠죠)


한가지 추가로 정정합니다.
위에 답글에서 제가 DHCP library로 ip를 할당받으라고 적어놨는데, 잘못적었습니다.
포트포워딩을 설정하기 위해서는 해당 사설 IP를 알아야 하는데, 이 IP를 유동으로 해놓으면 연결시마다 새로운 IP를 할당받을 수도 있기 때문에
고정 IP를 사용하는게 맞습니다.

감사합니다.

W5500 사설 고정IP 를 가지고 ip공유기를 거쳐 공인IP 에 ping 보내고 응답을 받으려면,
ip공유기의 NAT 를 이용하면 가능하다는 말씀으로 이해하겠습니다. 맞나요?

  1. 그런데 현재 w5500 에서 이렇게 했을때 ping send 후 reply 가 실패한것은 왜일까요?

  2. 같은 상황에서 PC 는 reply 를 받았습니다.

  3. W5500 가 ip 공유기의 NAT 을 이용하기 위해서 어떻게 해야하나요?
    W5500에 다른protocol 을 올려야 하나요?
    IP공유기에 setting 을 바꿔애 하나요?

부탁드립니다.

주신 정보만으로는 원인파악이 힘듭니다.

  1. 먼저 W5500을 PC와 다이렉트로 연결 후, 사설 망을 구성해서 PC로 ping test 해보세요.

  2. W5500 - 공유기 - PC로 사설 망 ping test를 해보세요.

  3. 2를 성공한 후에 외부로 ping test 해보세요.

어느 부분이 원인인지 파악 후에 질문해주세요.

W5500으로 고정 IP를 가지고 IP 공유기를 거쳐 공인 IP에 Ping을 응답받으려면 W5500에 맞춰 DHCP, ICMP 프로토콜이 구현된 firmware가 필요합니다.

DHCP는 공유기에게 DHCP IP를 할당 받기위해 필요합니다. (NAT는 IP를 매핑해주는 공유기의 기능이므로 W5500과 상관없습니다.)
ICMP는 W5500으로 ping을 보내기 위해 필요합니다.

W5500에 위의 두가지 프로토콜이 제대로 구현된 firmware만 더해지면 Ping Test가 동작해야합니다.

기본적으로 W5500은 Application단의 기능은 하드웨어로 구현되어있지 않습니다.
PC의 경우에는 TCP/IP의 Application단과 그아래의 모든 프로토콜까지 모두 소프트웨어로 모두 구현이 되어있습니다.

감사합니다.

알겠습니다.

현재 ICMP 를 이용한 ping 은 W5500 에 구현되어있어서,
LAN 에서는 ping 이 request/reply 가 잘 되고 있습니다.

wizdaniel 님의 질문에 시험결과는

  1. W5500을 PC와 다이렉트로 연결 후, 사설 망을 구성해서 PC로 ping test : 성공
  2. W5500 - 공유기 - PC로 사설망 ping test : 실패
  3. W5500 - 공유기 - WAN ping test : 실패.
    입니다.

justinkim 님의 내용을 정리하면.
현재 ICMP 를 이용한 ping 이 구현, 검증 되었으니까,
DHCP를 추가로 올리면 ip 공유기를 통하여 WAN 쪽으로(공인IP)
ping request/reply 가 되어야만 한다는 것이지요?

맞나요?

답변 부탁드립니다.
감사합니다.

네 맞습니다. DHCP를 올리면 IP 공유기를 통해 Ping test가 되어야 합니다.

감사합니다.

W5500 을 사용한 저희 개발보드에 dhcp 를 올렸는데 문제가 있어 문의합니다.

dhcp.c 의 dhcp_run 에서 첫단계인 send_DHCP_DISCOVER 를 보냈는데 공유기에서 응답이 없습니다.
w5500 init, udp socket open 등 정상으로 열리고, discover message 도 정상으로 생성됩니다.

그래서 동일한 환경에서 WIZNET 의 W5500_ebv 를 사용해 dhcp 를 실행하면
send_DHCP_DISCOVER 는 물론 ip 를 새로 할당받는 정상동작을 합니다.

W5500_ebv program 을 수정해 send_DHCP_DISCOVER messgae 를 까 보았습니다.
그랬더니 저희 개발보드의 message 와 동일합니다.
w5500 init, udp socket open 등 여러가지 사항을 면밀히 비교해도 두 Code 간에 차이가 없습니다.

사용한 저희 개발보드는 tcp, udp, ping 까지 올려서 정상 동작하고 있는 보드입니다.
왜 그런것일까요?
몇일째 삽질하고있는데 조언 부탁드립니다.

그리고 w5500-evb 보드의 SWD 에는 어떤 tool 을 사용하나요? (예, st-link or ulink2 등)
다른 W7500-evb 의 SWD 에는 어떤 tool 을 사용하나요?

아래 링크 참조 해주세요

감사합니다.

조언을 주신방법대로 해서 dhcp 을 올리고 dhcp ip lease 가 성공했습니다.
저희 개발보드 w5500 에서 ip 공유기를 거쳐 wan 단의 PC 와 tcp/udp/ping 이 성공 했습니다.

한가지 아쉬운점은 개발보드의 IP 를 유동으로 하지말고, 고정으로 하고 싶습니다.
즉, 저희 개발보드 w5500 에 사설 고정 ip 로 하고, 공유기를 거쳐 google 이나 공인IP server에 접속하길 원합니다.

일반적으로 local PC 에서는, pc ip 를 고정 사설IP 로 넣고 ip공유기를 거쳐 WAN 상으로 접속이 가능 하지않습니까?
예를들면, local PC IP 를 고정 사설IP 로 하고 ip공유기를 거쳐 google 에 ping request 하면
ping reply 를 받습니다.
저희 개발보드의 사용환경이 이와같은 환경에서 되어야 하거든요.

어떤방법이 있나요?
고견을 부탁드립니다.

안녕하세요 :slight_smile:

지난번 질문에도 답변드렸지만 (아래 링크 참조 하시기 바랍니다.) 공유기의 DHCP 할당 영역안에서 IP를 설정하면 고정 IP 사용가능합니다.
[url]Local 망의 W5500 에서 공인 IP 로 ping test 를 하면 안됩니다]

몇몇 공유기에는 설정에 DHCP 고정 IP 할당하는 부분이 있을겁니다.

감사합니다.

그간 좋은 조언을 주셔서 저희 개발보드에 dhcp 를 올려 ip 를 할당받는데 성공했습니다.
감사드립니다.

W5500 능 사용한 저희 개발보드로
유동 사설 ip로 공유기를 거쳐 공인 ip 의 server 에 tcp접속/udp/ping 을 성공했습니다.

저희 개발보드의 application 환경은, 고정 사설 ip로 - 공유기를 거쳐 - 공인 ip 의 server 에 접속 하는 것입니다.
저희 개발보드에서 dhcp 를 통해서 ip 공유기경유 공인IP 에 접속하는것 까지는 만족스러운데,
저희 개발보드는 고정 사설 ip로 사용해야 합니다.

PC 의 경우
PC 를 사설 고정IP 로 놓고 공유기를 거쳐 공인 ip 의 server 에 접속 하는 것이 가능합니다.

저희 개발보드도 이렇게 사용해야 합니다.

어떤방법을 써야 하나요?
어떤 protocol 을 올려야 하나요?

좋은 의견을 부탁합니다.

안녕하세요~

첫번째 질문에서 말씀하신 사항에 대한 정확한 답이 필요하여 질문 몇가지 드립니다.

  1. 공인 ip는 돈을 주고 사서 쓰는 ip이고, 사설ip는 임의로 할당한 ip(ex. 192.168.10.11 or 10.1.1.10)입니다. 맞나요?
  2. W5500을 사설ip로 세팅을 하고(DHCP ip 할당 x) 공인 ip인 server로 접속을 원합니다. 맞나요?

1,2번이 모두가 맞다고 하신다면,
우선, 공유기가 DHCP Server로써 DHCP Client에 할당해주는 주소영역을 아셔야합니다.
예를 들어 공유기가 할당해주는 ip 주소영역이 192.168.13.20 ~~192.168.13.250 이라면
W5500의 ip는 192.168.13.20 ~ 192.168.13.250 중 하나의 ip를 사용하셔야합니다.
두번째 질문의 답변합니다.
별도의 protocol을 사용하지는 않습니다.
단, 첫번째 질문의 대한 답에서의 ip영역중 하나를 socket open이전에 common register의 source ip address register 영역에 써주셔야합니다.
thanks
irinkim

1.번 질문의 답변입니다.
Server 가 공인 ip는 돈을 주고 사서 쓰는 ip 입니다.
2.번 질문의 답변입니다.
저희 W5500 사용의 개발보드를 사설ip로 세팅을 하고(DHCP ip 할당 x) 공인 ip인 server로 접속을 원합니다.

귀하의 답변에 따르면, 별도의 protocol을 사용하지 않는다는것은

  1. dhcp client 를 사용하지 않고, 공유기의 dhcp 영역내에서 w5500 의 IP 를 고정으로 설정하면 된다는 것인가요?
  2. 아니면 dhcp 통해 IP 를 받고, 실제 사용은 원하는 고정 IP (공유기의 dhcp 영역) 을 사용하면 되다는것인가요?

1번의 경우 처음서부터 그렇게 사용했지만 실지로 접속이 않되었습니다.
2번의 경우 시험해보겠습니다.

답변 감사합니다.

혹, 제가 잘못 이해한것이 있다면 바로 잡아주셨으면 합니다.

안녕하세요

  1. dhcp client 를 사용하지 않고, 공유기의 dhcp 영역내에서 w5500 의 IP 를 고정으로 설정하면 된다는 것인가요?
  2. 아니면 dhcp 통해 IP 를 받고, 실제 사용은 원하는 고정 IP (공유기의 dhcp 영역) 을 사용하면 되다는것인가요?

위 두 질문에 대해서

1의 경우가 맞습니다. 하지만 공유기에서 DHCP영역을 할당할 때 매번 다른 영역을 할당하기 때문에 IP가 계속 변동될 가능성이 있습니다.
공유기 설정에 보시면 DHCP 고정 할당이라는 부분이 있을 겁니다. 혹은 DHCP관련 설정 부분에 IP 수동 지정같은 것이 있을 겁니다.
공유기 설정을 고쳐보시고 시도하시기 바랍니다.

첫 째, 업데이트할 펌웨어 소스에서 지정해 줄 W5500의 MAC과 고정 IP를 확인합니다. 00-00-00-4A-ED-01 / 192.168.0.70으로 되 있다고 가정하겠습니다.

둘 째, 공유기의 DHCP 영역을 확인하고 192.168.0.70이 같은 네트워크에 들어가는지 확인해 줍니다.
공유기의 IP = 192.168.0.1 이고 서브넷 마스크 = 255.255.255.0 그리고 DHCP 주소가 192.168.0.xx~192.168.0.yy로 설정되어있고 xx~yy에 70이 들어가게 설정을 해줍니다. ex) xx~yy = 50~100

셋 째, 공유기에서 DHCP 고정할당 설정 부분에 WIZnet 칩에 설정해둔 MAC주소와 IP주소를 설정해줍니다. 00-00-00-4A-ED-01 / 192.168.0.70를 넣어줍니다.

넷 째, TEST를 해봅니다.

감사합니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.