Community Value再理解
其实之前写“从香港机房引入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再理解的更多相关文章
- SVM问题再理解与分析——我的角度
SVM问题再理解与分析--我的角度 欢迎关注我的博客:http://www.cnblogs.com/xujianqing/ 支持向量机问题 问题先按照几何间隔最大化的原则引出他的问题为 上面的约束条件 ...
- 再理解HDFS的存储机制
再理解HDFS的存储机制 1. HDFS开创性地设计出一套文件存储方式.即对文件切割后分别存放: 2. HDFS将要存储的大文件进行切割,切割后存放在既定的存储块(Block)中,并通过预先设定的优化 ...
- SpringBoot-04-自动配置原理再理解
4. 自动配置原理再理解 配置文件到底能写什么?怎么写?SpringBoot官方文档有大量的配置,但是难以全部记住. 分析自动配置原理 官方文档 我们以HttpEncodingAutoCo ...
- Python无类再理解--metaclass,type
上次理解过一次,时间久了,就忘了.. 再学习一次.. http://blog.jobbole.com/21351/ ======================= 但是,Python中的类还远不止如此 ...
- Q他中的乱码再理解
Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求. 经常出现个问题是windows的解决了,源代码放到linux上编译不通过或者中文会乱码,本文主要是得出一个解决方 ...
- 再理解 as3.0接口
As3.0 接口的理解与运用 1.把接口当作"类"来理解.你easy接受她. 我们看她的标准结构: package 包路径{ public interface 接口名称{ func ...
- RESTful再理解
目录 目录 前言 RESTful的目的 REST的含义 表现层 状态转化 无状态协议HTTP 最后 前言 这是在经过一段时间的积累后,对RESTFul框架的再一次更深入的理解.希望能够将零散的知识点连 ...
- C语言-const再理解(转)
有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...
- cookie&&session再理解笔记
就拿php来说,两个php页面之间不拿get,post传递变量的话,数据是不能共享的.访问完1.php页面该页面的变量就被销毁了.所以就拿学校食堂来说,拿现金买饭的话你交完钱后,他给你个票以便确认你, ...
随机推荐
- 关于Git和Github你不知道的十件事
Git 和 GitHub都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不知道每个细节.我整理了Git和GitHub可能提高日常效率的10个常用技巧. GitHub 快捷键: t 和 w ...
- javascript类型系统——日期Date对象
× 目录 [1]静态方法 [2]构造函数 [3]实例方法 前面的话 Date对象是javascript语言中内置的数据类型,用于提供日期和时间的操作接口.Date对象是在早期java中的java.ut ...
- javase基础复习攻略《六》
学习JAVA的同学都知道,sun为我们封装了很多常用类,本篇就为大家总结一下我们经常使用的类.上一篇博客一位朋友留言问我String是不是引用数据类型?我通过查找资料发现String属于应用数据类型, ...
- MemCache在win7上的可视化配置以及Nodejs/Net应用
惯例科普:MemCache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要频繁访问数据库的 ...
- 每日学习总结<一> 2015-8-31
Java : 抽象类的简单概念和意义: 包名:域名相反.例: com.eric.test; 访问权限: (public/default/private/protected) public: 可以修 ...
- Mybatis逆向生成
在已经有了数据库的表的时候,为了方便起见,我们可以逆向生成javabean,xml,dao接口等,当然,下载mybaits-generation的工具,我这里用的是eclipse插件,然后准备一 个x ...
- matlab 读取excel
clear;clc; tic;%启动计时器,计算程序运行时间 a=xlsread('C:\Documents and Settings\Administrator\桌面\data.xls');b=a( ...
- 检查点(Checkpoint)过程如何处理未提交的事务
每次我讲解SQL Server之前,我都会先简单谈下当我们执行查询时,在SQL Server内部发生了什么.执行一个SELECT语句非常简单,但是执行DML语句更加复杂,因为SQL Server要修改 ...
- JAVA - Redis的连接
java连接linux Redis遇到的问题 昨天在Linux搭建了Redis服务,今天使用java连接测试了一下.要想使用java连接redis服务,就离不开jedis-2.6.1.jar.使用je ...
- Socket接收大数据的方法
byte[] buffer = new byte[BufferSize]; int bytesRead; // 读取的字节数 MemoryStream msStream = new MemoryStr ...