Khi tắt DHCP trên card mạng (NIC), thông thường, bạn sẽ gán một địa chỉ IP tĩnh để duy trì kết nối. Tuy nhiên, trong một số trường hợp, việc này có thể dẫn đến mất kết nối hoàn toàn, ngay cả khi đã cấu hình gateway mặc định (ví dụ: 192.168.1.0/24). Bài viết này sẽ đi sâu vào một vấn đề thường gặp: khi tắt DHCP và gán địa chỉ IP tĩnh 192.168.1.8, kết nối bị ngắt mặc dù cấu hình ban đầu có vẻ đúng.
Vấn đề là, mặc dù địa chỉ IP tĩnh 192.168.1.8 (ví dụ: 192.168.1.8/32) đã được gán (alias), và địa chỉ IP động được cấp bởi DHCP (ví dụ: 192.168.1.202) hoạt động bình thường, thì kết nối với 192.168.1.8 lại không thành công.
Khi tắt DHCP, các lệnh ping
từ bên ngoài thiết bị đến 192.168.1.8 không nhận được phản hồi. Tuy nhiên, khi ping từ giao diện IPMI bên trong thiết bị đến 192.168.1.8, phản hồi lại được nhận, cho thấy cấu hình IP có vẻ ổn.
Khi DHCP được bật lại và thử ping đến alias 192.168.1.8, bạn có thể gặp phải tình huống sau:
[bran@r911vm89 Downloads]$ ping 192.168.1.8
PING 192.168.1.8 (192.168.1.8) 56(84) bytes of data.
From 192.168.1.202 icmp_seq=2 Redirect Host(New nexthop: 192.168.1.8)
From 192.168.1.202 icmp_seq=3 Redirect Host(New nexthop: 192.168.1.8)
From 192.168.1.202 icmp_seq=4 Redirect Host(New nexthop: 192.168.1.8)
--- 192.168.1.8 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3051ms
Lỗi “Redirect Host” chỉ ra rằng máy tính đang cố gắng gửi các gói tin trực tiếp đến 192.168.1.8 thay vì thông qua gateway mặc định. Điều này cho thấy vấn đề nằm ở việc cấu hình routing.
Khi DHCP được bật, bảng định tuyến (routing table) có thể hiển thị như sau:
truenas% ip route
default via 192.168.1.1 dev enp70s0f0
172.16.0.0/16 dev kube-bridge proto kernel scope link src 172.16.0.1
192.168.1.0/24 dev enp70s0f0 proto kernel scope link src 192.168.1.202
Dòng “default via 192.168.1.1 dev enp70s0f0” chỉ định rằng tất cả các lưu lượng truy cập không thuộc mạng cục bộ (192.168.1.0/24) sẽ được chuyển đến gateway 192.168.1.1.
Tuy nhiên, khi DHCP bị tắt, bảng định tuyến có thể chỉ còn lại:
truenas% ip route
172.16.0.0/16 dev kube-bridge proto kernel scope link src 172.16.0.1
Điều này cho thấy rằng khi DHCP bị tắt, tuyến đường mặc định (default route) trỏ đến gateway 192.168.1.1 đã bị xóa. Điều này giải thích tại sao bạn không thể truy cập bất kỳ địa chỉ nào bên ngoài mạng cục bộ, bao gồm cả internet.
Để khắc phục, bạn cần cấu hình lại tuyến đường mặc định một cách thủ công.
Cấu hình mạng có thể hiển thị như sau:
[truenas] network configuration> config
+----------------------+------------------+
| id | 1 |
| hostname | truenas |
| domain | local |
| ipv4gateway | 192.168.1.1 |
| ipv6gateway | |
| nameserver1 | 192.168.1.1 |
| nameserver2 | |
| nameserver3 | |
| httpproxy | |
| hosts | <empty list=""> |
| domains | <empty list=""> |
| service_announcement | <dict> |
| activity | <dict> |
| hostname_local | truenas |
| state | <dict> |
+----------------------+------------------+
</dict></dict></dict></empty></empty>
Giải pháp là thêm lại tuyến đường mặc định bằng lệnh:
ip route add 192.168.1.0/24 dev enp7s0f0
Trong đó:
192.168.1.0/24
là mạng cục bộ của bạn.enp7s0f0
là tên của card mạng (NIC) của bạn. Thay thế bằng tên card mạng thích hợp trên hệ thống của bạn. Bạn có thể tìm thấy tên card mạng bằng lệnhip addr
.
Sau khi thực hiện lệnh này, bạn sẽ có thể truy cập giao diện web (webUI), đăng nhập và lưu lại cấu hình mà không gặp vấn đề gì. Đảm bảo rằng bạn lưu cấu hình này để tuyến đường tĩnh được giữ lại sau khi khởi động lại.
Tóm lại, vấn đề mất kết nối sau khi tắt DHCP và gán IP tĩnh 192.168.1.8 thường do thiếu cấu hình tuyến đường mặc định. Việc thêm lại tuyến đường này một cách thủ công sẽ giải quyết vấn đề và khôi phục kết nối mạng.