在 KVM 中測試 IPv6 網絡:第 2 部分

在 KVM 中測試 IPv6 網絡:第 2 部分

編譯自: https://www.linux.com/learn/intro-to-linux/2017/11/testing-ipv6-networking-kvm-part-2

譯者: qhwdw

我們又見面了,在上一篇 在 KVM 中測試 IPv6 網絡:第 1 部分[1] 中,我們學習了有關 IPv6 私有地址的內容。今天,我們將使用 KVM 創建一個網絡,去測試上一星期學習的 IPv6 的內容。

如果你想重新溫習如何使用 KVM,可以查看 在 KVM 中創建虛擬機:第 1 部分[2] 和 在 KVM 中創建虛擬機:第 2 部分— 網絡[3]。

在 KVM 中創建網絡

在 KVM 中你至少需要兩個虛擬機。當然了,如果你願意,也可以創建更多的虛擬機。在我的系統中有 Fedora、Ubuntu、以及 openSUSE。去創建一個新的 IPv6 網絡,在主虛擬機管理窗口中打開 “Edit > Connection Details > Virtual Networks”。點擊左下角的綠色十字按鈕去創建一個新的網絡(圖 1)。

在 KVM 中測試 IPv6 網絡:第 2 部分

圖 1:創建一個網絡

給新網絡輸入一個名字,然後,點擊 “Forward” 按鈕。如果你願意,也可以不創建 IPv4 網絡。當你創建一個新的 IPv4 網絡時,虛擬機管理器將不讓你創建重複網絡,或者是使用了一個無效地址。在我的宿主機 Ubuntu 系統上,有效的地址是以綠色高亮顯示的,而無效地址是使用高亮的玫瑰紅色調。在我的 openSUSE 機器上沒有高亮顏色。啟用或不啟用 DHCP,以及創建或不創建一個靜態路由,然後進入下一個窗口。

選中 “Enable IPv6 network address space definition”,然後輸入你的私有地址範圍。你可以使用任何你希望的 IPv6 地址類,但是要注意,不能將你的實驗網絡洩漏到公網上去。我們將使用非常好用的 IPv6 唯一本地地址(ULA),並且使用在 Simple DNS Plus[4] 上的在線地址生成器,去創建我們的網絡地址。拷貝 “Combined/CID” 地址到網絡框中(圖 2)。

在 KVM 中測試 IPv6 網絡:第 2 部分

圖 2:拷貝 "Combined/CID" 地址到網絡框中

虛擬機認為我的地址是無效的,因為,它顯示了高亮的玫瑰紅色。它做的對嗎?我們使用 ipv6calc 去驗證一下:

$ ipv6calc -qi fd7d:844d:3e17:f3ae::/64

Address type: unicast, unique-local-unicast, iid, iid-local

Registry for address: reserved(RFC4193#3.1)

Address type has SLA: f3ae

Interface identifier: 0000:0000:0000:0000

Interface identifier is probably manual set

ipv6calc 認為沒有問題。如果感興趣,你可以改變其中一個數字為無效的東西,比如字母 g,然後再試一次。(問 “如果…?”,試驗和錯誤是最好的學習方法)。

我們繼續進行,啟用 DHCPv6(圖 3)。你可以接受缺省值,或者輸入一個你自己的設置值。

在 KVM 中測試 IPv6 網絡:第 2 部分

圖 3: 啟用 DHCPv6

我們將跳過缺省路由定義這一步,繼續進入下一屏,在那裡我們將啟用 “Isolated Virtual Network” 和 “Enable IPv6 internal routing/networking”。

虛擬機網絡選擇

現在,你可以配置你的虛擬機去使用新的網絡。打開你的虛擬機,然後點擊頂部左側的 “i” 按鈕去打開 “Show virtual hardware details” 屏幕。在 “Add Hardware” 列點擊 “NIC” 按鈕去打開網絡選擇器,然後選擇你喜歡的新的 IPv6 網絡。點擊 “Apply”,然後重新啟動。(或者使用你喜歡的方法去重新啟動網絡,或者更新你的 DHCP 租期。)

測試

ifconfig 告訴我們它做了什麼?

$ ifconfig

ens3: flags=4163 UP,BROADCAST,RUNNING,MULTICAST mtu 1500

inet 192.168.30.207 netmask 255.255.255.0

broadcast 192.168.30.255

inet6 fd7d:844d:3e17:f3ae::6314

prefixlen 128 scopeid 0x0

inet6 fe80::4821:5ecb:e4b4:d5fc

prefixlen 64 scopeid 0x20

這是我們新的 ULA,fd7d:844d:3e17:f3ae::6314,它是自動生成的本地鏈路地址。如果你有興趣,可以 ping 一下,ping 網絡上的其它虛擬機:

vm1 ~$ ping6 -c2 fd7d:844d:3e17:f3ae::2c9f

PING fd7d:844d:3e17:f3ae::2c9f(fd7d:844d:3e17:f3ae::2c9f) 56 data bytes

64 bytes from fd7d:844d:3e17:f3ae::2c9f: icmp_seq=1 ttl=64 time=0.635 ms

64 bytes from fd7d:844d:3e17:f3ae::2c9f: icmp_seq=2 ttl=64 time=0.365 ms

vm2 ~$ ping6 -c2 fd7d:844d:3e17:f3ae:a:b:c:6314

PING fd7d:844d:3e17:f3ae:a:b:c:6314(fd7d:844d:3e17:f3ae:a:b:c:6314) 56 data bytes

64 bytes from fd7d:844d:3e17:f3ae:a:b:c:6314: icmp_seq=1 ttl=64 time=0.744 ms

64 bytes from fd7d:844d:3e17:f3ae:a:b:c:6314: icmp_seq=2 ttl=64 time=0.364 ms

當你努力去理解子網時,這是一個可以讓你嘗試不同地址是否可以正常工作的快速易用的方法。你可以給單個接口分配多個 IP 地址,然後 ping 它們去看一下會發生什麼。在一個 ULA 中,接口,或者主機是 IP 地址的最後四部分,因此,你可以在那裡做任何事情,只要它們在同一個子網中即可,在那個例子中是 f3ae。在我的其中一個虛擬機上,我只改變了這個示例的接口 ID,以展示使用這四個部分,你可以做任何你想做的事情:

vm1 ~$ sudo /sbin/ip -6 addr add fd7d:844d:3e17:f3ae:a:b:c:6314 dev ens3

vm2 ~$ ping6 -c2 fd7d:844d:3e17:f3ae:a:b:c:6314

PING fd7d:844d:3e17:f3ae:a:b:c:6314(fd7d:844d:3e17:f3ae:a:b:c:6314) 56 data bytes

64 bytes from fd7d:844d:3e17:f3ae:a:b:c:6314: icmp_seq=1 ttl=64 time=0.744 ms

64 bytes from fd7d:844d:3e17:f3ae:a:b:c:6314: icmp_seq=2 ttl=64 time=0.364 ms

現在,嘗試使用不同的子網,在下面的示例中使用了 f4ae 代替 f3ae:

$ ping6 -c2 fd7d:844d:3e17:f4ae:a:b:c:6314

PING fd7d:844d:3e17:f4ae:a:b:c:6314(fd7d:844d:3e17:f4ae:a:b:c:6314) 56 data bytes

From fd7d:844d:3e17:f3ae::1 icmp_seq=1 Destination unreachable: No route

From fd7d:844d:3e17:f3ae::1 icmp_seq=2 Destination unreachable: No route

這也是練習路由的好機會,以後,我們將專門做一期,如何在不使用 DHCP 情況下實現自動尋址。


via: https://www.linux.com/learn/intro-to-linux/2017/11/testing-ipv6-networking-kvm-part-2


分享到:


相關文章: