Thoông tin cấu hình domain host linux

Cấu hình DNS client trên Linux

Chúng ta biết là vai trò của DNS quan trọng trong việc phân giải tên miền tương ứng địa chỉ ip máy chủ để truy cập đến. Nên trong hệ thống máy chủ Linux có 3 file cần lưu ý khi cấu hình DNS services ở mức người dùng (client). Đó là :
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf

1> File /etc/hosts
File hosts về cơ bản đơn giản chỉ là chứa dữ liệu về domain name ở mức local name Database do chính chúng ta quy định hoặc được quy định mặc định. Thông thường thì với tất cả hệ thống thì máy tính hoạt động luôn kiểm tra file hosts trước để xem domain mình cần tìm có được quy định địa chỉ IP nào không ? Không có thì sẽ query hỏi DNS Nameserver được quy định trong file /etc/resolv.conf .
Cấu hình của /etc/hosts :

# vi /etc/hosts
127.0.0.1 localhost localhost.domain
192.168.1.1 cuongquach.com cuongquach
192.168.1.2 linux.cuong.quach.com linux

Như vậy khi DNS client truy vấn tìm địa chỉ IP của domain cuongquach.com , sẽ thấy trong file /etc/hosts có thông tin tương ứng là 192.168.1.1 nên trả về kết quả cho người sử dụng.

2> File /etc/resolv.conf
DNS client sử dụng một chương trình thư viện động có tên là “resolver” để xác định máy chủ remote có ip nào bằng cách gửi query hỏi các DNS database ở các Name Server mà chúng ta quy định trong file /etc/resolv.conf . Như vậy file /etc/resolv.conf dùng để cấu hình các danh sách DNS Name Server máy chủ và ta sẽ cấu hình như sau :

# vi /etc/resolv.conf
search domain.com
; DNS NameServer Google
nameserver 8.8.8.8
nameserver 8.8.4.4
; DNS NameServer OpenDNS
nameserver 208.67.222.222
nameserver 208.67.220.220

Danh sách các nameserver sẽ hoạt động theo thứ tự từ trên xuống khi query thất bại ở DNS Nameserver cụ thể nào đó.
(Mình sẽ cập nhật phần ý nghĩa của “search” sau)

3> File /etc/nsswitch.conf
File /etc/nsswitch.conf khi cấu hình cho hoạt động DNS client sẽ được sử dụng để xác định thứ tự hoạt động giữa resolver hoặc /etc/hosts. Bên cạnh đó còn được sử dụng cho hoạt động NIS nhưng mình sẽ không bàn ở đây. Cấu hình:

# vi /etc/nsswitch.conf
hosts: dns files

hoặc

hosts: files dns

Với phần cấu hình (1) ở trên thì, client sẽ ưu tiên đi hỏi DNS Nameserver trước dù cho file host đã cấu hình về domain name tương ứng, tức file /etc/hosts sẽ được hỏi khi mà query DNS Nameserver thất bại. Chúng ta sẽ có thể thử nghiệm với việc thêm domain name vào file hosts rồi ping thử xem nó sẽ ra ip nào trước nếu domain name đó có tồn tại trỏ về ip cụ thể trên Internet sau. Cấu hình (2) thì đảo ngược vị trí thứ tự thôi.

Mình đã hoàn thành bài hướng dẫn cấu hình DNS client.

Chúc các bạn thành công.

Nội dung

  • Kết nối mạng và cấu hình IP: ifconfig
  • Một loại cơ chế điều khiển: ping
  • Bảng định tuyến IP: route
  • Theo dõi chuyển tiếp cho một mục tiêu cụ thể: traceroute
  • Thông tin domain: whois
  • Nhận thông tin về địa chỉ mục tiêu: host
  • Xem bản ghi DNS: dig
  • Đối sánh địa chỉ IP-MAC: arp
  • Các kết nối do hệ thống thực hiện: tcpdump
  • Hướng dẫn cài đặt DNS trên Linux

Các lệnh quản lý mạng cơ bản được sử dụng nhiều nhất trong Linux kèm theo cách chỉnh sửa cài đặt DNS đều có đầy đủ trong bài viết sau. Mời bạn đọc dành ít phút để theo dõi. 

Linux, giống như các hệ điều hành tiên tiến khác, hỗ trợ giao tiếp qua mạng. Trong Linux, tất cả cài đặt được lưu trữ trong các file có thể truy cập được. Bằng cách này, một số file nhất định có thể được chỉnh sửa và các cài đặt cần thiết có thể được thực hiện dễ dàng. Bạn có thể dễ dàng quản lý các lệnh được sử dụng cho cài đặt mạng và DNS từ màn hình lệnh.

Kết nối mạng và cấu hình IP: ifconfig

Lệnh ifconfig cho phép bạn kiểm tra và thay đổi kết nối mạng và cài đặt cấu hình IP có sẵn trong hệ thống.

ifconfig

Thoông tin cấu hình domain host linux

Đầu tiên, bạn xem thông tin eth0. eth0 là phần hiển thị thông tin về card Ethernet của bạn. Nếu các card Ethernet khác được kết nối với hệ thống, chúng sẽ có tên tương ứng là eth2 và eth2.

lo đại diện cho chính máy tính, tức là localhost.

Nếu bạn đang sử dụng môi trường mạng không dây, bạn cũng có thể xem thông tin wlan0. wlan0 có nghĩa là card mạng không dây.

Thay vì sử dụng lệnh ifconfig theo cách này, bạn có thể liệt kê từng thông tin mong muốn. Ví dụ, nếu bạn chỉ muốn liệt kê thông tin card Ethernet, lệnh ifconfig eth0 là đủ.

ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
       inet6 fe00::000:00xx:xx00:0x00  prefixlen 64  scopeid 0x20&lt;link&gt;
       ether 08:00:00:00:0x:00  txqueuelen 1000  (Ethernet)
       RX packets 11  bytes 3310 (3.2 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 25  bytes 3050 (2.9 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Ví dụ, bạn đã thấy ở trên rằng địa chỉ IP cục bộ của eth0 là 10.0.2.15. Để thay đổi địa chỉ IP này thành 10.0.2.13, hãy nhập lệnh sau:

sudo ifconfig eth0 10.0.2.13

Thoông tin cấu hình domain host linux

Với ifconfig, bạn có thể thay đổi thông tin ở đây, cũng như điều chỉnh các thẻ thông tin mà bạn gặp trong đầu ra. Lệnh ifconfig card_name down có thể xóa thẻ mong muốn khỏi phần hiển thị, bạn có thể hiển thị lại thẻ này với lệnh ifconfig card_name up.

sudo ifconfig lo down

Thoông tin cấu hình domain host linux

Như có thể thấy từ đầu ra, tham số down làm cho thẻ lo bây giờ không thể nhìn thấy.

sudo ifconfig lo up

Thoông tin cấu hình domain host linux

  • Tổng hợp các lệnh Netstat trong Linux để giám sát và quản lý mạng
  • Hướng dẫn sử dụng lệnh grep trong Linux qua 10 ví dụ

Một loại cơ chế điều khiển: ping

Lệnh ping kiểm tra xem giao tiếp có được thiết lập giữa mục tiêu và hệ thống của bạn hay không. Ví dụ, bạn có thể truy vấn tốc độ giao tiếp giữa bạn và Google.

ping google.com

Thoông tin cấu hình domain host linux

Trong khi thực hiện việc này, tác giả bài viết đã kết thúc quá trình này bằng tổ hợp Ctrl + C sau gói truy vấn thứ 5. Nếu sử dụng một lệnh như ping -c 4 google.com, bạn chỉ gửi 4 gói truy vấn. Quá trình sẽ kết thúc sau khi số lượng gói truy vấn hết.

ping -c 4 google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=111 time=79.0 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=111 time=73.5 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=111 time=72.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=111 time=75.1 ms
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3014ms
rtt min/avg/max/mdev = 72.710/75.089/79.030/2.432 ms

Bảng định tuyến IP: route

Lệnh route cho phép bạn xem nội dung của bảng định tuyến IP trên hệ thống. Bạn có thể gõ lệnh route -n trong console để thực hiện việc này.

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.1        0.0.0.0         UG    100    0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0

Địa chỉ gateway ở đây là địa chỉ chuyển tiếp được sử dụng khi truyền từ mạng cục bộ sang mạng Internet.

Theo dõi chuyển tiếp cho một mục tiêu cụ thể: traceroute

Lệnh traceroute cho bạn biết host nào gói được gửi đến một đích cụ thể đã đi qua. Lần này, hãy lấy địa chỉ đích www.makeuseof.com làm ví dụ.

traceroute www.makeuseof.com      
traceroute to www.makeuseof.com (54.157.137.27), 30 hops max, 60 byte packets
1  10.0.2.1 (10.0.2.1)  0.430 ms  0.326 ms  0.414 ms
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  * * *

Như bạn có thể thấy, để có thể được chuyển đến địa chỉ mong muốn, trước tiên, một yêu cầu được gửi đến địa chỉ 10.0.2.1. Bạn có thể sử dụng lệnh traceroute để xem các đường dẫn định tuyến như vậy và tìm hiểu bất kỳ sự cố định tuyến nào xảy ra trong mạng.

Thông tin domain: whois

Truy vấn whois chứa thông tin như khi domain được hình thành, thời hạn của domain là bao lâu, v.v… Hãy lấy google.com làm ví dụ về truy vấn whois.

whois google.com            
  Domain Name: GOOGLE.COM
  Registry Domain ID: 2138514_DOMAIN_COM-VRSN
  Registrar WHOIS Server: whois.markmonitor.com
  Registrar URL: http://www.markmonitor.com
  Updated Date: 2019-09-09T15:39:04Z
  Creation Date: 1997-09-15T04:00:00Z
  Registry Expiry Date: 2028-09-14T04:00:00Z
  Registrar: MarkMonitor Inc.
  Registrar IANA ID: 292
  Registrar Abuse Contact Email: 
  Registrar Abuse Contact Phone: +1.2083895740
  Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
  Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
  Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
  Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
  Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
  Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
  Name Server: NS1.GOOGLE.COM
  Name Server: NS2.GOOGLE.COM
  Name Server: NS3.GOOGLE.COM
  Name Server: NS4.GOOGLE.COM
  DNSSEC: unsigned
  URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/

Ngoài ra, bạn có thể tránh phải sử dụng màn hình lệnh bằng cách sử dụng các trang web tốt nhất để tra cứu thông tin whois miễn phí.

Nhận thông tin về địa chỉ mục tiêu: host

Lệnh host cho phép bạn lấy thông tin về địa chỉ đích. Với lệnh host, bạn có thể truy cập tên miền từ địa chỉ IP và địa chỉ IP từ tên miền.

Thoông tin cấu hình domain host linux

Xem bản ghi DNS: dig

Lệnh dig (domain information groper) là một lệnh mạng Linux phổ biến được sử dụng để tra cứu các bản ghi DNS.

dig google.com
; <<>> DiG 9.17.21-1-Debian <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64917
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com.                    IN      A
;; ANSWER SECTION:
google.com.             177     IN      A       216.58.206.174
;; Query time: 3 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Thu Apr 14 19:25:15 EDT 2022
;; MSG SIZE  rcvd: 44

Ngoài ra, bạn có thể kiểm tra các bản ghi NS (Nameserver) bằng lệnh dig. Bạn có thể sử dụng lệnh -t NS cho việc này.

dig google.com -t NS
; <<>> DiG 9.17.21-1-Debian <<>> google.com -t NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41881
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com.                    IN      NS
;; ANSWER SECTION:
google.com.             70621   IN      NS      ns3.google.com.
google.com.             70621   IN      NS      ns2.google.com.
google.com.             70621   IN      NS      ns4.google.com.
google.com.             70621   IN      NS      ns1.google.com.
;; Query time: 3 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Thu Apr 14 19:34:38 EDT 2022
;; MSG SIZE  rcvd: 100

Đối sánh địa chỉ IP-MAC: arp

Lệnh arp hiển thị các bảng lưu giữ ánh xạ địa chỉ IP-MAC.

arp                          
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.1                 ether   52:54:00:12:35:00   C                     eth0
10.0.2.3                 ether   08:00:27:66:24:25   C                     eth0

Các kết nối do hệ thống thực hiện: tcpdump

Lệnh tcpdump cho phép bạn xem ngay các kết nối được tạo bởi hệ thống và các kết nối được thực hiện với hệ thống.

# tcpdump       
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
19:44:59.746452 IP 10.0.2.15.48657 &gt; homerouter.cpe.domain: 14329+ A? www.makeuseof.com. (37)
19:44:59.746574 IP 10.0.2.15.48657 &gt; homerouter.cpe.domain: 39924+ AAAA? www.makeuseof.com. (37)
19:44:59.770573 IP 10.0.2.15.44391 &gt; homerouter.cpe.domain: 44735+ A? content-signature-2.cdn.mozilla.net. (53)
19:44:59.770685 IP 10.0.2.15.44391 &gt; homerouter.cpe.domain: 31664+ AAAA? content-signature-2.cdn.mozilla.net. (53)

Ngoài ra, nếu bạn muốn theo dõi các liên kết trực tiếp mà không cần phân giải địa chỉ, bạn có thể sử dụng lệnh tcpdump -n.

# tcpdump -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
19:47:41.327149 IP 10.0.2.15.43892 &gt; 192.168.1.1.53: 44991+ A? content-signature-2.cdn.mozilla.net. (53)
19:47:41.327574 IP 10.0.2.15.43892 &gt; 192.168.1.1.53: 46778+ AAAA? content-signature-2.cdn.mozilla.net. (53)
19:47:41.425041 IP 192.168.1.1.53 > 10.0.2.15.43892: 44991 5/0/0 CNAME d2nxq2uap88usk.cloudfront.net., A 18.66.248.5, A 18.66.248.40, A 18.66.248.112, A 18.66.248.105 (157)
19:47:41.425042 IP 192.168.1.1.53 > 10.0.2.15.43892: 46778 9/0/0 CNAME d2nxq2uap88usk.cloudfront.net., AAAA 2600:9000:224a:e400:a:da5e:7900:93a1, AAAA 2600:9000:224a:1c00:a:da5e:7900:93a1, AAAA 2600:9000:224a:9400:a:da5e:7900:93a1, AAAA 2600:9000:224a:8200:a:da5e:7900:93a1, AAAA 2600:9000:224a:c00:a:da5e:7900:93a1, AAAA 2600:9000:224a:8e00:a:da5e:7900:93a1, AAAA 2600:9000:224a:9a00:a:da5e:7900:93a1, AAAA 2600:9000:224a:a400:a:da5e:7900:93a1 (317)
19:47:42.470901 IP 10.0.2.15.44369 &gt; 192.168.1.1.53: 28874+ A? safebrowsing.googleapis.com. (45)

Hướng dẫn cài đặt DNS trên Linux

So với các hệ điều hành khác, việc cài đặt DNS trên Linux khá dễ dàng. Để thực hiện việc này, bạn có thể thực hiện một số thay đổi đối với file etc/resolutionv.conf nơi lưu trữ thông tin DNS.

# cat etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.1.1

Nếu muốn thêm DNS mới tại đây, bạn có thể sử dụng lệnh echo.

# echo nameserver 8.8.8.8 > etc/resolv.conf
# echo nameserver 8.8.4.4 >> etc/resolv.conf

Sau khi thực hiện các bổ sung này, khi bạn duyệt lại file etc/resolutionv.conf, bạn sẽ thấy rằng các thay đổi mong muốn đã được thực hiện.

# cat etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Bên trong thư mục /etc/, có một file khác được gọi là hosts hoạt động như một domain nameserver. File này được kiểm tra khi thực hiện phân giải tên miền trong hệ thống.

# cat etc/hosts
127.0.0.1       localhost
127.0.1.1       kali
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Linux là một trong những hệ điều hành được sử dụng rộng rãi nhất. Biết các lệnh chính xác được sử dụng trong Linux sẽ rất có lợi trong việc tiết kiệm thời gian và công sức. Khi cấu hình mạng Linux và tìm kiếm bất kỳ sự cố nào có thể xảy ra trong mạng, bạn có thể sử dụng các lệnh mạng Linux dã nêu trên.

Như vậy là bạn đã biết thêm về 10 lệnh quản lý mạng và cài đặt DNS trong Linux hữu ích nhất để có thể thực hành ngay lập tức. Nếu có bất kỳ câu hỏi nào, hãy comment xuống bên dưới để được chúng tôi hỗ trợ nhé.

Nguồn bài tham khảo: Quantrimang 

Thoông tin cấu hình domain host linux