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

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

來自專欄 Linux

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

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

在 KVM 中創建網路

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

圖 1:創建一個網路

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

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

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

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

$ ipv6calc -qi fd7d:844d:3e17:f3ae::/64Address type: unicast, unique-local-unicast, iid, iid-localRegistry for address: reserved(RFC4193#3.1)Address type has SLA: f3aeInterface identifier: 0000:0000:0000:0000Interface identifier is probably manual set

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

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

圖 3: 啟用 DHCPv6

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

虛擬機網路選擇

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

測試

ifconfig 告訴我們它做了什麼?

$ ifconfigens3: 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::2c9fPING fd7d:844d:3e17:f3ae::2c9f(fd7d:844d:3e17:f3ae::2c9f) 56 data bytes64 bytes from fd7d:844d:3e17:f3ae::2c9f: icmp_seq=1 ttl=64 time=0.635 ms64 bytes from fd7d:844d:3e17:f3ae::2c9f: icmp_seq=2 ttl=64 time=0.365 msvm2 ~$ ping6 -c2 fd7d:844d:3e17:f3ae:a:b:c:6314PING fd7d:844d:3e17:f3ae:a:b:c:6314(fd7d:844d:3e17:f3ae:a:b:c:6314) 56 data bytes64 bytes from fd7d:844d:3e17:f3ae:a:b:c:6314: icmp_seq=1 ttl=64 time=0.744 ms64 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 ens3vm2 ~$ ping6 -c2 fd7d:844d:3e17:f3ae:a:b:c:6314PING fd7d:844d:3e17:f3ae:a:b:c:6314(fd7d:844d:3e17:f3ae:a:b:c:6314) 56 data bytes64 bytes from fd7d:844d:3e17:f3ae:a:b:c:6314: icmp_seq=1 ttl=64 time=0.744 ms64 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:6314PING fd7d:844d:3e17:f4ae:a:b:c:6314(fd7d:844d:3e17:f4ae:a:b:c:6314) 56 data bytesFrom fd7d:844d:3e17:f3ae::1 icmp_seq=1 Destination unreachable: No routeFrom fd7d:844d:3e17:f3ae::1 icmp_seq=2 Destination unreachable: No route

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


via: linux.com/learn/intro-t

作者:CARLA SCHRODER 選題:lujun9972 譯者:qhwdw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


推薦閱讀:

IPv6,到底是什麼?
ping www.google.com 是 ipv6 地址,而 ping gmail 則成了 ipv4 的,怎麼回事?
IPv6 為什麼被設計為 128 位,是否有必要這麼長?
IPV6 和 IPV4 除了地址數目增多之外,還有什麼不同?
Cyber-Security:IPv6 & Security

TAG:IPv6 | 計算機網路 | KVMKernelbasedVirtualMachine |