/*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===*/
Showing posts with label ARP. Show all posts
Showing posts with label ARP. Show all posts

Proxy ARP, Static ARP

Proxy ARP là tính năng cho phép router trả lời dùm ARP request của lớp mạng mà nó biết. Để hiểu rỏ hơn ta xét ví dụ ở sơ đồ mạng bên dưới 



+ PC1 có subnet mask /24;
+ PC2 có subnet mask /8. 
  • Khi PC1 muốn kết nối đến server 10.2.2.100 thì quá trình kết nối sẽ xảy ra các bước là:
  1. PC1 sẽ so sánh IP và subnet mask của nó với địa chỉ IP của server (ví dụ này là 10.2.2.100) và nó thấy rằng server là khác lớp mạng với nó
  2. PC1 muốn đến được server (lớp mạng khác) thì bắt buộc phải thông qua default gateway (10.1.1.254)
  3. PC1 kiểm tra trong ARP thử có dữ liệu nào cho 10.1.1.254 không nếu không có sẽ gửi ARP request
  4. R254 sẽ trả lời ARP request và gửi MAC của nó là của interface Et0/0

  • Khi PC2 muốn kết nối đến Server thì:
  1. PC2 sẽ so sánh IP và subnet mask của nó với IP của server và nó thấy rằng server và nó cùng subnet
  2. PC2 kiểm tra trong ARP thử có dữ liệu nào cho 10.2.2.254 không nếu không có sẽ gửi ARP request
  • Khi proxy ARP được bật trên router thì:
  1. R254 thấy ARP request từ PC2 với subnet 10.1.1.0/24 đến subnet 10.2.2.0/24
  2. R254 thấy rằng đó là lớp mạng mà mình biết (vì connected) và sẽ trả lời gói ARP request dùm cho PC2
  3. R254 gửi ARP reply đến PC2 với MAC address của interface Et0/0
Thực hiện LAB với sơ đồ trên:

PC1
ip 10.1.1.1/24 10.1.1.254

PC2
ip 10.1.1.2/8 10.1.1.254

Server
ip 10.2.2.100/24 10.2.2.254

R254
interface Ethernet0/0
ip address 10.1.1.254 255.255.255.0
no shutdown
exit
interface Ethernet0/1
ip address 10.2.2.254 255.255.255.0
no shutdown
end

Để đảm bảo chắc chắn Proxy ARP đã bậc trên interface Et0/0 chưa, chúng ta dùng lệnh (mặt định được bậc trên router của cisco)

R254#show ip interface ethernet 0/0 | include Proxy
Proxy ARP is enabled
R254#

Kiểm tra hoạt động của Proxy ARP
R254#debug arp
ARP packet debugging is on

Với PC1
Để test từ PC1 ping đến server
PC1> ping 10.2.2.100
84 bytes from 10.2.2.100 icmp_seq=1 ttl=63 time=3.509 ms
84 bytes from 10.2.2.100 icmp_seq=2 ttl=63 time=0.720 ms
84 bytes from 10.2.2.100 icmp_seq=3 ttl=63 time=0.904 ms
84 bytes from 10.2.2.100 icmp_seq=4 ttl=63 time=0.870 ms
84 bytes from 10.2.2.100 icmp_seq=5 ttl=63 time=0.999 ms

R254#
*Apr 21 03:48:35.269: IP ARP: rcvd req src 10.1.1.1 0050.7966.6803, dst 10.1.1.254 Ethernet0/0
*Apr 21 03:48:35.270: IP ARP: creating entry for IP address: 10.1.1.1, hw: 0050.7966.6803
*Apr 21 03:48:35.270: IP ARP: sent rep src 10.1.1.254 aabb.cc00.1000,
                                                                dst 10.1.1.1 0050.7966.6803 Ethernet0/0

R254 nhận ARP request từ PC1 là thiết bị đang hỏi default gateway và R254 trả lời là địa chỉ MAC của interface Et0/0 của mình cho PC1

R254#
*Apr 21 03:48:35.272: IP ARP: creating incomplete entry for IP address: 10.2.2.100 interface Ethernet0/1
*Apr 21 03:48:35.272: IP ARP: sent req src 10.2.2.254 aabb.cc00.1010,
                                                                dst 10.2.2.100 0000.0000.0000 Ethernet0/1
*Apr 21 03:48:35.272: IP ARP: rcvd rep src 10.2.2.100 0050.7966.6805, dst 10.2.2.254 Ethernet0/1

Để biết được MAC của server nên nó khởi tạo request đến server 10.2.2.100 rồi chuyển packet đến server và từ đó R254 cũng nhận được gói tin trả lời từ server thông qua Et0/1. Từ đó nó sẽ trả lời cho PC1 để đến được server 10.2.2.100 thì hỏi IP 10.1.1.254 với MAC là aa:bb:cc:00:10:00 (chính là thông tin của cổng Et0/0 của R254)

PC1> show arp     
aa:bb:cc:00:10:00  10.1.1.254 expires in 113 seconds
PC1> 

Nên, khi kiểm tra bảng ARP trên PC1 thì nó lưu MAC address và IP của default gateway.

Với PC2
R254>
*Apr 21 04:03:46.962: IP ARP: rcvd req src 10.1.1.2 0050.7966.6804, dst 10.2.2.100 Ethernet0/0
*Apr 21 04:03:46.962: IP ARP: creating entry for IP address: 10.1.1.2, hw: 0050.7966.6804
*Apr 21 04:03:46.962: IP ARP: sent rep src 10.2.2.100 aabb.cc00.1000,
                                                                dst 10.1.1.2 0050.7966.6804 Ethernet0/0
*Apr 21 04:03:46.964: IP ARP: rcvd req src 10.2.2.100 0050.7966.6805, dst 10.2.2.254 Ethernet0/1
*Apr 21 04:03:46.964: IP ARP: sent rep src 10.2.2.254 aabb.cc00.1010,
                 dst 10.2.2.100 0050.7966.6805 Ethernet0/1
R254>

R254 nhận được request từ PC2 đến server 10.2.2.100, và nó trả lời cho PC2 rằng để đến được server 10.2.2.100 thì hãy sử dụng MAC aa:bb:cc:00:10:00 là địa chỉ MAC của chính interface Et0/0 của nó.

PC2> show arp     
aa:bb:cc:00:10:00  10.2.2.100 expires in 113 seconds
PC2> 

Thử tắt Proxy ARP trên cổng Et0/0 của R254

R254:
interface Ethernet0/0
no ip proxy-arp

PC1> ping 10.2.2.100
84 bytes from 10.2.2.100 icmp_seq=1 ttl=63 time=1.966 ms
84 bytes from 10.2.2.100 icmp_seq=2 ttl=63 time=0.646 ms
84 bytes from 10.2.2.100 icmp_seq=3 ttl=63 time=1.056 ms
84 bytes from 10.2.2.100 icmp_seq=4 ttl=63 time=1.065 ms
84 bytes from 10.2.2.100 icmp_seq=5 ttl=63 time=0.899 ms
PC1 vẫn ping được bình thường nhờ default gateway và bảng routing trên R254

PC2> ping 10.2.2.100
host (10.2.2.100) not reachable
PC2> 
PC2 không ping đến được server vì: R254 có subnet là 10.1.1.0/24 và nhận được request từ PC2 không nằm trong subnet 10.1.1.0/24 nên nó không forward gói tin broadcast (Router drop bỏ gói tin broadcast) chính vì thế ARP không tạo request đến Server. Trường hợp phải nhờ đến Proxy ARP để giải quyết.

R254#
*Apr 21 06:24:27.233: IP ARP: rcvd req src 10.1.1.2 0050.7966.6804, dst 10.2.2.100 Ethernet0/0
*Apr 21 06:24:28.234: IP ARP: rcvd req src 10.1.1.2 0050.7966.6804, dst 10.2.2.100 Ethernet0/0
*Apr 21 06:24:29.234: IP ARP: rcvd req src 10.1.1.2 0050.7966.6804, dst 10.2.2.100 Ethernet0/0
R254#

Khi Proxy ARP đã được TẮT trên interface Et0/0 của R254 thì R254 sẽ không thay mặt cho Server trả lời gói request này. Đó chính là lý do PC2 không ping được Server.

Noted:
- Server có thể ping đến được PC2 bình thường.
- Có 1 số trường hợp vì lý do gì đó mà không thể bật Proxy ARP trên cổng Et0/0 của R254 được mà bắt buộc PC2 phải ping đến được Server thì chúng ta phải thêm ARP tĩnh/Static ARP vào bảng ARP của PC2 với MAC là địa chỉ MAC của Et0/0 của R254 và IP là IP của Server

Lệnh thêm ARP cho PC2, nếu:
- Cisco route:
arp 10.2.2.100 aabb.cc00.1000 arpa 

PC2#show arp
Protocol  Address          Age (min)   Hardware Addr   Type    Interface
{...}
Internet  10.2.2.100              -          aabb.cc00.1000  ARPA

- Windows
arp -s 10.2.2.100 aa-bb-cc-00-10-00

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!

ARP - Address Resolution Protocol

ARP (Address Resolution Protocol) - Giao thức phân giải địa chỉ: Là giao thức sử dụng data link Ethernet để tương quan giữa một địa chỉ IP - lớp 3 và một địa MAC - lớp 2 nhằm phục vụ cho việc đóng một gói tin IP vào một frame Ethernet.

Như chúng ta đã biết trong mô hình OSI và việc encapsulation / decapsulation là khi 2 host muốn kết nối với nhau thì chúng sẽ:

+ Sẽ tạo gói tin IP gồm: Source IP, Destination IP và dữ liệu từ lớp application
+ Gói tin IP này sẽ được encapsulated tại Ethernet frame với source MAC và destination MAC

Xét sơ đồ như bên dưới:


Ví dụ Host_01 muốn ping tới Host_02, ở mỗi lớp nó sẽ đóng gói với dữ liệu khác nhau:

Layer3-Network Layer: gói tin có source ip và destination ip sẽ được xác định là:
     + Source IP là IP của host_01: 192.168.1.1
     + Destination IP là địa chỉ của host_02: 192.168.1.2. 
Gói tin IP này sẽ được đóng gói Ethernet frame để có thể truyền đi được trên data link Ethernet. 

Layer2-Data link Layer: gói tin có source MAC và destination MAC sẽ được xác định là:
     + Source MAC: MAC address của host_01
     + Destination MAC: MAC address của host_02, tuy nhiên host_01 sẽ không biết được địa chỉ MAC của host_02 là gì, nhờ giao thức ARP đã hoạt động mà nó phân giải được địa chỉ MAC của host_02.

Mô tả hoạt động của giao thức ARP:


Ban đầu gói tin được tạo ra trên host_01 như hình trên, và nó không biết được địa chỉ MAC của host_02 là gì


Host_01 sẽ gửi Broadcast gói tin ARP Request đến địa chỉ ff:ff:ff:ff:ff:ff là tất cả các node trên mạng và hỏi "Ai có địa chỉ MAC tương ứng với IP 192.168.1.2" hãy cho tôi biết


Host_02 sẽ trả lời (ARP reply) gói unicast cho host_01 rằng: "địa chỉ MAC tương ứng của IP 192.168.1.2 là 50:00:00:02:00:00" (tất các host khác cũng nhận được gói broadcast từ host_01 tuy nhiên nó không biết nên nó không trả lời)


Khi nhận gói arp reply từ host_02, nó có được địa chỉ MAC mà nó cần tìm đó chính là địa chỉ MAC của host_02 là: 50:00:00:02:00:00 nhờ vào hoạt động phân giải ARP, Tiếp đến nó thực hiện đóng frame và thực hiện việc trao đổi dữ liệu với host_02, gói tin sẽ được chuyển xuống layer 1 và truyền đi. 


Ví dụ ở đây ping, kết quả nhận được là ping thành công.


Kiểm tra arp trên máy tinh - hệ điều hành windows cùng lệnh arp -a

Trên router dùng lệnh show ip arp

Hoạt động phân giải ARP sẽ được diễn ra tương tự với các host khác trên mạng LAN, và kết quả của host_01 (ARP đã phân giải) sẽ được cập nhật IP-MAC cho mọi thiết bị còn lại trong bảng ARP Cache.


Trên switch chúng ta có thể dùng lệnh show mac address-table để biết MAC đã được học thông qua cổng nào. Tham khảo bài cơ chế học MAC của switch sẽ biết rõ hơn.

Xong!

ARP - Address Resolution Protocol

ARP (Address Resolution Protocol) - Giao thức phân giải địa chỉ: Là giao thức sử dụng data link Ethernet để tương quan giữa một địa chỉ IP - lớp 3 và một địa MAC - lớp 2 nhằm phục vụ cho việc đóng một gói tin IP vào một frame Ethernet.

Như chúng ta đã biết trong mô hình OSI và việc encapsulation / decapsulation là khi 2 host muốn kết nối với nhau thì chúng sẽ:

+ Sẽ tạo gói tin IP gồm: Source IP, Destination IP và dữ liệu từ lớp application
+ Gói tin IP này sẽ được encapsulated tại Ethernet frame với source MAC và destination MAC

Xét sơ đồ như bên dưới:


Ví dụ Host_01 muốn ping tới Host_02, ở mỗi lớp nó sẽ đóng gói với dữ liệu khác nhau:

Layer3-Network Layer: gói tin có source ip và destination ip sẽ được xác định là:
     + Source IP là IP của host_01: 192.168.1.1
     + Destination IP là địa chỉ của host_02: 192.168.1.2. 
Gói tin IP này sẽ được đóng gói Ethernet frame để có thể truyền đi được trên data link Ethernet. 

Layer2-Data link Layer: gói tin có source MAC và destination MAC sẽ được xác định là:
     + Source MAC: MAC address của host_01
     + Destination MAC: MAC address của host_02, tuy nhiên host_01 sẽ không biết được địa chỉ MAC của host_02 là gì, nhờ giao thức ARP đã hoạt động mà nó phân giải được địa chỉ MAC của host_02.

Mô tả hoạt động của giao thức ARP:


Ban đầu gói tin được tạo ra trên host_01 như hình trên, và nó không biết được địa chỉ MAC của host_02 là gì


Host_01 sẽ gửi Broadcast gói tin ARP Request đến địa chỉ ff:ff:ff:ff:ff:ff là tất cả các node trên mạng và hỏi "Ai có địa chỉ MAC tương ứng với IP 192.168.1.2" hãy cho tôi biết


Host_02 sẽ trả lời (ARP reply) gói unicast cho host_01 rằng: "địa chỉ MAC tương ứng của IP 192.168.1.2 là 50:00:00:02:00:00" (tất các host khác cũng nhận được gói broadcast từ host_01 tuy nhiên nó không biết nên nó không trả lời)


Khi nhận gói arp reply từ host_02, nó có được địa chỉ MAC mà nó cần tìm đó chính là địa chỉ MAC của host_02 là: 50:00:00:02:00:00 nhờ vào hoạt động phân giải ARP, Tiếp đến nó thực hiện đóng frame và thực hiện việc trao đổi dữ liệu với host_02, gói tin sẽ được chuyển xuống layer 1 và truyền đi. 


Ví dụ ở đây ping, kết quả nhận được là ping thành công.


Kiểm tra arp trên máy tinh - hệ điều hành windows cùng lệnh arp -a

Trên router dùng lệnh show ip arp

Hoạt động phân giải ARP sẽ được diễn ra tương tự với các host khác trên mạng LAN, và kết quả của host_01 (ARP đã phân giải) sẽ được cập nhật IP-MAC cho mọi thiết bị còn lại trong bảng ARP Cache.


Trên switch chúng ta có thể dùng lệnh show mac address-table để biết MAC đã được học thông qua cổng nào. Tham khảo bài cơ chế học MAC của switch sẽ biết rõ hơn.

Xong!
/*header slide*/