W5100 DHCP Client구현
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: W5100 DHCP Client구현
by Edward ·
안녕하세요.
말씀하신대로 공유기를 공인IP로 설정한 후,
공유기에서 연결된 Peer에 DHCP로 사설IP를 할당해야 외부로 통신이 가능합니다.
질문하신 사항을 짐작하여 보니 DHCP IP 할당이 안되는 것 같습니다.
그렇다면, DHCP의 동작을 다시 한번 짚어봐야 할 것 같은데요.
DHCP가 IP 요청을 정상적으로 시행하고 있는지, 그리고 요청된 IP를 정상적으로 응답받고 있는지
정확한 확인이 필요합니다.
Wireshark tool을 이용해서 확인이 가능하니 확인해주세요.
질문하신 부분 중
소켓에 대한 질문은 Socket 0번을 사용하셔도 상관없고 1번을 사용하셔도 무방합니다.
소켓 1개로 충분히 통신 가능합니다. 다만 DHCP용 Port가 정해져있으니 꼭 확인해주세요.
그리고 DHCP IP갱신 부분을 말씀 해주셨는데요.
이 부분은 먼저, DHCP IP 할당을 받고 정상적으로 PING이 된다면, 그 이후에 확인하셔도 괜찮을 것 같습니다.
먼저 DHCP 패킷이 정상적으로 송/수신 되는지 확인해주세요.
감사합니다.
RE: W5100 DHCP Client구현
by Strider ·
답변 감사드립니다.
1.949554 0.0.0.0 255.255.255.255 DHCP 590 DHCP Discover - Transaction ID 0x12345678
1.954954 192.168.0.1 255.255.255.255 DHCP 590 DHCP Offer - Transaction ID 0x12345678
2.052053 0.0.0.0 255.255.255.255 DHCP 590 DHCP Request - Transaction ID 0x12345678
2.057532 192.168.0.1 255.255.255.255 DHCP 590 DHCP ACK - Transaction ID 0x12345678
말씀하신대로 Wireshark로 패킷을 찍어보았습니다.
제가 프로그램상 접속 실패할경우 리셋되어 처음부터 동작하도록 짜놓아서 그런지
위와 같은 패킷들이 주기적으로 올라오는데요. 3.2.6.5 의DHCP Client 데이터를 보면 위 순서대로가 맞아 보입니다만…
DHCP STATE를 확인해보니 DISCOVER → REQUEST → LEASED 로 변경되고 getIP_DHCPS(); 종료가 됩니다.
이때 패킷을 보니 라이브러리 코드를 봐도 ACK 수신하고 LEASED로 스테이터스가 변경되면서 완료가 되고
이후 state를 읽어서 LEASED에서 일정시간되면 REREQUEST로 넘어가서 갱신하는것처럼 보입니다만…
wireshark 에서 bootstrap Protocol을 보니
offer 에서
client IP Address 0.0.0.0
your IP Address : 192.168.0.32
로 뜨고
request에서
client IP Address 0.0.0.0
your IP Address : 0.0.0.0
ACK에서
client IP Address 0.0.0.0
your IP Address : 192.168.0.32
로 뜨고 있습니다.
RE: W5100 DHCP Client구현
by justinkim ·
외부 네트워크 접속시 2가지 방법이 있습니다.
이는 PC도 같은데요.
DHCP 서버(공유기)를 통해 IP를 할당받는 방법 PC에서 자동으로 IP설정하는 것이 이에 해당합니다.
인터넷회사에서 받은 IP를 직접 입력하는 방법 PC에서 고정 아이피 설정하는 것이 이에 해당합니다.
DHCP Server에게 IP를 할당을 받기위해선 DHCP Client 기능이 있어야합니다.
보내주신 패킷의 내용을 보니 DHCP Server에게 IP 할당을 받는 것은 정상적으로 작동하는것 같습니다.
공인 IP 및 내부 IP 둘다 접속이 되지않는다는 말씀을 하셨는데 ping을 쏘는 PC는 네트워크가 어디에 연결이 되어있나요?
192.168.0.32의 네트워크와 만약 다른 네트워크라면 PING이 되지않습니다.
ping은 외부접속하는 IP로 ping을 하셔야 ping이 정상적으로 됩니다.
예를들어 212.32.55.1이라는 외부망 접속가능한 고정아이피가 있다고 하면 공유기는 이 IP를 가지고 192.168.0.1이라는 가상 IP를 셋팅하게되고 DHCP Client에게 가상 IP인 192.168.0.32라는 IP를 주게됩니다. 이렇게 된 후 192.168.0.32의 IP는 192.168.0.1의 IP로 데이터를 보내게 되고 192.168.0.1의 IP를 가진 공유기는 212.32.55.1이라는 외부망이 접속가능한 IP로 밖으로 나가게 됩니다.
외부에서는 내부 가상 IP인 192.168.0.32를 찾을 수 없습니다. 따라서 212.32.55.1이라는 밖으로나가는 IP로 Ping 테스트를 해보셔야합니다.
내부에서 이를 구분하기위해 Port를 사용합니다.
212.32.55.1:5000 = 192.168.0.32 이런식의 테이블을 만들게 되고 212.32.55.1:5000으로 접속하는 외부 IP에게 내부 192.168.0.32와 연결을 시켜주게됩니다.
답변이 되었으면 좋겠습니다.
감사합니다.
RE: W5100 DHCP Client구현
by bangbh ·
요세 공유기에는 거의다 포트 포워딩이라는 기능이 붙어 있어요.
외부에서 공유기에서 설정해 놓은 포트로 쏴주면 공유기는 해당 포트로 들어온 데이터를 미리 지정해 놓은 IP로 "토스"만 합니다.
이런식으로 외부에서 내부 네트워크로 접근이 가능합니다. 참고하세여~ ^^