精华内容
下载资源
问答
  • 单播反向路径转发uRPF

    2018-12-22 22:48:00
    :仅检查数据包的源地址是不是在FIB中,不检查源地址是不是由最佳返回路径的接口接收,松散模式的灵活性更大,一般在多宿主连接(包括网络内部)普遍存在的情况下使用。     注意:uRPF只能在输入接口使用 。因此...

    uRPF将数据包的源地址和存储在转发信息库(FIB)中的信息进行对照,以判定数据包的合法性。FIB是Cisco CEF技术中的一张表,包含从路由表中复制过来的转发信息,可以将其视为路由表的镜像,FIB包含所有已知的路由信息,设备采用FIB就能提高数据包转发的速度,由于uRPF以FIB中的信息为过依据,因此在使用uRPF之前必须首先配置CEF

    uRPF的两种工作模式:

        • 严格模式(strict):检查数据包的源地址是否在FIB中,且源地址是否是CEF确定的最佳返回路由接口接收。
        在多宿主连接中,有可能返回的最佳连接与接收接口不同,这样容易产生问题。鉴于此尽在单宿主连接中使用该模式,若存在多条相同度量的最佳路径也可以使用uRPF,如配置了度量方差(Metric variance)的EIGRP。
        建议一下两种情况使用严格模式:1、仅有一条进出网络的连接;2、满足要求的单宿主客户与核心网络连接。
        
        • 松散模式(loose):仅检查数据包的源地址是不是在FIB中,不检查源地址是不是由最佳返回路径的接口接收,松散模式的灵活性更大,一般在多宿主连接(包括网络内部)普遍存在的情况下使用。
        
        注意:uRPF只能在输入接口使用。因此,若网络和ISP之间存在一条单宿主主连接,则应该只配置uRPF以监控来自ISP的流量。由于uRPF以CEF转发速率工作,与采用传统的ACL防止地址欺骗相比,uRPF可以有效提高设备的性能,当uRPF被配置在工作速率超过1Mbps的接口,此区别将更加明显。

    uRPF配置:


    可以看出在模式选项后面还可以配合ACL使用,以确定数据包的转发或丢弃。
    注意,仅在数据包无法通过uRPF校验时,才需要使用ACL。


    验证uRPF配置:
    查看指定接口配置的uRPF:
    show cef interface interface

    查看全局uRPF数据包计数信息:

    show ip traffic //会出现很多statistics,如IP、ICMP、IGMP、OSPF、PIM等

    查看指定接口丢弃(验证丢弃)或转发(抑制验证丢弃)uRPF数据包的信息:

    show ip interface interface

     

    转载于:https://www.cnblogs.com/MomentsLee/p/10162775.html

    展开全文
  • 即, daddr=10.2.0.2, iif=A>, 如果启用反向路径过滤功能,它就会以, daddr=10.3.0.2>为关键字去查找路由表,如果得到的输出接口不为A,则认为反向路径过滤检查失败,它就会丢弃该包。 关于反向路径过滤,ipv4中...
    一、原理
    先介绍个非对称路由的概念
    参考《Understanding Linux Network Internals》三十章,
    30.2. Essential Elements of Routing
    Symmetric routes and asymmetric routes
    Usually, the route taken from Host A to Host B is the same as the route used to get back from Host B to Host A; the route is then called symmetric . In complex setups, the route back may be different; in this case, it is asymmetric.

    关于反向路径过滤,参考《Understanding Linux Network Internals》三十一章,
    31.7. Reverse Path Filtering
    We saw what an asymmetric route is in the section "Essential Elements of Routing in Chapter 30. Asymmetric routes are not common, but may be necessary in certain cases. The default behavior of Linux is to consider asymmetric routing suspicious and therefore to drop any packet whose source IP address is not reachable through the device the packet was received from, according to the routing table.
    However, this behavior can be tuned via /proc on a per-device basis, as we will see in Chapter 36. See also the section "Input Routing" in Chapter 35.

    二、检查流程
    如果一台主机(或路由器)从接口A收到一个包,其源地址和目的地址分别是10.3.0.2和10.2.0.2,
    即<saddr=10.3.0.2, daddr=10.2.0.2, iif=A>, 如果启用反向路径过滤功能,它就会以<saddr=10.2.0.2, daddr=10.3.0.2>为关键字去查找路由表,如果得到的输出接口不为A,则认为反向路径过滤检查失败,它就会丢弃该包。

    关于反向路径过滤,ipv4中有个参数,这个参数的说明在Documentation/networking/ip-sysctl.txt中。
    rp_filter - INTEGER
        0 - No source validation.
        1 - Strict mode as defined in RFC3704 Strict Reverse Path
            Each incoming packet is tested against the FIB and if the interface
            is not the best reverse path the packet check will fail.
            By default failed packets are discarded.
        2 - Loose mode as defined in RFC3704 Loose Reverse Path
            Each incoming packet's source address is also tested against the FIB
            and if the source address is not reachable via any interface
            the packet check will fail.

        Current recommended practice in RFC3704 is to enable strict mode
        to prevent IP spoofing from DDos attacks. If using asymmetric routing
        or other complicated routing, then loose mode is recommended.

        The max value from conf/{all,interface}/rp_filter is used
        when doing source validation on the {interface}.

        Default value is 0. Note that some distributions enable it
        in startup scripts.

    三、源代码分析
    git commit 373da0a2a33018d560afcb2c77f8842985d79594

    net/ipv4/fib_frontend.c
     192 int fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst, u8 tos,
     193                         int oif, struct net_device *dev, __be32 *spec_dst,
     194                         u32 *itag)
     195 {
                 // 是否启用反向路径过滤
     216         /* Ignore rp_filter for packets protected by IPsec. */
     217         rpf = secpath_exists(skb) ? 0 : IN_DEV_RPFILTER(in_dev);
     
                 // 检查路由表
             // 注意这里的源地址贺目的地址是反过来的,
             // 看看其他函数是如何调用fib_validate_source()就明白了。
     227         if (fib_lookup(net, &fl4, &res))
     228                 goto last_resort;

                 // 运行到这里,说明反向路由是可达的
             // 下面分成两种情况检查输出设备是否就是输入设备
     237 #ifdef CONFIG_IP_ROUTE_MULTIPATH
                 // 启用多路径时,任意一个匹配,就用它了
     238         for (ret = 0; ret < res.fi->fib_nhs; ret++) {
     239                 struct fib_nh *nh = &res.fi->fib_nh[ret];
     240 
     241                 if (nh->nh_dev == dev) {
     242                         dev_match = true;
     243                         break;
     244                 }
     245         }
     246 #else
     247         if (FIB_RES_DEV(res) == dev)
     248                 dev_match = true;
     249 #endif
     250         if (dev_match) {
                  // 反向路径过滤检查成功了,返回
     251                 ret = FIB_RES_NH(res).nh_scope >= RT_SCOPE_HOST;
     252                 return ret;
     253         }
     254         if (no_addr)
     255                 goto last_resort;
                 // 运行到这里,说明反向路径检查是失败的,
             // 如果rpf为1,表示反向路径检查必须成功才能正常返回,
             // 否则只好返回错误。
     256         if (rpf == 1)
     257                 goto e_rpf;
     278 e_rpf:
     279         return -EXDEV;

    四、实例
    本网络有三台机器,R1, R2 和PC,子网掩码都是255.255.0.0。
    R2 (10.1.0.2) ---- (10.1.0.1) R1 (10.3.0.1) ---- (10.3.0.2) PC
    R2 (10.2.0.2) ---- (10.2.0.1) R1

    注意,设置R2的默认路由为10.1.0.1
    现在,从PC上能够ping通10.1.0.2,但是ping不通10.2.0.2。
    tcpdump显示,R2接到icmp request,但是不发送icmp reply。

    PC
    $ ip a
    inet 10.3.0.2/16 brd 10.3.255.255 scope global eth0
    $ ip r
    10.3.0.0/16 dev eth0  proto kernel  scope link  src 10.3.0.2 
    default via 10.3.0.1 dev eth0 

    R1
    $ ip a
    inet 10.1.0.1/16 brd 10.1.255.255 scope global eth1
    inet 10.2.0.1/16 brd 10.2.255.255 scope global eth2
    inet 10.3.0.1/16 brd 10.3.255.255 scope global eth3
    $ ip r
    10.1.0.0/16 dev eth1  proto kernel  scope link  src 10.1.0.1 
    10.2.0.0/16 dev eth2  proto kernel  scope link  src 10.2.0.1 
    10.3.0.0/16 dev eth3  proto kernel  scope link  src 10.3.0.1 

    R2
    $ ip a
    inet 10.1.0.2/16 brd 10.1.255.255 scope global eth1
    inet 10.2.0.2/16 brd 10.2.255.255 scope global eth2

    $ ip r
    10.1.0.0/16 dev eth1  proto kernel  scope link  src 10.1.0.2
    10.2.0.0/16 dev eth2  proto kernel  scope link  src 10.2.0.2 
    default via 10.1.0.1 dev eth1 

    请问这是什么原因?
    你可以返回去细细思考5分钟......

    我的回答:
    假设R2的两个接口分别为A(10.1.0.2)、B(10.2.0.2)。
    从PC ping 10.2.0.2时,包的路径是PC-->10.3.0.1-->10.2.0.2,
    此时包的 <saddr=10.3.0.2, daddr=10.2.0.2, iif=B>,
    以<saddr=10.2.0.2, daddr=10.3.0.2>进行反向路径检查, 得到输出设备是A,
    因为目的地址是10.3.0.2,只能使用默认路由。A!=B,反向路径检查失败,
    丢弃该包!

    五、如何解决
    两种方法:
    1 On R2:
    ip route add 10.3.0.0/16 via 10.2.0.2 
    增加一条关于10.3.0.0/16子网的路由。

    2 On R2:
    /etc/sysctl.conf
    net.ipv4.conf.default.rp_filter = 0
    禁用反向路径检查。
    展开全文
  • 行业分类-外包设计-基于共享反向路径的缺陷指示信息传递方法.zip
  • 行业分类-外包设计-基于共享反向路径的缺陷指示信息传递方法的说明分析.rar
  • 基于发送源的 IP 地址(数据包中的源地址)来转发 。... Selective Forwarding(选择性转发)如果有多条转发路 径可用,则依靠单播路由表来帮助选择最佳路径 一 路由器只转发从可达源的上游路由器...

    基于发送源的 IP 地址(数据包中的源地址)来转发 。包括三个过程:

    1. Broadcast(广播)洪泛传递,假定网络上的每个主机都是多播组成员。
    2. Prune(修剪)停止向那些没有组成员存在的网络转发多播信息。
    3. Selective Forwarding(选择性转发)如果有多条转发路 径可用,则依靠单播路由表来帮助选择最佳路径

    一 路由器只转发从可达源的上游路由器的接口(依靠单播路由表判断)收到的多播数据包。
    RPF 检验成功则转发,RPF 检验失败则 Silently Dropped(静悄悄的丢弃)。这项技术主要防止多次转发多播数据包。

     

     

    如上图所示从s0/1收到数据包192.168.1.100,查看单播路由表发现他的网络应该在S0/0,RPF检查失败丢弃。

    二 TTL Thresholds(TTL 阈值)
    组播传送中的 TTL 类似于单播,但是它更灵活,可用于限制多播信息转发的范围。 一个
    多播包进入路由器后,它的 TTL 值首先减 1,在从出口送出去之前,如果出口上所设置的 TTL阈值非 0,则要进行 TTL 阈值检验,所有 TTL 值小于接口阈值的多播包将不会被发送。用接口命令 ip multicast ttl-threshold ttl 来实现。

     

    三 Administrative Boundary 管理边界 用于限定到达特定多播组的数据包的转发。 用接口命令 ip multicast boundary <acl>来实现。

     

     

    展开全文
  • 介绍了反向射线跟踪的三维路径搜索方法,这种搜索方法建立在三维模型数据信息的基础之上,方便,快捷。首先,建立环境小区的三维建筑物模型;其次,运用本文所介绍的三维路径搜索方法,找出电波精确的传播路径,对每...
  • nginx配置反向代理路径问题

    千次阅读 2020-07-03 13:02:26
    用nginx上了个前端项目,踩了路径的坑,记录一下: server { listen 2077; server_name localhost; location / { root html; index index.html index.htm; } # 例如:你前端的请求路径是这样的 /api/v1/get...

    用nginx上了个前端项目,踩了路径的坑,记录一下:

    server {
            listen       2077;
            server_name  localhost;
            location / {
                root   html;
                index  index.html index.htm;
            }
            # 例如:你前端的请求路径是这样的 /api/v1/getData
            # ^~ /api/ 匹配以‘/api/’开头的请求,请求会被拼接成:http://10.10.10.10:8080/v1/getData
    		location ^~ /api/ {
    			proxy_pass http://10.10.10.10:8080/;
    		}
    		# 再如:你前端的请求路径是这样的 /api/v1/getData,与上面的区别在于proxy_pass路径最后没有`/`
            # ^~ /api/ 匹配以‘/api/’开头的请求,请求会被拼接成:http://10.10.10.10:8080/api/v1/getData
    		#location ^~ /api/ {
    		#	proxy_pass http://10.10.10.10:8080;
    		#}
    	    error_page   500 502 503 504  /50x.html;
    	     location = /50x.html {
    	         root   html;
    	     }
        }
    
    展开全文
  • 比如我有一个url为127.0.0.1:443/jh-12345zxc要反向代理到127.0.0.1:9443/jh-12345zxc要如何配置?
  • 路径规划之反向搜索

    2019-05-20 12:54:36
    在D*算法及D* lite算法的论文中提到了“backward”,在译文中它被翻译为"反向所搜",那么反向搜索的好处提现在哪里呢?在这里举个例子: 如果正向搜索显然会因为很多分支导致效率下降,但是如果反向搜索会得到如下...
  • 434
  • 2、当 proxy_pass 的 ip:port 后接了字符串的时候,nginx 会将 location 从 原请求路径中剔除,再将剩余的字符串拼接到proxy_pass后生成新请求路径,然后将新请求路径转交给下一站nginx。 ...
  • 防止IP Spoofing 校验数据包的反向路径,如果客户端伪造的源IP地址对应的反向路径不在路由表中,或者反向路径不是最佳路径,则直接丢弃数据包,不会向伪造IP的客户端回复响应。 Ps:两种常见的非法攻击手段: DDos...
  • nginx 反向代理location路径设置

    千次阅读 2019-07-06 09:29:27
    更多文章欢迎访问程序员小非博客 ...此时proxy_pass后面的路径必须和location设置的路径一致: location /index { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remot...
  • 反向代理 在src文件夹下创建 setupProxy.js 文件,此文件不允许为空 安装第三方包 $ yarn add http-proxy-middleware 填写内容 const proxy = require( 'http-proxy-middleware' ) module.exports = ...
  • "/"问题 访问www.xxxx.com/api 配置1:proxy_pass末尾不加 / location /api/ { proxy_pass http://localhost:8080; } 实际访问的是: ...总结:加 / 不带路径(api),不加 / 带路径
  • 刚刚调试成功,留作参考:events { worker_connections 10240; } http{ server { listen 83; server_name localhost; location /v1/ { proxy_pass http://web1/; } ...
  • #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024;... defau...
  • HTTP路径反向代理

    2011-10-27 18:04:55
    HTTP路径反向代理,将远端HTTP服务反向代理到本地HTTP子目录下,解析修改HTTP请求头与响应头并修改链接位置,重定义Content-Length,遇到HTTP响应gzip压缩编码时解压后进行修改并可以重新gzip压缩发回用户,用户可以...
  • nginx 配置 proxy_pass时可以实现URL路径的部分替换。 1.proxy_pass的目标地址,默认不带/,表示只代理域名,url和querystring部分不会变(把请求的path拼接到proxy_pass目标域名之后作为代理的URL) 2.如果在目标...
  • 示例 #http节点中可以添加多个server节点 server{ #听443端口 listen 8443 ssl; ... server_name zstu.shentuzhiganga.top; #从腾讯云获取到的第一个文件的全路径 ssl_certificate /opt/etc/ssl/4084041_shentuzh
  • } } 在这里需要注意的是如果ngnix反向代理时location中有路径的时候这个路径必须是属于你请求路径中的一部分。 下面时我的控制器中的请求路径可以看出来我的请求路径是包含localtion中的路径名称的,这样你才能访问...
  • linux的反向路由检测

    千次阅读 2018-04-17 16:51:29
    背景环境是 我们开始在我们的云平台上开始集成SLB测试发现在现有的两个网卡上不同网段 不能让其它网段正常访问 查其原因后是路由反向检测默认开启 需要关闭 就可以正常通讯echo 0 > /proc/sys/...
  • 注意:设置反向代理后,项目静态资源如果不在cdn上而在本地,那么:1、如果是绝对路径,绝对路径前缀不符合代理的就不会走代理,可能导致资源无法找到;2、如果是相对路径(相对路径是以当前浏览器地址栏中的url路径...
  • 组播RPF 逆向路径转发 实验原理

    千次阅读 2017-02-26 13:55:45
    当在baidu或者google里面查询关键字 "CISCO RPF检测机制和工作原理",我们会轻易得到下面的原理:RPF检查的原理:路由器在单播路由表中查找源地址以确定数据包到达的接口是否位于返回信源的的反向路径上,如果是则RPF...
  • nginx反向代理带路径访问问题

    千次阅读 2018-01-18 09:08:00
    nginx的配置为192.168.0.219:80分别映射到upstream组192.168.0.55:8080和192.168.0.206:8080,那如何配置做到访问192.168.0.219:80时...这个主要是要做一个反向代理,具体配置如下:   1 2 3 4 5 6 7 8 9 10 11...
  • 只是想让大家最快速的了解反向代理后的路径到底是什么,我也是一路踩坑过来 下面直接上图: 图中已经描叙的很详细啦,还有种情况就是静态页面使用root和alias的区分: 请求路径: ...
  • 配置反向代理的服务器:reveseProxServer iis应该是iis7及以上版本,才可以。 1、确定最终访问的网址:比如www.baidu.com  、www.jb51.net等等。  当然你也可以自己在targetServer部署自己的程序,在此为了示范,...
  • 解决反向代理的绝对路径问题

    千次阅读 2015-04-28 10:46:42
    由于需要在windows系统上实现一个反向代理功能,因此就考虑到使用apache。 Apache具有反向代理的功能。通过对文件httpd.conf,进行简单的设置,即可以实现反向代理功能。但是被代理的服务中,如果包含有绝对路径的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,764
精华内容 61,505
关键字:

反向路径