lab linux

25
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 eth1 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:

Upload: duyluan

Post on 05-Dec-2014

218 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Lab Linux

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:

Page 2: Lab Linux

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.

Page 3: Lab Linux

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ộcmạ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

Page 4: Lab Linux

Để 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.confvi /etc/sysctl.confGiá trị net.ipv4.ip_forward = 0 đổi thành net.ipv4.ip_forward = 1=> Lưu lại file.

Page 5: Lab Linux

Để 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 cách đặt tên 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ư sau172.16.3.0/24 via 172.16.1.2 dev eth1Ở 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ạngservice 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 dung172.16.2.0/24 via 172.16.1.1 dev eth1Khở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

Page 6: Lab Linux

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ộ routing 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.

Page 7: Lab Linux

 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.17-1.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

 

Page 8: Lab Linux

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.confGõ lệnh:vi /etc/quagga/zebra.confThiết đặt file có nội dung như sau:hostname khanh.com.vn password zebra enable password zebraTrong đó, 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 startTiế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.

Page 9: Lab Linux

Sau khi cấu hình IP xong, khởi động lại dịch vụ zebra:

service zebra restartChú ý: 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ệnhvi /etc/quagga/ripd.confLưu file trên với nội dung như sau:

hostname khanh.com.vn-rip password zebra enable password zebraSau đó 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é  )

Page 10: Lab Linux

Đă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 restartVậ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

Page 11: Lab Linux

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.

Page 12: Lab Linux

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 RIP  . 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 hình định tuyến động trên Linux sử dụng Open Shortest Path First (OSPF).

Page 13: Lab Linux

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 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.17-1.el5.i386.rpm

Page 14: Lab Linux

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.confGõ lệnh:vi /etc/quagga/zebra.confThiết đặt file có nội dung như sau:hostname khanh.com.vn password zebra enable password zebraTrong đó, 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 startTiế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

Page 15: Lab Linux

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 restartChú ý: 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.confLưu file trên với nội dung như sau:

hostname khanh.com.vn-ospfpassword zebra enable password zebra

Page 16: Lab Linux

Sau đó khởi động dịch vụ ospfd:service ospfd startTiế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

Page 17: Lab Linux

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.confservice ospfd startTiế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.

Page 18: Lab Linux

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 – NISNIS 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

Page 19: Lab Linux

- 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 NIS bằng tiếng anh tại địa chỉ http://www.tldp.org/HOWTO/NIS-HOWTO/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 CentOSStep 2: Khai báo nis domainMở 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àoypserver 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 ypserv start[root@may1 ~]# service yppasswdd start[root@may1 ~]# chkconfig ypserv on[root@may1 ~]# chkconfig yppasswdd on

Gõ lệnh rpcinfo -p localhost để xem các port đã đăng ký.

[root@may1 ~]# rpcinfo -p localhostprogram vers proto   port100000    2   tcp    111  portmapper100000    2   udp    111  portmapper100024    1   udp    712  status100024    1   tcp    715  status100004    2   udp    780  ypserv100004    1   udp    780  ypserv100004    2   tcp    783  ypserv100004    1   tcp    783  ypserv100009    1   udp    793  yppasswdd

Khởi tạo NIS Domain, gõ lệnh sau:

/usr/lib/yp/ypinit -m

Page 20: Lab Linux

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.byname    services.byname         ypserversgroup.byname  hosts.byname  netid.byname  passwd.byuid   protocols.bynumber  rpc.bynumber  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 ypbind startBinding to the NIS domain:                                 [  OK  ]Listening for an NIS domain server..

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 ~]# cd /var/yp/[root@may1 yp]# makegmake[1]: Entering directory `/var/yp/nhatnghe17.com’Updating passwd.byname…Updating passwd.byuid…Updating group.byname…Updating group.bygid…Updating netid.byname…gmake[1]: Leaving directory `/var/yp/nhatnghe17.com’

Để 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 passwdnv2:$1$y0MEmjWO$akc8Zj1fX6t9H96aJzhLQ/:501:501::/home/nv2:/bin/bashnv3:$1$aRmYjNfH$yts1wHcjE2roloK9S39nN0:502:502::/home/nv3:/bin/bashnv1:$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.

Page 21: Lab Linux

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.117Trong file /etc/sysconfig/network, bạn cũng tìm thấy dòng NISDOMAIN=”nhatnghe17.com”Mở tiếp file: /etc/nsswitch.conf Tìm dòng 33,34,35 có nội dung như sau:passwd:     files nisshadow:     files nisgroup:      files 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

Page 22: Lab Linux

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 -Bash-3.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 startTrê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.