Cấu hình định tuyến tĩnh trong Linux Trong bài này, mình sẽ trình bày cách cấu hình định tuyến tĩnh trên Linux. Hệ điều hành sử dụng là CentOS 5.5. Mô hình sử dụng như sau:
I/ Cấu hình IP: Cấu hình IP trên máy làm Router gồm có 2 Card là eth1 và eth0. Card eth1 nối với router kế tiếp, card eth0 nối với mạng bên trong. Cấu hình IP của máy làm Router 1:
Cấu hình IP của máy làm Router 2:
Các máy thuộc mạng bên trong có một card mạng eth0. Nối trực tiếp với Router và trỏ Default Gateway về IP của Router được nối.
Cấu hình IP của máy thuộc mạng 127.16.2.0/24
Cấu hình IP của máy thuộc mạng 172.16.3.0/24
Tiến hành kiểm tra sự liên lạc giữa 2 máy thuộc mạng 172.16.2.2/24 và 172.16.3.2/24 bằng lệnh ping. Kết quả: Destination Net Unreachable => Từ máy này ko thể tới được máy kia. Kết quả ping từ máy 172.16.3.2
Kết quả ping từ máy 172.16.2.2
Để các máy khác mạng có thể liên lạc được với nhau, ta cần cấu hình định tuyến! II - Tiến hành cấu hình Static Route: Ta xem qua nội dung bảng Routing của các máy làm router ở thời điểm hiện tại. Bảng Routing của máy 172.16.1.1
Bảng Routing của máy 172.16.1.2
Các bảng Routing trên không hề chứa các đường route tới các mạng khác => 2 máy nêu ở trên không liên lạc được với nhau. Trước khi đi vào cấu hình Routing, trên 2 máy làm Router mở file sysctl.conf vi /etc/sysctl.conf
Giá trị
net.ipv4.ip_forward = 0
đổi thành
net.ipv4.ip_forward = 1
=> Lưu lại file.
Để cấu hình Route, ta có thể sử dụng lệnh Route add hoặc cấu hình trực tiếp bằng file. Ở đây mình sẽ cấu hình trên file. Trên máy Router, vào /etc/sysconfig/network-scripts/ và tạo file với là route-ethX với X là số hiệu của Card hướng ra mạng kế tiếp. Ví dụ:Trên máy Router 172.16.1.1 có nội dung file route-eth1 như sau 172.16.3.0/24 via 172.16.1.2 dev eth1
cách đặt tên
Ở dòng trên:
172.16.3.0/24 là mạng cần đi tới 172.16.1.2 là địa chỉ IP của Router kế tiếp (Next hop) eth1 là Card hướng ra Router kế tiếp đó Sau khi cấu hình file 172.16.1.1 xong, tiến hành khởi động lại dịch vụ mạng service network restart
Bây giờ kiểm tra lại bảng định tuyến của máy Router 172.16.1.1 đã có đường mạng 172.16.3.0/24
Tương tự trên máy Router 172.16.1.2 ta cũng thêm 1 file mới là route-eth1 với nội dung 172.16.2.0/24 via 172.16.1.1 dev eth1
Khởi động lại dịch vụ mạng và kiểm tra bảng định tuyến máy Router 172.16.1.2
Cấu hình định tuyến tĩnh như vậy là xong. Thử kiểm tra lại kết nối giữa 2 máy 172.16.2.2 và 172.16.3.2 bằng lệnh ping sẽ có kết quả như hình dưới.
Định tuyến động trong Linux s ử dụng RIP Trong bài trước, mình đã trình bày cách cấu hình định tuyến tĩnh trên Linux sử dụng hệ điều hành CentOS. Trong bài này, trình bày các cách cấu hình định tuyến động. Bài đầu tiên sẽ là định tuyến động sử dụng Routing Information Protocol . (RIP) I - Về RIP:
RIP là giao thức định tuyến vector khoảng cách điển hình, đăng gửi toàn bộ routin g table ra tất cả các active interface đều đặn theo chu kỳ là 30 giây. RIP chỉ sử dụng metric là hop count để tính ra tuyến đường tốt nhất tới remote network. Thuật toán màRIP sử dụng để xây dựng nên routing table là Bellman -Ford. II – Mô hình:
Mình sử dụng lại mô hình của bài định tuyến tĩnh ở bài trước. Trong này sẽ có 4 máy chạy hệ điều hành CentOS. Các máy có Card mạng và IP như hình bên dưới.
Như ta thấy, 2 máy tính có IP là 172.16.3.2 và 172.16.2.2 khác mạng nên chúng không liên lạc được với nhau!. Chúng ta sẽ tiến hành cấu hình định tuyế trên 2 máy CentOS còn lại, đóng vai trò là Router. III – Cài đặt phần mềm định tuyến: Về Quagga: Quagga là gói phần mềm định tuyến chạy trên các hệ điều hành Linux hỗ trợ các giao thức định tuyến như RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP -4, và BGP-4+. Quagga hỗ trợ định tuyến tốt cả trên nền IPv4 lẫn IPv6 . Quagga thực ra là phiên bản được ”kế thừa” từ Zebra đã ngưng phát triển từ lâu! . Cài đặt Quagga: Bạn có thể download Quagga 0.99.17 tại đây: http://centos.alt.ru/pub/quagga/0.99.17/RHEL/RPMS/i386/quagga-0.99.171.el5.i386.rpm
Sau khi tải về xong, sử dụng lệnh để cài đặt nó: rpm – ivh quagga-0.99.17-1.el5.i386.rpm
IV – Cấu hình định tuyến:
Mặc định, các file cấu hình định tuyến của Quagga sẽ được chứa ở thư mục /etc/quagga/. Đầu tiên chúng ta sẽ cấu hình file zebra.conf Gõ lệnh: vi /etc/quagga/zebra.conf
Thiết đặt file có nội dung như sau: hostname khanh.com.vn password zebra enable password zebra Trong đó, zebra chính là mật khẩu!. Tiến hành lưu lại file zebra.conf và khởi động dịch vụ zebra: service zebra start
Tiếp tục, ta sử dụng Telnet để cấu hình IP và định tuyến. Gõ lệnh kết nối và đăng nhập với mật khẩu “zebra” đã tạo ở trên. Gõ lệnh: telnet 127.0.0.1 2601
Sau khi đăng nhập thành công. Tiến hành cấu hình IP như hình dưới Với 172.16.2.1/24 và 172.16.1.1/24 lần lượt là IP của 2 card eth0 và eth1 của CentOS làm Router.
đây. máy
Sau khi cấu hình IP xong, khởi động lại dịch vụ zebra: service zebra restart Chú ý: Nếu trong quá trình lưu file zebra.conf gặp lỗi Can't open configuration file /etc/zebra/zebra.conf thì bạn làm như sau: vi /etc/selinux/config Đổi SENLINUX=enforcing thành SELINUX=permissive
=> Khởi động lại máy. Tiếp tục ta tiến hành cấu hình định tuyến RIP. Gõ lệnh vi /etc/quagga/ripd.conf
Lưu file trên với nội dung như sau: hostname khanh.com.vn-rip password zebra enable password zebra Sau đó khởi động dịch vụ ripd: service ripd start
Tiến hành telnet vào cổng 2602 (không phải 2601 như trên đâu nhé
)
Đăng nhập thành công. Tiến hành cấu hình định tuyến RIP như hình dưới đây. Với 172.16.1.0/24 và 172.16.2.0/24là địa chỉ mạng mà máy CentOS làm Router đang kết nối trực tiếp tới.
Tiến hành khởi động lại dịch vụ ripd service ripd restart Vậy là đã cấu hình xong trên máy
Router thứ 1. Ở máy Router thứ 2 ta thiết lập hoàn
toàn tương tự Sau khi cấu hình file zebra.conf như ở trên xong. Tiến hành telnet vào cổng 2601
Thiết đặt IP các card eth0 và eth1
Tương tự, ta tiếp tục cấu hình nội dung file ripd.conf như ở máy Router 1. Sau đó khởi động dịch vụ ripd
Tiến hành telnet vào cổng 2602
Khai báo các mạng mà máy Router 2 kết nối trực tiếp tới.
Sau khi cấu hình định tuyến trên 2 máy Router xong. Tiến hành kiểm tra lại bảng định tuyến của 2 máy Router này. Nếu cấu hình thành công thì trong bảng định tuyến ta sẽ có đường NET nhưng hình bên dưới.
Chú ý: Trong RIP thì cứ 30s Router sẽ
cập nhật lại nội dung bảng định tuyến OK. Bây giờ kiểm tra kết nối giữa 2 máy 172.16.2.2 và 172.16.3.2
Định tuyến động trong Linux s ử dụng OSPF
.
Trong bài trước, mình đã trình bày cách định tuyến động trong Linux sử dụng . Tiếp tục với định tuyến động, trong bài này mình sẽ trình bày cách cấu RIP hình định tuyến động trên Linux sử dụng Open Shortest Path First (OSPF). I – Về OSPF: OSPF là giao thức định tuyến dạng Link -Sate dựa trên chuẩn được phát triển để thay thế các phương thức Distance Vector (RIP sử dụng). OSPF phù hợp với các mạng lớn, có khả năng mở rộng, không xảy ra loop trong mạng. Các ưu điểm của OSPF: Tốc độ hội tụ nhanh. Hỗ trợ mạng con (VLSM). Có thể áp dụng cho mạng lớp. Chọn đường theo trạng thái đường link hiệu quả hơn Distance Vector. Chọn đường đi linh họat hơn. Hỗ trợ xác thực (Authenticate). II – Mô hình: Mình sử dụng lại mô hình của bài định tuyến trước. Trong này sẽ có 4 máy chạy hệ điều hành CentOS. Các máy có Card mạng và IP như hình bên dưới.
Như ta thấy, 2 máy tính có IP là 172.16.3.2 và 172.16.2.2 khác mạng nên chúng không liên lạc được với nhau!. Chúng ta sẽ tiến hành cấu hình định tuyế trên 2 máy CentO S còn lại, đóng vai trò là Router. III – Cài đặt phần mềm định tuyến: Về Quagga: Quagga là gói phần mềm định tuyến chạy trên các hệ điều hành Linux hỗ trợ các giao thức định tuyến như RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP -4, và BGP-4+. Quagga hỗ trợ định tuyến tốt cả trên nền IPv4 lẫn IPv6 . Quagga thực ra là phiên bản được ”kế thừa” từ Zebra đã ngưng phát triển từ lâu! . Cài đặt Quagga: Bạn có thể download Quagga 0.99.17 tại đây: http://centos.alt.ru/pub/quagga/0.99.17/RHEL/RPMS/i386/quagga-0.99.171.el5.i386.rpm
Sau khi tải về xong, sử dụng lệnh để cài đặt nó : rpm – ivh quagga-0.99.17-1.el5.i386.rpm
IV – Cấu hình định tuyến:
Mặc định, các file cấu hình định tuyến của Quagga sẽ được chứa ở thư mục /etc/quagga/. Đầu tiên chúng ta sẽ cấu hình file zebra.conf Gõ lệnh: vi /etc/quagga/zebra.conf
Thiết đặt file có nội dung như sau: hostname khanh.com.vn password zebra enable password zebra Trong đó, zebra chính là mật khẩu!. Tiến hành lưu lại file zebra.conf và khởi động dịch vụ zebra: service zebra start
Tiếp tục, ta sử dụng Telnet để cấu hình IP và định tuyến. Gõ lệnh kết nối và đăng nhập với mật khẩu “zebra” đã tạo ở trên. Gõ lệnh: telnet 127.0.0.1 2601
Sau khi đăng nhập thành công. Tiến hành cấu hình IP như hình dưới đây. Với 172.16.2.1/24 và 172.16.1.1/24 lần lượt là IP của 2 card eth0 và eth1 của máy CentOS làm Router.
Sau khi cấu hình IP xong, khởi động lại dịch vụ zebra: service zebra restart Chú ý: Nếu trong quá trình lưu file zebra.conf gặp lỗi Can't open configuration file /etc/zebra/zebra.conf thì bạn làm như sau: vi /etc/selinux/config Đổi SENLINUX=enforcing thành SELINUX=permissive
=> Khởi động lại máy. - Tiếp tục, ta tiến hành cấu hình định tuyến động sử dụng OSPF: vi /etc/quagga/ospfd.conf
Lưu file trên với nội dung như sau: hostname khanh.com.vn-ospf password zebra enable password zebra
Sau đó khởi động dịch vụ ospfd: service ospfd start
Tiến hành telnet vào cổng 2604
Đăng nhập thành công. Tiến hành cấu hình định tuyến RIP như hình dưới đây. Với 172.16.1.0/24 và 172.16.2.0/24là địa chỉ mạng mà máy CentOS làm Router đang kết nối trực tiếp tới. Sử dụng area 0
Vậy là đã cấu hình xong trên máy Router thứ 1. Ở máy Router thứ 2 ta thiết lập hoàn toàn tương tự . Trên máy Router 2. Sau khi cấu hình file zebra.conf như ở trên xong. Tiến hành telnet vào cổng 2601
Thiết đặt IP các card eth0 và eth1
Tương tự, ta tiếp tục cấu hình nội dung file ospfd.conf như ở máy Router 1. Sau đó khởi động dịch vụ ospfd.conf service ospfd start
Tiến hành telnet vào cổng 2604
Khai báo các mạng mà máy Router 2 kết nối trực tiếp tới.
Sau khi cấu hình định tuyến trên 2 máy Router xong. Tiến hành kiểm tra lại bảng định tuyến của 2 máy Router này. Nếu cấu hình thành công thì trong bảng định tuyến ta sẽ có đường NET nhưng hình bên dưới.
OK. Bây giờ kiểm tra kết nối giữa 2 máy 172.16.2.2 và 172.16.3.2
Lab Linux – Network Information Service – NIS NIS là một dịch vụ cho phép chứng thực user tập trung. Một vài đặc điểm đáng chú ý như sau: - CSDL user lưu trên NIS server theo cấu trúc phẳng, tức là không có OU
- Quá trình chứng thực user không được
mã hóa.
Xem thêm thông tin và hướng dẫn http://www.tldp.org/HOWTO/NIS-HOWTO/
NIS bằng tiếng anh tại địa chỉ
Mô hình 2 máy, một máy là NIS server có ip là 192.168.9.117 và một máy client có ip là 192.168.9.217. Máy NIS server sẽ chứng thực cho các user đăng nhập qua những máy client.
1. Cài đặt Step 1: Cài đặt gói ypserv-2.19-5 có trong đĩa DVD CentOS Step 2: Khai báo nis domain Mở file /etc/sysconfig/network thêm vào một dòng sau đây vào cuối file: NISDOMAIN =”youdomain.com”
Trong đó yourdomain.com là tên domain của bạn. Mở file /etc/yp.conf Thêm dòng cuối vào ypserver 127.0.0.1
Tại đây tham số 127.0.0.1 cho phép user log tại máy chủ NIS, tức là khi user log on tại máy chủ thì nó dùng máy chủ là chính nó để logon. Tiếp tục bạn khởi động các dịch vụ sau: [root@may1 ~]# service [root@may1 ~]# service [root@may1 ~]# chkconfig [root@may1 ~]# chkconfig yppasswdd on
ypserv yppasswdd ypserv
start start on
Gõ lệnh rpcinfo -p localhost để xem các port đã đăng ký. [root@may1 program 100000 100000 100024 100024 100004 100004 100004 100004 100009 1 udp
~]#
rpcinfo vers
2 2 1 1 2 1 2 1 793 yppasswdd
Khởi tạo NIS Domain, gõ lệnh sau: /usr/lib/yp/ypinit -m
tcp udp udp tcp udp udp tcp tcp
-p proto 111 111 712 715 780 780 783 783
localhost port portmapper portmapper status status ypserv ypserv ypserv ypserv
Chương trình tìm thấy 1 máy đã làm NIS Server, nó hỏi chúng ta có thêm một máy chủ khác thành NIS server hay không. Bấm Ctrl -D để thoát, tức là chỉ có 1 máy hiện tại là NIS server. Chương trình đã xây dựng cho chúng ta một loạt các file là database, chứa trong đường dẫn/var/yp/nhatnghe17.com/ [root@may1 ~]# ls /var/yp/nhatnghe17.com/ group.bygid hosts.byaddr mail.aliases passwd.byname protocols.byname rpc.bynam e services.byname ypservers group.byname hosts.byname netid.byname passwd.byuid protocols.bynumber rpc.byn umber services.byservicename
Khởi động dịch vụ ypbind, dịch vụ này dùng cho Client, vì máy server cũng chính là client, và tất nhiên những máy client khác cũng sẽ được cài dịch vụ này. [root@may1 ~]# service Binding to the NIS domain: Listening for an NIS domain server..
ypbind [
OK
start ]
2. Quản lý user
Đầu tiên bạn tạo ra các user theo cách thông thường, tức dùng lệnh useradd. Ví dụ tạo 3 user: nv1, nv2, nv3
Sau đó chuyển qua thư mục /var/yp. Gõ tiếp lệnh make để chương trình cập nhật là database.
[root@may1 ~]# [root@may1 yp]# gmake[1]: Entering directory Updating Updating Updating Updating Updating gmake[1]: Leaving directory `/var/yp/nhatnghe17.com’
cd
/var/yp/ make `/var/yp/nhatnghe17.com’ passwd.byname… passwd.byuid… group.byname… group.bygid… netid.byname…
Để xem danh sách các user đã được cập nhật hay chưa dùng lệnh ypcat passwd [root@may1 yp]# ypcat nv2:$1$y0MEmjWO$akc8Zj1fX6t9H96aJzhLQ/:501:501::/home/nv2:/bin/bash nv3:$1$aRmYjNfH$yts1wHcjE2roloK9S39nN0:502:502::/home/nv3:/bin/bash nv1:$1$lfqZedO1$a0bulwCC/BQjrILWgi8gV/:500:500::/home/nv1:/bin/bash 3. Cấu hình cho client logon vào
Trên máy 2 thực hiện cấu hình theo các bước.
passwd
Sau đó kiểm tra lại bằng cách mở file /etc/yp.conf bạn sẽ tìm thấy dòng cuối cùng là domain nhatnghe17.com server 192.168.9.117 bạn cũng Trong file /etc/sysconfig/network , dòng NISDOMAIN=”nhatnghe17.com” Mở tiếp file: /etc/nsswitch.conf Tìm dòng 33,34,35 có nội dung như passwd: files shadow: files group: files nis
tìm
thấy
sau: nis nis
Đây là các dòng khai báo thứ tự chứng thực. Với một user, có thể nó đang tồn tại ở cả hai nơi, local và domain. Vậy thì đường nào được ưu tiên chứng thực trước. Theo như các
dòng trên, thì chứng thực local sẽ được ưu tiên trước, và chứng thực nis ưu tiên sau. Bạn có thể đổi lại thứ tự này . Để chứng thực được, phải khởi động dịch vụ ypbind [root@localhost ~]# service ypbind start
Sau đó thử dùng máy 2 để logon thử vào NIS server. dấu nhắc lệnh có dạng -Bash3.2$ đều này có nghĩa là nv1 sau khi logon vào hệ thống vẫn chưa sử dụng được nhiều lệnh shell. Và dấu nhắc này cũng cho biết thư mục cá nhân của user này đang nằm trên máy chủ. 4. Triển khai thư mục cá nhân cho m ỗi user về máy cục bộ Chúng ta sẽ triển khai dịch vụ auto mount để tự động mount thư mục cá nhân tên NIS server về máy client, khi user logon. Gói cài đặt càn thiết là NFS, bạn có thể xem bài trước để biết cách cài dịch vụ này. Trên máy NIS server:
Mở file /etc/exports thêm dòng /home * (rw,sync) Sau đó khởi động dịch vụ nfs bằng lệnh service nfs start Trên máy client:
Mở file /etc/auto.master, thêm vào dòng cuối cùng /home /etc/auto.home – timeout 300
Tạo mới file /etc/auto.home có nội dung sau: * -fstype=nfs,soft,intr,rsize=8192,wsize=8192,nosuid,tcp 192.168.9.17:/home/&
Khởi động lại dịch vụ autofs bằng lệnh service autofs restart Lúc này logon vào máy 2 sẽ thấy thư mục cá nhân của mỗi user.