目錄
前言
Point-to-Point Protocol (PPP) 是用於 Layer 2 的 Protocol,一般應用於像 Serial Interface 這種點對點接口,目的是建立連線和提供認證功能等等。Cisco Router 預設在 Serial Interface 使用 High-Level Data Link Control (HDLC),雖然其他品牌都支緩 HDLC,但不同品牌之間的 HDLC 是不互通的!因此要連接不同品牌 Router 的 Serial Interface,就必需使用 PPP 了。
High-Level Data Link Control (HDLC)
現在先介紹一下 HDLC,畢竟是預設的 Protocol。其實也沒有甚麽值得好研究的,因為設定不多,只能簡單看看。
基本上,只要 R1 和 R2 的 Interface 都 no shutdown,HDLC 就啟動了。用 show interface 指令就可看到。
R1#show interfaces serial 0/0
Serial0/0 is up, line protocol is up
Hardware is M4T
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation HDLC, crc 16, loopback not set
Keepalive set (10 sec)
<--Output Omitted-->
用 show controllers 指令,可看到 Layer 2 資訊,Clockrate 是一項重要資料,表示這個 Interface 的傳輸速度。
R1#show controllers serial 0/0
M4T: show acontroller:
PAS unit 0, subunit 0, f/w version 1-45, rev ID 0x2800001, version 1
idb = 0x644130D0, ds = 0x64414190, ssb=0x6441454C
Clock mux=0x0, ucmd_ctrl=0x1C, port_status=0x7B
Serial config=0x8, line config=0x200
maxdgram=1608, bufpool=78Kb, 120 particles
DCD=up DSR=up DTR=up RTS=up CTS=up
line state: up
cable type : V.11 (X.21) DCE cable, received clockrate 2015232
base0 registers=0x3C000000, base1 registers=0x3C002000
mxt_ds=0x64CB9E50, rx ring entries=78, tx ring entries=128
rxring=0x7B237A0, rxr shadow=0x6441ABA8, rx_head=45
txring=0x7B23A60, txr shadow=0x6441AF84, tx_head=47, tx_tail=47, tx_count=0
throttled=0, enabled=0
halted=0, last halt reason=0
Microcode fatal errors=0
rx_no_eop_err=0, rx_no_stp_err=0, rx_no_eop_stp_err=0
rx_no_buf=0, rx_soft_overrun_err=0, dump_err= 0, bogus=0, mxt_flags=0x0
tx_underrun_err=0, tx_soft_underrun_err=0, tx_limited=1(2)
tx_fullring=0, tx_started=47, mxt_flush_count=0
rx_int_count=45, tx_int_count=50
如果想更改 Clock Rate 可在 Interface 使用 clock rate <rate> 指令。速度必需使用以下的值,留意在真實環境下,Serial 接線分為 DCE 和 DTE 接口,只有 DCE 一端需要設定 Clock Rate,而 DTE 則會自動使用 DCE 的 Clock Rate。但在 GNS3 之中則不能模擬自動取 Clock Rate。
R1(config-if)#clock rate ? With the exception of the following standard values not subject to rounding, 1200 2400 4800 9600 14400 19200 28800 38400 56000 64000 128000 2015232 accepted clockrates will be bestfitted (rounded) to the nearest value supportable by the hardware. <246-8064000> DCE clock rate (bits per second) R1(config-if)#clock rate 19200
再用 show controllers 指令確定 Clock Rate 已經改變。
R1#show controllers serial 0/0
*Mar 1 00:16:06.659: %SYS-5-CONFIG_I: Configured from console by console
R1#show controllers serial 0/0
M4T: show controller:
PAS unit 0, subunit 0, f/w version 1-45, rev ID 0x2800001, version 1
idb = 0x644130D0, ds = 0x64414190, ssb=0x6441454C
Clock mux=0x0, ucmd_ctrl=0x1C, port_status=0x7B
Serial config=0x8, line config=0x200
maxdgram=1608, bufpool=78Kb, 120 particles
DCD=up DSR=up DTR=up RTS=up CTS=up
line state: up
cable type : V.11 (X.21) DCE cable, received clockrate 19200
<--Output Omitted-->
Point-to-Point Protocol (PPP)
現在試把 HDLC 改成 PPP,Line Protocol 立刻 Down 了,當然!因為另一邊都需要同樣的設定。
R1(config-if)#encapsulation ppp R1(config-if)# *Mar 1 00:18:37.135: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down
把 R2 的 Serial Interface 也設成 PPP 看看。
R2(config-if)#encapsulation ppp
R2(config-if)#
*Mar 1 00:21:23.375: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
R2(config-if)#do show interface serial 0/0
Serial0/0 is up, line protocol is up
Hardware is M4T
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation PPP, LCP Open
Open: CDPCP, crc 16, loopback not set
Password Authentication Protocol (PAP)
PPP 能夠支緩 Authentication,其中一個方法是 PAP。現在我們嘗試由 R2 要求 R1 提供認證,首先在 R2 設定 Username 和 Password,然後在 Interface 用 ppp authentication pap 要求對方要提供 pap 認證資料。
R2(config)#username cisco password ccie R2(config)#interface serial 0/0 R2(config-if)#ppp authentication pap
然後在 R1 設定好 PAP 的 Username 和 Password 便 OK 了!
R1(config-if)#ppp pap sent-username cisco password ccie
如果希望雙向認證的話,只要把指令在另一隻 Router 再執行一次便可以了,而雙方的 Username 和 Password 可以不相同,結果如下:
hostname R1 ! username cisco2 password 0 ccie2 ! interface Serial0/0 no ip address encapsulation ppp ppp authentication pap ppp pap sent-username cisco password 0 ccie
hostname R2 ! username cisco password 0 ccie ! interface Serial0/0 no ip address encapsulation ppp ppp authentication pap ppp pap sent-username cisco2 password 0 ccie2
Challenge-Handshake Authentication Protocol (CHAP)
用 PAP 有一個問題,就是 Username 和 Password 會以明碼傳送,這可能會引起保安問題。轉用 CHAP 會比較好,因為 CHAP 會先把 Username 和 Password Hash 後再傳送。
首先在 R1 和 R2 設定 Username 和 Password,Username 必需是對方的 hostname,而 Password 必需相同。
R1(config)#username R2 password ccie
R2(config)#username R1 password ccie
然後,只要把 authentication 改成 chap 便可以了,結果如下:
hostname R1
!
username R2 password ccie
!
interface Serial0/0
no ip address
encapsulation ppp
ppp authentication chap
hostname R2
!
username R1 password ccie
!
interface Serial0/0
no ip address
encapsulation ppp
ppp authentication chap
Point-to-Point Protocol over Ethernet (PPPoE)
故名思義,PPPoE 是把 PPP 封裝在 Ethernet 網絡裡面的一種協定,在 Ethernet 上實現了認證和加密等功能。一般應用在 Cable Modem 或 DSL 連線。
PPPoE Server 設定
要進行 PPPoE 實驗,先要用一隻 Router 模擬 ISP 的 Router。設定 ISP 的步驟如下:
首先設定將會配給 PPPoE Client 的 IP Pool。
ISP(config)#ip local pool Pool1 10.0.0.2 10.0.0.254
然後設定 Username 和 Password。
ISP(config)#username Client1 password 0 pass1
接著建立 Virtual-Template Interface,PPPoE Client 會連接到這個 Interface,給 Interface 定個 IP,然後告訴它要派給 Client 的 IP Pool 是什麼。
ISP(config)#interface virtual-template 1 ISP(config-if)#ip address 10.0.0.1 255.255.255.0 ISP(config-if)#peer default ip address pool Pool1 ISP(config-if)#ppp authentication chap
跟著建立 Broadband Aggregation (BBA) group,把剛剛造起的 virtual-template 1 塞進去。
ISP(config)#bba-group pppoe Group1 ISP(config-bba-group)#virtual-template 1
最後把這個 BBA Group 放進 Interface。
ISP(config)#int ethernet 0/0 ISP(config-if)#pppoe enable group Group1 ISP(config-if)#no shutdown
PPPoE Client 設定
建立 Dialer Interface,MTU 要設成 1492 ,IP Address 用 negotiated 來問 Server 取 IP,最後提供密碼。
Client1(config)#interface Dialer1 Client1(config-if)#mtu 1492 Client1(config-if)#ip address negotiated Client1(config-if)#encapsulation ppp Client1(config-if)#dialer pool 1 Client1(config-if)#ppp chap password 0 pass1
然後把這個 Dialer Pool 放進 Interface 裡。
Client1(config)#interface Ethernet0/0 Client1(config-if)#pppoe-client dial-pool-number 1 Client1(config-if)#no shutdown
如果設定成功,可用 show pppoe session 查詢 PPPoE 的狀態,當然也能夠 Ping 到 Server 的 IP Address。
Client1#show pppoe session 1 client session Uniq ID PPPoE RemMAC Port VT VA State SID LocMAC VA-st N/A 176 cc00.27a4.0000 Et0/0 Di1 Vi1 UP cc01.27a4.0000 UP Client1#ping 10.0.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/28/40 ms
Multilink PPP (MLPPP)
Multilink PPP 可以把多條 PPP Link 組合成一條 Multilink,實現 Load Balance 效果,情況就像 Ethernet 裡面的 EtherChannel,現在我們試試為以下網絡設定 MLPPP。
先在 R1 為 Serial 0/0 和 Serial 0/1 設定 PPP 和 Multilink,Group 1 是 Multilink 的 logical group。
R1(config)#int serial 0/0 R1(config-if)#encapsulation ppp R1(config-if)#ppp multilink R1(config-if)#ppp multilink group 1 R1(config-if)#no shutdown
R1(config)#int serial 0/1 R1(config-if)#encapsulation ppp R1(config-if)#ppp multilink R1(config-if)#ppp multilink group 1 R1(config-if)#no shutdown
然後建立 1 條 Multilink Interface,設定 IP 和 Multilink。
R1(config)#int multilink 1 R1(config-if)#ip address 192.168.1.1 255.255.255.0 R1(config-if)#ppp multilink R1(config-if)#ppp multilink group 1
設定好 R1 後,在 R2 做相同的設定。
R2(config)#int serial 0/0 R2(config-if)#encapsulation ppp R2(config-if)#ppp multilink R2(config-if)#ppp multilink group 1 R2(config-if)#no shutdown
R2(config)#int serial 0/1 R2(config-if)#encapsulation ppp R2(config-if)#ppp multilink R2(config-if)#ppp multilink group 1 R2(config-if)#no shutdown
R2(config)#int multilink 1 R2(config-if)#ip address 192.168.1.2 255.255.255.0 R2(config-if)#ppp multilink R2(config-if)#ppp multilink group 1
現在證實一下兩個 Interface 是否真的實現 Load Balance,先把 Serial 0/0 和 Serial 0/1 的 counter 清除:
R1#clear counters serial 0/0 Clear "show interface" counters on this interface [confirm] R1# *Mar 1 00:39:53.003: %CLEAR-5-COUNTERS: Clear counter on interface Serial0/0 by console R1#clear counters serial 0/1 Clear "show interface" counters on this interface [confirm] R1# *Mar 1 00:39:56.683: %CLEAR-5-COUNTERS: Clear counter on interface Serial0/1 by console
然後用比較大的 Datagram size 來 Ping 對方:
R1#ping Protocol [ip]: Target IP address: 192.168.1.2 Repeat count [5]: 99 Datagram size [100]: 9999 Timeout in seconds [2]: Extended commands [n]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 99, 9999-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!! Success rate is 100 percent (99/99), round-trip min/avg/max = 72/80/112 ms
比較一下,Multilink 的 Input 和 Output 分別大約等於 Serial 0/0 及 Serial 0/1 的 Input 和 Ouput 總和。
R1#show interface multilink 1 | begin 5 minute output 5 minute output rate 124000 bits/sec, 8 packets/sec 694 packets input, 1004863 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 694 input errors, 0 CRC, 694 frame, 0 overrun, 0 ignored, 0 abort 694 packets output, 1014579 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions R1# R1#show interface serial 0/0 | begin 5 minute output 5 minute output rate 59000 bits/sec, 7 packets/sec 706 packets input, 506838 bytes, 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 706 packets output, 506838 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up R1# R1#show interface serial 0/1 | begin 5 minute output 5 minute output rate 58000 bits/sec, 6 packets/sec 706 packets input, 508125 bytes, 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 706 packets output, 508125 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up
相關主題
Jan Ho 2014-08-20
Posted In: Layer 2 網絡技術
發佈留言