在 KVM 中測試 IPv6 網路:第 2 部分
我們又見面了,在上一篇 在 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)。
![network address](/data/attachment/album/201805/17/215303egnh1euqueh5t9s1.png "network address")
圖 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)。你可以接受預設值,或者輸入一個你自己的設置值。
圖 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
作者:CARLA SCHRODER 選題:lujun9972 譯者:qhwdw 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive