Phân mảnh gói và chèn thông tin xen kẽ (Link Fragmentation and Interleaving)
Tóm tắt tính năng:
Những công cụ hàng đợi như WFQ, CBWFQ, LLQ đảm bảo các lưu lượng dữ liệu được gửi đi bởi router với một độ ưu tiên nhất định trong đó LLQ là hàng đợi thích hợp cho những loại dữ liệu đòi hỏi đảm bảo thời gian thực như thoại luôn cần độ ưu tiên cao hơn những loại dữ liệu khác, tuy nhiên mặc dù được ưu tiên để gửi trước nhưng vấn đề gặp phải ở hàng đợi LLQ là bị ảnh hưởng bởi 1 loại trễ trong việc chuyển thông tin từ dạng bit sang tín hiệu (serialization delay), ví dụ đối với cổng 64 kbs thì để gửi 1.500 byte (12.000 bit) dữ liệu phải mất 187,5 ms và nếu gói dữ liệu thoại đến sau gói 1.500 byte thì phải mất 185,5 ms sau thì gói voice mới được gửi, với độ trễ này thì chất lượng thoại của hệ thống sẽ giảm không đáp ứng nhu cầu của người dùng cuối. Để giải quyết vấn đề này công cụ phân mảnh gói và chèn thông tin xen kẽ (Link Fragmentation and Interleaving- LFI) được sử dụng. LFI sẽ chia nhỏ gói dữ liệu lớn thành những phần nhỏ hơn với kích thước được đảm bảo để độ trễ chuyển đổi thông tin bit sang tín hiệu (serialization delay) là thấp nhất, phù hợp cho chất lượng thoại.
Mặc dù có công cụ để thực hiện LFI là Multilink PPP LFI và Frame Relay LFI Using FRF.12, tuy nhiên trong bài thực hành này chỉ hướng dẫn cấu hình Multilink PPP LFI.
Tuy nhiên có vài lưu ý khi thực hiện Multilink PPP LFI:
Lưu ý: Cần đảm bảo giá trị cấu hình băng thông trên cống bằng với tốc độ thực của cổng.
Sơ đồ
Yêu cầu
Dùng tính năng phân mảnh được hỗ trợ trong công nghệ PPP Multilink và cấu hình xen kẽ thông tin (Interleave) cho hệ thống trên.
Thực hiện:
R1#show running-config
Building configuration...
Current configuration : 963 byte
!
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
logging queue-limit 100
!
ip subnet-zero
!
mpls ldp logging neighbor-changes
!
no voice hpi capture buffer
no voice hpi capture destination
!
!
mta receive maximum-recipients 0
!
interface Ethernet0/0
ip address 192.168.0.1 255.255.255.0
half-duplex
!
interface Serial0/0
no ip address
shutdown
clockrate 64000
!
interface Serial0/1
ip address 192.168.1.1 255.255.255.0
clockrate 64000
!
ip http server
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.1.2
!
call rsvp-sync
!
voice-port 1/0/0
!
voice-port 1/0/1
!
!
mgcp profile default
!
dial-peer cor custom
!
dial-peer voice 1 pots
destination-pattern 101
port 1/0/0
!
dial-peer voice 2 voip
destination-pattern 201
session target ipv4:192.168.2.2
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
R1#
R2#sh run
Building configuration...
Current configuration : 1366 byte
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
!
resource policy
!
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp-timeout 180
ip subnet-zero
ip cef
!
!
no ip dhcp use vrf connected
!
!
no ip domain lookup
ip host r1 192.168.1.1
ip host r3 192.168.2.2
no ip ips deny-action ips-interface
!
no ftp-server write-enable
!
!
no crypto isakmp ccm
!
!
interface Multilink1
bandwidth 64
ip address 192.168.2.1 255.255.255.0
load-interval 30
fair-queue
ppp multilink
ppp multilink group 1
!
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface Serial0/1/0
ip address 192.168.1.2 255.255.255.0
no fair-queue
!
interface Serial0/2/0
bandwidth 64
no ip address
encapsulation ppp
load-interval 30
clockrate 64000
ppp multilink
ppp multilink group 1
!
ip classless
ip route 100.1.1.0 255.255.255.0 192.168.2.2
ip route 192.168.0.0 255.255.255.0 192.168.1.1
!
!
ip http server
no ip http secure-server
!
!
control-plane
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
warm-reboot
end
R2#
R3#sh run
Building configuration...
Current configuration : 1055 byte
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
memory-size iomem 10
no aaa new-model
ip subnet-zero
ip cef
!
!
!
ip audit po max-events 100
!
!
interface Loopback0
no ip address
!
interface Multilink1
bandwidth 64
ip address 192.168.2.2 255.255.255.0
load-interval 30
fair-queue
ppp multilink
ppp multilink group 1
!
interface Ethernet0/0
ip address 100.1.1.2 255.255.255.0
half-duplex
!
interface Serial0/0
bandwidth 64
no ip address
encapsulation ppp
ppp multilink
ppp multilink group 1
!
ip http server
no ip http secure-server
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.2.1
!
!
voice-port 1/1/0
!
voice-port 1/1/1
!
!
dial-peer cor custom
!
!
!
dial-peer voice 1 pots
destination-pattern 201
port 1/1/0
!
dial-peer voice 2 voip
destination-pattern 101
session target ipv4:192.168.1.1
!
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
R3#
Kiểm tra
Tạo lượng lưu lượng lớn, bởi vì tất cả lưu lượng đều được xử công bằng, nên kết quả là lưu lượng voice sẽ bị loại bỏ (drop), do đó chất lượng cuộc gọi gần như không thể nghe được.
R2#sh interfaces multilink 1
Multilink1 is up, line protocol is up
Hardware is multilink group interface
Internet address is 192.168.2.1/24
MTU 1500 byte, BW 64 Kbit, DLY 100000 usec,
reliability 255/255, txload 247/255, rxload 247/255
Encapsulation PPP, LCP Open, multilink Open
Open: CDPCP, IPCP, loopback not set
Keepalive set (10 sec)
DTR is pulsed for 2 seconds on reset
Last input 00:00:24, output never, output hang never
Last clearing of "show interface" counters 00:15:14
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 867
Queueing strategy: weighted fair
Output queue: 59/1000/64/860 (size/max total/threshold/drops)
Conversations 2/3/16 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 48 kilobits/sec
30 second input rate 62000 bits/sec, 49 packets/sec
30 second output rate 62000 bits/sec, 48 packets/sec
15477 packets input, 3856603 byte, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
14233 packets output, 3849171 byte, 0 underruns
0 output errors, 0 collisions, 5 interface resets
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
R2#
Kích hoạt tính năng ppp multilink fragment:
Mặc dù với câu lệnh này những gói dữ liệu lớn sẽ bị phân mảnh nhưng do những gói nhỏ vẫn không được chèn vào những gói bị phân mảnh dẫn đến kết quả các chất lượng gói voice vẫn không khả quan hơn do lượng gói bị loại bỏ và bị trì hoãn quá cao.
Kích hoạt thêm tính năng ppp multilink interleave để cho phép chèn gói nhỏ vào những gói bị phân mảnh.
Quan sát kết quả ta thấy việc chèn (interleave) đã xảy ra, vấn đề độ trễ do serialization delay được giải quyết, nhưng lượng gói voice bị mất quá cao, nên mặc dù chất lượng cuộc gọi được cải thiện phần nào, nhưng chất lượng vẫn chưa thể được chấp nhận.
Để giải quyết vấn đề này cần kết hợp thêm cơ chế hàng đợi LLQ để giải quyết vấn đề ưu tiên và loại bỏ gói
R2#sh run
Building configuration...
!
More
!
class-map match-all VOIP
match protocol rtp audio
!
policy-map TRAFFIC
class VOIP
priority 30
!
interface Multilink1
bandwidth 64
ip address 192.168.2.1 255.255.255.0
load-interval 30
ppp multilink
ppp multilink fragment delay 15
ppp multilink interleave
ppp multilink group 1
service-policy output TRAFFIC
!
More
!
R2#
Gói voice không còn bị loại nữa vào thời điểm này chất lượng của cuộc gọi được đảm bảo.
Lưu ý : Để đảm bảo cho chất lượng cuộc gọi hai chiều được đảm bảo, cần được triển một cách đồng nhất ở cả R2 và R3.
R3#sh run
Building configuration...
!
More
!
!
class-map match-all VOIP
match protocol rtp audio
!
policy-map TRAFFIC
class VOIP
priority 30
!
interface Multilink1
bandwidth 64
ip address 192.168.2.2 255.255.255.0
load-interval 30
ppp multilink
ppp multilink fragment delay 15
ppp multilink interleave
ppp multilink group 1
service-policy output TRAFFIC
!
interface Ethernet0/0
ip address 100.1.1.2 255.255.255.0
half-duplex
!
interface Serial0/0
bandwidth 64
no ip address
encapsulation ppp
ppp multilink
ppp multilink group 1
!
More
!
end
R3#
Tóm tắt tính năng:
Những công cụ hàng đợi như WFQ, CBWFQ, LLQ đảm bảo các lưu lượng dữ liệu được gửi đi bởi router với một độ ưu tiên nhất định trong đó LLQ là hàng đợi thích hợp cho những loại dữ liệu đòi hỏi đảm bảo thời gian thực như thoại luôn cần độ ưu tiên cao hơn những loại dữ liệu khác, tuy nhiên mặc dù được ưu tiên để gửi trước nhưng vấn đề gặp phải ở hàng đợi LLQ là bị ảnh hưởng bởi 1 loại trễ trong việc chuyển thông tin từ dạng bit sang tín hiệu (serialization delay), ví dụ đối với cổng 64 kbs thì để gửi 1.500 byte (12.000 bit) dữ liệu phải mất 187,5 ms và nếu gói dữ liệu thoại đến sau gói 1.500 byte thì phải mất 185,5 ms sau thì gói voice mới được gửi, với độ trễ này thì chất lượng thoại của hệ thống sẽ giảm không đáp ứng nhu cầu của người dùng cuối. Để giải quyết vấn đề này công cụ phân mảnh gói và chèn thông tin xen kẽ (Link Fragmentation and Interleaving- LFI) được sử dụng. LFI sẽ chia nhỏ gói dữ liệu lớn thành những phần nhỏ hơn với kích thước được đảm bảo để độ trễ chuyển đổi thông tin bit sang tín hiệu (serialization delay) là thấp nhất, phù hợp cho chất lượng thoại.
Mặc dù có công cụ để thực hiện LFI là Multilink PPP LFI và Frame Relay LFI Using FRF.12, tuy nhiên trong bài thực hành này chỉ hướng dẫn cấu hình Multilink PPP LFI.
Tuy nhiên có vài lưu ý khi thực hiện Multilink PPP LFI:
- Chỉ có thể hoạt động trên cống có hỗ trợ encapsulation ppp
- Thực hiện đồng nhất ở hai đầu giao tiếp trực tiếp.
Lưu ý: Cần đảm bảo giá trị cấu hình băng thông trên cống bằng với tốc độ thực của cổng.
Sơ đồ
Yêu cầu
Dùng tính năng phân mảnh được hỗ trợ trong công nghệ PPP Multilink và cấu hình xen kẽ thông tin (Interleave) cho hệ thống trên.
Thực hiện:
R1#show running-config
Building configuration...
Current configuration : 963 byte
!
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
logging queue-limit 100
!
ip subnet-zero
!
mpls ldp logging neighbor-changes
!
no voice hpi capture buffer
no voice hpi capture destination
!
!
mta receive maximum-recipients 0
!
interface Ethernet0/0
ip address 192.168.0.1 255.255.255.0
half-duplex
!
interface Serial0/0
no ip address
shutdown
clockrate 64000
!
interface Serial0/1
ip address 192.168.1.1 255.255.255.0
clockrate 64000
!
ip http server
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.1.2
!
call rsvp-sync
!
voice-port 1/0/0
!
voice-port 1/0/1
!
!
mgcp profile default
!
dial-peer cor custom
!
dial-peer voice 1 pots
destination-pattern 101
port 1/0/0
!
dial-peer voice 2 voip
destination-pattern 201
session target ipv4:192.168.2.2
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
R1#
R2#sh run
Building configuration...
Current configuration : 1366 byte
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
!
resource policy
!
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp-timeout 180
ip subnet-zero
ip cef
!
!
no ip dhcp use vrf connected
!
!
no ip domain lookup
ip host r1 192.168.1.1
ip host r3 192.168.2.2
no ip ips deny-action ips-interface
!
no ftp-server write-enable
!
!
no crypto isakmp ccm
!
!
interface Multilink1
bandwidth 64
ip address 192.168.2.1 255.255.255.0
load-interval 30
fair-queue
ppp multilink
ppp multilink group 1
!
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface Serial0/1/0
ip address 192.168.1.2 255.255.255.0
no fair-queue
!
interface Serial0/2/0
bandwidth 64
no ip address
encapsulation ppp
load-interval 30
clockrate 64000
ppp multilink
ppp multilink group 1
!
ip classless
ip route 100.1.1.0 255.255.255.0 192.168.2.2
ip route 192.168.0.0 255.255.255.0 192.168.1.1
!
!
ip http server
no ip http secure-server
!
!
control-plane
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
warm-reboot
end
R2#
R3#sh run
Building configuration...
Current configuration : 1055 byte
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
memory-size iomem 10
no aaa new-model
ip subnet-zero
ip cef
!
!
!
ip audit po max-events 100
!
!
interface Loopback0
no ip address
!
interface Multilink1
bandwidth 64
ip address 192.168.2.2 255.255.255.0
load-interval 30
fair-queue
ppp multilink
ppp multilink group 1
!
interface Ethernet0/0
ip address 100.1.1.2 255.255.255.0
half-duplex
!
interface Serial0/0
bandwidth 64
no ip address
encapsulation ppp
ppp multilink
ppp multilink group 1
!
ip http server
no ip http secure-server
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.2.1
!
!
voice-port 1/1/0
!
voice-port 1/1/1
!
!
dial-peer cor custom
!
!
!
dial-peer voice 1 pots
destination-pattern 201
port 1/1/0
!
dial-peer voice 2 voip
destination-pattern 101
session target ipv4:192.168.1.1
!
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
R3#
Kiểm tra
Tạo lượng lưu lượng lớn, bởi vì tất cả lưu lượng đều được xử công bằng, nên kết quả là lưu lượng voice sẽ bị loại bỏ (drop), do đó chất lượng cuộc gọi gần như không thể nghe được.
R2#sh interfaces multilink 1
Multilink1 is up, line protocol is up
Hardware is multilink group interface
Internet address is 192.168.2.1/24
MTU 1500 byte, BW 64 Kbit, DLY 100000 usec,
reliability 255/255, txload 247/255, rxload 247/255
Encapsulation PPP, LCP Open, multilink Open
Open: CDPCP, IPCP, loopback not set
Keepalive set (10 sec)
DTR is pulsed for 2 seconds on reset
Last input 00:00:24, output never, output hang never
Last clearing of "show interface" counters 00:15:14
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 867
Queueing strategy: weighted fair
Output queue: 59/1000/64/860 (size/max total/threshold/drops)
Conversations 2/3/16 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 48 kilobits/sec
30 second input rate 62000 bits/sec, 49 packets/sec
30 second output rate 62000 bits/sec, 48 packets/sec
15477 packets input, 3856603 byte, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
14233 packets output, 3849171 byte, 0 underruns
0 output errors, 0 collisions, 5 interface resets
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
R2#
R2#sh queue multilink 1
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1137
Queueing strategy: weighted fair
Output queue: 37/1000/64/1130 (size/max total/threshold/drops)
Conversations 2/3/16 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 48 kilobits/sec
(depth/weight/total drops/no-buffer drops/interleaves) 35/5397/1122/0/0
Conversation 2, linktype: ip, length: 62
source: 192.168.1.1, destination: 192.168.2.2, id: 0x01EA, ttl: 253,
TOS: 184 prot: 17, source port 18604, destination port 16870
(depth/weight/total drops/no-buffer drops/interleaves) 2/32384/8/0/0
Conversation 3, linktype: ip, length: 1430
source: 192.168.0.3, destination: 100.1.1.1, id: 0x0E9C, ttl: 126, prot: 1
Kích hoạt tính năng ppp multilink fragment:
R2#sh queue multilink 1
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1869
Queueing strategy: weighted fair
Output queue: 54/1000/64/1862 (size/max total/threshold/drops)
Conversations 2/3/16 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 48 kilobits/sec
(depth/weight/total drops/no-buffer drops/interleaves) 52/32384/1846/0/0
Conversation 2, linktype: ip, length: 1430
source: 192.168.0.2, destination: 100.1.1.1, id: 0x0E24, ttl: 126, prot: 1
(depth/weight/total drops/no-buffer drops/interleaves) 2/32384/16/0/0
Conversation 3, linktype: ip, length: 1430
source: 192.168.0.3, destination: 100.1.1.1, id: 0x0F51, ttl: 126, prot: 1
Mặc dù với câu lệnh này những gói dữ liệu lớn sẽ bị phân mảnh nhưng do những gói nhỏ vẫn không được chèn vào những gói bị phân mảnh dẫn đến kết quả các chất lượng gói voice vẫn không khả quan hơn do lượng gói bị loại bỏ và bị trì hoãn quá cao.
Kích hoạt thêm tính năng ppp multilink interleave để cho phép chèn gói nhỏ vào những gói bị phân mảnh.
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#interface multilink 1
R2(config-if)#ppp multilink interleave
R2(config-if)#
R2#sh queue multilink 1
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 3112
Queueing strategy: weighted fair
Output queue: 64/1000/64/3105/596 (size/max total/threshold/drops/interleaves)
Conversations 2/4/16 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 48 kilobits/sec
(depth/weight/total drops/no-buffer drops/interleaves) 60/5397/3070/0/0
Conversation 2, linktype: ip, length: 62
source: 192.168.1.1, destination: 192.168.2.2, id: 0x0282, ttl: 253,
TOS: 184 prot: 17, source port 18604, destination port 16870
(depth/weight/total drops/no-buffer drops/interleaves) 4/32384/35/0/357
Conversation 3, linktype: ip, length: 1430
source: 192.168.0.3, destination: 100.1.1.1, id: 0x1042, ttl: 126, prot: 1
Quan sát kết quả ta thấy việc chèn (interleave) đã xảy ra, vấn đề độ trễ do serialization delay được giải quyết, nhưng lượng gói voice bị mất quá cao, nên mặc dù chất lượng cuộc gọi được cải thiện phần nào, nhưng chất lượng vẫn chưa thể được chấp nhận.
Để giải quyết vấn đề này cần kết hợp thêm cơ chế hàng đợi LLQ để giải quyết vấn đề ưu tiên và loại bỏ gói
R2#sh run
Building configuration...
!
More
!
class-map match-all VOIP
match protocol rtp audio
!
policy-map TRAFFIC
class VOIP
priority 30
!
interface Multilink1
bandwidth 64
ip address 192.168.2.1 255.255.255.0
load-interval 30
ppp multilink
ppp multilink fragment delay 15
ppp multilink interleave
ppp multilink group 1
service-policy output TRAFFIC
!
More
!
R2#
R2#sh queue multilink 1
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 10
Queueing strategy: Class-based queueing
Output queue: 2/1000/64/10/51871 (size/max total/threshold/drops/interleaves)
Conversations 2/5/16 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 18 kilobits/sec
(depth/weight/total drops/no-buffer drops/interleaves) 1/0/0/0/0
Conversation 24, linktype: ip, length: 62
source: 192.168.1.1, destination: 192.168.2.2, id: 0x0414, ttl: 253,
TOS: 184 prot: 17, source port 18604, destination port 16870
(depth/weight/total drops/no-buffer drops/interleaves) 1/32384/10/0/25776
Conversation 3, linktype: ip, length: 1430
source: 192.168.0.3, destination: 100.1.1.1, id: 0x1931, ttl: 126, prot: 1
Gói voice không còn bị loại nữa vào thời điểm này chất lượng của cuộc gọi được đảm bảo.
Lưu ý : Để đảm bảo cho chất lượng cuộc gọi hai chiều được đảm bảo, cần được triển một cách đồng nhất ở cả R2 và R3.
R3#sh run
Building configuration...
!
More
!
!
class-map match-all VOIP
match protocol rtp audio
!
policy-map TRAFFIC
class VOIP
priority 30
!
interface Multilink1
bandwidth 64
ip address 192.168.2.2 255.255.255.0
load-interval 30
ppp multilink
ppp multilink fragment delay 15
ppp multilink interleave
ppp multilink group 1
service-policy output TRAFFIC
!
interface Ethernet0/0
ip address 100.1.1.2 255.255.255.0
half-duplex
!
interface Serial0/0
bandwidth 64
no ip address
encapsulation ppp
ppp multilink
ppp multilink group 1
!
More
!
end
R3#