/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Cơ Chế Học MAC Của Catalyst Cisco Switch - IOS

Tham khảo bài ARP trước khi đọc bài này


Với sơ đồ trên ta thấy 3 máy tính được gắng vào một switch ở giữa, mỗi máy tĩnh sẽ có 1 địa chỉ MAC và switch học các địa chỉ này (switch sẽ học tất cả các MAC address trong mạng) và lưu trong bảng MAC Address Table.

Xét Host_01 gửi dữ liệu đến Host_02, như bài ARP thì nó sẽ tạo ra Ethernet frame với source MAC của Host_01, và destination là MAC của Host_02. Switch sẽ xây dựng bảng MAC Address Table và nó chỉ lưu/học MAC address từ source MAC address của Host_01 trên công Et0/1.


Host_03 sẽ discard gói tin này (hủy ngay trên host_03 chính vì thế không ảnh hưởng gì đến quá trình học MAC của switch), Host_02 thấy destination MAC chính là MAC của mình nên trả lời cho Host_01, lúc này switch học được source MAC address đến từ port Et0/2 là MAC của host_02



Đến đây sẽ kết thúc quá trình học MAC của host_01 và host_02 vì switch đã biết được địa chỉ 2 MAC này, lần sau nó sẽ switch thay vì đẩy ra Ethernet frames ra các cổng như ban đầu.

Kiểm tra các interface trên switch dùng lệnh

Switch#show interfaces status
Port      Name               Status       Vlan       Duplex  Speed Type
Et0/0                        connected    1            auto   auto unknown
Et0/1                        connected    1            auto   auto unknown
Et0/2                        connected    1            auto   auto unknown
Et0/3                        connected    1            auto   auto unknown

Kiểm tra MAC Address Table:
Switch#show mac address-table dynamic 
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    5000.0001.0000    DYNAMIC     Et0/1
   1    5000.0002.0000    DYNAMIC     Et0/2
   1    5000.0003.0000    DYNAMIC     Et0/3

Lệnh show mac address-table dynamic cho chúng ta biết được tất cả các địa chỉ MAC mà switch học được tự động


Nếu không có gì thì thay đổi MAC address sẽ bị xóa ra khỏi bảng MAC Address Table trong vòng 300 giây (5 phút).

Chúng ta có thể can thiệp và thay đổi thời gian này được bằng lệnh
mac address-table aging-time xxx

xxx là thời gian chúng ta muốn switch tự xóa bảng MAC

Tuy nhiên chúng ta có thể thực hiện xóa bảng MAC bằng lệnh mà không cần phải đợi hết thời gian aging-time
Switch#clear mac address-table dynamic 
Switch#

Xóa xong, thực hiện show mac address-table dynamic để show lại thì không có địa chỉ nào cả

Switch#show mac address-table dynamic     
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
Switch#

Noted: Các trường hợp bảng MAC bị xóa:
    • Port down
    • Thời gian lưu mặt định 300 giấy (5 phút)
    • Khởi động lại switch (vì nội dung của bảng MAC lưu trong RAM)
    • Can thiệp bằng dòng lệnh: clear mac address-table dynamic



Với mô hình nhiều switch, một port có thể học được nhiều địa chỉ MAC khác nhau. Với mô hình này cổng Et0/1 của switch Sw_1 có thể học được nhiều MAC

Sw_1#show mac address-table dynamic 
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    5000.0001.0000    DYNAMIC     Et0/0
   1    5000.0002.0000    DYNAMIC     Et0/1
   1    5000.0003.0000    DYNAMIC     Et0/1
Total Mac Addresses for this criterion: 3

Chúng ta thấy trong bảng MAC của Sw_1 được địa chỉ MAC của Host_02 và host_03 thông cổng Et0/1.

Xong!

Exchange, Create Database, Create User, Journal Rules, Retention Policies

YÊU CẦU:
1. Tạo Database cho exchange
2. Tạo mới mail box có tên Journal và trỏ vào Database có tên MailBoxDB
3. Tạo Journal Rules
4. Enable Archive Cho User
5. Retention Policies

THỰC HIỆN:
1. Tạo Database cho exchange


thực hiện như hình, nhưng để ý nhớ chọn Enable circular logging. Tính năng này cho phép tối ưu log của databe vừa tạo, nếu không chọn logs của data này ngày một tăng sẽ làm ảnh hưởng đến tốc truy cập của user trong database này và tốn tài nguyên server.

- Tương tự tạo thêm database có tên MailBoxDB.

Thực hiện bằng Exchange Shell

New-MailboxDatabase -Name "JournalDB" -EdbFilePath E:\ExchangeData\JournalDB\JournalDB.edb -LogFolderPath "E:\ExchangeData\JournalDB\Logs"
Mount-Database -identity "JournalDB"

hoặc
Mount-Database -identity "JournalDB" -Force


2. Tạo mới mail box có tên Journal và trỏ vào Database có tên MailBoxDB

Noted: Các bạn có thể chọn bất kỳ database nào bạn thích

3. Tạo Journal Rules
Mục đích: khi email ra vào của user nào đó chúng tạo Journal để copy 1 bản sao và chuyển vào địa chỉ khác (nhân bản và chôm í). Ở đây chúng tạo journal để copy email vào ra của user Van Cong Khanh.

Thực hiện như hình.

Noted: Chúng ta có thể chọn tất cả các email thay vì 1 user cụ thể như ví dụ này; và cũng có thể chọn chỉ chôm các email gửi nhận trong nội bộ lẫn nhau, hay chỉ chôm các mail khi gửi ra ngoài (khác domain).

Exchange Shell:

New-JournalRule -Name "Journal - Van Cong Khanh" -JournalEmailAddress "journal@ABC.com" -Scope Global -Recipient khanhvc@ABC.com -Enabled $true

Xem thông vừa cài đặt:
[PS] C:\Windows\system32>Get-JournalRule "Journal - Van Cong Khanh"
Name                : Journal - Van Cong Khanh
Recipient           : khanhvc@ABC.com
JournalEmailAddress : journal@ABC.com
Scope               : Global
Enabled             : True


Kết quả


4. Enable Archive Cho User


Tạo thêm database có trên Archive (tương tự phần trên)

Enable Archive cho user

Kiểm tra:
Đăng nhập vào web mail ta thấy phần Archive đã được enable với tên là In-Place Archive-Nguyen Manh Tien (phần tên này chúng ta cũng có thay đổi tùy ý)


Kiểm tra Archive bằng Shell:

[PS] C:\Windows\system32>Get-Mailbox tiennm |fl Name, *Archive*

Name                                       : Nguyen Manh Tien
ArchiveDatabase                      : ArchiveDB
ArchiveGuid                              : dd31fe51-0be6-4508-9e92-dbf0932a4f93
ArchiveName                            : {In-Place Archive -Nguyen Manh Tien}
JournalArchiveAddress             :
ArchiveQuota                            : Unlimited
ArchiveWarningQuota               : Unlimited
ArchiveDomain                          :
ArchiveStatus                            : None
ArchiveState                              : Local
AutoExpandingArchiveEnabled : False
DisabledArchiveDatabase         : ArchiveDB
DisabledArchiveGuid                 : 7000e103-3516-4f08-9d11-2540770d7b38
ArchiveRelease                         :

[PS] C:\Windows\system32>Test-ArchiveConnectivity -UserSmtp tiennm@ABC.com

RunspaceId                         : 0b472334-fdf1-4b91-b63b-dca8691677dc
Identity                                 : tiennm@ABC.com
PrimaryMRMConfiguration  :
PrimaryLastProcessedTime :
ArchiveDomain                     :
ArchiveDatabase                  : ArchiveDB
ArchiveMRMConfiguration   :
ArchiveLastProcessedTime :
ComplianceConfiguration     : ElcV2, ValidArchiveDatabase
ItemMRMProperties             :
Result                                   : Successfully logged on to the users Archive mailbox.
Error                                     :
IsValid                                  : True
ObjectState                          : New


5. Retention Policies

Mục đích: tạo Retention Policies gán cho user theo yêu cầu:
- Email của user chỉ lưu trong Inbox 10 ngày;
- Từ ngày 11 đến ngày thứ 20 sẽ move vào archive data (data khác, server khác);
- Trong khoảng từ ngày 21 đến ngày thứ 30 các email trong Inbox, Archive sẽ bị xóa và cho phép phục hồi;
- Ngày thứ 31 trở đi sẽ xóa vĩnh viễn.


Thực hiện:
- Tạo Retention Tags theo yêu cầu trên

Tạo retention tags cho việc thực hiện Archive như hình

Tạo retention tags để thực hiện xóa mail cho vào thùng rác, chỉ để lại các mail trong vòng 20 ngày gần nhất.

 Tạo retention tags thực hiện xóa vĩnh viễn các mail đã xóa đang nằm trong thùng rác, chỉ lưu lại các mail trong vòng 30 ngày gần nhất.

- Gán 3 tags vừa tạo ở trên vào  Retention Policies


- Gán Retention Policies vừa tạo cho user email cần áp đặt policies

Kiểm tra bằng ExchangeShell

Get-Mailbox TienNM | Select RetentionPolicy
Kết quả
[PS] C:\Windows\system32>Get-Mailbox TienNM | Select RetentionPolicy
Creating a new session for implicit remoting of "Get-Mailbox" command...
RetentionPolicy
---------------
MS Archive-Delete Policies
[PS] C:\Windows\system32>

user tiennm đã sử dụng RetentionPolicy có tên là MS Archive-Delete Policies

Kiểm tra RetentionPolicy có tên là MS Archive-Delete Policies được áp cho các user nào

Kiểm tra bằng ExchangeShell
Get-Mailbox -ResultSize unlimited | Where-Object {$_.RetentionPolicy -eq "MS Archive-Delete Policies"} | Format-Table Name,RetentionPolicy -Auto

[PS] C:\Windows\system32>Get-Mailbox -ResultSize unlimited | Where-Object {$_.RetentionPolicy -eq "MS Archive-Delete Policies"} | Format-Table Name,RetentionPolicy -Auto
Name             RetentionPolicy
----             ---------------
Nguyen Manh Tien MS Archive-Delete Policies




P/s: Bài được thực hiện trên exchange 2016 và Windows 2016
Link tham khảo:
Retention Policies

Xong!

Static Route, Floating Static Routes/Dự Phòng Đường Đi Với Static Route


Sơ đồ Bài Lab:

Mô tả: Thực hiện việc cấu hình đường đi dự phòng với Static Route dựa vào Administrative Distance

Kiến thức sử dụng trong bài: Static Route, Default Route, OSPF

Yêu cầu:
1. Thực hiện đấu nối và cấu hình IP theo sơ đồ

2. Trên R1, thực cấu hình 2 default route, ưu tiên 1: trỏ về R2-IP 192.168.12.2; ưu tiên 2: trỏ về R3-IP 192.168.13.3 với AD =254

3. Chạy OSPF trên cả 3 router đảm bảo mạng hội tụ

4. Trên R1 cấu hình floating static route để dự phòng đường đi đến loopback của R2 và R3 khi OSPF lỗi quảng bá loopback cho router láng giềng

Thực hiện:
1. Thực hiện đấu nối và cấu hình IP theo sơ đồ

R1:
interface Ethernet0/0
 ip address 192.168.1.1 255.255.255.0
no shutdown
exit
!
interface Ethernet0/2
 ip address 192.168.12.1 255.255.255.0
no shutdown
exit
!
interface Ethernet0/3
 ip address 192.168.13.1 255.255.255.0
no shutdown
end
write

R2:
interface Ethernet0/2
 ip address 192.168.12.2 255.255.255.0
no shutdown
exit
!
interface Loopback2
ip address 2.2.2.2 255.255.255.255
end
write

R3:
interface Ethernet0/3
ip address 192.168.13.3 255.255.255.0
no shutdown
exit
!
interface Loopback3
 ip address 3.3.3.3 255.255.255.255
end
write

2. Trên R1, thực cấu hình 2 default route, ưu tiên 1: trỏ về R2-IP 192.168.12.2; ưu tiên 2: trỏ về R3-IP 192.168.13.3 với AD =254
R1:
ip route 0.0.0.0 0.0.0.0 192.168.12.2
ip route 0.0.0.0 0.0.0.0 192.168.13.3 254

Kiểm tra:
R1#show ip route
{...}
Gateway of last resort is 192.168.12.2 to network 0.0.0.0
S*    0.0.0.0/0 [1/0] via 192.168.12.2
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, Ethernet0/0
L        192.168.1.1/32 is directly connected, Ethernet0/0
      192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.12.0/24 is directly connected, Ethernet0/2
L        192.168.12.1/32 is directly connected, Ethernet0/2
      192.168.13.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.13.0/24 is directly connected, Ethernet0/3
L        192.168.13.1/32 is directly connected, Ethernet0/3

Default route đang trỏ về IP 192.168.12.2 của R2 với AD = 1 (khi cấu hình ip route mà không gõ giá trị AD thì mặt định router sẽ cho AD =1). Việc cấu hình có thêm chỉ số AD như vậy gọi là floating static route

Kiểm tra hoạt động của Floating Static route
R1:
debug ip routing

Shutdown cổng Et0/2 trên R1 để kiểm tra
R1:
interface Et0/1
shutdown
*Apr 22 06:49:26.423: is_up: Ethernet0/2 0 state: 6 sub state: 1 line: 1
*Apr 22 06:49:26.423: RT: interface Ethernet0/2 removed from routing table
*Apr 22 06:49:26.423: RT: del 192.168.12.0 via 0.0.0.0, connected metric [0/0]
*Apr 22 06:49:26.423: RT: delete subnet route to 192.168.12.0/24
*Apr 22 06:49:26.423: RT: del 192.168.12.1 via 0.0.0.0, connected metric [0/0]
*Apr 22 06:49:26.423: RT: delete subnet route to 192.168.12.1/32
*Apr 22 06:49:26.424: RT: del 0.0.0.0 via 192.168.12.2, static metric [1/0]
*Apr 22 06:49:26.424: RT: delete network route to 0.0.0.0/0
*Apr 22 06:49:26.424: RT: default path has been cleared
*Apr 22 06:49:26.424: RT: updating static 0.0.0.0/0 (0x0)  :
   via 192.168.13.3   0
*Apr 22 06:49:26.424: RT: add 0.0.0.0/0 via 192.168.13.3, static metric [254/0]
*Apr 22 06:49:26.424: RT: default path is now 0.0.0.0 via 192.168.13.3
{...}

Hướng đi đến R2 đã bị xóa ra khỏi bảng route và R1 sẽ tự động thêm vào bảng route hướng đi của default bây giờ là thông qua R3 - IP 192.168.13.3 với AD = 254

R1#show ip route
{...}
Gateway of last resort is 192.168.13.3 to network 0.0.0.0
S*    0.0.0.0/0 [254/0] via 192.168.13.3
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, Ethernet0/0
L        192.168.1.1/32 is directly connected, Ethernet0/0
      192.168.13.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.13.0/24 is directly connected, Ethernet0/3
L        192.168.13.1/32 is directly connected, Ethernet0/3

Ping test trên R1:
R1#ping 2.2.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

R1 có thể ping thành công được Lo2 của R2

R1#ping 3.3.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

R1 không thể ping đến được Lo3 của R3 vì mọi route mà R1 không biết mặt định nó sẽ hỏi R2 mà R2 lại không biết đường đi đến địa chỉ 3.3.3.3 nên kết quả trả về U.U.U (nếu trên windows thì chúng ta sẽ gặp thông báo destination host unreachable). Để giải quyết vấn đền này chúng cần chạy 1 giao thức route bất kỳ  trên cả 3 router để quảng bá các loopback cho router láng giềng.

3. Chạy OSPF trên cả 3 router đảm bảo mạng hội tụ.
R1
router ospf 1
exit
interface range Et0/0, Et0/2-3
ip ospf 1 area 0

R2
router ospf 1
exit
interface range Et0/2,lo2
ip ospf 1 area 0

R3
router ospf 1
exit
interface range Et0/3,Lo3
ip ospf 1 area 0

Host> ping 2.2.2.2
84 bytes from 2.2.2.2 icmp_seq=1 ttl=254 time=0.668 ms
84 bytes from 2.2.2.2 icmp_seq=2 ttl=254 time=0.746 ms
84 bytes from 2.2.2.2 icmp_seq=3 ttl=254 time=0.681 ms
84 bytes from 2.2.2.2 icmp_seq=4 ttl=254 time=0.657 ms
84 bytes from 2.2.2.2 icmp_seq=5 ttl=254 time=0.627 ms
Host> ping 3.3.3.3
84 bytes from 3.3.3.3 icmp_seq=1 ttl=254 time=0.586 ms
84 bytes from 3.3.3.3 icmp_seq=2 ttl=254 time=0.507 ms
84 bytes from 3.3.3.3 icmp_seq=3 ttl=254 time=0.497 ms
84 bytes from 3.3.3.3 icmp_seq=4 ttl=254 time=0.519 ms
84 bytes from 3.3.3.3 icmp_seq=5 ttl=254 time=0.559 ms

Host đã ping đến được các loopback của R2, R3.

4. Trên R1 cấu hình floating static route để dự phòng đường đi đến loopback của R2 và R3 khi OSPF lỗi quảng bá loopback cho router láng giềng

Kiểm tra trước khi cấu hình
R1:
R1#show ip route 2.2.2.2
Routing entry for 2.2.2.2/32
  Known via "ospf 1", distance 110, metric 11, type intra area
  Last update from 192.168.12.2 on Ethernet0/2, 00:00:04 ago
  Routing Descriptor Blocks:
  * 192.168.12.2, from 2.2.2.2, 00:00:04 ago, via Ethernet0/2
      Route metric is 11, traffic share count is 1

Ta thấy hiện tại R1 route đến 2.2.2.2 bằng giao thức OSPF với Distance 110.
Vậy để static route backup cho OSPF chúng ta sẽ điều chỉnh AD của static route lớn hơn Distance của OSPF (mặt định là 110)

 R1:
ip route 2.2.2.2 255.255.255.255 192.168.12.2 111

Bật debug trên R1 để xem log quá trình cập nhật bảng route
debug ip routing

R2
int lo2
no ip ospf 1 area 0

Không quảng bá loopback vào OSPF (nhằm mục đích test việc câp nhật bảng routing trên R1)

R1#
*Apr 22 08:10:28.344: RT: del 2.2.2.2 via 192.168.12.2, ospf metric [110/11]
*Apr 22 08:10:28.344: RT: delete subnet route to 2.2.2.2/32
*Apr 22 08:10:28.345: RT: updating static 2.2.2.2/32 (0x0)  :
    via 192.168.12.2   0
*Apr 22 08:10:28.345: RT: add 2.2.2.2/32 via 192.168.12.2, static metric [111/0]

Route 2.2.2.2 học được từ OSPF đã bị xóa và thay vào đó là route đến Lo2 của R2 học được từ static route với AD = 111
R1#show ip route 2.2.2.2
outing entry for 2.2.2.2/32
  Known via "static", distance 111, metric 0
  Routing Descriptor Blocks:
  * 192.168.12.2
      Route metric is 0, traffic share count is 1

Tương tự các bạn tự thực hiện với R3 nhé!

Xong!

Cisco, Etherchannel on Catalyst Switch

Etherchannel là kỹ thuật để bó nhiều link vật lý lại với nhau thành một link luận lý, hôm nay chúng ta cùng nhau tìm hiểu xem Etherchannel hoạt động thư thế nào.


Ta có sơ đồ đấu nối như hình vẽ trên. Ví dụ băng thông của đường link đấu nối giữa 2 switch là:
  • 100 MB 
Nếu PC_01 đang trao đổi dữ liệu với PC_03 và chúng sử dụng hết băng thông là 100MB, tại thời điểm đó nếu có bất cứ PC nào bên Zone_A muốn truy cập đến các PC bên Zone_B và ngược lại thì nó sẽ xảy ra hiện tượng tắc nghẽn và mọi traffic sẽ bị drop.
  • 1.000 MB
- Nếu PC_01 đang trao đổi dữ liệu với PC_03 và chúng sử dụng băng thông là 800 MB;
- Và nếu PC_02 đang trao đổi dữ liệu với PC_04 và sẽ dự định sử dụng băng thông là 500 MB, lúc này cũng xảy ra hiện tượng tắc nghẽn vì 800 MB + 500 MB = 1.200 MB > 1.000 MB băng thông của đường link.

Giải pháp:
  • Nâng cấp đường link lên 10 GB -> Quay lại bài toán về chi phí, chi phí tốn rất nhiều để nâng cấp lên 10 GB trong khi đó nhu cầu cần chỉ 1.200 MB, gây ra lãng phí
  • Gắng nhiều link lại với nhau và bó chúng lại thành một EtherChannel nhằm mục đích tăng băng thông.


Với mô hình trên chúng ta nối nhiều đường link kết nối giữa 2 switch, lúc này sẽ tạo thành vòng loop nên spanning tree sẽ block 3/4 đường link này. Chính vì thế Etherchannel ra đời để giải quyết vấn đề này bằng cách chúng tạo ra một đường link ảo single virtual link hay chúng tạo ra một đường link luận lý bao gồm nhiều đường link vật lý (trường hợp là 4 đường link).


  • Băng thông của đường link này được tính bằng tổng băng thông các đường link vật lý (4 x 1.000 MB = 4.000 MB), spanning tree xem đường link này là một đường logical link (luận lý), sẽ không có loop xảy ra và sẽ không có spaning tree tồn tại giữa các link này.
  • Etherchannel sẽ thực hiện cân bằng tải - load balancing giữa các đường link này
  • Đảm bảo tính dự phòng - redundancy, nếu trong các link vật lý bị lỗi nó vẫn làm việc với các link còn lại.
  • Etherchannel hỗ trợ cả port Layer 2 (switch port) và port Layer 3 (routed port)
Với cisco có thể sử dụng maximum là 8 đường link (8 physical interface) active tại một thời điểm, nếu số đường link lớn hơn 8 thì chúng sẽ ở trạng thái Hot-Stanby, tuy nhiên chúng ta cũng có thể điều chỉnh được số lượng đường link active tại một thời điểm, nhưng không quá 8 đường active đồng thời.

Tham khảo link Cisco Etherchannel, theo khuyến cáo thì nên sử dụng 2n đường link khi cấu hình Etherchannel.

Có hai phương thức để thiết lập Etherchannel giữa 2 switch đó là:
  • Thiết lập tĩnh (static): thiết lập Etherchannel mà không sử dụng giao thức - protocol;
  • Thương lượng tự động (dynamic)
Có hai giao thức sử dụng để thương lượng tự động Etherchannel trên các catalyst switch của cisco đó là:
  • PAgP - Port Aggregation Protocol: là giao thức độc quyền của cisco, chỉ chạy trên các dòng sản phẩm switch của cisco 
  • LACP - Link Aggregation Control Protocol: là giao thức chuẩn quốc tế IEEE được chuẩn hóa bởi chuẩn IEEE 802.3ad
Các cổng/port tham gia vào tạo và thiết lập Etherchannel thành công thì phải đảm các điều kiện:
  • Cùng tốc độ - speed
  • Cùng duplex
  • Cùng switchport mode (Access hoặc trunk)
  • Cùng native vlan
  • Cùng cho qua các danh sách vlan (allow vlan) phải giống nhau
  • Phải chọn đúng mode hoạt động ở 2 đầu thiết bị thì mới có thể xây dựng được Etherchannel





Thực hành Etherchanel

Noted: Etherchannel không thể sử dụng nếu cấu hình SPAN là port destination.

Xong!

Cisco, Syslog Server & Cài Đặt Ngày Giờ Cho Cisco IOS

Sơ đồ Lab


Yêu cầu:
1. Syglog Server

2. Cài đặt ngày giờ cho Cisco IOS

Thực hiện:
a. Chuẩn bị:
Download, và cài đặt chọn phần Application

Setting port dùng để nhận dữ liệu, trong Lab này chúng ta cho port 514 UDP

Đảm bảo rằng firewall trên máy tính cài Kiwi Syslog đã cho phép port 514 UDP theo chiều inbound, nếu chưa chúng ta có thể thêm vào.

Chạy Windows PowerShell và thực hiện lệnh:
netsh advfirewall firewall add rule name="Allow Port 514 UDP" dir=in action=allow protocol=UDP localport=514

Kiểm tra kết quả sau khi thêm vào firewall của windows



b. Cấu hình trên Cisco switch đưa thông tin log về server lưu trữ

Cấu hình IP cho switch và đảm bảo switch phải ping đến được syslog server
Switch:
interface Vlan1
ip address 172.16.0.222 255.255.255.0
end

Kiểm tra kết nối với syslog server
Switch#ping 172.16.0.111
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.0.111, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/9 ms
Switch#

Cấu hình syslog trên Cisco IOS
Switch:
logging on
logging host 172.16.0.111

Bật tính năng logging và cấu hình nơi cần gửi syslog của thiết bị hiện tại đến syslog server có IP 172.16.0.111

logging trap

Chúng ta có thể chọn loại syslog muốn gửi, ở đây chúng tôi chọn tất cả

service timestamps debug datetime localtime ms
service timestamps log datetime localtime ms

Để syslog khi gửi đến server phải có gán thêm nhãn thời gian nên chúng ta phải cấu hình thêm 2 dòng trên (mặc định thông điệp log không có nhãn thời gian).

Các thông số của lệnh:

  • debug: tất cả các thông tin debug sẽ được gán nhãn thời gian.
  • log: tất cả các thông tin log sẽ được gán nhãn thời gian.
  • datetime: ngày và giờ sẽ hiện trong thông điệp
  • localtime: thời gian được dùng là local
  • msec: thời gian chính xác đến từng mili giây.
  • show-timezone: chỉ ra timezone.

Kiểm tra:

Mở phần mềm Kiwi Syslog và cắm dây mạng vào các port của switch


Các thông điệp log - log message của thiết bị đã gửi về phần mềm Kiwi Syslog.

2. Cài đặt ngày giờ cho Cisco IOS

a. Cài đặt thủ công

Kiểm tra trước khi cài đặt
Switch#show clock
*22:33:54.131 UTC Sun Apr 18 1993

22:33:54.131 UTC Sun Apr 18 1993: Giờ phút giây - tháng ngày năm
UTC - Coordinated Universal Time (Giờ Phối hợp Quốc tế): Time Zone 

Switch:
conf t
clock timezone UTC +7 0
exit
clock set 1:20:30 24 Apr 2020
!

Chúng ta cần phải chỉnh timezone ở mode config trước sau chỉnh ngày giờprivileged mode. Ở đây chúng ta chọn UTC +7 0

Kiểm tra sau khi cấu hình:
Switch#show  run  | inc UTC
! Last configuration change at 13:22:55 UTC Fri Apr 24 2020 by admin
clock timezone UTC 7
Switch#show clock 
13:23:54.715 UTC Fri Apr 24 2020

b. Cài đặt thông qua NTP - Network Time Protocol

Switch:
ip domain-lookup
ip name-server 8.8.8.8
ntp server time.google.com   
<= cập nhật ngày giờ bằng tên miền
ntp server 216.239.35.12       <= cập nhật ngày giờ IP
Translating "time.google.com"...domain server (8.8.8.8) [OK]
Switch#

Cài đặt name-server (DNS Server) để cho phép phân giải trên miền ra IP

Switch#show ntp associations 
      address         ref clock             st  when  poll reach  delay  offset    disp
+~216.239.35.8     .GOOG.            1    59    64  377    66.5   -3.49     0.9
*~216.239.35.12    .GOOG.            1    26    64  377    70.9   -5.69     1.0
 * master (synced), # master (unsynced), + selected, - candidate, ~ configured

Cứ 64 giây thiết bị sẽ đồng bộ 1 lần với NTP server (phải đảm bảo thiết bị phải kế nối được đến server NTP)
Switch#show clock 
14:14:04.821 UTC Fri Apr 24 2020
Switch#

Thời gian hiện tại

Switch#show ntp status 
Clock is synchronized, stratum 2, reference is 216.239.35.12
nominal freq is 119.2092 Hz, actual freq is 119.2135 Hz, precision is 2**17
reference time is E24D116E.9AC7F724 (14:19:10.604 UTC Fri Apr 24 2020)
clock offset is -3.7911 msec, root delay is 71.43 msec
root dispersion is 8.39 msec, peer dispersion is 2.98 msec

Thời gian đã đồng bộ từ server 216.239.35.12.

Xong!

P/s: bài lab được thiện hiện trên switch cisco ISO và phần mềm Kiwi Syslog Ver: 8.3.7


Cisco, Log Into Cisco Device Via Console Line




Hình cổng console của thiết bị (tùy theo từng dòng sản phẩm mà cổng console ở mặt trước hoặc sau)




Đấu nối dây console và máy tính như sơ đồ trên.

Hình ảnh dây console

  • 1: Dạng USB ra COM-RJ45 trực tiếp
  • 2: Dạng COM-RJ45 ra RS232
  • 3: Dạng số 2 thêm dây chuyển đổi từ USB-to-COM (dạng này dùng hướng dẫn trong bài) 


Trên máy tính:
1. Kiểm tra và cài đặt cổng COM



Cổng COM hiện tại đang sử dụng trên máy tính này là COM5 và đảm bảo các thông số như hình dưới:

Và chúng ta có thể điều chỉnh:
- Port COM là bao nhiêu tùy thích thông qua phần Properties -> Port Settings -> Advanced
- Bits per second (Speed). Trong trường hợp này chúng ta để là 9600

2. Download phần mềm Putty và cài đặt theo mặt định



Cài đặt các thông số như hình trên và chọn Open sẽ kết nối được giao diện của thiết bị. Đến đây chúng ta có thể thực hiện thao tác cấu hình.

Serial: là cổng COM
Com5 và speed 9600: là thông số đã cài đặt ở mục 1.

Noted: Để kết nối thành công thì phải đảm bảo rằng speed cùng nhau trên:
  • Cài đặt trên máy tính ở mục 1
  • Trên phần mềm dùng để kết nối mở mục 2
  •  Speed/ Baud Rate trên thiết bị cần kết nối.

Tìm hiểu các mode trong cisco ISO

Xong!

Python, Cài Đặt Python Trên Windows

Yêu cầu:
1. Download và Cài đặt
2. Thiết lập path cho Python
3. Thực hiện phép tính đơn giản
4. Cài đặt PIP trên windows
5. Cài thư viện thông qua PIP
6. Cài ipython trên windows

Thực hiện:

1. Download và Cài đặt

Chọn phiên bản cần download


Làm theo các bước như hình

2. Thiết lập path cho Python

Vào Command Prompt gõ python ta thấy hiển thị thông báo lỗi, nên chúng ta phải thiết lập path trên máy tính để khắc phục lỗi này.

Làm theo các bước như hình, phần Path của System Variable ta thêm vào đường dẫn trỏ đến thư mục đã cài đặt Python trước đó, trong ví dụ này là "C:\Program Files (x86)\Python38-32"

Thiết lập path trên Windows 10:


Khởi động lại máy tính và kiểm tra

Python đã hoạt động ở Windows Command Prompt

3. Thực hiện phép tính đơn giản


Ta thấy khi gõ phép tính và enter sẽ cho ra kết quả liền sau đó. Trong trường hợp người ta gọi là chương trình PHIÊN dịch (nó sẽ thực hiện sau mỗi dòng khi ta gõ enter), còn chương trình BIÊN dịch là khi ta viết xong một đoạn code hay một hàm,... nhấn chạy lúc đó nó mới thực hiện.

4. Cài đặt PIP trên windows

Noted: Với cài đặt trên đã được cài đặt rồi. Mục này chúng tôi hướng dẫn với trường hợp của cài PIP




  • Cài đặt PIP
Chạy cmd Run as administrator -> chuyển đến thưc mục lưu file get_pip.py vừa download (trong lab này là C:\Users\Admin\Downloads>) -> gõ python get_pip.py

  • Chỉnh path cho PIP
Trong bài lab này là "C:\Program Files (x86)\Python38-32\Scripts"


  • Kiểm tra version PIP bằng lệnh pip --version

C:\Users\Admin\Downloads>pip --version
pip 20.1.1 from c:\program files (x86)\python38-32\lib\site-packages\pip (python 3.8)
C:\Users\Admin\Downloads>

Version hiện tại là 20.1.1, tuy nhiên chúng ta có thể downgrade xuống version 18.1 (thấp hơn) hoặc upgrade lên version mới hơn

downgrade
python -m pip install pip==18.1

upgrade
python -m pip install --upgrade pip

5. Cài thư viện thông qua PIP
  • Kiểm tra trước khi cài đặt

C:\Users\Admin\Downloads>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import netmiko
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'netmiko'
>>>

Ví dụ trên chúng tôi muốn dùng thư viện netmiko, thông báo lỗi là không tìm thấy thư viện netmiko
C:\Users\Admin\Downloads>pip install netmiko
Collecting netmiko
  Using cached netmiko-3.1.1-py2.py3-none-any.whl (147 kB)
Collecting pyserial
  Using cached pyserial-3.4-py2.py3-none-any.whl (193 kB)
Collecting scp>=0.13.2
  Using cached scp-0.13.2-py2.py3-none-any.whl (9.5 kB)
Collecting paramiko>=2.4.3
  Using cached paramiko-2.7.1-py2.py3-none-any.whl (206 kB)
Requirement already satisfied: setuptools>=38.4.0 in c:\program files (x86)\python38-32\lib\site-packages (from netmiko) (41.2.0)
Collecting textfsm
  Using cached textfsm-1.1.0-py2.py3-none-any.whl (37 kB)
Collecting bcrypt>=3.1.3
  Using cached bcrypt-3.1.7-cp38-cp38-win32.whl (26 kB)
Collecting cryptography>=2.5
  Using cached cryptography-2.9.2-cp38-cp38-win32.whl (1.3 MB)
Collecting pynacl>=1.0.1
  Using cached PyNaCl-1.4.0-cp38-cp38-win32.whl (193 kB)
Collecting six
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Processing c:\users\admin\appdata\local\pip\cache\wheels\8e\70\28\3d6ccd6e315f65f245da085482a2e1c7d14b90b30f239e2cf4\future-0.18.2-py3-none-any.whl
Collecting cffi>=1.1
  Using cached cffi-1.14.0-cp38-cp38-win32.whl (165 kB)
Collecting pycparser
  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Installing collected packages: pyserial, pycparser, cffi, six, bcrypt, cryptography, pynacl, paramiko, scp, future, textfsm, netmiko
Successfully installed bcrypt-3.1.7 cffi-1.14.0 cryptography-2.9.2 future-0.18.2 netmiko-3.1.1 paramiko-2.7.1 pycparser-2.20 pynacl-1.4.0 pyserial-3.4 scp-0.13.2 six-1.15.0 textfsm-1.1.0
C:\Users\Admin\Downloads>

  • Kiểm tra sau khi cài thư viện netmiko
C:\Users\Admin\Downloads>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import netmiko
>>> netmiko.__version__
>>>'3.1.1'
>>>
>>>

Chúng ta thấy không còn báo lỗi nữa, và phiên bản hiện tại là 3.1.1.


6. Cài ipython trên windows


C:\Users\Administrator>pip install ipython
Collecting ipython
  Downloading https://files.pythonhosted.org/packages/aa/e8/47fda10c3ab103d9d4a667b40da9afd542c4e50aeb00c861b4eee5bb4e8f/ipython-7.1 none-any.whl (783kB)
     |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 788kB 1.1MB/s
Collecting colorama; sys_platform == "win32" (from ipython)
  Downloading https://files.pythonhosted.org/packages/c9/dc/45cdef1b4d119eb96316b3117e6d5708a08029992b2fee2c143c7a0a5cc5/colorama-0.py3-none-any.whl
Collecting pygments (from ipython)
  Downloading https://files.pythonhosted.org/packages/2d/68/106af3ae51daf807e9cdcba6a90e518954eb8b70341cee52995540a53ead/Pygments-2.none-any.whl (914kB)
     |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 921kB 6.4MB/s
Collecting jedi>=0.10 (from ipython)
  Downloading https://files.pythonhosted.org/packages/07/83/7e711550fcb2722f1ca9c8564d5bb23f625ae67d99f4a360b428c0f3e932/jedi-0.17.1-none-any.whl (1.4MB)
     |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 1.4MB 6.4MB/s
Collecting decorator (from ipython)
  Downloading https://files.pythonhosted.org/packages/ed/1b/72a1821152d07cf1d8b6fce298aeb06a7eb90f4d6d41acec9861e7cc6df0/decorator-4.py3-none-any.whl
Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 (from ipython)
  Downloading https://files.pythonhosted.org/packages/e4/a7/81b39aa50e9284fe2cb21cc7fb7de7817b224172d42793fd57451d38842b/prompt_tool5-py3-none-any.whl (351kB)
     |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 358kB 6.4MB/s
Requirement already satisfied: setuptools>=18.5 in c:\program files (x86)\python38-32\lib\site-packages (from ipython) (41.2.0)Collecting backcall (from ipython)
  Downloading https://files.pythonhosted.org/packages/4c/1c/ff6546b6c12603d8dd1070aa3c3d273ad4c07f5771689a7b69a550e8c951/backcall-0.py3-none-any.whlCollecting traitlets>=4.2 (from ipython)
  Downloading https://files.pythonhosted.org/packages/ca/ab/872a23e29cec3cf2594af7e857f18b687ad21039c1f9b922fac5b9b142d5/traitlets-4.py3-none-any.whl (75kB)
     |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 81kB 2.6MB/s
Collecting pickleshare (from ipython)
  Downloading https://files.pythonhosted.org/packages/9a/41/220f49aaea88bc6fa6cba8d05ecf24676326156c23b991e80b3f2fc24c77/picklesharey2.py3-none-any.whl
Collecting parso<0.8.0,>=0.7.0 (from jedi>=0.10->ipython)
  Downloading https://files.pythonhosted.org/packages/b5/61/998cce9e7476de000d031874df26a18f67cb73448164fc44a98f0c55920b/parso-0.7.0-none-any.whl (100kB)
     |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 102kB 6.4MB/s
Collecting wcwidth (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython)
  Downloading https://files.pythonhosted.org/packages/59/7c/e39aca596badaf1b78e8f547c807b04dae603a433d3e7a7e04d67f2ef3e5/wcwidth-0.2y3-none-any.whl
Collecting six (from traitlets>=4.2->ipython)
  Downloading https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-none-any.whl
Collecting ipython-genutils (from traitlets>=4.2->ipython)
  Downloading https://files.pythonhosted.org/packages/fa/bc/9bd3b5c2b4774d5f33b2d544f1460be9df7df2fe42f352135381c347c69a/ipython_gen2.0-py2.py3-none-any.whl
Installing collected packages: colorama, pygments, parso, jedi, decorator, wcwidth, prompt-toolkit, backcall, six, ipython-genutils,ts, pickleshare, ipython
Successfully installed backcall-0.2.0 colorama-0.4.3 decorator-4.4.2 ipython-7.15.0 ipython-genutils-0.2.0 jedi-0.17.1 parso-0.7.0 pre-0.7.5 prompt-toolkit-3.0.5 pygments-2.6.1 six-1.15.0 traitlets-4.3.3 wcwidth-0.2.5
C:\Users\Administrator>

Ví dụ kiểm tra ipython đã cài đặt thành công

Xong!
P/s: netmiko là thư viện gì, tại sao thử với thư viện này, hẹn các bạn ở các bài lab sau
/*header slide*/