其实之前写“从香港机房引入google/bitbucket路由”的时候,对community value的了解还并不深入,对Juniper default BGP export/import policy的理解也不是很深入。我需要再整理一下对它们的理解。

这里有一个很好的case,

http://www.juniper.net/documentation/en_US/junos15.1/topics/example/bgp-communities.html

这里写了community value在帮助更改local preference时的应用,不过好像在结尾verify的时候,有个地方把R2 R4写错了,但是不耽误看。

今天思考的问题首先涉及到community value的传递性,和这个问题在我的环境里取决于default BGP export/import policy的问题。因为之前在香港IDC,我并没有考虑的很深,在default BGP export/import policy这块,以至于,我对于BGP路由以及其community value从hkg1-wan2 到 hkg1-wan1是怎么传过去的并不十分清楚,今天有必要弄清楚。

拓扑是这样的

|hkg1-wan1-------------------hgk1-wan2|| ---------------------|  PACNET |

|                   AS 6623                         ||    <---ebgp---->    | AS 10026|

wan1 和 wan2 之间相互neighbor的时候,并没有在结尾添加任何default-reject, 也就是说,依照Juniper 默认的BGP readvertise策略,凡是wan2 从Pacnet那里学来的BGP路由,都应该readvertise 给wan1,那么问题来了,这个时候,如果我wan2本地针对某条路由(比如github的路由)add 了community value,那么这个value会不会随着一起readvertise,我目前认为是会的。我的结论也是会的,为了验证我的assertion我在wan2上标记了Facebook的路由,并且add了一个community value,

在不更改任何wan1配置的情况下!

wan1上show route www.facebook.com detail

root@hkg1-wan1> show route www.facebook.com detail 

inet.0: 581816 destinations, 581963 routes (581806 active, 10 holddown, 0 hidden)
69.171.224.0/20 (1 entry, 1 announced)
*BGP Preference: 170/-101
Next hop type: Indirect
Address: 0xea8c51c
Next-hop reference count: 1744150
Source: 10.25.255.102
Next hop type: Router, Next hop index: 607
Next hop: xxx.xxx.xxx.xxx via ae0.0, selected
Session Id: 0x1b
Protocol next hop: 10.25.255.102
Indirect next hop: 294c0ec 1048575 INH Session ID: 0x1c
State: <Active Int Ext>
Local AS: 6623 Peer AS: 6623
Age: 12:04 Metric2: 10
Validation State: unverified
Task: BGP_6623.10.25.255.102+179
Announcement bits (3): 0-KRT 5-Resolve tree 4 6-RT
AS path: 10026 32934 I
AS path: Recorded
Communities: 6623:1000 6623:6011 10026:1230 10026:32344 10026:40101
Accepted
Localpref: 100
Router ID: 10.25.255.102

可以看到,wan1已经知道这个路由的community value是多少了,因为wan2 默认向wan1 重发布wan2 学到的所有BGP 路由,而Juniper又是默认send-community 的(send-community是思科命令,需要手动打),所以这个community value就被随着路由的重发布而传到了wan1。那么接下来wan1要做的就是,在wan1本地写一个community XXX members 6623:6011, XXX这个名字可以随便起,因为是本地概念,只要6623:6011这个值和上面标红的那个地方一致即可,一致之后,这个本地的名字就有了意义,就可以被当做其他用处的匹配的依据(set from community XXX, then accept),这个其他的用处就有“再次发布给大陆”,或者改一改local preference值什么的。

晚安,我爱这个世界。

Community Value再理解的更多相关文章

  1. SVM问题再理解与分析——我的角度

    SVM问题再理解与分析--我的角度 欢迎关注我的博客:http://www.cnblogs.com/xujianqing/ 支持向量机问题 问题先按照几何间隔最大化的原则引出他的问题为 上面的约束条件 ...

  2. 再理解HDFS的存储机制

    再理解HDFS的存储机制 1. HDFS开创性地设计出一套文件存储方式.即对文件切割后分别存放: 2. HDFS将要存储的大文件进行切割,切割后存放在既定的存储块(Block)中,并通过预先设定的优化 ...

  3. SpringBoot-04-自动配置原理再理解

    4. 自动配置原理再理解 ​ 配置文件到底能写什么?怎么写?SpringBoot官方文档有大量的配置,但是难以全部记住. 分析自动配置原理 ​ 官方文档 ​ 我们以HttpEncodingAutoCo ...

  4. Python无类再理解--metaclass,type

    上次理解过一次,时间久了,就忘了.. 再学习一次.. http://blog.jobbole.com/21351/ ======================= 但是,Python中的类还远不止如此 ...

  5. Q他中的乱码再理解

    Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求. 经常出现个问题是windows的解决了,源代码放到linux上编译不通过或者中文会乱码,本文主要是得出一个解决方 ...

  6. 再理解 as3.0接口

    As3.0 接口的理解与运用 1.把接口当作"类"来理解.你easy接受她. 我们看她的标准结构: package 包路径{ public interface 接口名称{ func ...

  7. RESTful再理解

    目录 目录 前言 RESTful的目的 REST的含义 表现层 状态转化 无状态协议HTTP 最后 前言 这是在经过一段时间的积累后,对RESTFul框架的再一次更深入的理解.希望能够将零散的知识点连 ...

  8. C语言-const再理解(转)

    有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...

  9. cookie&&session再理解笔记

    就拿php来说,两个php页面之间不拿get,post传递变量的话,数据是不能共享的.访问完1.php页面该页面的变量就被销毁了.所以就拿学校食堂来说,拿现金买饭的话你交完钱后,他给你个票以便确认你, ...

随机推荐

  1. MyEclipse在搭建s2sh时 如何 uninstalled facet

    在资源管理器中:找到当前[项目的根目录],在[.setting]目录中, 找到[org.eclipse.wst.common.project.facet.core.xml]文件. 用[文本编辑器工具] ...

  2. PHP API接口测试小工具

    前端时间给手机客户端做接口,当时弱爆了,写完API接口后,也不怎么测试,最后是等客户端调用的时候检验API的正确性. 后面利用PHP的curl实现Post请求,检验API接口的正确性:配合前面做的一个 ...

  3. 基于TFS实践敏捷-可视化管理

    TFS是基于微软平台一套不错的系统,支持源码管理+运行调试+持续集成+自动化测试+Bug管理+代码评审+任务项管理+文档管理+沟通管理.基于TFS 2015实践看板管理,让团队的数据可视化,让大家更多 ...

  4. Spark入门实战系列--2.Spark编译与部署(中)--Hadoop编译安装

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .编译Hadooop 1.1 搭建环境 1.1.1 安装并设置maven 1. 下载mave ...

  5. Anliven - 解决问题的一些方法

    How to resolve the problem? 获取基本的相关信息(后续处理问题的基础)  在怎样的背景环境下?发生了怎样的问题? 如果无法清楚地辨别或陈述问题的基本信息,那么,此时要面对的将 ...

  6. 使用 jQuery & CSS3 实现翻转的作品集滑块

    作为 Web 开发人员,我想你一定见过各种各样的图片滑块效果.展示产品或者个人作品的方法有很多,其中之一是使用网格样式的滑块效果.在本教程中,我将分享如何使用 jQuery 和 CSS3 变换实现翻转 ...

  7. 2.Visual FoxPro内存变量显示和清除命令

    一.内存变量的显示相关命令:   1. LIST MEMORY[LIKE<通配符>][TO PRINTER |TO FILE<文件名>] 2. DISPLAY MEMORY[L ...

  8. Android序列化之Serializable和Parcelable

    PS:还有几天就开学了.先来一发. 学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Par ...

  9. Azure ARM (6) ARM Template简单介绍

    <Windows Azure Platform 系列文章目录>      Azure ARM (1) 概览      Azure ARM (2) 概览      Azure ARM (3) ...

  10. tornado--SESSION框架,一致性hash,分布式存储

    预备知识 tornado框架session要自己写 cookie存储在客户端浏览器上,session数据放在服务器上 session依赖cookie 扩展tornado,返回请求前自定义session ...