#12 VPN 与 NAT

2021-05-09

我公司办公环境需要用到 OpenVPN,之前允许一个账号在两处登录,现在处于安全考虑只允许一处登录了。
然后,我就不方便了,因为我办公环境有两台电脑(台式机 Windows,笔记本 Ubuntu)都需要接入 VPN。

#11 nmap 基本用法

2021-05-01

检查端口可连接性,并支持检测操作系统信息、占用端口的常见应用程序。

  • 开放(Open)
  • 关闭(Closed)
  • 过滤(Filtered)
  • 未过滤(Unfiltered)
  • 开放或过滤(Open|Filtered)
  • 关闭或过滤(Closed|Filtered)

  • 默认扫描常用端口

常用命令

nmap 192.168.31.0/24

# Ping扫描
nmap -sn 192.168.31.0/24
# 快速端口扫描
nmap -F  192.168.31.0/24

# 操作系统
sudo nmap -O -v 192.168.31.42
sudo nmap -A -v 192.168.31.42  # 输出更详细

# 常规检查:端口(-sV)和操作系统(-O)
sudo nmap -sV -O 192.168.31.42

# 检查指定端口
nmap -p 22 192.168.31.42
nmap -p 22,80,443,3306 192.168.31.42
# 所有端口
nmap -p 1-65525 192.168.31.42
nmap -p-        192.168.31.42
# 加上使用这个端口的服务版本信息
nmap -p 22 192.168.31.42 -sV

# 对端口进行探测
nmap -PS 192.168.31.42  # SYN
nmap -PA 192.168.31.42  # ASK
nmap -PU 192.168.31.42  # UDP

sudo nmap -sS 192.168.1.1-10   # SYN
sudo nmap -sA 192.168.31.0/24  # ACK
sudo nmap -sF 192.168.31.0/24  # FIN
sudo nmap -sN 192.168.31.0/24  # TCP Null
sudo nmap -sT 192.168.31.0/24  # TCP Connect
sudo nmap -sU 192.168.31.0/24  # UDP
sudo nmap -sO 192.168.31.0/24  # IP 协议扫描

nmap -O  192.168.0.1/16
nmap -sP 192.168.0.1/16

nmap -sSU 192.168.1.1/24
# Ping Scan
# Parallel DNS resolution
# SYN Stealth Scan
# UDP Scan

参考资料与拓展阅读

#10 网卡名称的变迁(ethX -> enpXsY)

2021-03-15

早几年前,Linux 系统的网卡名称都是 eth0、wlan0,后来都变了个风格,就拿我的电脑举例:enp7s0, wlp6s0。
这到底是是什么原因呢?
最近突然好奇,去查了资料才知道为什么。
在 Fedora 的技术资料中找到,这个和 Systemd 有关,然后又在 freedesktop 官网 Systemd 的手册中找到了详细的说明。
现在的命名方案有好长一段,估计要看个半个小时(如果感兴趣可以仔细阅读一下),解开我的疑问却不需要那么复杂。

#7 OpenStack 相关网络技术

2018-03-24

相关文章:

物理设备

  1. VLAN 虚拟局域网,设备层面上的网络分区,网络设备提供的功能
    网络报文给 VLAN Tag 分配了四个字节,其中 3 个字节用于 VLAN ID,1 个字节用于 VLAN Priority。
    作为 VLAN ID 的 12bit(0-4095)中,首位两数作为保留值,也就是说 VLAN 技术支持的最大网络数是 4094。

Linux 网络技术

在 Linux 内核的网络设备管理层,虚拟设备和物理设备是同等地位。

  1. network namespace 网络隔离,虚拟化的基础
  2. bridge 网桥,相当于交换机,二层数据交换
  3. veth 虚拟网口,成对出现,两个虚拟网口之间可以相互连接(可以跨 namespace)
  4. tap/tun
  5. tap TAP 设备,虚拟二层网络,处理 TCP/UDP 包,
    有自己的 MAC 地址,可以桥接到物理网卡
  6. tun TUN 设备,虚拟三层网络,处理 IP 包
  7. iptables 网络管理
    确切的说是以 iptables 为代表的一系列网络管理技术

KVM / Neutron

  1. qvb neutron 网络桥
  2. qvo neutron 网络虚拟接口

Neutron 网络模式:

  1. VLAN
  2. VXLAN 虚拟拓展局域网,在三层 UDP 协议中封装二层数据包,突破 VLAN 的限制
  3. GRE Gerneral Routing Encapsulation,通用路由封装协议

#6 EUI-64 地址

2017-08-03

相关文章:

一、概念

不知道为了什么,IEEE 设计了一个 64 位的地址方案,称之为 EUI-64 (Extended Unique Identifier)。
MAC 地址这种又被称之为 EUI-48,确切的说,应该是 MAC 地址是 EUI-48 格式。

目前已知的区别:

  1. MAC 地址的概念只存在二层计算机网络。
    而 EUI 不止被用于 IEEE 802 协议(局域网和城域网),可以用于其他类型设备,比如蓝牙。

TODO: 需要一些调查研究。

MAC To EUI64

就是在 OUI 和设备号之间插入 FFFE 即可。

xx:xx:xx:yy:yy:yy
xx:xx:xx:ff:fe:yy:yy:yy

二、场景

根据维基百科,

采用 EUI-48 格式的场景

  • IEEE 802 网络
  • 以太网
  • 802.11 无线网络(Wi-Fi)
  • 蓝牙
  • IEEE 802.5 令牌环
  • 光纤分布式数据接口(FDDI)
  • 异步传输模式(ATM),仅作为NSAP 地址的一部分交换虚拟连接
  • 光纤通道(FC)和串行连接的 SCSI(SAS)
  • ITU-T G.hn 标准
    使用现有家庭布线(电力线、电话线和同轴电缆)创建千兆局域网。

采用 EUI-64 格式的场景

  • IEEE 1394 (FireWire),苹果公司和索尼、松下等公司开发的一种串行总线技术
  • InfiniBand,一种高性能网络标准(高吞吐,低延迟)
  • IPv6
  • ZigBee / 802.15.4 / 6LoWPAN
    PS: 6LoWPAN: IPv6 over Low-Power Wireless Personal Area Networks, 低功耗无线个人局域网 IPv6
  • IEEE 11073-20601

三、IPv6 中的应用

Update @ 2021-12-30

在 IPv6 的文档中频繁看到这个词。

无状态自动配置机制中:

  1. MAC 转 EUI-64
  2. U/L 位(首字节低二位)设位 1, 表示本地地址

#5 我们天天都接触的 IP 地址到底是什么东西?

2016-08-02

IP 地址

IP 就是一个编号,用 32 位二进制数表示,范围是 [0, 4294967295]。

为了阅读方便,IP 地址可以用点分十进制表示,也就是说,每八位用一个十进制数字表示,然后用小数点连接,比如 127.0.0.1。

那么,IP 的范围就可以表示为:0.0.0.0 ~ 255.255.255.255

总数:$2^{32} = 4294967296$ (约 43 亿)

分配机制

IP 的管理和分配是互联网号码分配局(Internet Assigned Numbers Authority,IANA)负责。

早期,IANA 是由美国南加州大学信息科学研究所(USC/ISI)依据美国国防部授权负责,后来移交给非盈利组织 ICANN。

由于互联网是从美国发展起来的,所以美国拿了大量可分配 IP 地址。

为了保证 IP 资源相对公平高效的分配,目前互联网的实际 IP 分配工作是在 IANA 的协调下,由五个区域互联网注册机构(Regional Internet Registry,RIR)负责:

  • 美洲互联网号码注册管理机构(American Registry for Internet Numbers,ARIN
    管理北美、南极洲和部分加勒比地区事务
  • 欧洲 IP 网络资源协调中心(RIPE Network Coordination Centre,RIPE NCC
    管理欧洲、中东和中亚地区事务
  • 亚太网络信息中心(Asia-Pacific Network Information Centre,APNIC
    管理亚洲和太平洋地区事务
  • 拉丁美洲及加勒比地区互联网地址注册管理机构(Latin American and Caribbean Internet Address Registry,LACNIC
    管理拉丁美洲和部分加勒比地区事务
  • 非洲网络信息中心(African Network Information Centre,AfriNIC
    管理非洲事务

我国的网络地址就由 APNIC 分配。APNIC 总部之前在日本东京,后来由于成本问题,1998 年搬到了澳大利亚布里斯班。

非公网 IP(特殊用途地址)

最知名的 10/8, 172.16/12, 192.168/16 三个网段,我们在各种局域网中见到,完整的信息在负责网络地址分配的 IANA 那里可以拿到。

  1. IANA IPv4 Address Space Registry
  2. IANA IPv4 Special-Purpose Address Registry
网段 数量 说明
0.0.0.0/8 $2^{24} = 16777216$ 本地网络,其中 0.0.0.0 表示本机。
10.0.0.0/8 $2^{24} = 16777216$ 私有
100.64.0.0/10 $2^{16} \times 64 = 4194304$ 私有, (100.64 - 100.127),ISP NAT
127.0.0.0/8 $2^{24} = 16777216$ 环回地址
169.254.0.0/16 $2^{16} = 65536$ 链路本地地址(Link-local address)
172.16.0.0/12 $2^{16} \times 16 = 1048576$ 私有,(172.16 - 172.31)
192.0.0.0/24 256 IETF Protocol Assignments
192.0.2.0/24 256 TEST-NET-1
192.31.196.0/24 256
192.52.193.0/24 256
192.88.99.0/24 256 IPv6 to IPv4 relay
192.168.0.0/16 $2^{16} = 65536$ 私有
192.175.48.0/24 256
198.18.0.0/15 $2^{16} \times 2 = 131072$ 私有,(192.18 - 192.19)
198.51.100.0/24 256
203.0.113.0/24 256 MCAST-TEST-NET
240.0.0.0/4 $2^{24} \times 16 = 268435456$ (240 - 255),保留

不知道上面为什么没有列出组播网段 224/4 (224 - 239), 和 240/4 网段一样,共 268435456 个地址。

$2^{32} - (16777216 \times 3 + 4194304 + 65536 \times 2 + 1048576 + 256 \times 8 + 131072 + 268435456 \times 2) = 3702257664$

2 ** 32 - 16777216 * 3 - 4194304 - 65536 * 2 - 1048576 - 256 * 8 - 131072 - 268435456 * 2
3702257664

3702257664 * 100 / (2 ** 32)
392519680 * 100 / (2 ** 32)
392519680 * 100 / 3702257664

所以,可分配地址大约 37 亿,占总 IP 地址数的 86.2%。

根据 全中国一共有多少 IP 地址? 一文的计算(来自 APNIC 数据),中国(含港澳台)一共分配到 IP 地址大约 4 亿,占总 IP 数的 9.14,占可分配 IP 数的 10.6。

大陆 343881984
香港  12612096
澳门    336640
台湾  35688960
--------------
总计 392519680

网络分类

早期,可能包括我们的教科书,总是提到 A 类地址,B 类地址等概念。

标准的说法,叫做 Classful Addressing,分类地址,分级寻址,分类路由。

最早 IP 分配都是按照 IP 第一个字节分配,十分大方。但是最多只能分配 256 次。
眼看着网络发展壮大,接入的机构越来越多,这样下去 IP 地址根本就不够分。
所以想出了分级的概念,按照实际需求来分配 (RFC791, 1981)。

所有的 IP 按照前缀被分成 A, B, C, D, E 五类。

Class 前缀位 网络地址位数 剩余的位数 网络数 每个网络的主机数
A 类地址 0 8 24 128 16,777,214
B 类地址 10 16 16 16,384 65,534
C 类地址 110 24 8 2,097,152 254
D 类地址(群播) 1110 未定义 未定义 未定义 未定义
E 类地址(保留) 1111 未定义 未定义 未定义 未定义

比如:
A 类:100.0.0.0/8 0110
B 类:160.0.0.0/16 1010
C 类:208.0.0.0/24 1101

地址的分配按 8 位,16 位,24 位,三种级别,也就是说每次分配可以选择 256、65536、16777214,三种 IP 数量,IP 不够分配问题暂时得到缓解。

后来,IP 地址还是不够分配,又改成了更加合理的无类别域间路由(Classless Inter-Domain Routine)方案,支持 1, 2, 4, 8, 16, 32, 64, 128, 256, 512...更多细粒度的选择。

到现在为止,又支撑了一些年,不过眼看着 IP 最后还是会耗尽。

IPv4 耗尽问题

为了推迟 IPv4 地址耗尽的问题,电信运营商早就不默认分配公网地址了。
给每户分配一个私有地址,层层 NAT,可能一个小区才一个公网 IP。

好处是再也不用怕 IP 用完。
坏处就是网络变得复杂(依赖中间的 NAT 服务),降低了可靠性。
而且,网络用户变得无法直接通信(P2P),被运营商卡了一道。

局域网 IP

RFC 1918 中定义了内网使用的地址。

10.0.0.0        -   10.255.255.255  (10/8 prefix)
172.16.0.0      -   172.31.255.255  (172.16/12 prefix)
192.168.0.0     -   192.168.255.255 (192.168/16 prefix)

参考资料与拓展阅读