In dit artikel laat ik je zien hoe je dnsmasq kunt gebruiken om een lokale DNS-server, caching DNS-server en DHCP-server te configureren. Dus laten we beginnen.
Netwerk topologie:
Dit is de netwerktopologie van dit artikel. Hier zal ik configureren router als een DNS- en DHCP-server met dnsmasq. router heeft 2 netwerkinterfaces, een ( ens33 ) maakt verbinding met de internet en de andere ( ens38 ) maakt verbinding met een netwerkschakelaar . Alle andere hosts ( gastheer1 , gastheer2 , host3 ) op het netwerk gebruikt de DHCP-server die is geconfigureerd op de router voor automatische toewijzing van IP-adressen en de DNS-server voor naamomzetting.
Statisch IP configureren:
In mijn netwerktopologie zag je, mijn router heeft twee interfaces ens33 en ens38 . ens33 verbindt de router met internet en ens38 is verbonden met een netwerk-switch , waarmee andere computers in het netwerk verbinding maken. Ik zal DHCP moeten gebruiken om een IP-adres te krijgen voor de ens33 interface van mijn ISP voor internetverbinding. Maar de ens38 interface moet handmatig worden geconfigureerd.
Laten we het netwerk gebruiken 192.168.10.0/24 voor ens38-interface en andere computers op het netwerk. Als ik het netwerk 192.168.10.0/24 gebruik, dan is het IP-adres van de ens38 interface van de router moet 192.168.10.1/24 zijn. Dit is het IP-adres van de dnsmasq DNS-server en DHCP-server.
OPMERKING: De naam van uw netwerkinterface kan anders zijn. Wat het voor jou is, ontdek je met de ip a opdracht.
Op Ubuntu Server 18.04 LTS kunt u gebruik maken van: netplan om de netwerkinterfaces te configureren. Het standaard netplan-configuratiebestand is: /etc/netplan/50-cloud-init.yaml .
Open eerst het configuratiebestand /etc/netplan/50-cloud-init.yaml met het volgende commando:
$sudo nano /enzovoort/netplan/vijftig-cloud-init.yaml
Typ nu de volgende regels en sla het bestand op door op te drukken + x gevolgd door en en .
Start nu uw opnieuw op router met het volgende commando:
$sudoopnieuw opstarten
Zodra de router boots, moeten IP-adressen worden toegewezen zoals verwacht.
dnsmasq installeren:
dnsmasq is beschikbaar in de officiële pakketrepository van Ubuntu. U kunt het dus eenvoudig installeren met behulp van de APT-pakketbeheerder.
Ubuntu gebruikt systeem-opgelost standaard om DNS-servers en DNS-caching te beheren. Voordat u dnsmasq installeert, moet u stoppen en uitschakelen systeem-opgelost Diensten. Anders kunt u dnsmasq helemaal niet uitvoeren.
Om de . te stoppen systeem-opgelost service, voer de volgende opdracht uit:
$sudosystemctl stop systemd-opgelost
Om de . uit te schakelen systeem-opgelost service, voer de volgende opdracht uit:
$sudosystemctl systeemd-resolved uitschakelen
Standaard is de /etc/resolv.conf bestand is gekoppeld aan een ander systemd-configuratiebestand, zoals u kunt zien in de onderstaande schermafbeelding. Maar, we willen het niet meer.
Dus verwijder de /etc/resolv.conf link met het volgende commando:
$sudo rm -v /enzovoort/resolv.conf
Maak nu een nieuwe /etc/resolv.conf bestand en stel de google DNS-server in als de standaard DNS-server met de volgende opdracht:
$gooide uit 'naamserver 8.8.8.8' | sudo tee /enzovoort/resolv.conf
Werk nu de cache van de APT-pakketrepository bij met de volgende opdracht:
$sudogeschikte update
Installeer nu dnsmasq met de volgende opdracht:
$sudogeschiktinstallerendnsmasq
dnsmasq moet worden geïnstalleerd.
dnsmasq DNS-server configureren:
Het configuratiebestand van dnsmasq is /etc/dnsmasq.conf . Om dnsmasq als DNS-server te configureren, moet u dit bestand wijzigen.
De standaard /etc/dnsmasq.conf bestand bevat veel documentatie en becommentarieerde opties. Dus ik denk dat het beter is om de naam te wijzigen /etc/dnsmasq.conf bestand naar /etc/dnsmasq.conf.bk en maak een nieuwe aan.
U kunt het configuratiebestand hernoemen met de volgende opdracht:
$sudo mv -v /enzovoort/dnsmasq.conf/enzovoort/dnsmasq.conf.bk
Maak nu het configuratiebestand /etc/dnsmasq.conf als volgt:
$sudo nano /enzovoort/dnsmasq.conf
Typ nu de volgende regels en sla het bestand op door op te drukken + x gevolgd door en en .
# DNS-configuratiehaven=53
domein nodig
nep-priv
strikte volgorde
expand-hosts
domein=voorbeeld.com
OPMERKING: Wijziging voorbeeld.com naar uw eigen domeinnaam.
Start nu de dnsmasq-service opnieuw met de volgende opdracht:
$sudosystemctl herstart dnsmasq
Geen fouten. Super goed!
Nu moet je instellen 192.168.10.1 als het standaard DNS-serveradres in de /etc/resolv.conf .
Om dat te doen, open /etc/resolv.conf bestand met het volgende commando:
$sudo nano /enzovoort/resolv.conf
Typ nu in naamserver 192.168.10.1 voor de lijn naamserver 8.8.8.8 zoals weergegeven in de onderstaande schermafbeelding. Sla het bestand vervolgens op.
Dat is het.
DNS-records toevoegen:
Nu kunt u uw DNS-vermeldingen toevoegen aan de /etc/hosts het dossier.
Open eerst de /etc/hosts bestand met het volgende commando:
$sudo nano /enzovoort/gastherenTyp nu uw DNS-vermeldingen in de volgende indeling:
IP_ADDR DOMAIN_NAMEIk heb 4 inzendingen toegevoegd router.voorbeeld.com (192.168.10.1) , host1.voorbeeld.com (192.168.10.51) , host2.voorbeeld.com (192.168.10.52) , en host3.voorbeeld.com (192.168.10.53) zoals aangegeven in de onderstaande schermafbeelding. U kunt zoveel DNS-vermeldingen toevoegen als u wilt.
Als u klaar bent, slaat u het bestand op door op te drukken + x gevolgd door en en .
Start nu de dnsmasq-service opnieuw met de volgende opdracht:
$sudosystemctl herstart dnsmasq
DNS-server testen:
Zoals u kunt zien, werkt de lokale DNS-resolutie.
$jijrouter.voorbeeld.com
Internetnaamomzetting werkt ook.
$jijGoogle com
DHCP-server configureren:
Om de DHCP-server te configureren, opent u het dnsmasq-configuratiebestand /etc/dnsmasq.conf weer als volgt:
$sudo nano /enzovoort/dnsmasq.conf
Voeg nu de gemarkeerde regels toe aan het einde van het bestand. Sla het bestand vervolgens op.
# DHCP-configuratiedhcp-bereik=192.168.10.50,192.168.10.240,255.255.255.0,24h
dhcp-optie=optie:router,192.168.10.1
dhcp-optie=optie:dns-server,192.168.10.1
dhcp-option=optie:netmask,255.255.255.0
dhcp-host=00:0C:29:A5:BD:4A,192.168.10.51
dhcp-host=00:0C:29:A5:BD:5B,192.168.10.52
dhcp-host=00:0C:29A5:BD:6C,192.168.10.53
Hier, dhcp-bereik wordt gebruikt om het bereik van IP-adressen in te stellen dat de DHCP-server aan hosts zal toewijzen.
dhcp-optie wordt gebruikt om de gateway in te stellen ( optie:router ), DNS-serveradres ( optie:dns-server ), en netmasker ( optie:netmask )
dhcp-host wordt gebruikt om specifieke IP-adressen voor hosts in te stellen, afhankelijk van de opgegeven MAC-adressen.
Start nu de dnsmasq-service opnieuw met de volgende opdracht:
$sudosystemctl herstart dnsmasq
DHCP-server testen:
Zoals u kunt zien, is de computer gastheer1 heb het IP-adres 192.168.10.51/24 van de DHCP-server.
DNS-resolutie werkt ook vanuit gastheer1 .
Dezelfde manier, gastheer2 en host3 krijgt ook het juiste IP-adres van de DHCP-server en DNS-resolutie werkt op elk van hen.
Waar te gaan volgende:
Als je meer wilt weten over dnsmasq, check dan het standaard configuratiebestand af /etc/dnsmasq.conf (nu omgedoopt tot /etc/dnsmasq.conf.bk ). Het heeft een gedetailleerde beschrijving van alle configuratie-opties van dnsmasq.
$minder /enzovoort/dnsmasq.conf.bk
Standaard dnsmasq-configuratiebestand van Ubuntu Server 18.04 LTS.
Dus zo configureer je dnsmasq op Ubuntu Server 18.04 LTS. Bedankt voor het lezen van dit artikel.