å¨ç¶ä»äºè¯ç¶²æ¶æ§ä¸ï¼åå系統ï¼DNSï¼æ®æ¼èè³ééè¦çè§è²ï¼å®å°äººé¡å¯è®çååè½æçºæ©å¨å¯èå¥çIPå°åãLinux系統å å ¶ç©©å®æ§åéæ´»æ§ï¼å¸¸è¢«ç¨ä½é¨ç½²DNSæåå¨çé¦é¸å¹³èºãæ¬æå°è©³ç´°é¡è¿°å¦ä½å¨Linuxç¶²çµ¡ä¸æ§å»ºDNS䏻徿åå¨ååé¢è§£æååæåå¨ï¼å¹¶ç°¡è¦æ¢è¨äºè¯ç¶²ååæ ¹æåå¨çéè¡æ©å¶ã
ä¸ãDNS䏻徿å卿§å»º
DNS䏻徿å卿¶æ§é鿏æåæ¥å¯¦ç¾é«å¯ç¨æ§åè² è¼åè¡¡ã主æåå¨ï¼Masterï¼è² 責ç¶è·åå§å忏ææä»¶ï¼è徿åå¨ï¼Slaveï¼å宿å¾ä¸»æåå¨åæ¥æ¸æï¼ä»¥æä¾åä½åä»½åæ¥è©¢åæµã
æ§å»ºæ¥é©ï¼
1. å®è£BINDè»ä»¶ï¼å¨Linux系統ä¸å®è£BINDï¼Berkeley Internet Name Domainï¼è»ä»¶å
ï¼å®æ¯ç®åæå»£æ³ä½¿ç¨çDNSæåå¨è»ä»¶ã
`bash
sudo apt-get install bind9 # Debian/Ubuntu
sudo yum install bind # CentOS/RHEL
`
- é
置主æåå¨ï¼ç·¨è¼¯ä¸»é
ç½®æä»¶
/etc/named.confï¼æ/etc/bind/named.confï¼ï¼å®ç¾©ååï¼Zoneï¼å¹¶æå®å忏ææä»¶è·¯å¾ãåµå»ºå°æçå忏ææä»¶ï¼å¦example.com.zoneï¼ï¼å¨å ¶ä¸æ·»å SOAè¨éãNSè¨éãAè¨éçã
- é
ç½®å¾æåå¨ï¼å¨å¾æåå¨ç
named.confä¸ï¼å樣å®ç¾©ååï¼ä½éææå ¶è§è²çºâslaveâå¹¶æå®ä¸»æåå¨çIPå°åï¼ä»¥ä¾¿èªå忥å忏æã徿åå¨ç¡éæååµå»ºååæä»¶ï¼æ¸æå°ééååå³è¼¸ï¼AXFR/IXFRï¼å¾ä¸»æåå¨ç²åã
- è¨ç½®ååå³è¼¸å®å
¨ï¼å¨ä¸»æåå¨é
ç½®ä¸ï¼ä½¿ç¨
allow-transferæä»¤éå¶å¯å¾ä¸»æåå¨åæ¥æ¸æç徿åå¨IPå°åï¼é²æ¢æªææ¬è¨ªåã
- ååèæ¸¬è©¦ï¼ååæéåBINDæåï¼ä½¿ç¨
digænslookupå·¥å ·æ¸¬è©¦ååè§£ææ¯å¦æ£å¸¸ï¼å¹¶é©è䏻徿¸æåæ¥ã
äºãåé¢è§£æååæå卿§å»º
åé¢è§£æï¼Split DNSï¼å 許DNSæå卿 ¹æå®¢æ¶ç«¯ç便ºIPå°åè¿åä¸åçè§£æçµæï¼å¸¸ç¨äºååå §å¤ç¶²è¨ªåæå¯¦ç¾å°çä½ç½®ç¸éçè² è¼åè¡¡ã
æ§å»ºæ¥é©ï¼
1. å®ç¾©è¦åï¼Viewï¼ï¼å¨BINDçnamed.confé
ç½®æä»¶ä¸ï¼ä½¿ç¨viewæä»¤åµå»ºä¸åçè¦åãæ¯åè¦åå¯ä»¥æ ¹æmatch-clientsæä»¤ï¼ééACLå表æç´æ¥IPï¼å¹é
ç¹å®ç客æ¶ç«¯å°å段ã
- çºä¸åè¦åé
ç½®ç¨ç«ååï¼å¨æ¯åè¦åå
§é¨ï¼çºåä¸ååï¼å¦
example.comï¼å®ç¾©ç¨ç«çååï¼Zoneï¼åæ¸ææä»¶ãä¾å¦ï¼ä¸åè¦åçºå §ç¶²å®¢æ¶ç«¯ï¼å¦192.168.0.0/16ï¼æä¾è§£æï¼è¿åå §ç¶²æåå¨IPï¼å¦ä¸åè¦åçºå¤ç¶²å®¢æ¶ç«¯ï¼anyï¼æä¾è§£æï¼è¿åå ¬ç¶²æåå¨IPã
- åµå»ºå¤ä»½å忏ææä»¶ï¼éå°æ¯åè¦åï¼åµå»ºå°æçå忏ææä»¶ï¼å¹¶ç¢ºä¿å ¶å §é¨çè¨éï¼å¦Aè¨éï¼æåæ£ç¢ºçç®æ¨IPï¼å §ç¶²IPæå ¬ç¶²IPï¼ã
- 測試åé¢è§£æï¼åå¥å¾å
§ç¶²åå¤ç¶²å®¢æ¶ç«¯ä½¿ç¨
digå½ä»¤æ¥è©¢åä¸ååï¼é©èæ¯å¦æ ¹ææºIPè¿åäºä¸åçIPå°åçµæã
ä¸ãäºè¯ç¶²ååæ ¹æåå¨éè¡æ©å¶
æ ¹ååæå卿¯DNSå±¤æ¬¡çµæ§çé 端ï¼å ¨çå ±æ13çµï¼é輯ä¸ï¼ééä»»ææè¡å¯¦éææ´å¤ç©çæåå¨ï¼æ ¹æåå¨ï¼ç±ICANNçµ±ä¸ç®¡çãå®åä¸ç´æ¥è§£æå ·é«ååï¼èæ¯åå²é ç´åï¼TLDï¼å¦.comã.orgã.cnï¼çæ¬å¨æåå¨å°åã
- éè¡åçï¼ç¶æ¬å°DNSæåå¨ç¡æ³å¨ç·©å䏿¾å°æåååçè§£æè¨éæï¼æå¾æ ¹æåå¨éå§è¿ä»£æ¥è©¢ãä¾å¦ï¼æ¥è©¢
www.example.comï¼æ ¹æå卿è¿åè² è²¬.comçé ç´åæåå¨çå°åï¼æ¬å°DNSåå.comæå卿¥è©¢ï¼åè è¿åexample.comçæ¬å¨æåå¨å°åï¼æ¬å°DNSåexample.comçæ¬å¨æå卿¥è©¢å°wwwçAè¨éã - ä»»ææè¡ï¼çºäºæé«å¯é æ§åé¿æéåº¦ï¼æ ¹æåå¨å»£æ³ä½¿ç¨ä»»æï¼Anycastï¼æè¡ãåä¸IPå°å被é¨ç½²å¨å ¨çå¤åå°çä½ç½®ï¼ç¨æ¶è«æ±æèªåè·¯ç±å°æè¿ææå¯ç¨çç©çæåå¨å¯¦ä¾ï¼å¾èåæ£è² è¼å¹¶å¢å¼·ææ»æè½åã
- éè¦æ§ï¼æ ¹æåå¨çç©©å®éè¡æ¯äºè¯ç¶²æ£å¸¸éä½çåºç³ãä»»ä½å¤§è¦æ¨¡æ éé½å¯è½å¼èµ·å ¨çèåçååè§£æä¸æ·ãå æ¤ï¼å ¶éçåç¶è·å ·ææ¥µé«çå®å ¨æ§åå使§è¦æ±ã
###
å¨Linuxå¹³èºä¸ï¼å©ç¨BINDè»ä»¶å¯ä»¥é«æå°æ§å»ºDNS䏻徿åå¨ååé¢è§£ææåå¨ï¼å¾èæåååè§£ææåçå¯é æ§ãå¯ç¨æ§åéæ´»æ§ãçè§£äºè¯ç¶²æ ¹æåå¨çéè¡æ©å¶æå©äºæåæ´æ·±å ¥å°èªèå ¨çDNSé«ç³»çåä½è resilienceãééåçé ç½®èé¨ç½²ï¼éäºæè¡è½å¤ çºåé¡ç¶²çµ¡ç°å¢æä¾å¼·å¤§ãæºè½çååè§£ææ¯æã