SW/ 개발팁 / 추천프로그램, 꿀팁 공유
  • 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
DNS

cloudflare에 ddns 업데이트 호출하려고 하는데 zone_identifier, identifier 정보는 어디에서 보는지 아실까요?

bumworld bumworld 72

0

11

cloudflare로 ddns를 사용하려고 도메인을 이전 했습니다.

 

업데이트 API가 있어서 바로 호출해보려고 하는데 잘 안되서요.

 

호출한 API는 아래와 같습니다. (링크)

 

https://api.cloudflare.com/client/v4/zones/{zone_identifier}/dns_records/{identifier}

로 호출하는데 zone_identifier, identifier 정보를 정확히 알 수가 없어서요.

 

도메인 페이지 Overview에 있는 Zone ID, Account ID를 사용하면 되는걸까요?

 

요청 정보에 content에 아이피주소, name은 www 이렇게 보내고 있는데 404 Record does not exist.이 발생 합니다.

 

신고공유스크랩
11
profile image 1등
NavyStack 2024.01.21. 22:24

Curl로 하셨나요?

1. 404 오류는 요청한 데이터가 없거나 서버가 반응하고 싶지 않은경우입니다.

먼저 레코드 관련해서 설정을 한것을 업데이트 하는 방식을 사용하신것 같네요.

 

2. DNS레코드 관련은 아닙니다만, 혹시 참고 한번 해보실래요?

https://navystack.com/2023/12/클라우드플레어-무료-범용-인증서-인증기관-변경/

Overview에 있는거 사용하시면 됩니다.
API키는 새로 발급하셔서 하는 것을 권장드립니다.

다만 처음에 하실때는 모든 권한이 있는 걸로 연습 한번 해보시고 점점 권한을 제한해서 사용하세요 :)

 

3. Python이랑 PHP를 활용한 것도 있어요

시놀로지에 사용하려고 그리고 도메인을 10개 관리할 수 있도록 수정한 코드입니다.

 

https://github.com/NavyStack/SynologyCloudFlareDDNS-WithMultiple

 

언제 했는지 기억도 안나지만 Global API Key 발급하는것도 기록해 두었네요 ;;

profile image 2등
bumworld 글쓴이 2024.01.21. 22:52
답변 감사합니다.
이렇게 테스트 하고 있는데 잘 안되네요. ㅠ.ㅠ
name에는 full로 넣어도 보고 www만 넣어 보기도 했습니다.

curl --request PUT \
--url https://api.cloudflare.com/client/v4/zones/83r8yr38f3hfe83rhfwe/dns_records/8tefhef8efhufe \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer e9fe9jefj9efj9efef' \
--data '{
"content": "21.17.19.19",
"name": "www",
"proxied": false,
"type": "A",
"comment": "Domain verification record",
"tags": [
"owner:dns-team"
],
"ttl": 3600
}'
profile image
bumworld 글쓴이 2024.01.21. 23:02
NavyStack
우왓~~감사합니다. ㅠ.ㅠ
도메인 이관 하려고 하는데 쉽지 않네요.
profile image
NavyStack 2024.01.21. 23:11
bumworld
우선은요 기존에 레코드가 등록되어있어야 합니다.
 
크게 순서는 아래와 같습니다.
  1. API 키 및 이메일 획득
  2. 존 ID 찾기
  3. 기존 A 레코드의 ID 찾기
  4. DNS 레코드 업데이트
API키는 글로벌로 사용하시고 작동하는 것 보고 바로 변경하세요.
권한을 엄격하게 줘서 사용하시는 것을 추천드립니다.
<br>
2. 존 ID는 overview에서 확인하셔도 되고, API로 질의 하셔도 됩니다.
curl -X GET "https://api.cloudflare.com/client/v4/zones?name=[업데이트할 도메인]" \
     -H "X-Auth-Email: [나의 이메일]" \
     -H "X-Auth-Key: [나의 api key]" \
     -H "Content-Type: application/json"

 

3. 레코드 ID는 존 ID를 사용하여 조회할 수 있습니다.

curl -X GET "https://api.cloudflare.com/client/v4/zones/[업데이트할 도메인의 Zone ID]/dns_records?type=A&name=[업데이트할 도메인]" \
     -H "X-Auth-Email: [나의 이메일]" \
     -H "X-Auth-Key: [나의 api key]" \
     -H "Content-Type: application/json"

현재 타입 A로 되어있습니다. 확인하세요

 

위의 결과로

{"result":{"id":"xxxxxxxxxxxxxxxxxxxxxxxxxxx","

이런식으로 시작하는 id가 나옵니다.

 

4. 레코드 ID를 찾았으니 업데이트 합니다.

curl -X PUT "https://api.cloudflare.com/client/v4/zones/[업데이트할 도메인의 Zone ID]/dns_records/[업데이트할 도메인의 레코드 ID]" \
     -H "X-Auth-Email: [나의 이메일]" \
     -H "X-Auth-Key: [나의 api key]" \
     -H "Content-Type: application/json" \
     --data '{"type":"A","name":"[업데이트할 도메인]","content":"[업데이트할 A레코드]","ttl":1,"proxied":false}'

 

 

도움 되셨으면 좋겠네요.

 

가끔.... 클라우드 플레어 문서가 실제 상황과 다르거나, 조금 부실한 경향이 있더라구요... ㅠㅠ

profile image
bumworld 글쓴이 2024.01.21. 23:16
NavyStack
아..Overview에 있는 zone id나 Account ID로 사용하는게 아니라 따로 조회를 해야 하는군요.
답변 감사합니다.
엄청 삽질을 했네요. ㅠ.ㅠ
함 해보고 결과 공유 하겠습니다.
profile image
NavyStack 2024.01.21. 23:19
bumworld

WebUI에 없거나, 짱박혀 있을 가능성이 높습니다.
제 블로그 글인 무료 범용 에지 인증서 변경도 WebUI에서는 못찾겠어서 문서 뒤집은거라서요... ㅎㅎ

 

혹시 새로 추가하는거라면 POST로 집어넣으시면 됩니다.

profile image
bumworld 글쓴이 2024.01.21. 23:37
NavyStack
조언해주신대로 해서 해결 했습니다.
제가 삽질한건 Overview에 있는 zone id는 동일한데 도메인의 Account ID가 다르네요.
서브도메인(www)의 id는 별도로 조회를 해야 하는것으로 보입니다.
그래서 www의 identifier를 조회 해서 업데이트를 하니 제대로 업데이트가 됩니다.
NavyStack 님 다시 한번 감사드립니다.
profile image
NavyStack 2024.01.21. 23:43
bumworld

넵 레코드별로 ID가 다릅니다.

한 도메인 내에 같은 A레코드라도 특정해서 찝어서 수정할 수 있거든요.

제가 설명이 부족했나봅니다 ㅎㅎ


도움 되셨다니 다행입니다 :)

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story