目錄
前言
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 2021-07-22
Posted In: Layer 2 网络技术
发表回复