2022-11-15 · 9

网络学习 2 — DNS、DHCP 与 DMVPN

network

这篇文章发布已超过两年,内容可能已过时。

Server

今天做的拓扑

做了搭建 DNS、WEB 服务器以及应用 SSL 之类的事情。

DNS server

以 Debian 11.5(CLI)作为服务器开始。

apt install vim bind9

用上面的命令安装了未装的 vim 和 bind9。为设置基本选项,在 named.conf.options 中进行。在 /etc/bind/named.conf.options 中编辑。

只添加 allow-recursion { any; };。然后在同一路径的 named.conf.local 中添加。

分内网和外网进行,上面的 ACL 是以 HQ 为基准、彼此知道对方信息的 IP 集合。

接着配置上面的 zone 文件。首先是 /var/cache/bind/korea.com.inter.zone。没有任何配置时,用相对路径写会进入 /var/cache/bind/[file],所以不一定非得写绝对路径。

Domain 用 korea.com 进行。ca、hq、br1、br2 之类是 router 设备的 IP,www 是 Web 服务器。

Router 设备各是各自的环回地址,只有服务器是外部网关地址。

如果全部配置正确,输入上面的命令时可以确认 IP 正常显示。

DHCP server

apt install isc-dhcp-server -y

用上面的命令额外安装 dhcp server 包。然后修改 /etc/dhcp/dhcpd.conf 文件。

把上面 2 项改成我们刚才配置的 DNS。

然后确定要下发的 IP 网段。之后重启就完成了。

在 Windows 11 上用 ipconfig /renew 获取 dhcp 时,可以看到按配置分到了 100 ~ 199 之间的 IP,DNS 也正确解析为 korea.com。ping 和 DNS 查询也都很顺。

Network

这是网络中要用的拓扑。是由 HQ 和 3 个区域组成的网络。用 eigrp 路由,但由于内网与 IP 网段不同,目前只有路由器之间能通信,内部 PC 之间无法通信。打算用 GRE 隧道和 DMVPN 把 HQ 和其余区域配置成可以通信。

[ HQ ]
1. ip address 10.0.0.1 255.255.255.0
2. ip nhrp authentication [key] # 我们不做
3. ip nhrp map multicast dynamic
4. ip nhrp network-id [number]
5. ip ospf network point-to-multipoint # 我们用 eigrp 所以不做
6. tunnel source [loop-back | source interface ip]
7. tunnel mode gre multipoint
8. tunnel key [number]
9. ip nhrp holdtime [seconds, default 7200]

1. 分配 Tunnel Interface 上要用的 IP。

2. 输入 NHRP 认证要用的 key。

3. 允许 multicast traffic 穿过隧道传递。没有此设置动态路由协议将无法正常工作。

4. 它是 DMVPN 网络中唯一的标识符,不同则无法通信。

5. 这是更改了 OSPF 的 network type。但我们用 eigrp,所以不需要。

6. tunnel source 设置一个可从外部路由的 IP 即可,该 IP 之后会在 Spoke router 的 multicast map 中使用。

7. gre mode 指定为 multipoint。

8. 配置多个 multipoint gre 时,设置一个用于区分的数字。

9. 指定 NHRP map 的 hold time。

★ 与 GRE 不同,mGRE 没有 tunnel 目的地设置。因为是 multipoint 结构,tunnel 配置是动态形成的。

[BR1]
1. ip address 10.0.0.2 255.255.255.0
2. ip nhrp authentication [key] # 我们不使用
3. ip nhrp map multicast [hub router ip]
4. ip nhrp map [hub router tunnel ip] [hub router ip]
5. ip nhrp network-id 1
6. ip nhrp nhs [hub router ip]
7. tunnel source [this spoke router ip]
8. tunnel mode gre multipoint

1. 分配 Tunnel interface 上要用的 IP。

2. 指定 NHRP 认证要用的 key 值。

3. 允许 multicast traffic 穿过隧道传递。没有此设置动态路由协议将无法正常工作。与 hub router 的配置稍有不同,指定 multicast 将被传递到的 ip 地址即可。

4. 该命令的作用是把 NHS 地址与物理地址静态映射。

5. 它是 DMVPN 网络中唯一的标识符,不同则无法通信。

6. 进行 NHS(Next Hop Server)设置,指定 hub 的 tunnel 地址。

7. tunnel source 设置一个可从外部路由的 IP 即可。

8. gre mode 指定为 multipoint。

★ 若把 ip nhrp map multicast 的 IP 设为 hub router 的 tunnel ip,会出现 OSPF Neighbor 反复断开又连上的现象。

用 EIGRP 路由连接时会出现问题。hub router 有关于所有 spoke router 的路由表,但 spoke router 之间没有路由表。原因是 Split-horizon。

什么是 Split-horizon

Split-horizon 是指:从某接口收到通告的信息,不再从该接口通告出去的特性。(为防止环路而默认启用。但在 hub & spoke 区段用单个接口构成中心时,必须关闭它,spoke router 之间才能交换信息。)

关闭方法

[HQ]
int tunnel0
no ip split-horizon eigrp [number]

把用 eigrp 通过 tunnel 与其他 spoke 连接时用的编号记下来即可。

使用 Crypto Profile

  • point-to-point GRE 时,用 tunnel destination [tunnel-destination] 命令输入的 IP 地址设置 ACL 及 set peer 地址。
  • multipoint GRE 时,因为不能用 tunnel destination 命令,所以查看 NHRP Map 中登记的对端 NHRP Peer 信息来设置 ACL 及 set peer。
  • 由于 GRE 使用的 IP 包与 IPSec 使用的 IP 包相同,为了不在 ESP 前面再附加 IP 包,必须把 IPSec 配置为 transport 模式。
[HQ]
conf t
crypto isakmp policy 1
  authentication pre-share
  encryption aes
  hash sha
  group 14
!

crypto isakmp key [key] address 0.0.0.0 0.0.0.0

crypto ipsec transform-set [transform-set name] esp-aes esp-sha-hmac
  mode transport
!

crypto ipsec profile [crypto ipsec profile name]
  set transform-set [transform-set name]
!

int tunnel 0
  tunnel protection ipsec profile [crypto ipsec profile name]
!

Server - 2(证书设置)

把上面所有说明都配置好,再在 loopback 1 上分配 11.11.11.11 IP,并只为 ca.korea.com IP -> 11.11.11.11 设置 static NAT 即可。

ip nat inside source static 192.168.10.1 11.11.11.11

那么就像上图一样,按拓扑修改 external DNS 的配置。

[QH]
ip domain-name koera.com
ip name-server 192.168.10.1
ip domain-lookup

[BRn]
ip domain-name korea.com
ip name-server 11.11.11.11
ip domain-lookup

把上面的命令按各路由器写好。接着从 QH、BRn 向 ca.korea.com 发个 ping 吧。

HQ#ping ca.korea.com
Translating "ca.korea.com"...domain server (192.168.10.1) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms

BR1#ping ca.korea.com
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.11.11.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/10/11 ms

可以确认没问题。现在在 HQ 生成私钥。

BR1(config)#crypto key generate rsa modulus 2048 label hq.korea.com
BR1(config)#do show crypto key mypubkey rsa
% Key pair was generated at: 11:16:04 UTC Nov 16 2022
Key name: hq.korea.com
Key type: RSA KEYS
 Storage Device: not specified
 Usage: General Purpose Key
 Key is not exportable.
 Key Data:
  30820122 300D0609 2A864886 F70D0101 01050003 82010F00 3082010A 02820101
  0096EB32 E01FE12D FDE8A0B5 BF8D8946 6BC4038E 6A475887 7C6D7D12 5C34965E
  4A85B8F3 1475070E 2BD6F884 71CEB2B5 0274981A EC72EB89 C00FBE42 7809F0B1
  1A64CAE4 11DA46D8 C134F19A 13A31858 79E76C5E 873A737E 61C2951E C636992E
  E6A8F4C9 91112879 38D8E1BF 6D4F0B05 FCE4038E 0057E5AF 28A5926D 202C1DEE
  9E2DF748 FA5E0195 57EB06A4 B7A5631B 592C2373 6BFC28DD C60378E3 4BBA18C7
  72764B8E 056823CA C0965051 E815A149 25DA8BCA 95E2A1EA B0D1FACF 2F0B544B
  2D944AB5 86D4E5C8 1ED478F9 5651033D D619FDB9 7BEB0A43 873FF837 39F64280
  AE15806C 614C1490 16ED401F 60F720BF D9AF08A1 D5685189 C7340701 482B7322
  87020301 0001
% Key pair was generated at: 11:16:04 UTC Nov 16 2022
Key name: hq.korea.com.server
Key type: RSA KEYS
Temporary key
 Usage: Encryption Key
 Key is not exportable.
 Key Data:
  307C300D 06092A86 4886F70D 01010105 00036B00 30680261 009262AF 24199DF1
  4BE4C0C7 EFBC123F 13F8E55E 017E1D9F 804E6AB5 7F7FB2B8 5C6C5F50 512282BF
  ADAD3AF1 8ADBA977 0FA03545 C521C587 B74A9865 A8C9C4FF 08159C65 44FECDE7
  7583F06F 92272C3B 685907CD 8B1FD048 FD1D3614 30E59295 23020301 0001

可以确认像上面一样生成成功。而且用 server 证书加密时,务必让 router 与当前时间同步。因此把 QH router 的 clock 改为 KST +9 小时。

BR1(config)#clock timezone KST +9
BR1(config)#do cl
BR1(config)#do show clock
*20:18:42.325 KST Wed Nov 16 2022

已正确同步为当前时间!现在需要把 ca.korea.com 做成 trustpoint。

HQ(config)#crypto pki trustpoint korea-CA
HQ(ca-trustpoint)#enrollment url ftp://ca.korea.com pem
HQ(ca-trustpoint)#subject-name CN=hq.korea.com,C=KR,O=GIFTS

HQ(ca-trustpoint)#rsakeypair hq.korea.com
HQ(ca-trustpoint)#ip-address none
HQ(ca-trustpoint)#revocation-check crl none
HQ(ca-trustpoint)#fqdn hq.korea.com
HQ(ca-trustpoint)#serial-number none

为通过 ftp 与服务器收发证书,用 enrollment 指定 ftp 服务器。此时据说 trustpoint 的 korea-CA 名称必须与 Root 认证名称相同。参见下图。

之后在 ca.korea.com 服务器上装 vsftpd 和 ftp。ftp 是为测试而安装。然后进入 /etc/vsftpd.conf 改一些简单设置。

apt install vsftpd ftp -y

第 31 行和第 35 行被注释了,把这些注释删掉。因为我们要取回证书,所以需要 write 权限。之后再创建一个用于 FTP 的用户。

adduser -gecos "" router

没有错字。必须全部输入。之后输入 ftp localhost 命令,再用 router 账户尝试登录。

现在我登录后敲 ls 有些东西,但如果是刚创建的账户大概什么都没有。总之确认正常工作。

HQ(config)#ip ftp username router
HQ(config)#ip ftp password Pa$$worD

需要在 HQ 输入上面的命令来登记 ftp 账户。之后输入下面的命令,把 HQ 路由器上生成的 key 传过去。

HQ(config)#crypto pki enroll korea-CA
% Start certificate enrollment ..

% The subject name in the certificate will include: CN=hq.korea.com,C=KR,O=GIFTS
% The subject name in the certificate will include: hq.korea.com
Send Certificate Request to file system? [yes/no]: yes
% Certificate request sent to file system
% The 'show crypto pki certificate verbose korea-CA' commandwill show the fingerprint.

HQ(config)#!
*Nov 16 11:50:18.435: CRYPTO_PKI:  Certificate Request Fingerprint MD5: A8B5DCC3 285EE903 3B2A3ABA CD62A14E
*Nov 16 11:50:18.435: CRYPTO_PKI:  Certificate Request Fingerprint SHA1: 21223EF1 F284BEDD 701DD7C5 11C78563 4CAFCE04

像上面一样在控制台窗口显示就算成功。到服务器上确认一下。

可以看到存在 korea-CA.req 文件。现在用这个 key 做 ca 签名。

openssl ca -in korea-CA.req -out korea-CA.crt

在下面 Sign the certificate? 处按 Y 就会成功生成。若那个输入密码或完全报错,请看下面的帖子。

可以确认生成了 korea-CA.crt 证书。现在把 root korea-CA.crt 证书复制到当前这个 ftp user 路径下,命名为 korea-CA.ca。

!> ****](https://peemangit.tistory.com/125)

参考 查看更多 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=roser111&logNo=221204422142 > [Dynamic Multipoint VPN (DMVPN)](https://m.blog.naver.com/PostView.naver?isHttpsRedir

— peemangit.tistory.com


原文(韩语): tistory — 发布于 2022-11-15,已迁移至本博客。本翻译由 AI 协助完成。

评论

删除这条评论?

相关文章

网络学习 2 — DNS、DHCP 与 DMVPN · 나봄하랑