你最关心的来了 报文如何丢弃、如何处理?
共 7698字,需浏览 16分钟
·
2021-04-29 08:30
点击上方“蓝字”关注我们
我是艺博东 ,一个思科出身专注于华为的网工。
文章目录
二层,没有mac表项或者黑洞mac
2.5层,没有lsp,或者黑洞lsp
MPLS VP# 汇总
MPLS VP# 汇总拓扑
MPLS VP# 汇总简单配置与分析
三层,没有路由表项或黑洞路由
BGP 路由黑洞
BGP 路由黑洞拓扑
BGP 路由黑洞简单配置与测试分析
如何解决 BGP 路由黑洞
TTL为0时会丢包
数据不可达
拥塞避免
使用流量统计方法测试
由于特殊原因,所以把“N”字母替换为“#”符号。
二层,没有mac表项或者黑洞mac
为了防止黑客通过MAC地址攻击用户设备或网络,可将非信任用户的MAC地址配置为黑洞MAC地址,过滤掉非法MAC地址。当设备收到DMAC或SMAC地址为黑洞MAC地址的报文,且报文携带的VLAN为黑洞MAC对应的VLAN时,直接丢弃。
mac-address blackhole aaaa-bbbb-cccc vlan 10 #添加黑洞MAC表项
丢弃:该帧小与64字节(数据帧不完整)或者大于接口MTU时;
从该接口收到数据帧,该数据帧又要从该接口发出时。
丢弃:
如果收到数据端口也是发送数据帧的接口,则丢弃;
SMAC地址或者DMAC地址匹配MAC地址黑洞表项时;
冲突导致残缺的数据帧;
接口拥塞,缓存不够;
CPU过载。
2.5层,没有lsp,或者黑洞lsp
MPLS VPN 汇总
MPLS VPN 汇总拓扑
AR1与AR4建立MP-IBGP邻居关系;在AR3上将4.4.4.4/32汇总成4.4.4.0/24。
接口的IP地址如图所示。
MPLS VPN 汇总简单配置与分析
骨干网使用IGP(IS-IS)
AR1
[AR1]isis
[AR1-isis-1]network-entity 66.0000.0000.0000.0001.00
[AR1-isis-1]is-level level-1
[AR1-isis-1]q
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]isis enable 1
[AR1-GigabitEthernet0/0/1]int l0
[AR1-LoopBack0]isis enable 1
AR2
[AR2]isis
[AR2-isis-1]network-entity 66.0000.0000.0000.0002.00
[AR2-isis-1]is-level level-1
[AR2-isis-1]q
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]isis enable 1
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]isis enable 1
[AR2-GigabitEthernet0/0/1]int l0
[AR2-LoopBack0]isis enable 1
AR3与AR4配置同上
AR3
[AR3-isis-1]is-level level-1-2
AR4
[AR4-isis-1]is-level level-2
[AR2]dis isis peer
建立公网LSP隧道
AR3
[AR3]mpls lsr-id 3.3.3.3
[AR3]mpls
[AR3-mpls]mpls ldp
[AR3-mpls]q
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]mpls
[AR3-GigabitEthernet0/0/0]mpls ldp
[AR3-GigabitEthernet0/0/0]int g0/0/1
[AR3-GigabitEthernet0/0/1]mpls
[AR3-GigabitEthernet0/0/1]mpls ldp
AR4
[AR4]mpls lsr-id 4.4.4.4
[AR4]mpls
[AR4-mpls]mpls ldp
[AR4-mpls-ldp]q
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]mpls
[AR4-GigabitEthernet0/0/0]mpls ldp
[AR3]dis mpls lsp
AR1与AR4建立MP-IBGP邻居关系,开启VPNV4路由
AR1
[AR1]bgp 100
[AR1-bgp]peer 4.4.4.4 as-number 100
[AR1-bgp]peer 4.4.4.4 connect-interface LoopBack0
[AR1-bgp]ipv4-family vpnv4
[AR1-bgp-af-vpnv4]peer 4.4.4.4 enable
AR4
[AR4]bgp 100
[AR4-bgp]peer 1.1.1.1 as-number 100
[AR4-bgp]peer 1.1.1.1 connect-interface LoopBack0
[AR4-bgp]ipv4-family vpnv4
[AR4-bgp-af-vpnv4]peer 1.1.1.1 enable
[AR4]dis bgp vpnv4 all peer
在PE上VPN业务的接入,并绑定相关接口
AR1
[AR1] ip vpn-instance YBD1
[AR1-vpn-instance-YBD1]route-distinguisher 100:1
[AR1-vpn-instance-YBD1]vpn-target 100:1 export-extcommunity
[AR1-vpn-instance-YBD1]vpn-target 100:1 import-extcommunity
[AR1-vpn-instance-YBD1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip binding vpn-instance YBD1
[AR1-GigabitEthernet0/0/0]ip address 10.1.15.1 255.255.255.0
AR4配置类似
接入私网VPN业务
AR1
[AR1]bgp 100
ipv4-family vpn-instance YBD1
[AR1-bgp-YBD1]peer 10.1.15.5 as-number 1
[AR1-bgp-YBD1]peer 10.1.15.5 substitute-as
AR5
[AR5]bgp 1
[AR5-bgp]peer 10.1.15.1 as-number 100
[AR5-bgp]network 5.5.5.5 255.255.255.255
[AR5]dis bgp peer
AR4和AR6配置类似
[AR6]display ip routing-table
[AR5]ping -a 5.5.5.5 6.6.6.6
在AR3上将4.4.4.4/32汇总成4.4.4.0/24
L1/2的路由器上执行区域间路由汇总,类似于OSPF的ABR。
AR3
[AR3]isis
[AR3-isis-1]summary 4.4.4.0 255.255.255.0 level-1
[AR3-isis-1]import-route isis level-2 into level-1 #L2的明显路由泄露到L1区域里
[AR1]dis mpls lsp
没有AR4的4.4.4.4/32的标签
[AR1]ping 4.4.4.4
[AR5]ping -a 5.5.5.5 6.6.6.6
三层,没有路由表项或黑洞路由
BGP 路由黑洞
BGP 路由黑洞拓扑
简单描述:按照拓扑图写接口IP地址;AR4与AR1建立EBGP邻居关系,AR3与AR5建立EBGP邻居关系;AR1与AR3建立IBGP邻居关系;AS200运行OSPF协议,并在AREA 0区域里。AR4、AR1、AR3、AR5的Loopback 0的环回口地址宣告进BGP进程中。
BGP 路由黑洞简单配置与测试分析
AR1
[AR1]di cu
[V200R003C00]
#
sysname AR1
#
...
#
interface GigabitEthernet0/0/0
ip address 10.1.14.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.1.12.1 255.255.255.0
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
bgp 200
router-id 1.1.1.1
peer 3.3.3.3 as-number 200
peer 3.3.3.3 connect-interface LoopBack0
peer 10.1.14.4 as-number 100
#
ipv4-family unicast
undo synchronization
peer 3.3.3.3 enable
peer 3.3.3.3 next-hop-local
peer 10.1.14.4 enable
#
ospf 1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.1.12.1 0.0.0.0
#
...
AR3与AR1配置类似
AR2
[AR2]dis current-configuration
[V200R003C00]
#
sysname AR2
#
...
#
interface GigabitEthernet0/0/0
ip address 10.1.12.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.1.23.2 255.255.255.0
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
ospf 1
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 10.1.12.2 0.0.0.0
network 10.1.23.2 0.0.0.0
#
...
AR4
[AR4]display current-configuration
[V200R003C00]
#
sysname AR4
#
...
#
interface GigabitEthernet0/0/0
ip address 10.1.14.4 255.255.255.0
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
#
bgp 100
router-id 4.4.4.4
peer 10.1.14.1 as-number 200
#
ipv4-family unicast
undo synchronization
network 4.4.4.4 255.255.255.255
peer 10.1.14.1 enable
#
...
AR4与AR5配置类似
[AR4]dis bgp routing-table
[AR5]dis bgp routing-table
都有对方的路由
PING测试一下
[AR5]ping -a 5.5.5.5 4.4.4.4
ICMP
Type是11,Code是0,表示传输期间生存时间为0。
[AR2]dis ip routing-table
AR2上没有AR4、AR5的路由信息。
什么是路由黑洞?
黑洞就是有去无回。
路由黑洞有什么作用?
防止路由环路。
如何解决 BGP 路由黑洞
(1)可使用GRE隧道;
AR1
[AR1]int Tunnel 0/0/1
[AR1-Tunnel0/0/1]ip address 10.1.13.1 24
[AR1-Tunnel0/0/1]tunnel-protocol gre
[AR1-Tunnel0/0/1]source 10.1.12.1
[AR1-Tunnel0/0/1]destination 10.1.23.3
[AR1-Tunnel0/0/1]q
[AR1]ip route-static 3.3.3.3 32 10.1.13.3 preference 1
AR3
[AR3]int Tunnel 0/0/1
[AR3-Tunnel0/0/1]ip address 10.1.13.3 24
[AR3-Tunnel0/0/1]tunnel-protocol gre
[AR3-Tunnel0/0/1]source 10.1.23.3
[AR3-Tunnel0/0/1]destination 10.1.12.1
[AR3-Tunnel0/0/1]q
[AR3]ip route-static 1.1.1.1 32 10.1.13.1 preference 1
[AR4]ping -a 4.4.4.4 5.5.5.5
[AR4]tracert -a 4.4.4.4 5.5.5.5
已PING通。
(2)上运行BGP协议,让AR2与AR1、AR3建立IBGP邻居关系。
此方法配置不做详细讲解。
TTL为0时会丢包
每经过一台路由器时,TTL值减1;
若报文TTL值小于接口上配置的最小TTL值,则丢弃该报文。
数据不可达
设备收到IP报文后,如果发现目的不可达,则设备将该报文丢弃,并给源端发送ICMP目的不可达报文。
端口不可达报文、协议不可达报文和主机不可达报文都属于ICMP目的不可达报文。
设备收到目的地址为本地、传输层协议为UDP的数据报文时,如果报文的端口号与正在使用的进程不匹配,则给源端发送端口不可达的ICMP报文。
设备收到目的地址为本地的数据报文时,如果设备不支持数据报文采用的传输层协议,则给源端发送协议不可达的ICMP报文。
设备收到数据报文但是无法转发时,则给源端发送主机不可达的ICMP报文。
拥塞避免
拥塞避免常用的两种丢弃报文方式为:尾部丢弃策略和WRED。
尾丢弃:当队列的长度达到最大值后,所有新入队列的报文都将被丢弃(缓存在队列尾部),这种丢弃策略会引发TCP全局同步现象,导致TCP连接始终无法建立。所谓TCP全局同步现象如下图所示,三条线表示三条TCP,当同时丢弃多个TCP报文时,将造成多个TCP连接,同时触发滑窗减半机制。又会由于慢启动的机制,将流量慢慢的增大,之后又会在某个时间同时出现流量高峰,触发滑窗减半的机制。如此反复进行,使网络流量忽大忽小。
尾丢弃出现的问题:
1)TCP同步;没有充分利用链路带宽
2)TCP饿死 ;UDP没有TCP那种滑动窗口
3)无差别的丢弃
在CBQ中,EF队列和LLQ队列不能使用丢弃策略,只能尾丢弃。为避免TCP全局同步现象,出现了RED技术。RED通过随机地丢弃数据报文,让多个TCP连接不同时降低发送速度,从而避免了TCP的全局同步现象。使TCP速率及网络流量都趋于稳定。
WRED:RED是没有差分服务的,即使优先级高的也可能被随机丢弃掉,所以基于RED,实现了WRED。流队列支持基于DSCP或IP优先级进行WRED丢弃,每一种优先级都可以独立设置报文丢包的上下门限及丢包率,报文到达下限时,开始丢包,随着门限的增高,丢包率不断增加,最高丢包率不超过设置的丢包率,直至到达高门限,报文全部丢弃,这样按照一定的丢弃概率主动丢弃队列中的报文,从而一定的程度上避免拥塞问题。
路由表里没有相应的路由条目
使用流量统计方法测试
使用流量统计的方法,沿着发生丢包的链路,在设备的入接口和出接口上部署流策略,分别统计入接口的Inbound方向和出接口的Outbound方向的特定报文,以确认该类报文是否在本设备被丢弃。
以端口a的Inbound方向和端口b的Outbound方向,端口b的Outbound方向和端口c的Inbound方向的流量统计情况为例。
如果端口a的Inbound方向和端口b的Outbound方向Passed 计数大致相等,说明此处无丢包。如果端口a的Inbound方向的报文Passed计数多于端口b的Outbound方向的报文Passed计数,说明丢包发生在LSW1。如果端口b的Outbound方向和端口c的Inbound方向Passed 计数大致相等,说明此处无丢包。
LSW1
#配置ACL规则
[LSW1]acl number 3000
[LSW1-acl-adv-3000]rule permit icmp source 192.168.10.1 0 destination 200.1.1.1
[LSW1-acl-adv-3000]quit
#配置流分类
[LSW1]traffic classifier 3000
[LSW1-classifier-3000]if-match acl 3000
[LSW1-classifier-3000]quit
#配置流行为
[LSW1]traffic behavior 3000
[LSW1-behavior-3000]statistic enable
[LSW1-behavior-3000]quit
#配置流策略
[LSW1]traffic policy 3000
[LSW1-trafficpolicy-3000]classifier 3000 behavior 3000
[LSW1-trafficpolicy-3000]quit
#在接口上应用流策略
[LSW1]interface gigabitethernet 0/0/0
[LSW1-GigabitEthernet0/0/0]traffic-policy 3000 inbound
[LSW1-GigabitEthernet0/0/0]quit
OK
情商的行为是什么?即使是对最熟悉、最亲切的人,仍然保持尊重和耐心。
好了这期就到这里了,如果你喜欢这篇文章的话,请点赞评论分享收藏,如果你还能点击关注,那真的是对我最大的鼓励。谢谢大家,下期见!
往期推荐:
交换机的接口类型 面试官与求职者之间谈话。面对面试官的疯狂追问,如果你是求职者,你能扛得住嘛?
华为 PPP点到点链路层协议 用在哪里?底层的工作原理是什么?
关注 艺博东 公众号,与你一起学习共同进步。秀秀秀秀秀~
点个
在看
你最好看