环回口概述
- 环回口(loopback)是应用最为广泛的一种虚接口,几乎在网络上的每台路由器,每台主机,甚至其他各类网络设备上都会使用。
- 从操作系统层面来说,环回口地址,一般是 127.x.x.x。
- 传给广播地址或者多播地址的数据报会复制一份传给环回口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。
- 任何传给该主机自身 IP 地址的数据均送到环回口。
注:环回口有去有回,与之相对的虚拟接口是 null0,任何传到 null0 的数据包都会被丢弃。
环回口作为更新源
最常见的是在 BGP 配置中以环回口作为路由邻居的更新源。其最大的好处是接口比较稳定,不存在接口 flaping 的问题。
其次,在 ping 或者 telnet 等操作时可以手工指定环回口作为 source,有时候可以用环回口伪装源地址。
''' 思科路由器可以用环回口作为很多协议的更新源 '''
ip telnet source-interface loopback0
ip tftp source-interface loopback0
ip radius source-interface loopback0
ip tacacs source-interface loopback0
ip xxx source-interface loopback x
在VPN的配置中,可以使用环回口作为更新源
## 老式 crypto map 配置方式 ##
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 1.1.1.1
!
crypto ipsec transform-set cisco esp-des esp-md5-hmac
mode tunnel
!
crypto map cisco local-address loopback0
crypto map cisco 10 ipsec-isakmp
set peer 1.1.1.1
set tranform-set cisco
match address vpn
## 新式 SVTI 配置方式 ##
interface Tunnel0
tunnel source loopback0
tunnel destination 2.2.2.2
在思科的 Vxlan Evpn 解决方案(包括最新的 BGW 解决方案)中,大量的使用环回口作为更新源
''' VTEP 接口配置 '''
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback1
multisite border-gateway interface loopback100
global ingress-replication protocol bgp
member vni 30005
multisite ingress-replication
ingress-replication protocol bgp
member vni 30006
multisite ingress-replication
mcast-group 239.1.1.1
member vni 50001 associate-vrf
!
实例一:环回口解决动态地址问题
场景:老式路由器,例如 CISCO1921 或者 ISR 配置 webvpn,遇到外部地址频繁变化
''' loopback0:1.1.1.1 '''
webvpn gateway cisco
inservice
ip address 1.1.1.1 <<< 12.4 以前版本没有 ip interface xx 命令
ip nat inside source static tcp 1.1.1.1 443 interface e0/0 443
实例二:GRE over EzVPN + 动态路由问题
场景:EzVPN 加密了两个环回口的流量,可以使用隧道分割技术;
普通 EzVPN 其他优点:支持 DDNS、自动连接(无需感兴趣流)
## 使用环回口作为更新源建立 GRE ##
''' Client - loopback0:1.1.1.1 '''
interface Tunnel0
ip address 172.16.1.1 255.255.255.0
ip mtu 1400
tunnel source loopback0
tunnel destination 2.2.2.2
!
''' Server - loopback0:2.2.2.2 '''
interface Tunnel0
ip address 172.16.1.2 255.255.255.0
ip mtu 1400
tunnel source loopback0
tunnel destination 1.1.1.1
!
## 新式 DVTI 解决方案 ##
hostname Client
!
router ospf 1
!
interface Tunnel0
ip mtu 1400
ip ospf 1 area 0
!
interface Fa0/0
ip address 20.1.1.1 255.255.255.0
ip ospf 1 area 0
!
hostname GW
!
router ospf 1
!
interface Virtual-Template1 type tunnel
ip mtu 1400
ip ospf 1 area 0
!
interface Fa3/0
ip address 10.1.1.1 255.255.255.0
ip ospf 1 area 0
!
实例三:解决 VPN NAT 问题
场景:在VPN 与 NAT 共存的情况,路由器执行顺序先 NAT 后 VPN,NAT 会转换感兴趣流,让 VPN 无法加密。
## 一般思路,修改 PAT 的 ACL 旁路掉感兴趣流 ##
''' NAT 配置 '''
interface eth0/0
ip address 10.1.1.10 255.255.255.0
ip nat inside
!
interface e0/1
ip address 202.100.1.1 255.255.255.0
ip nat outside
crypto map cisco
!
ip access-list extended pat
deny ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255
permit ip 10.1.1.0 0.0.0.255 any
!
ip nat inside source list pat eth0/1 overload
!
''' VPN 配置 '''
ip access-list extended vpn
permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255
!
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 61.128.1.1
!
crypto ipsec transform-set cisco esp-des esp-md5-hmac
mode tunnel
!
crypto map cisco 10 ipsec-isakmp
set peer 61.128.1.1
set tranform-set cisco
match address vpn
!
实际网络改造中,往往遇到前期做 NAT 时没有考虑到后期会 VPN 打通,且无法修改 ACL的情况
## loopback 流量二次引入 ##
例如 nat_acl: access-list 10 permit 10.1.1.0 0.0.0.255
甚至 nat_acl: access-list 10 permit any
!
route-map vpn-nat permit 10
match ip address vpn
set interface loopback0 <<< 环回口有去有回,发送到环回口,即路由器认为从 loopback 进入
!
interface eth0/0
ip address 10.1.1.10 255.255.255.0
ip nat inside
ip policy route-map vpn-nat <<< 先策略后路由,当然先于 NAT
!
interface loopback0 <<< 未配置 ip nat inside,不做 NAT 转换
ip address 1.1.1.1 255.255.255.255
!
实例四:防火墙监控自身流量
场景:经典 IOS 防火墙只监控穿越流量,但是自身发起的流量不会被监控。
## 经典配置:自身发起的流量不会被监控 ##
''' 例如 FW 自身 telnet 外部接口或外部地址不通 '''
ip access-list extended outside-control
deny ip any any
!
interface eth0/0
ip address 202.100.1.1 255.255.255.0
ip access-group outside-control in
!
interface eth0/1
ip address 10.1.1.1 255.255.255.0
ip inspect cisco in
!
ip inspect name cisco tcp <<< 维护 TCP 状态化信息
!
## loopback 流量二次引入 ##
interface loopback0
ip address 1.1.1.1 255.255.255.255
ip inspect cisco in
!
ip access-list extended self-tcp
permit tcp any any
!
route-map self-tcp permit 10
match ip address self-tcp
set interface loopback0
!
ip local policy route-map self-tcp
!
实例五:PC 通过环回口桥接虚拟化软件中的虚拟机
优势:通过PC环回口连接各种模拟器和 vm 虚拟机;自由组合,更加灵活
本文由 SHIYL 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 25, 2019 at 11:50 am