First Commit

This commit is contained in:
2021-05-18 00:58:01 +01:00
parent 75945a93a7
commit a2bd078f6e
96 changed files with 3311 additions and 0 deletions

View File

@@ -0,0 +1,147 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script"/>
<meta name="twitter:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www."/>
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script" />
<meta property="og:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/macvlan/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2020-05-18T00:00:00&#43;00:00" />
<meta property="article:modified_time" content="2020-05-18T00:00:00&#43;00:00" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article class="post">
<header class="post-header">
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough - macvlan Script</h1>
<div class="post-meta">
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</div>
</div>
</header>
<div class="post-content">
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash"><span style="color:#ff79c6">#!/bin/sh
</span><span style="color:#ff79c6"></span><span style="color:#6272a4"># Last Edited: 2020-05-18</span>
<span style="color:#6272a4"># From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/</span>
<span style="color:#6272a4"># Let host and guests talk to each other over macvlan.</span>
<span style="color:#6272a4"># Configures a macvlan interface on the hypervisor.</span>
<span style="color:#6272a4"># Run this on the hypervisor (e.g. in /etc/rc.local)</span>
<span style="color:#6272a4"># Made for IPv4; need modification for IPv6.</span>
<span style="color:#6272a4"># Meant for a simple network setup with only eth0,</span>
<span style="color:#6272a4"># and a static (manual) ip config.</span>
<span style="color:#6272a4"># Evert Mouw, 2013. Slightly modified in 2020.</span>
<span style="color:#8be9fd;font-style:italic">HWLINK</span><span style="color:#ff79c6">=</span>enp34s0
<span style="color:#8be9fd;font-style:italic">MACVLN</span><span style="color:#ff79c6">=</span>macvlan0
<span style="color:#8be9fd;font-style:italic">TESTHOST</span><span style="color:#ff79c6">=</span>www.google.com
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># test if interface already exists</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#ff79c6">if</span> ip link show | grep <span style="color:#f1fa8c">&#34;</span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c">@</span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">&#34;</span> &gt; /dev/null
<span style="color:#ff79c6">then</span>
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">&#34;Link </span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c"> already exists on </span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">.&#34;</span>
<span style="color:#8be9fd;font-style:italic">exit</span>
<span style="color:#ff79c6">fi</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># wait for network availability</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#ff79c6">while</span> ! ping -q -c <span style="color:#bd93f9">1</span> <span style="color:#8be9fd;font-style:italic">$TESTHOST</span> &gt; /dev/null
<span style="color:#ff79c6">do</span>
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">&#34;</span><span style="color:#8be9fd;font-style:italic">$0</span><span style="color:#f1fa8c">: Cannot ping </span><span style="color:#8be9fd;font-style:italic">$TESTHOST</span><span style="color:#f1fa8c">, waiting another 5 seconds.&#34;</span>
sleep <span style="color:#bd93f9">5</span>
<span style="color:#ff79c6">done</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># get network config</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#8be9fd;font-style:italic">IP</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip address show dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep <span style="color:#f1fa8c">&#34;inet &#34;</span> | awk <span style="color:#f1fa8c">&#39;{print $2}&#39;</span><span style="color:#ff79c6">)</span>
<span style="color:#8be9fd;font-style:italic">NETWORK</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep -v default | awk <span style="color:#f1fa8c">&#39;{print $1}&#39;</span><span style="color:#ff79c6">)</span>
<span style="color:#8be9fd;font-style:italic">GATEWAY</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep default | awk <span style="color:#f1fa8c">&#39;{print $3}&#39;</span><span style="color:#ff79c6">)</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># setting up $MACVLN interface</span>
<span style="color:#6272a4"># ------------</span>
ip link add <span style="color:#8be9fd;font-style:italic">$MACVLN</span> link <span style="color:#8be9fd;font-style:italic">$HWLINK</span> <span style="color:#8be9fd;font-style:italic">type</span> macvlan mode bridge
ip address add <span style="color:#8be9fd;font-style:italic">$IP</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
ip link <span style="color:#8be9fd;font-style:italic">set</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> up
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># routing table</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># empty routes</span>
ip route flush dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span>
ip route flush dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
<span style="color:#6272a4"># add routes</span>
ip route add <span style="color:#8be9fd;font-style:italic">$NETWORK</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> metric <span style="color:#bd93f9">0</span>
<span style="color:#6272a4"># add the default gateway</span>
ip route add default via <span style="color:#8be9fd;font-style:italic">$GATEWAY</span></code></pre></div>
</div>
<div class="post-footer">
</div>
</article>
</main>
</body>
</html>