精华内容
下载资源
问答
  • 像本范例中这样的地址格式(假如你申请了一个公网域名contoso.org 固定公网IPv4是 123.125.115.110(一旦公网域名申请下来就把hosts文件中的contoso.org对应的假公网IP换成申请域名填写固定公网IPv4地址123.125.115....

    用Kong配置一个book服务
    在安装并启动Kong之后,使用Kong的管理API端口8001添加一个名称为book的服务
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/services/ \
    --data 'name=book' \
    --data 'url=http://contoso.com/v1/books'

    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:27:47 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "host": "contoso.com", 
        "created_at": 1526099267, 
        "connect_timeout": 60000, 
        "id": "f4c0d700-ce37-4a97-b7c2-21c4f8620510", 
        "protocol": "http", 
        "name": "book", 
        "read_timeout": 60000, 
        "port": 80, 
        "path": "/v1/books", 
        "updated_at": 1526099267, 
        "retries": 5, 
        "write_timeout": 60000
    }
    
    添加一个路由(paths[]的值必须与book服务中的/v1/books一致)
    使book服务暴露出来以供用户访问,book服务没必要添加多个路由。
    注意啦,注意啦,注意啦,重要参数我只重复3遍
    跨源资源共享(CORS)中的服务路由不允许配置--data 'hosts[]=contoso.com'参数值
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/services/book/routes \
    --data 'paths[]=/v1/books'
    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:30:05 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526099405, 
        "strip_path": true, 
        "hosts": null, 
        "preserve_host": false, 
        "regex_priority": 0, 
        "updated_at": 1526099405, 
        "paths": [
            "/v1/books"
        ], 
        "service": {
            "id": "f4c0d700-ce37-4a97-b7c2-21c4f8620510"
        }, 
        "methods": null, 
        "protocols": [
            "http", 
            "https"
        ], 
        "id": "42251e97-2921-45ea-bb19-0416019ea67a"   // {route_id} = id 
    }
    

    我们可以这样检查一下book服务和它的路由配置的是否正确
    [root@contoso ~]# curl -i -X GET \
    --url http://localhost:8000/v1/books

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 244
    Connection: keep-alive
    Date: Sat, 12 May 2018 12:33:12 GMT
    Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.1.13
    X-Powered-By: PHP/7.1.13
    X-Kong-Upstream-Latency: 27
    X-Kong-Proxy-Latency: 61
    Via: kong/0.13.1
    
    [
        {
            "id": 1, 
            "title": "Fashion That Changed the World", 
            "author": "Jennifer Croll"
        }, 
        {
            "id": 2, 
            "title": "Brigitte Bardot - My Life in Fashion", 
            "author": "Henry-Jean Servat and Brigitte Bardot"
        }, 
        {
            "id": 3, 
            "title": "The Fashion Image", 
            "author": "Thomas Werner"
        }
    ]

    为book服务启用跨源资源共享(CORS)插件参数配置
    URL格式:http://localhost:8001/services/{name of servie}/plugins
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/services/book/plugins \
    --data "name=cors"  \
    --data "config.origins=http://contoso.com" \
    --data "config.methods=GET, POST" \
    --data "config.headers=Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Auth-Token" \
    --data "config.exposed_headers=X-Auth-Token" \
    --data "config.credentials=true" \
    --data "config.max_age=3600"

    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:39:35 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526128775000, 
        "config": {
            "methods": [
                "GET", 
                "POST"
            ], 
            "exposed_headers": [
                "X-Auth-Token"
            ], 
            "max_age": 3600, 
            "headers": [
                "Accept", 
                "Accept-Version", 
                "Content-Length", 
                "Content-MD5", 
                "Content-Type", 
                "Date", 
                "X-Auth-Token"
            ], 
            "credentials": true, 
            "origins": [
                "http://contoso.com"
            ], 
            "preflight_continue": false
        }, 
        "id": "e352e234-e5ab-4ba8-ad00-3796e176a720", 
        "enabled": true, 
        "service_id": "f4c0d700-ce37-4a97-b7c2-21c4f8620510", 
        "name": "cors"
    }
    
    为book服务的路由{route_id}启用跨源资源共享(CORS)插件参数配置
    {route_id} 参数的值是使用不带参数--data 'hosts[]=contoso.com'创建的路由id值
    URL格式:http://localhost:8001/routes/{route_id}/plugins
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/routes/42251e97-2921-45ea-bb19-0416019ea67a/plugins \
    --data "name=cors"  \
    --data "config.origins=http://contoso.com" \
    --data "config.methods=GET, POST" \
    --data "config.headers=Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Auth-Token" \
    --data "config.exposed_headers=X-Auth-Token" \
    --data "config.credentials=true" \
    --data "config.max_age=3600"
    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:37:33 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526128653000, 
        "config": {
            "methods": [
                "GET", 
                "POST"
            ], 
            "exposed_headers": [
                "X-Auth-Token"
            ], 
            "max_age": 3600, 
            "headers": [
                "Accept", 
                "Accept-Version", 
                "Content-Length", 
                "Content-MD5", 
                "Content-Type", 
                "Date", 
                "X-Auth-Token"
            ], 
            "credentials": true, 
            "origins": [
                "http://contoso.com"
            ], 
            "preflight_continue": false
        }, 
        "id": "1f6dc33a-8a30-473f-929b-f4d38aadbdc7", 
        "enabled": true, 
        "route_id": "42251e97-2921-45ea-bb19-0416019ea67a", 
        "name": "cors"
    }
    

    我们希望用域名地址访问8000端口或者8443端口

    像本范例中这样的地址格式(假如你申请了一个公网域名contoso.org 固定公网IPv4是 123.125.115.110(一旦公网域名申请下来就把hosts文件中的contoso.org对应的假公网IP换成申请域名填写固定公网IPv4地址123.125.115.110(即是替换第一个192.168.10.10),下面第2个192.168.10.10千万别动它)第2个同样的IP可不要更改,它永远不变的作为内网IP地址使用,contoso.com是自定义域名,永远作为公司内网域名使用,下面截图中的contoso.org域名是在模拟公网网页地址,这都是很基础的东西,本不想啰唆的,就顺便解释一下):

    http://contoso.org:8000/v1/books

    https://contoso.org:8443/v1/books


    上面只是模拟出了公网地址格式的本地访问,下面是模拟远程客户端浏览器访问Kong网关暴露出来的book服务


    上面即模拟了公网地址格式 又模拟了远程的客户端浏览器访问Kong网关暴露出来的book服务



    [root@contoso ~]# pg_dump -h 127.0.0.1 -p 5432 -U postgres kong > /opt/kong-20180427.bak   # 备份kong数据库  
    Password: 123456  

    准备工作终于都准备好了,本篇blog正式进入主题

    为book服务的路由{route_id}启动Basic验证插件,我们可以用9种验证方式来取代basic-auth,
    其它8种验证方式我就不举例了,真要举例估计我都能写一本书,篇幅太多太长了,就不施展了  
    URL格式:http://localhost:8001/routes/{route_id}/plugins  
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/routes/42251e97-2921-45ea-bb19-0416019ea67a/plugins \
    --data "name=basic-auth" \
    --data "config.hide_credentials=true"

    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:47:11 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526129231000, 
        "config": {
            "hide_credentials": true, 
            "anonymous": ""
        }, 
        "id": "7992d4c5-4a8d-445e-8271-06c46c9f5f5d", 
        "enabled": true, 
        "route_id": "42251e97-2921-45ea-bb19-0416019ea67a", 
        "name": "basic-auth"
    }
    添加第1个username为jack的消费者,{custom_id}参数可省略,此参数是个自定义唯一标识,  
    它作用是把消费者jack映射到另外一个数据库上  
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/consumers/ \
    --data "username=jack"
    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:48:23 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526129303000, 
        "username": "jack", 
        "id": "61e2ce89-3ebf-4e1f-8fda-3e3cd145a9bd"
    }
    为第1个用户jack启用Basic验证插件  
    URL格式:http://localhost:8001/consumers/{username or consumer_id}/basic-auth  
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/consumers/jack/basic-auth \
    --data "username=jack@hotmail.com" \
    --data "password=123456"
    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:50:05 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526129405000, 
        "id": "ae14ab2f-756e-40be-8c2c-dc45de901760", 
        "username": "jack@hotmail.com", 
        "password": "70ee8509541cc3c9062ce62e868f19347d289d72", 
        "consumer_id": "61e2ce89-3ebf-4e1f-8fda-3e3cd145a9bd"
    }
    在线base64编码工具http://tool.oschina.net/encrypt?type=3  
    键-值对{username:password}字符串  
    jack@hotmail.com:123456 左边的键-值对字符串BASE64编码结果为:  
    amFja0Bob3RtYWlsLmNvbToxMjM0NTY=  
    使用用户jack的Basic验证方式访问书籍数据接口  
    [root@contoso ~]# curl -i -X GET \
    --url http://localhost:8000/v1/books/3 \
    --header "Authorization: Basic amFja0Bob3RtYWlsLmNvbToxMjM0NTY="
    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Content-Length: 63
    Connection: keep-alive
    Date: Sat, 12 May 2018 12:51:28 GMT
    Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.1.13
    X-Powered-By: PHP/7.1.13
    Vary: Origin
    Access-Control-Allow-Origin: http://contoso.com
    Access-Control-Allow-Credentials: true
    Access-Control-Expose-Headers: X-Auth-Token
    X-Kong-Upstream-Latency: 26
    X-Kong-Proxy-Latency: 48
    Via: kong/0.13.1
    
    [{"id":3,"title":"The Fashion Image","author":"Thomas Werner"}]
    为名称为book的服务启用IP白名单限制访问
    其中192.168.10.50表示限制macOS系统这一台计算机不能访问book服务
    其中192.168.43.0/24表示限制IP地址是192.168.43这一整个网段的IP都不能访问book服务(Windows 10在此网段内)
    URL格式:http://contoso.org:8001/services/{service}/plugins
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/services/book/plugins \
    --data "name=ip-restriction"  \

    --data "config.whitelist=192.168.10.50, 192.168.43.0/24"

    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 12:58:25 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526129906000, 
        "config": {
            "whitelist": [
                "192.168.10.50", 
                "192.168.43.0/24"
            ]
        }, 
        "id": "d3ef0103-9eca-4e20-a845-10cfc2152ca1", 
        "enabled": true, 
        "service_id": "f4c0d700-ce37-4a97-b7c2-21c4f8620510", 
        "name": "ip-restriction"
    }
    为名称为book的服务的路由{route_id启用IP白名单限制访问
    其中192.168.10.50表示限制macOS系统这一台计算机不能访问book服务的路由
    其中192.168.43.0/24表示限制IP地址是192.168.43这一整个网段的IP都不能访问book服务的路由(Windows 10在此网段内)
    URL格式:http://localhost:8001/routes/{route_id}/plugins
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/routes/42251e97-2921-45ea-bb19-0416019ea67a/plugins \
    --data "name=ip-restriction"  \
    --data "config.whitelist=192.168.10.50, 192.168.43.0/24"
    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 13:01:21 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526130082000, 
        "config": {
            "whitelist": [
                "192.168.10.50", 
                "192.168.43.0/24"
            ]
        }, 
        "id": "bafcf0ad-31dd-4779-aca9-c2dea8384e29", 
        "enabled": true, 
        "route_id": "42251e97-2921-45ea-bb19-0416019ea67a", 
        "name": "ip-restriction"
    }

    到下面这个命令这儿,在不同操作系统的客户端各种浏览器里即使用jack的账号成功登陆也会返回

    {"message":"Your IP address is not allowed"} 这条信息才是与我们预期的结果一致,为什么这么说?

    因为我还没有让登录用户与IP白名单进行关联这条命令执行,最后面会演示关联后的效果(在白名单里的IP都能访问book书籍数据接口),只要白名单没有关联具体的用户,那么现在所有的用户就都相当于在黑名单当中,大家都不能访问书籍接口

    现在的jack,就相当于在黑名单中,唯一名称的book服务不允许我们即定义服务的IP白名单又定义IP的黑名单

    [root@contoso ~]# curl -i -X GET \
    --url http://localhost:8000/v1/books/3 \
    --header "Authorization: Basic amFja0Bob3RtYWlsLmNvbToxMjM0NTY="
    HTTP/1.1 403 Forbidden
    Date: Sat, 12 May 2018 13:02:26 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Server: kong/0.13.1
    Vary: Origin
    Access-Control-Allow-Origin: http://contoso.com
    Access-Control-Allow-Credentials: true
    Access-Control-Expose-Headers: X-Auth-Token
    
    {"message":"Your IP address is not allowed"}
    



    以下命令就是上面提到的最后面会演示关联后的效果(在白名单里的IP都能访问book书籍数据接口)
    现在可以使用以下命令将白名单whitelist关联到消费者jack:
    {consumer_id} = 61e2ce89-3ebf-4e1f-8fda-3e3cd145a9bd
    [root@contoso ~]# curl -i -X POST \
    --url http://localhost:8001/plugins \
    --data "name=ip-restriction" \
    --data "consumer_id=61e2ce89-3ebf-4e1f-8fda-3e3cd145a9bd"  \
    --data "config.whitelist=192.168.10.50, 192.168.43.0/24"

    HTTP/1.1 201 Created
    Date: Sat, 12 May 2018 16:07:56 GMT
    Content-Type: application/json; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Server: kong/0.13.1
    
    {
        "created_at": 1526141276000, 
        "config": {
            "whitelist": [
                "192.168.10.50", 
                "192.168.43.0/24"
            ]
        }, 
        "id": "fb92b792-d2f2-44be-a8a2-f8d12eed4cb4", 
        "name": "ip-restriction", 
        "enabled": true, 
        "consumer_id": "61e2ce89-3ebf-4e1f-8fda-3e3cd145a9bd"
    }
    我期望 macOS 系统能够访问http://contoso.org:8000/v1/books 原来限制的情形下都能访问 现在允许macOS访问 当然就能访问了 奇怪的是 明明允许Windows 10系统能够访问http://contoso.org:8000/v1/books

    ,但它依然返回{"message":"Your IP address is not allowed"}  这不应该啊 难道我自己玩错了其中某个步骤 还是官网发布的东西有问题  我现在得继续实验 看看问题出在哪儿了  欢迎大家与我交流 。。。。。。。。。。。。。。。


    展开全文
  • 通俗理解ip地址,子网掩码,网关

    千次阅读 多人点赞 2015-05-23 15:56:51
    街道中的门牌号就是「IP地址」。「子网掩码」决定了街道门牌号码的多少。两条街道的交点就是「网关」。因为你要从一条街道走向另外一条街道必须经过两条街道的交点,当然这个「交点」对于交差的两条街道来说都是「...

    首先把互联网看做一个「城市」,这个城市有很多交错的「街道」,每个街道是构成网络的通信媒介。这些「街道」的以及周边的每个住户是互联网中的一个局域网络。街道中每家的门牌号就是「IP地址」。「子网掩码」决定了是那个街道 。也就是说街道代表了这个局域网。两条街道的交点就是「网关」,现在不这样叫,叫路由器因为垮街道交流涉及垮局域网交流。因为你要从一条街道走向另外一条街道必须经过两条街道的交点,当然这个「交点」对于交差的两条街道来说都是「路由器」,另外一条街道也可以和不止一条街道交差,同理一个网络也可以与不同的路由器链接。

    下面以一个故事的形式,更深入的理解


    计算机主机网关的作用是什么?
    假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。
    但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也有一个看门的王大爷(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里拨通了门口李大爷的电话,有了下面的对话:
    小不点:李大爷,我想找班主任查一下小明的电话号码行吗?
    李大爷:好,你等着。(接着李大爷给你的班主任挂了一个电话,问清楚
    了小明的电话)问到了,他家的号码是211.99.99.99
    小不点:太好了!李大爷,我想找小明,你再帮我联系一下小明吧。
    李大爷:没问题。(接着李大爷向电话局发出了请求接通小明家电话的请
    求,最后一关当然是被转接到了小明家那个院子的王大爷那里,然后王大
    爷把电话给转到小明家)
    就这样你和小明取得了联系。
    至于DHCP服务器嘛,可以这样比喻:
    你家院子里的居民越来越多了,传达室李大爷那里的电话交换机已经不能满足这么多居民的需求了,所以只好采用了一种新技术叫做DHCP,居民们开机的时候随机得到一个电话号码,每一次得到的号码都可能会不同。
    你家门口的李大爷:就是你的网关
    你的班主任:就是你的DNS服务器
    传达室的电话交换机:就是你的DHCP服务器
    同上,李大爷和王大爷之间的对话就叫做路由。
    另:如果还有个小朋友叫做小暗,他住的院子看门的是孙大爷,因为小暗的院子刚盖好,孙大爷刚来不久,他没有李大爷和王大爷办公室的电话(李大爷和王大爷当然也没有他的电话),这时会有两种情况:
    1、居委会的赵大妈告诉了孙大爷关于李、王两位大爷的电话(同时赵大妈也告诉了李、王关于孙的电话),这就叫静态设定路由
    2、赵大妈病了,孙大爷自己到处打电话,见人就说:“我是小暗他们院子管电话的”,结果被李、王二位听到了,就记在了他们的通讯录上,然后李、王就给孙大爷回了个电话说:“我是小明(小不点)他们院子管电话的”,这就叫动态设定路由
    然后有一天小不点要找小暗,结果自然是小不点给李大爷打电话说:“大爷,我找小暗”(这里省略了李大爷去查小暗电话的过程,假设他知道小暗的电话),李大爷一找通讯录:“哦,小暗的院子的电话是孙大爷管着的,要找小暗自然先要通知孙大爷,我可以通知王大爷让他去找孙大爷,也可以自己直接找孙,那当然是自己直接找孙方便了”,于是李大爷给孙大爷打了电话,然后孙大爷又把电话转到了小暗家。
    这里李大爷的通讯录叫做路由表。
    李大爷选择是自己直接找孙大爷还是让王大爷帮忙转接叫做路由选择。
    李大爷之所以选择直接找孙大爷是有依据的,因为他直接找孙大爷就能一步到位,如果要王大爷转接就需要两步才能完成,这里的“步”叫做“跳数”,李大爷的选择遵循的是最少步骤(跳数)原则(如果他不遵守这个原则,小不点可能就会多等些时间才能找到小暗,最终结果可能导致李大爷因工作不力被炒鱿鱼,这叫做“延时太长,选路原则不合理,换了一个路由器”)
    当然,事情总是变化的,小不点和小明吵架了,这些天小不点老是给小暗打电话,小明心里想:“操,他是不是在说我坏话啊?”于是小明决定偷听小不点和小暗的通话,但是他又不能出院子,怎么办呢?小明做了这样一个决定:
    首先他告诉自己院里管电话的王大爷说:“你给李大爷打个电话说小暗搬到咱们院子了,以后凡是打给他的电话我来接”,王大爷没反映过来(毕竟年纪大了啊!)就给李大爷打了电话,说:“现在我来管理小暗的电话了,孙已经不管了”,结果李大爷就把他的通讯录改了,这叫做路由欺骗。
    以后小不点再找小暗,李大爷就转给王大爷了(其实应该转给孙大爷的),王大爷收到了这个电话就转给了小明(因为他之前已经和小明说好了),小明收到这个电话就假装小暗和小不点通信。因为小明作贼心虚,害怕明天小不点和小暗见面后当面问他,于是通信断了之后,又自己以小不点的名义给小暗通了个电话复述了一遍刚才的话,有这就叫数据窃听
    再后来,小不点还是不断的和小暗联系,而零落了小明,小明心里嘀咕啊:“我不能总是这样以小暗的身份和小不点通话啊,外一有一天露馅了怎么办!”于是他想了一个更阴险的招数:“干脆我也不偷听你们的电话了,你小不点不是不给我打电话吗!那我让你也给小暗打不了,哼哼!”,他怎么做的呢?我们来看:
    他联系了一批狐朋狗友,和他们串通好,每天固定一个时间大家一起给小暗院子传达室打电话,内容什么都有,只要传达室的孙爷爷接电话,就会听到“打雷啦,下雨收衣服啊!”、“人是人他妈生的,妖是妖他妈生的”、“你妈贵姓”等等,听的脑袋都大了,不听又不行,电话不停的响啊!终于有一天,孙爷爷忍不住了,大喊一声:“我受不了拉!!!!”,于是上吊自杀了!
    这就是最简单的DDOS攻击,孙爷爷心理承受能力弱的现象叫做“数据报处理模块有BUG”,孙爷爷的自杀叫做“路由器瘫痪”。如果是我,就会微笑着和他们拉家常,例如告诉他们“我早就听了天气预报,衣服10分钟前已经收好了”或者“那你妈是人还是妖”或者“和你奶奶一个姓”等等,我这种健全的心理叫做“健壮的数据报处理,能够抵御任何攻击”
    孙爷爷瘫了之后,小不点终于不再给小暗打电话了,因为无论他怎么打对方都是忙音,这种现象叫做“拒绝服务”,所以小明的做法还有一个名字叫做“拒绝服务攻击”。
    小明终于安静了几天,…
    几天后,小明的院子来了一个美丽的女孩,名字叫做小丽,小明很喜欢她(小小年纪玩什么早恋!)可是小丽有个很帅的男朋友,小明干瞪眼没办法。当然这里还是要遵循上面的原则:小丽是不能出院子的。那个男的想泡小丽自然只能打电话,于是小明又蠢蠢欲动了:
    还记得王爷爷是院子的电话总管吗?他之所以能管理电话是因为他有一个通讯录,因为同一个院子可能有2个孩子都叫小明,靠名字无法区分,所以通讯录上每一行只有两项:
    门牌电话
    一号门 1234567 (这个是小明的)
    二号门 7654321 (这个是小丽的)
    ……
    王爷爷记性不好,但这总不会错了吧(同一个院子不会有2个“二号门”吧)?每次打电话人家都要说出要找的电话号码,然后通过通讯录去院子里面敲门,比如人家说我找“1234567”,于是王爷爷一比较,哦,是一号门的,他就去敲一号门“听电话”,如果是找“7654321”,那他就找二号门“听电话”。
    这里的电话号码就是传说中的“IP地址”
    这里的门牌号就是传说中的网卡的’MAC‘地址(每一块网卡的MAC地址都是不一样的,这是网卡的制造商写死在网卡的芯片中的)
    小明心里想“奶奶的,老子泡不到你也别想泡”,于是他打起了王爷爷通讯录的主意,经过细心的观察,周密的准备,他终于发现王爷爷有尿频的毛病(毕竟是老人啊…),终于在一个月黑风高的白天,王爷爷去上厕所了,小明偷偷的摸进传达室,小心翼翼的改了王爷爷的通讯录……
    过了几天,小丽的男朋友又给小丽打来了电话,对方报的电话是“7654321”,王爷爷一看通讯录,靠:
    门牌电话
    一号门 1234567 (这个是小明的)
    一号门 7654321 (注意:这个原来是小丽的,但是被小明改了)
    ……
    王爷爷不知道改了啊,于是就去找一号门的小明了,小明心里这个美啊,他以小丽父亲的口吻严厉的教训了那个男的和小丽之间不正当的男女关系,结果那个男的恭恭敬敬的挂了电话。当然小丽并不知道整个事情的发生…
    这里小明的行为叫做“ARP欺骗”(因为在实际的网络上是通过发送ARP数据包来实现的,所以叫做“ARP欺骗”),王爷爷的通讯录叫做“ARP表”
    这里要注意:王爷爷现在有两个通讯录了,一个是记录每个院子传达室电话的本本,叫做“路由表”,一个是现在说的记录院子里面详细信息的本本,叫做“ARP表”。
    有句命言是“人们总是在追求完美的,尽管永远也做不到”(请记住这句话,因为这是一个大名人–也就是我,说的)
    王爷爷的制度中有一条是这么写的“每个月要重新检查一下门牌号和电话的对应本(也就是ARP表)”,这个动作叫做“刷新ARP表”,每个月的时间限制叫做“刷新ARP表的周期”。这样小明为了让那个男的永远不能找到小丽,之后每个月都要偷偷改一次那个通讯录,不过这样也是不得不做的事啊!
    补充一点,小明是很聪明的,如果通讯录(ARP表)被改成了这样:
    门牌(MAC)电话(IP)
    一号门 1234567 (这个是小明的)
    二号门 1234567 (注意:这个被小明改了,但是他一时头晕改错了)
    ……
    就会是计算机就会弹出一个对话框提示“出现重复的IP地址”,最终会导致王爷爷不知所措,于是通知一号门和二号门,你们的电话重复了。这样小丽就知道有人在破坏她的好事,这个现象叫做“骗局被揭穿了”
    小不点知道了小明偷听他和小暗的电话,于是就和小暗约定好了密码。小不点在家里把要说的加密了之后告诉小暗。土豆-〉星期三,地瓜-〉请客,笨蛋-〉小不点家。于是小不点告诉小暗:土豆笨蛋地瓜。小明听了???不懂。。。。郁闷了。。。这是加密。
    除此之外,小丽也知道了小明改他家的电话号码了。于是王爷爷就登门一个一个把电话和门牌号记下来。并且藏起来不允许外人修改,只能自己有钥匙(密码)。这是ip地址和MAC地址绑定。当有人改了电话号码的时候,就得找王爷爷改。麻烦是麻烦了,但是安全了。不过小明偷偷的把王爷爷的钥匙偷配了一把(盗窃密码成功),于是他还可以修改。这样么,就这样了。

    展开全文
  • 企业内的加密文件有时候需要上传到OA、PLM、SVN等系统中,希望OA等系统中保存的文件是明文的,从OA等系统中下载到本地为加密文件,并希望其它没有允许访问的计算机不可以访问OA等服务器,IP-guard安全网关功能就是...

    加密安全网关使用说明

    企业内的加密文件有时候需要上传到OA、PLM、SVN等系统中,希望OA等系统中保存的文件是明文的,从OA等系统中下载到本地为加密文件,并希望其它没有允许访问的计算机不可以访问OA等服务器,IP-guard安全网关功能就是为了解决这一问题而诞生的。

    IP-guard安全网关,可以实现启用安全通讯的加密客户端上传解密下载加密。未启用加密功能的客户端或者未启动安全通讯的加密客户端,不能访问受保护的OA等系统。

    1. 网络架构

    IP-guard安全网关功能的工作模式为:网桥模式。

    企业内的网络常见的网络简易拓扑结构:

     

    IP-guard的安全网关控制模式:

    使用网桥模式,可以对网络结构和配置不做任何修改,直接将安全网关控制设备串接进网络中需要进行控制的重要的服务器处,对通过其的网

    展开全文
  • nginx 限制ip并发数和限制速度

    千次阅读 2012-11-06 09:48:18
    nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1.添加limit_zone  这个变量只能在http使用  vi /usr/local/nginx/conf/nginx.conf  limit_zone one $remote_addr 10m; 2.添加limit_conn ...

    nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量

    1.添加limit_zone 
    这个变量只能在http使用 
    vi /usr/local/nginx/conf/nginx.conf 
    limit_zone one $remote_addr 10m;

    2.添加limit_conn 
    这个变量可以在http, server, location使用 
    我只限制一个站点,所以添加到server里面 
    vi /usr/local/nginx/conf/host/gaojinbo.com.conf 
    limit_conn   one 10;

    3.重启nginx 
    killall -HUP nginx

    nginx 限速模块
    参考:

    关于limit_zone:http://wiki.nginx.org/NginxHttpLimitZoneModule 
    关于limit_rate和limit_conn:http://wiki.nginx.org/NginxHttpCoreModule 
    nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个组件来对目录进行限速。

    http { 
      limit_zone   one  $binary_remote_addr  10m;  
      server { 
        location /download/ { 
          limit_conn   one  1; 
          limit_rate 300k; 
        } 
      } 
    }

    limit_zone,是针对每个IP定义一个存储session状态的容器。这个示例中定义了一个10m的容器,按照32bytes/session,可以处理320000个session。

    limit_conn one 1;
    限制每个IP只能发起一个并发连接。

    limit_rate 300k;
    对每个连接限速300k. 注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。

    展开全文
  • 计算机主机网关的作用是什么? 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一...
  • 网关

    千次阅读 多人点赞 2019-07-30 16:09:11
    网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也...
  • SpringCloud Gateway网关配置中,需要对访问的IP设置白名单,RemoteAddr, 代理,真实IP,XForwardedRemoteAddressResolver
  • IP地址、子网掩码、网关、DNS

    千次阅读 2014-08-06 23:02:09
    TCP/IP协议:叫做传输控制/网际协议,它是Internet基础 TCP保证传输数据包的传输以及正确的传输顺序。 IP保证数据传输的可靠性。 SMTP是一个简单的邮件传输协议,主要用途用于传输电子邮件。 NFS是一个网络文件...
  • 忧心忡忡的排查一番后,发现是有个接口在被爬虫轮询扒数据,之前业务原因这个接口没有身份验证,临时加上了,也查到对方几个ip封掉。公司开会计划年后前后端加入严格点的加密验证,年前让我暂时在后端做一下优化...
  • IP限制插件 IP限制插件,是一个非常简单的插件,可以设置黑名单IP,白名单IP这个很简单。 规则: IP黑白名单,支持单个,多个,范围分段IP(满足CIDR notation规则)。多个IP之间用逗号,分隔。 CIDR notation规范...
  • TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。 那么网关到底是什么呢? 网关实质上是一个网络通向其他网络的IP地址。 比如有网络A和网络B。 网络A的IP地址范围为...
  • ping ifconfig ip addr nm-connection-editor nmtui nmcli 管理网络配置文件 脚本设定网络 路由器
  • IP、子网掩码、网关的作用

    千次阅读 2016-12-06 00:14:23
    一、IP地址 IP地址又称为软件地址, 存储在计算机的存储器上, IPv4地址为32位, IPv6地址为128位 IP地址和MAC地址 网络层以上使用IP地址, 数据链路层以下使用MAC地址 IP地址是逻辑地址, MAC地址是物理地址 ...
  • Windows系统中设置IP地址的界面如图1所示,图中出现了IP地址、子网掩码、默认网关和DNS服务器这几个需要设置的地方,只有正确设置,网络才能通,那这些名词都是什么意思呢?学习IP地址的相关知识时还会遇到网络地址、...
  • IP电话的VoIP语音网关设计

    千次阅读 2008-12-11 11:07:00
    引 言 近年来,Internet得到了飞速发展和普及应用,而作为其核心技术的IP协议体系在数据网络架构中的统治地位已得到了广泛认同。同时,随着基于IP技术上各种应用技术的提出,尤其是VoIP技术的提出,使得数据网络...
  • 我们通过在ACL里面限制ICMP的方式,实现客户端禁止ping网关的目的。 ICMP介绍 ICMP 协议应用在许多网络管理命令中,下面以 ping 和 tracert 命令为例详细介绍 ICMP 协议的应用。 (1) ping 命令使用 ICMP 回送...
  • 下面小编就为大家带来一篇C# 站点IP访问频率限制 针对单个站点的实现方法。小编觉的挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 帮你理解网关、ARP、IP、MAC、路由

    千次阅读 2014-03-26 16:20:07
    口传达室有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个伙伴玩,只要你在院 子里大喊一声他的名字(ping他一下),他听到了就会回应你,并且跑出来跟你玩。 但是你不被允许走出大门,你与外界的...
  • 在spring cloud alibaba工程的网关模块中进行相关配置,实现限制每个IP在每秒只能访问3次(IP限制原理是令牌桶算法) 步骤 添加依赖 <dependency> <groupId>org.springframework.boot</groupId>...
  • IP地址,默认网关,子网掩码,Mac地址详解 1.Mac地址(硬件地址):物理地址是数据链路层和物理层使用的地址,放在MAC数据帧的首部。常常是固定的,生产出来后就具有唯一的地址。 2.IP地址:IP地址是网络层和以上...
  • 不强制执行安全策略,不会限制你的自由操作linux了 [root@cali ~]# getenforce Permissive 宽容模式(自由模式) [root@cali ~]# 临时修改,重新启动系统后会失效 2.永久修改selinux的状态 [root@cali ~]# vi /...
  • API网关中最常见的一个功能就是防止爬虫,当然防止爬虫的前提是先得识别出这个请求是爬虫这部分我们不涉及,假设我们已经能够识别出爬虫的请求了,那么怎么限制呢?最常见的就是根据IP限制,某个IP大量访问就比较...
  • IPRotate_Burp_Extension ... 这对于绕开不同种类的IP阻止很有用,例如蛮力保护(基于IP的阻止),基于IP的API速率限制或基于IP的WAF阻止等。 用法 在Burp Suite中设置 。 安装于Python 2的模块。 确保您设
  • 开发了一个爬虫,布置在自己的服务器上,请求某网站的查询功能,然后抓取查询结果,结果访问才一会儿,就被提示封IP了。整合了大家的解决方法!
  • Gateway网关简介及使用

    万次阅读 多人点赞 2019-10-09 20:54:12
    Gateway网关简介及使用 1. 什么是 API 网关(API Gateway) 分布式服务架构、微服务架构与 API 网关 在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个...
  • IP地址 IP地址是在网络给主机分配的地址如53.159.232.5或者192.168.1.1 。具体格式就是00000000.00000000.00000000.00000000,32位二进制,平时都用十进制。 但是主机在网络上不是一个主机连一个主机,而是网络...
  • TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。 六、应用层 应用程序收到"传输层"的数据,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,206
精华内容 28,882
关键字:

网关限制ip