高级路由和FW(firewall)
1、BGP
2、BGP
3、防火墙
4、防火墙
5、防火墙

-----------------------------------------------------------------
×××

 
------------------------------------------------------------------

cloud
  linux  

-----------------------------------------------------------------

三层通信
不同网段之间通讯 - 路由
                     -路由设备
                        #路由器 | 多层交换机
                     -终端设备
                         #配置网关IP
    路由表  vs.  目标IP
      |
      |
      |
      直连路由
      非直连路由
          静态路由
          动态路由
            IGP(internal): 在一个公司内部使用的一类协议
               距离矢量
                    RIP(v1/2) - 如果使用,仅用 v2
                    IGRP  - 过渡协议,无需理会
                    EIGRP - 仅仅思科设备支持
               链路状态
                    ISIS - 一般应用与运营商内部 或者 数据中心
                    OSPF - 应用于企业内部,最流行的协议;
            EGP(external):在不同的公司之间,使用的一类协议
                    BGP - border gateway protocol
                           边界    网关     协议

BGP的应用场景:

    公司与运营商之间有多个线路,并且要求对路由进行灵活的
    选路控制;
    可以实现在不同的“运营商”之间长时间的稳定的传输大量路由;
        -稳定
           BGP使用的是 TCP 协议;
 -路由问题:
      1、传输的路由数量大
      2、需要灵活控制


BGP的特点:
   1、传输路由稳定  - 因为底层使用的是 TCP 协议;
   2、控制路由灵活  - 因为BGP为路由赋予了 13 个路由属性;

举例:为了对比说明 BGP 可以为路由提供更加丰富的路由属性,从而可以
      实现路由的灵活控制。
                    优先级/度量值
    192.168.1.0/24  [60/100]  via   192.168.100.1    
    192.168.1.0/24  [60/100]  via   192.168.200.1


----------------------------------------------------------------
BGP的工作过程:
   1、建立邻居表
   2、同步数据库
   3、计算路由表

AS:autonomous system  - 自治系统
  -定义
     被统一机构或者组织管理的一个区域
  -表示
     通过“数字”进行表示,叫做 “AS号”
     取值:0-65535
  -类型
     私有AS:64512 -- 65535
         任何一个企业,都可以免费使用
         私有 AS 不能在 因特网 上进行传输
     公有AS:0 -- 64511
         需要向运营商花钱购买使用
         公有 AS 可以在 因特网 上进行传输      




        
------------------------------------------------------
   
BGP邻居(neighbor):
    -叫法
       对等体(peer)
       
BGP邻居的类型:
    -内部邻居,IBGP peer/neighbor
         如果两个邻居路由器,位于同一个 AS ;
    -外部邻居,EBGP peer/neighbor
         如果两个邻居路由器,位于不同的 AS ;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BGP邻居的配置:
1.确保设备之间的连通性(内网路由 - 直连/静态/动态IGP)
R1:
  interface gi0/0/0
    ip address  192.168.12.1  255.255.255.0
R2:
  interface gi0/0/1
    ip address  192.168.12.2  255.255.255.0

2.配置BGP,指定邻居
   R1:
      bgp 64512  <--启用BGP,并指定 AS 为 64512 ;
        
        peer 192.168.12.2   as-number  64512
               # 指定邻居的IP地址以及邻居所在的 AS 号;

   R2:
      bgp 64512  <--启用BGP,并指定 AS 为 64512 ;
        
        peer 192.168.12.1   as-number  64512
               # 指定邻居的IP地址以及邻居所在的 AS 号;

3.验证
    display  bgp   peer # 查看 BGP 的邻居表

 BGP local router ID : 192.168.12.2  # 自己的router-id;
 Local AS number : 64512   # 自己本地的 AS 号;
 Total number of peers : 1          Peers in established state : 1

  Peer         V    AS  MsgRcvd  MsgSent  OutQ  Up/Down State    PrefRcv

192.168.12.1  4  64512  4        4     0 00:02:21    Established    0


总结:
   1.BGP属于 OSI 第 7 层,使用的是 TCP 179 端口;
   2.BGP连接可以跨越中间设备,直接进行 BGP 邻居关系的建立;
     bgp 64512
       router-id  x.x.x.x
       peer  192.168.X.X  as-number 64512
    display bgp peer  --> 查看 BGP 邻居表;

   3.此时建立的邻居,属于“直连端口建邻居”
        弊端:
            端口容易因为链路或者端口的物理故障,导致IP地址失效;
            从而导致 BGP 连接不稳定;
            
        改进:
            通过网络设备上的稳定的“虚拟端口”,建立 BGP 邻居关系。
            比如:loopback 。
                     #永远是 up 的,除非整个设备挂掉;

非直连BGP邻居关系  --- 即通过 loopback 建立的邻居关系;
    1.确保IP地址的连通性;
    2.考虑“更新源检测机制”
        -自己接收的 BGP 报文的源IP地址,必须与自己向对方建
         邻居时指定的目标IP地址相同。【为了安全】        
    
R1:
1.确保 IGP 互通;【R1: ping -a  10.10.1.1  10.10.3.3 】
2.配置BGP,满足更新检测机制
R1:    bgp 64512
         router-id 1.1.1.1
         peer 10.10.3.3 as-number 64512
         peer 10.10.3.3 connect-interface loopback 13
                # 更改 R1 向 R3 发送 BGP 报文时所使用的源IP;        
    
    
R3:   bgp 64512
          router-id 3.3.3.3
          peer 10.10.1.1 as-number 64512
          peer 10.10.1.1 connect-interface loopback 13    
    
=================================================================

BGP 路由宣告:
    # network
    # import-route
================================================================    
BGP 路由传递
    为了避免路由环路的发生,在内部 BGP 邻居关系之间,引入了一个
    防环机制:
          IBGP 水平分割
            -从一个内部BGP邻居收到的路由,不能再发给另外一个内部邻居
              解决方案:
                 1.所有路由器之间进行“全互联”,形成BGP邻居关系;
                       缺点:
                            邻居数据量太多
                            管理难度大
                            占用的设备资源非常(都需要TCP链接)
                  2.路由反射器
                        -当我们将一个路由器配置为路由反射器以后,
                         该路由器临时的“关闭IBGP水平分割机制”。
                        -设备角色
                            #路由反射器       - route reflector 【RR】
                            #路由发射器客户端 - route reflector client 【RR-C】
                        -转发路由的原则
                            非C 与 非 C 之间不能传输(反射)
            
                        -配置命令:
                            R2:
                               bgp  64512
                                  peer 10.10.1.1 reflect-client
                                     #将10.10.1.1这个邻居配置成了
                                      路由反射器客户端,
                                      同时,
                                      自己成为了“路由反射器”;
                              
=================================================================

实验目标: PC-1 ----> PC-2

1.配置 PC-1/2 的IP地址和网关IP地址:
    192.168.1.1 255.255.255.0
    192.168.1.254
    
    192.168.2.1  255.255.255.0
    192.168.2.254
2.配置网络中的 IGP : OSPF
     R1:
        interface loopback 13
          ip address 10.10.1.1 255.255.255.0
        interface gi0/0/0
           ip address 192.168.12.1 255.255.255.0
        interface gi0/0/1
           ip address 192.168.1.254 255.255.255.0
        
        ospf 1 router-id 1.1.1.1
           area 0
             network 192.168.12.0 0.0.0.255
             network 10.10.1.1 0.0.0.0
            
     R2:
        interface loopback 0
          ip address 10.10.2.2 255.255.255.0
        interface gi0/0/0
          ip address 192.168.23.2 255.255.255.0
        interface gi0/0/1
          ip address 192.168.12.2 255.255.255.0
          
        ospf 1 router-id 2.2.2.2
          area 0
            network 10.10.2.2 0.0.0.0
            network 192.168.12.2 0.0.0.0
            network 192.168.23.2 0.0.0.0
     R3 :
        interface loopback 13
          ip address 10.10.3.3 255.255.255.0
        interface gi0/0/1
          ip address 192.168.23.3 255.255.255.0
        interface gi0/0/2
          ip address 192.168.2.254 255.255.255.0
 
        ospf 1 router-id 3.3.3.3
          area 0
            network 10.10.3.3 0.0.0.0
            network 192.168.23.3 0.0.0.0
3.配置网络中的 BGP
      R1:
        bgp 64512
           router-id 1.1.1.1
           peer 10.10.2.2 as-number 64512
           peer 10.10.2.2 connect-interface loopback 13
           peer 10.10.3.3 as-number 64512
           peer 10.10.3.3 connect-interface loopback 13           
           import-route direct
           
      R2:
        bgp 64512
           router-id 2.2.2.2
           peer 10.10.1.1 as-number 64512
           peer 10.10.1.1 connect-interface loopback 0
           peer 10.10.3.3 as-number 64512
           peer 10.10.3.3 connect-interface loopback 0           
    
      R3:
        bgp 64512
           router-id 3.3.3.3
           peer 10.10.2.2 as-number 64512
           peer 10.10.2.2 connect-interface loopback 13
           peer 10.10.1.1 as-number 64512
           peer 10.10.1.1 connect-interface loopback 13           
           network 192.168.2.0 255.255.255.0    
        
==============================================================
    
IBGP水平分割解决方案:
   1、BGP全互联
   2、路由反射器  
   3、BGP联盟


R3:
bgp 64512
 router-id 3.3.3.3
 confederation id 100 <---指定联盟的大 AS 号;
 confederation peer-as 64513 <---指定联盟中的邻居小 AS ;
 peer 10.10.2.2 as-number 64512
 peer 10.10.2.2 connect-interface LoopBack0
 peer 192.168.34.4 as-number 64513
 
R4:
bgp 64513
 router-id 4.4.4.4
 confederation id 100 <---指定联盟的大 AS 号;
 confederation peer-as 64512 <---指定联盟中的邻居小 AS ;
 peer 10.10.5.5 as-number 64513
 peer 10.10.5.5 connect-interface LoopBack0
 peer 192.168.34.3 as-number 64512
    
命令解析:
    当 R4 与 R3 建立邻居时
      -首先判断邻居的类型
           # IBGP邻居
           # EBGP邻居           
              比较的是:bgp 64513  和 peer 中的 “as-number 64512”
              两者不同,所以属于:
                  EBGP邻居。
      -判断该外部邻居所在的/使用的 AS 号是否与自己在同一个联盟下
           判断依据是:
              confederation peer-as 1 2 3 4 64512  
           即,我们需要查看 peer 中的 "as-number 64512" 的 64512
           有没有出现在 “confederation peer-as” 中 。
               #如果有,R4 向 R3 发送 BGP 报文时,使用的 “小AS” ;
               #如果没有,R4向 R3 发送 BGP 报文时,使用的是“大AS”;
       - 在对方设备  R3  查看:
            如果 R4 发送的 AS 号 与  R3 的 peer 中使用的 "as-mumner"
            相同,则邻居建立成功;
            反之,邻居建立失败;

故障排查场景恢复:

            
<R3/R4> terminal monitor
<R3/R4> terminal debugging
<R3/R4> debug  bgp  x.x.x.x  all -->查看某一个 BGP 邻居的 debug 信息
<R3/R4> undo debug all --> 关闭所有的 debug  命令;

    
    (open message error / bad as number )
    
    
    
=================================================================    
    
不同大AS之间传递路由时候,我们所学习到的相关知识点:
    
BGP路由传递的特点:
   -IBGP邻居之间传递路由,下一跳不变的;
   -EBGP邻居之间传递路由,下一跳是变的;(指的是 大 AS 之间的 EBGP)
    
如果下一跳不变化,有可能导致的问题是:
    BGP路由的下一跳不可达,导致该路由不是最优的,
    所以该路由是不可以使用的(1.不允许放入路由表 ; 2.不允许传出去)    
    
针对下一跳不变而导致的路由下一跳不可达的问题的解决方案:
    在 AS 的边界路由器上,对自己的内部邻居使用以下命令
        
      R6:        
        bgp 200
          peer 10.10.8.8 next-hop-local
                -->将去往 10.10.8.8 邻居             
                   的路由的下一跳变为自己(10.10.6.6)
    
---------------------------------------------------------------

1.一个16进制,等价于 4个 2进制;


    16*8 = 128
    
-------------------------------------------------------------
IPv6地址:
   -特点  
       地址空间大 ,通过 128bit 表示;
       安全性高
      
   -表示
       冒号分16进制
       例如:
          2001 : 0410: 0000 :0001: 0000: 0000 :0000  45ff
   -简写原则:    
       #针对每一个段,如果最左边是0,可以省略不写;
         例如:       
          2001 : 410: 0000 :1: 0000: 0000 :0000  45ff    
       #针对每一个段,如果全是0,则直接用一个0表示;
         例如:       
          2001 : 410: 0 :1: 0000: 0000 :0000  45ff    
       #如果,连续的多个段,全都是0,则直接通过“双冒号”表示;
        在每一个 IPv6 地址中,双冒号最多只能有一个;
         例如:       
          2001 : 410: 0 :1   ::  45ff    
   -分类
      单播
        AGUA - 相当于IPv4 中的公网IP地址;
        link-local  , 当我们在链路上启用IPv6以后,地址会自动生成
                       并且是以 FE80:
        site-local ,本地站点地址,相当于我们IPv4 中的 A类中的
                     私有地址;
        special-address , 特殊地址,主要指的是
                             全 0 的 IPv6 地址 -- ::,相当于IPv4的 0.0.0.0 ;
                             本地回环口地址 -- ::1 ,相当于IPv4 的 127.0.0.1 ;
        与IPv4兼容的IPv6地址:
               即将IPv4变换为 IPv6的格式,并且放在最后面,
               前面的96bit全部用0表示。
               例如:
                  IPv4 - 10.10.1.1
   
                  IPv6 -  :: 0a0a : 0101    
      
      组播 : IPv6 中的组播,与IPv4 中的组播,意义完全相同。
             IPv6 地址 - 凡是以 FF 开头的地址,我们称之为IPv6的组播地址
                         相当于IPv4中的 组播地址 - 224.X.X.X
             FF01:
             FF02:
             FF05:
      任意播
   
   
   =======================================================
   
   1.为网络设备配置IPv6地址;
         #配置接口时,首先得开启IPv6协议;
         #输入IPv6 地址 (也可以自动获取)
   2.为网络设备启用IPv6路由协议;
         #全局启用IPv6 功能
         #启用IPv6路由协议(RIPng / OSPFv3 / BGP / ISIS)
         #IPv6的协议,是需要在每个端口上单独启用的;
            
   3.测试网络设备之间的IPv6连通性;
        display ipv6 interface brief
        display ipv6 routing-table
        ping ipv6 -a x.x.x.x y.y.y.y
   
   
   基于上课的拓扑的配置如下:
---------------------------------- R1 ------------------------------

#
ipv6  ----> 全局开启IPv6功能;

interface GigabitEthernet0/0/0  ----> 为接口配置IPv6地址;
 ipv6 enable                      # 在接口下开启IPv6功能;
 ipv6 address 2001:12::1/64
 ripng 1 enable                   # 在接口开启IPv6路由协议;

#
interface LoopBack0
 ipv6 enable
 ipv6 address 2001::1/128
 ripng 1 enable
#
ripng 1                   ------> 创建并启用了ripng 功能;


-------------------------------- R2 ---------------------------



ipv6

interface GigabitEthernet0/0/0
 ipv6 enable
 ipv6 address 2001:23::2/64
 ripng 2 enable
#
interface GigabitEthernet0/0/1
 ipv6 enable
 ipv6 address 2001:12::2/64
 ripng 2 enable

#
interface LoopBack0
 ipv6 enable
 ipv6 address 2001::2/100
#
ripng 2
#

-------------------------------- R3 ----------------------------
ipv6

interface GigabitEthernet0/0/1
 ipv6 enable
 ipv6 address 2001:23::3/64
 ripng 3 enable

interface LoopBack0
 ipv6 enable
 ipv6 address 2001::3/128
 ripng 3 enable

ripng 3