Ubuntu IPv6 pppoe服务器搭建(基于Kea DHCP Server V1.2.0)

1、安装pppoe服务器
sudo apt-get install pppoe

2、配置pppoe服务器
(1) 修改/etc/ppp/chap-secrets,增加拨号用户名,密码:
增加一行:"chap"   *   "chap"    *

(2) 新增/etc/ppp/pppoe-server-options
增加一行:+ipv6(加号不能省略,否则拨号失败)

3、启动pppoe服务器
pppoe-server -I eth0 -L 10.10.10.49  -R 10.10.10.50  -N 50

注:
  • chap认证方式这样配置即可,pap还没有验证。
  • 按此配置客户端获取的只是link local地址。


4、启动RADVD和重启kea

  • 将/usr/share/doc/ppp/examples/scripts/ipv6-up.sample 拷贝为/etc/ppp/ipv6-up.d/ipv6-up,并修改如下:


#!/bin/sh
#
# This script is called with the following parameters:
# interface tty speed local-address remote-address ipparam
#


# Start router advertisements on this link.
# Based on radvd 0.5.0 behaviour

DEVICE="$1"

CFGFILE="/etc/radvd.conf-$DEVICE"
PIDFILE="/var/run/radvd/radvd-$DEVICE.pid"
EXEFILE="/usr/sbin/radvd"
LOGFILE="/var/log/pppoe-server"

GenerateRadvdConfig()
{
    echo  "[`date +%H`:`date +%M`:`date +%S`][$0] generate radvd config for $DEVICE" >> "$LOGFILE"


    cp /etc/radvd.conf "$CFGFILE"
    if [ $? -eq 0 ];then
        sed -i "s/eno1/$DEVICE/g"  "$CFGFILE"
    else
        echo  "[`date +%H`:`date +%M`:`date +%S`][$0] cp /etc/radvd.conf failed" >>  "$LOGFILE"
    fi
}

RunRadvd()
{
    if [ -x "$EXEFILE" -a -f "$CFGFILE" ]; then
        echo  "[`date +%H`:`date +%M`:`date +%S`][$0] $EXEFILE -u radvd -C $CFGFILE -p $PIDFILE " >>  "$LOGFILE"
        "$EXEFILE" -u radvd -C "$CFGFILE" -p "$PIDFILE"
    else
        echo  "[`date +%H`:`date +%M`:`date +%S`][$0] $EXEFILE is not executable, or $CFGFILE is not existed " >>  "$LOGFILE"
    fi
}


ModifyKeaConfig()
{
    local configPath="/usr/local/etc/kea/kea.conf"
    local lineNum=`grep \"interface\":\"eno1\" "$configPath"  -n |cut -d : -f 1`
    local samplePath="/etc/ppp/ipv6-up.d/kea_pool.sample"



    #配置地址池
    sed -i "s/eno1/$DEVICE/g" "$samplePath"
    sed -i "$lineNum r $samplePath" "$configPath"
    sed -i "s/$DEVICE/eno1/g" "$samplePath"
}


##################################################### main #####################################
echo  "[`date +%H`:`date +%M`:`date +%S`][$0] $DEVICE up" >>  "$LOGFILE"


#1.生成radvd配置,并启动radvd进程
GenerateRadvdConfig
RunRadvd


#2.修改kea-dhcp6的配置,并重启服务
ModifyKeaConfig
keactrl stop
keactrl start

  • 在/etc/ppp/ipv6-up.d/下新建文件kea_pool.sample,并修改为:
        },
    {
      "subnet": "2001:10:10:10::/64",
      "pools": [ { "pool": "2001:10:10:10::1-2001:10:10:10::ffff" } ],
      "pd-pools": 
      [
        {
          "prefix": "3000:6666:6666:6666::",
          "prefix-len": 48,
          "delegated-len": 64
        }
      ],
      "interface":"eno1"


  • 将/usr/share/doc/ppp/examples/scripts/ipv6-down.sample拷贝为/etc/ppp/ipv6-down.d/ipv6-down,并修改为:
    #!/bin/sh
    #
    # This script is called with the following parameters:
    # interface tty speed local-address remote-address ipparam
    #
    
    
    # Kill the router advertisement daemon on this interface.
    # The killing procedure is copied from RedHat 6.0 initscripts.
    
    DEVICE="$1"
    
    PIDFILE="/var/run/radvd/radvd-$DEVICE.pid"
    CFGFILE="/etc/radvd.conf-$DEVICE"
    LOGFILE="/var/log/pppoe-server"
    
    
    StopRadvd()
    {
        local PID="$(cat "$PIDFILE")"
        if [ "$PID" != "" ]; then
            echo  "[`date +%H`:`date +%M`:`date +%S`][$0] kill -TERM $PID" >> "$LOGFILE"
            kill -TERM "$PID"
        fi
    
        rm -f "$PIDFILE"
        rm -f "$CFGFILE"
    }
    
    
    ModifyKeaConfig()
    {
        local configPath="/usr/local/etc/kea/kea.conf"
        local endLineNum=`grep \"interface\":\""$DEVICE"\" "$configPath"  -n |cut -d : -f 1`
        local startLineNum=`expr $endLineNum - 12` 
    
    
        # 删除地址池
        sed -i "${startLineNum},${endLineNum}d" "$configPath"
    }
    
    ##################################################### main #####################################
    echo  "[`date +%H`:`date +%M`:`date +%S`][$0] $DEVICE down" >> "$LOGFILE"
    
    StopRadvd
    
    ModifyKeaConfig
    keactrl stop
    keactrl start
    
    
    



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
Kea DHCP(Dynamic Host Configuration Protocol)是一个灵活且高度可扩展的DHCP服务器软件,它由IETF (Internet Engineering Task Force) 委员会开发,用于自动分配IP地址和网络配置给网络中的设备。Kea DHCP的主要优点和缺点如下: **优点:** 1. **可定制性和灵活性**:Kea提供了强大的插件系统,可以根据需求自定义功能,支持IPv4和IPv6地址分配。 2. **安全性**:内置安全机制,如租约保护、身份验证和授权,有助于防止恶意攻击和未经授权的配置。 3. **高可靠性**:模块化设计使得故障排查和维护更方便,且支持高可用性和集群部署。 4. **审计与日志**:支持详细的审计和日志记录,便于跟踪网络活动和事件。 5. **易扩展**:能够处理大规模网络和动态变化的需求。 **缺点:** 1. **学习曲线陡峭**:Kea的功能强大,对于新手来说可能有一定的学习成本,特别是配置复杂场景。 2. **资源消耗**:对于大型网络,管理和维护这样一个复杂的系统可能会占用较多的服务器资源。 3. **性能开销**:尽管可扩展,但处理大量请求时,性能可能不如一些专为简化部署而优化的传统DHCP服务器。 4. **依赖于IETF标准**:这意味着某些新功能或优化可能需要等待标准化过程完成,导致更新周期可能较长。 5. **社区和文档**:虽然Kea社区活跃,但对于某些用户来说,文档和教程可能不够全面,尤其是在早期版本中。 **相关问题--:** 1. Kea如何处理IPv6地址分配? 2. 如何在Kea中启用身份验证? 3. Kea的模块化设计如何影响其性能?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值