lua-resty-dhcp

ngx_steam_lua 模块的 DHCP 服务器实现

$ opm get bjne/lua-resty-dhcp

名称

lua-resty-dhcp

此库目前已可使用,但仍处于高度实验阶段。

Lua API 仍在不断发展,可能在未来随时更改,恕不另行通知。

概要

    stream {
        server {
            listen 10.0.0.1:67 udp;
    
            content_by_lua_block {
                local dhcpd = require "resty.dhcp.server"
    
                local function dhcpd_callback(op, packet, options)
                    return {
                        yiaddr = "10.10.0.5",
                        options = {
                            subnet_mask = "255.255.255.0",
                            broadcast_address = "10.10.10.255",
                            router = {"10.10.10.1", "10.10.10.2"},
                            domain_name = "openresty.com",
                            hostname = "agentzh.openresty.com",
                            address_lease_time = 86400,
                            renewal_time = 3600,
                            ipxe = {
                                no_proxydhcp = 1
                            }
                        }
                    }
                end
    
                local ok, err = dhcpd.serve(dhcpd_callback)
                if not ok then
                    ngx.log(ngx.ERR, err)
                end
            }
        }
    }

描述

此库提供了一个简单且不完整的 DHCP 数据包/协议实现。目前大多数选项都被定义为 void,需要使用 typedef 才能使用。如果您这样做,请提交拉取请求。

安装

将 lib 目录中的内容复制到 ngx-lua 的搜索路径中的某个路径,或在 nginx 的配置中定义该路径。

    # nginx.conf
    stream {
        lua_package_path "${prefix}/lib/?.lua;;";
    }

然后在 Lua 中加载此库提供的模块。例如,

    local dhcpd = require "resty.dhcp.server"
    
    or use packet directly:
    
    local dhcp_packet = require "resty.dhcp.packet"

错误和补丁

请通过以下方式报告错误或提交补丁:

GitHub 问题跟踪器 上创建工单,

作者

Bjørnar Ness <bjornar.ness@gmail.com>

版权和许可

此模块根据 BSD 许可证授权。

版权所有 (C) 2016-2017,Bjørnar Ness 所有。

保留所有权利。

在满足以下条件的情况下,允许以源代码和二进制形式重新分发和使用本软件,无论是否修改。

  • 源代码的重新分发必须保留上述版权声明、此条件列表以及以下免责声明。

  • 二进制形式的重新分发必须在随发行提供的文档和/或其他材料中复制上述版权声明、此条件列表以及以下免责声明。

本软件由版权持有人和贡献者“按原样”提供,并且不附带任何明示或暗示的担保,包括但不限于适销性和特定用途适用性的暗示担保。在任何情况下,版权持有人或贡献者均不对任何直接的、间接的、附带的、特殊的、惩罚性的或后果性的损害(包括但不限于采购替代商品或服务的费用;使用、数据或利润损失;或业务中断)负责,无论这些损害是由于使用本软件而引起的还是以任何其他方式引起的,无论是基于合同、严格责任还是侵权行为(包括疏忽或其他原因),即使已告知有关发生此类损害的可能性。

另请参见

  • 模块 [resty.tftp]:https://github.com/bjne/lua-resty-tftp

  • ngx_stream_lua 模块:https://github.com/openresty/stream-lua-nginx-module

  • OpenResty:https://openresty.org.cn/

作者

Bjørnar Ness <bjornar.ness@gmail.com>

许可证

2bsd

版本