草庐IT

PPPOE配置实例

永远是少年啊 2023-04-09 原文

本文主要是PPPoE的配置实例,使用了华为系列设备,完成了对PPPoE的配置过程,本文适合对PPPoE理论有一定了解的同学阅读,如果您对PPPoE还存在一些基础知识上的不足,可以查阅本博客其他文章。

一、PPPOE配置环境和要求

本实验拓扑图如下所示:

左边R7为PPPoE服务端,右边两个路由器为PPPoE客户端,客户端IP地址通过服务端远程获取,客户端和服务端使用CHAP认证。

二、PPPOE配置详解

PPPoE配置可以分为以下6大步骤:
1、服务端配置ppp用户

 aaa
  local-user user password cipher USER
  local-user user service-type ppp

这段命令表示创建一个ppp用户,该用户将被应用于后面的chap认证环节,只有拥有正确口令的用户才能完成PPPoE的全过程。
2、服务端配置IP地址池

ip pool PPPOE
 gateway-list 100.1.1.1 
 network 100.1.1.0 mask 255.255.255.0 

这段命令表示创建一个PPPoE地址池,PPPoE服务器会对客户端分配地址池中的IP地址。
3、服务端配置虚模板接口

interface Virtual-Template1
 ppp authentication-mode chap 
 remote address pool PPPOE
 ip address unnumbered interface GigabitEthernet0/0/0

每个PPPoE服务端都要配置虚模板接口,在该接口上,会致命认证的协议、远端IP地址和本地的IP地址。上面的命令表示使用chap方式认证,远端地址会分配PPPOE地址池内的地址,本地地址和G0/0/0口上的地址保持一致。
4、服务端实现虚模板接口和物理接口的绑定

interface GigabitEthernet0/0/0
 pppoe-server bind Virtual-Template 1
 ip address 100.1.1.1 255.255.255.0 

上述命令实现了在PPPOE Server端上,虚模板接口与物理接口的绑定。
5、客户端配置拨号口

interface Dialer1
 ppp ipcp default-route
 ppp chap user USER
 ppp chap password cipher USER
 mtu 1492
 ip address ppp-negotiate
 dialer user USER
 dialer bundle 1

上述代码实现了客户端拨号口的设置,第一条命令表示生成一条PPPoE的默认路由,指向服务端,第二、三条命令表示配置PPPoE的用户名和密码,第四条命令表示配置PPPoE的最大传输单元,因为PPPoE在以太网链路上运行,因此本来最大传输单元是1500byte,但是由于要封装PPPoE的包头,该包头长度为8字节,因此一般需要配置MTU为1492。第五条命令表示IP地址从服务器获取,第六条和第七条表示绑定物理接口。
6、客户端配置拨号口与物理口绑定

interface GigabitEthernet0/0/0
 pppoe-client dial-bundle-number 1 

在PPPoE客户端上,要执行上述命令实现PPPoE客户端拨号口和物理口的绑定。

三、PPPoE配置结果查看

在客户端上执行命令:

display ip interface brief 

如果看到Dialer接口获取了IP地址,就表示PPPoE配置成功。

四、附录——PPPOE配置命令集合

最后,把上述实现过程代码给大家展示一下(只包含本次配置相关代码):
R7:

ip pool PPPOE
 gateway-list 100.1.1.1 
 network 100.1.1.0 mask 255.255.255.0 
#
aaa 
 local-user user password cipher %$%$}lw<Qj!+m;iGA%Gzv%&TA%Cr%$%$
 local-user user service-type ppp
#
interface Virtual-Template1
 ppp authentication-mode chap 
 remote address pool PPPOE
 ip address unnumbered interface GigabitEthernet0/0/0
#
interface GigabitEthernet0/0/0
 pppoe-server bind Virtual-Template 1
 ip address 100.1.1.1 255.255.255.0 

R8:

interface Dialer1
 link-protocol ppp
 ppp ipcp default-route
 ppp chap user USER
 ppp chap password cipher %$%$=bbLPft]0;YF>A*RJ7C-,.:K%$%$
 mtu 1492
 ip address ppp-negotiate
 dialer user USER
 dialer bundle 1
#
interface GigabitEthernet0/0/0
 pppoe-client dial-bundle-number 1 

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118530484

有关PPPOE配置实例的更多相关文章

  1. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  2. ruby 正则表达式 - 如何替换字符串中匹配项的第 n 个实例 - 2

    在我的应用程序中,我需要能够找到所有数字子字符串,然后扫描每个子字符串,找到第一个匹配范围(例如5到15之间)的子字符串,并将该实例替换为另一个字符串“X”。我的测试字符串s="1foo100bar10gee1"我的初始模式是1个或多个数字的任何字符串,例如,re=Regexp.new(/\d+/)matches=s.scan(re)给出["1","100","10","1"]如果我想用“X”替换第N个匹配项,并且只替换第N个匹配项,我该怎么做?例如,如果我想替换第三个匹配项“10”(匹配项[2]),我不能只说s[matches[2]]="X"因为它做了两次替换“1fooX0barXg

  3. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  4. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  5. ruby-on-rails - Rails - 从另一个模型中创建一个模型的实例 - 2

    我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案

  6. ruby-on-rails - RSpec:避免使用允许接收的任何实例 - 2

    我正在处理旧代码的一部分。beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)endRubocop错误如下:Avoidstubbingusing'allow_any_instance_of'我读到了RuboCop::RSpec:AnyInstance我试着像下面那样改变它。由此beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)end对此:let(:sport_

  7. ruby-on-rails - 使用 ruby​​ 将多个实例变量转换为散列的更好方法? - 2

    我收到格式为的回复#我需要将其转换为哈希值(针对活跃商家)。目前我正在遍历变量并执行此操作:response.instance_variables.eachdo|r|my_hash.merge!(r.to_s.delete("@").intern=>response.instance_eval(r.to_s.delete("@")))end这有效,它将生成{:first="charlie",:last=>"kelly"},但它似乎有点hacky和不稳定。有更好的方法吗?编辑:我刚刚意识到我可以使用instance_variable_get作为该等式的第二部分,但这仍然是主要问题。

  8. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  9. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  10. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

随机推荐