Jekyll2021-07-06T14:40:33-07:00https://jv.ag/feed.xmlJakes Site of Random MusingsThis site is here to document some of the things that I, Jake Vis, do on the magical interwebs. I am a Security Architect with big IT, but am also a HAM, a Director with the non-profit Emerald Onion; and have a few LLCs that exist to keep my hobbies afloat. On this site you can expect to read things about.. Networking (ubnt, MT, BGP, cabling... lots of things) TOR HAM things Hyper-V Active Directory Synology Things Plex Things Now I just have to find time to write all that.JakeVisDeploying Microk8s on WSL22021-06-07T00:00:00-07:002021-06-07T00:00:00-07:00https://jv.ag/blog/Deploy-MicroK8s-On-WSL2<p>I am running Windows 11, and have enabled WSL2 with Ubuntu via the standard GUI methods (install Ubuntu from the Microsoft Store). However, all credit goes to https://wsl.dev/wsl2-microk8s/ for the technicals here.</p>
<ul id="markdown-toc">
<li><a href="#install-fonts-and-set-as-default-for-wsl" id="markdown-toc-install-fonts-and-set-as-default-for-wsl">Install Fonts, and set as default for WSL</a></li>
<li><a href="#enable-systemd" id="markdown-toc-enable-systemd">Enable SystemD</a> <ul>
<li><a href="#create-the-wslconf-file" id="markdown-toc-create-the-wslconf-file">Create the wsl.conf file</a></li>
<li><a href="#create-the-systemd-startup-script" id="markdown-toc-create-the-systemd-startup-script">Create the SystemD startup script</a></li>
<li><a href="#optional-set-nopasswd-for-sudo" id="markdown-toc-optional-set-nopasswd-for-sudo">Optional: set NOPASSWD for sudo</a></li>
</ul>
</li>
<li><a href="#setup-forwarding" id="markdown-toc-setup-forwarding">Setup forwarding</a></li>
<li><a href="#restart-wsl" id="markdown-toc-restart-wsl">Restart WSL</a></li>
<li><a href="#install-microk8s" id="markdown-toc-install-microk8s">Install Microk8s</a></li>
</ul>
<h2 id="install-fonts-and-set-as-default-for-wsl">Install Fonts, and set as default for WSL</h2>
<p>Seems stupid.. but yes, for things to look ok and everything to render install these:</p>
<p>https://github.com/microsoft/cascadia-code/releases/download/v1911.21/CascadiaMonoPL.ttf
https://github.com/microsoft/cascadia-code/releases/download/v1911.21/CascadiaPL.ttf</p>
<p>Once downloaded, double click, install.</p>
<p>Right click on your WSL window, select properties, fonts and set it to Cascadia Mono PL.</p>
<p><img src="../../assets/images/2021-06-07-Deploy-MicroK8s-On-WSL2/1.png" alt="Fonts" /></p>
<h2 id="enable-systemd">Enable SystemD</h2>
<p>Install required software (a different user is not required)</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt <span class="nb">install</span> <span class="nt">-yqq</span> fontconfig daemonize
</code></pre></div></div>
<h3 id="create-the-wslconf-file">Create the wsl.conf file</h3>
<p><code class="language-plaintext highlighter-rouge">sudo vi /etc/wsl.conf</code> and add this content. Make sure you change the default user to your username (<code class="language-plaintext highlighter-rouge">jake</code> for me). Also run <code class="language-plaintext highlighter-rouge">id</code> first to make sure <code class="language-plaintext highlighter-rouge">1000</code> is the correct uid/gid. Exit vi with <code class="language-plaintext highlighter-rouge">wq</code></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[automount]
enabled = true
options = "metadata,uid=1000,gid=1000,umask=22,fmask=11,case=off"
mountFsTab = true
crossDistro = true
[network]
generateHosts = false
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
[user]
default = jake
</code></pre></div></div>
<h3 id="create-the-systemd-startup-script">Create the SystemD startup script</h3>
<p><code class="language-plaintext highlighter-rouge">vi /etc/profile.d/00-wsl2-systemd.sh</code>
And add:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
if [ -z "$SYSTEMD_PID" ]; then
sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
fi
if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then
exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
fi
</code></pre></div></div>
<h3 id="optional-set-nopasswd-for-sudo">Optional: set NOPASSWD for sudo</h3>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>vi /etc/sudoers
</code></pre></div></div>
<p>Edit line:
<code class="language-plaintext highlighter-rouge">%sudo ALL=(ALL:ALL) :ALL</code> to read: <code class="language-plaintext highlighter-rouge">%sudo ALL=(ALL:ALL) NOPASSWD:ALL</code> (and exit vi with <code class="language-plaintext highlighter-rouge">!wq</code>)</p>
<h2 id="setup-forwarding">Setup forwarding</h2>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="s1">'net.ipv4.conf.all.route_localnet = 1'</span> | <span class="nb">sudo tee</span> <span class="nt">-a</span> /etc/sysctl.conf
<span class="nb">sudo </span>sysctl <span class="nt">-p</span> /etc/sysctl.conf
</code></pre></div></div>
<h2 id="restart-wsl">Restart WSL</h2>
<p>From an elevated Powershell terminal</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">wsl</span><span class="w"> </span><span class="nt">--shutdown</span><span class="w">
</span></code></pre></div></div>
<p>That should close your linux window..</p>
<h2 id="install-microk8s">Install Microk8s</h2>
<p>You should now be able to execute snap</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>snap list
</code></pre></div></div>
<p>check versions:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>snap info microk8s
</code></pre></div></div>
<p>and install latest:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>snap <span class="nb">install </span>microk8s <span class="nt">--classic</span>
</code></pre></div></div>
<p>After its complete - check its all running:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>microk8s.status
<span class="nb">sudo </span>microk8s.kubectl version
<span class="nb">sudo </span>microk8s.kubectl cluster-info
</code></pre></div></div>JakeVisI am running Windows 11, and have enabled WSL2 with Ubuntu via the standard GUI methods (install Ubuntu from the Microsoft Store). However, all credit goes to https://wsl.dev/wsl2-microk8s/ for the technicals here.Deploying Ranger on Microk8s (on WSL2) with metallb and traefik2021-06-07T00:00:00-07:002021-06-07T00:00:00-07:00https://jv.ag/blog/Deploy-Ranger-On-MicroK8s<p>I am running Windows 11, and have enabled WSL2 with Ubuntu and Microk8s. This will deploy Rancher.</p>
<ul id="markdown-toc">
<li><a href="#install-microk8s-plugins-and-correct-privileges" id="markdown-toc-install-microk8s-plugins-and-correct-privileges">Install microk8s plugins and correct privileges</a></li>
<li><a href="#install-cert-manager" id="markdown-toc-install-cert-manager">Install cert-manager</a></li>
<li><a href="#install-rancher" id="markdown-toc-install-rancher">Install Rancher</a></li>
<li><a href="#expose-rancher" id="markdown-toc-expose-rancher">Expose Rancher</a></li>
</ul>
<h2 id="install-microk8s-plugins-and-correct-privileges">Install microk8s plugins and correct privileges</h2>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>microk8s.enable dns storage traefik helm3 metallb
</code></pre></div></div>
<p>Allow running priviledged Pods (required by Rancher’s <code class="language-plaintext highlighter-rouge">cattle-node-agent</code>)</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>sh <span class="nt">-c</span> <span class="s1">'echo "--allow-privileged=true" /var/snap/microk8s/current/args/kube-apiserver'</span>
</code></pre></div></div>
<p>Restart:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>systemctl restart snap.microk8s.daemon-apiserver.service
</code></pre></div></div>
<p>Check the pods</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>microk8s.kubectl get pods <span class="nt">--all-namespaces</span>
</code></pre></div></div>
<h2 id="install-cert-manager">Install cert-manager</h2>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
microk8s.kubectl apply <span class="nt">--validate</span><span class="o">=</span><span class="nb">false</span> <span class="nt">-f</span> https://github.com/jetstack/cert-manager/releases/download/v1.0.4/cert-manager.crds.yaml
microk8s.kubectl create namespace cert-manager
microk8s.helm3 repo add jetstack https://charts.jetstack.io
microk8s.helm3 repo update
microk8s.helm3 <span class="nb">install</span> <span class="se">\</span>
cert-manager jetstack/cert-manager <span class="se">\</span>
<span class="nt">--namespace</span> cert-manager <span class="se">\</span>
<span class="nt">--version</span> v1.0.4
</code></pre></div></div>
<h2 id="install-rancher">Install Rancher</h2>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>microk8s.kubectl create namespace cattle-system
microk8s.helm3 <span class="nb">install </span>rancher rancher-latest/rancher <span class="se">\</span>
<span class="nt">--namespace</span> cattle-system <span class="se">\</span>
<span class="nt">--set</span> <span class="nb">hostname</span><span class="o">=</span>rancher.woofy.io <span class="se">\</span>
<span class="nt">--set</span> <span class="nv">replicas</span><span class="o">=</span>1
</code></pre></div></div>
<p>Wait for it to be ready:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>microk8s.kubectl <span class="nt">-n</span> cattle-system rollout status deploy/rancher
</code></pre></div></div>
<h2 id="expose-rancher">Expose Rancher</h2>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>microk8s.kubectl expose deployment rancher <span class="nt">-n</span> cattle-system <span class="nt">--type</span><span class="o">=</span>LoadBalancer <span class="nt">--name</span><span class="o">=</span>rancher-lb <span class="nt">--port</span><span class="o">=</span>443
</code></pre></div></div>
<p>Get details:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>microk8s.kubectl get svc <span class="nt">-n</span> cattle-system <span class="nt">-o</span> wide
</code></pre></div></div>JakeVisI am running Windows 11, and have enabled WSL2 with Ubuntu and Microk8s. This will deploy Rancher.GL.Inet APN Change2020-08-18T00:00:00-07:002020-08-18T00:00:00-07:00https://jv.ag/blog/GLinet-APN-Change<p>I use a <a href="https://www.gl-inet.com/products/gl-x750/">GL-X750</a> for internet access while I travel, and recently wanted to try out verizon to see if they have better coverage, and I wanted to do it without a major commitment of funds, so I went and got a Visible SIM. Issue is - it seems that the <a href="https://www.gl-inet.com/products/gl-x750/">GL-X750</a> does not recognize this SIM, or know the APN.</p>
<p>This is quite a simple fix, log into your device and you want to click “Manual Setup” for the Modem.</p>
<p>You then want to select <strong>/dev/ttyUSB3</strong> and enter the appropriate APN. <code class="language-plaintext highlighter-rouge">VSBLINTERNET</code> for me.</p>
<p><img src="../../assets/images/2020-08-18-GLinet-APN-Change/1.PNG" alt="APN Change" /></p>
<p>Once you are done, apply, and you should connect and be good to go.</p>
<p>This worked for me, your milage may vary. Visible is designed for mobile phones, not hotspots/routers.</p>JakeVisI use a GL-X750 for internet access while I travel, and recently wanted to try out verizon to see if they have better coverage, and I wanted to do it without a major commitment of funds, so I went and got a Visible SIM. Issue is - it seems that the GL-X750 does not recognize this SIM, or know the APN.NoBo Murphy Bed Modification2020-08-11T00:00:00-07:002020-08-11T00:00:00-07:00https://jv.ag/blog/NoBo-MurphyBed-Modification<p>In the 2020 No boundaries 19.6 model (and in other models), NoBo does a vertical murphy bed at the end of the trailer. This has the very unfortunate downside that while the bed is put away, it completely blocks the window.</p>
<p><img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE1.jpg" alt="Image1" /></p>
<p>I wanted to see if there was a way to reclaim this by having the bed fold fully flat. In short: it’s possible, but it’s a game of inches and you have to be very careful with your cutting. I would strongly suggest measuring your own trailer setup as you follow along, to make sure the math works out for you too.</p>
<p>We’ll do this in three parts: the mattress, the bed board, and the locks.</p>
<ul id="markdown-toc">
<li><a href="#the-mattress" id="markdown-toc-the-mattress">THE MATTRESS</a></li>
<li><a href="#the-board" id="markdown-toc-the-board">THE BOARD</a></li>
<li><a href="#the-hasps" id="markdown-toc-the-hasps">THE HASPS</a></li>
<li><a href="#all-done" id="markdown-toc-all-done">ALL DONE</a></li>
<li><a href="#making-the-bed" id="markdown-toc-making-the-bed">MAKING THE BED</a></li>
</ul>
<h2 id="the-mattress">THE MATTRESS</h2>
<p>Our goal with the mattress is to get something that can fold completely flat back on top of itself. The bed is a queen, which should mean 60” wide and 80” long. The actual original mattress is only 78” long, and your replacement will have to be the same (or in fact smaller) or it’s unlikely to all fit. The replacement mattress obviously must be a solid foam mattress. Don’t go too tall with it or it won’t all fit. I ended up buying this mattress:</p>
<p><a href="https://www.amazon.com/gp/product/B01N0VNL1N/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">https://www.amazon.com/gp/product/B01N0VNL1N/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1</a></p>
<p>It has a few advantages: it’s only 6” thick (don’t worry, we’re adding toppers later), and its inner core is solid (some of them include that egg carton foam for airflow but I was worried how that would work when cut.) This mattress was 82” long. I had no choice but to cut it back, before cutting it in half.</p>
<p>Your cut point is entirely driven by the hinge point of the board (which CANNOT be moved; if you move it forward even an inch or two, you won’t be able to fold the sofa back up. Maybe the sofa can be moved too, I didn’t try). Double-check on your trailer, but for ours the hinge is exactly 38” from the back wall. This is the worst part, because 38x2 = 76”, which is 2” shorter than the original mattress and 4” shorter than a queen is supposed to be. In the end I cut our mattress back to 76”, then cut it into two halves at 38” each. (Actually looking at it, the top half looks even shorter than this and shorter than the bottom half, but this is what I remember doing.) It cuts pretty well with a decent butcher knife.</p>
<p>As we go along, you need to do everything you can to keep the mattress halves as a unit. If you’re willing to sew a proper sleeve like the original, go nuts. What I did was to remove the mattress from the zippered sleeve, cut it, put it back in the sleeve <em>upside down</em> (so the zipper is on top, the side where it’ll hinge) and then cut all sides of the sleeve except the top. Didn’t have to cut through the zipper, and the more rigid top (formerly bottom) of the sleeve helps keep things behaving. The topper will help, too.</p>
<p>Because the mattress was so thin, I also bought a 2” memory foam topper to add which I did NOT cut in half. I got this one (have to shorten the topper, too):</p>
<p><a href="https://www.amazon.com/gp/product/B07WHDVY6B/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">https://www.amazon.com/gp/product/B07WHDVY6B/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1</a></p>
<p>You do NOT have to cut the topper in half. It will fold just fine. At this point you might be thinking, “Well I’ll just get a thicker 8” mattress and just not cut it all the way through!” Yeah, tried that. When you fold the mattress, it will finish tearing itself in half whether you like it or not. The topper has to be separate.</p>
<p>The last piece of the puzzle, to hold the whole thing together, is <em>another</em> mattress topper that wraps around the mattress with elastic. Perhaps this isn’t needed and the fitted sheet will hold it all together, but this is what works for me. You also may be forced to ditch this if things aren’t quite fitting for you. I used this wrapping topper:</p>
<p><a href="https://www.amazon.com/gp/product/B008URGSWO/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">https://www.amazon.com/gp/product/B008URGSWO/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1</a></p>
<p>So all together, you have the shortened 6” foam mattress cut in half, the shortened 2” thick topper NOT cut in half, and the stretchy topper holding the whole thing together. Flop it over and back a few times, see how well it all goes for you. You cannot have pillows or a comforter on it; those get shoved into the cubby on either side. Try lifting the board to vertical a few times, how close to vertical can you get? Note the board was never vertical, not truly. I wasn’t able to get any better than they did, in that regard.</p>
<p><img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE2.jpg" alt="Image2" /></p>
<h2 id="the-board">THE BOARD</h2>
<p>So now it’s time to cut the board itself. Continuing this game of inches, you have to balance several things at once: the cut needs to be high enough that it’s above the thickness of your folded mattress. And for us, we cut it so that when folded forward on top of the mattress, the end of the board aligns with the back side of the closets on either side of the bed. This is where we installed the latches to hold the whole thing in place (last step, later).</p>
<p>The board is aluminum frame, with the decorative backer board. It is full of styrofoam. Here’s a photo of what it looks inside when cut:</p>
<p><img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE3.jpg" alt="Image3" /></p>
<p>For my measurements, I made the cut precisely 20” up from the hinge edge of the board. Again do your own math; the board will go straight up (or as close to straight up as you’re able to get it with the mattress in the way) and then fold forward. Find the point where folding forward brings an end to the board where it aligns with the back side of those hanging clothes cabinets.</p>
<p>To cut the board I used a circular saw with a clamped guide to keep be straight. Tape on some paper to protect the finish. Once it’s cut you’ll have to hollow out the styrofoam with a flat-bladed screwdriver, because you’re going to want to slip a 3/4” thick board (I think) into the gap to strengthen it. I glued the board in place as well as screwing in from the ends.</p>
<p>Now you probably want to deal with decorative edging. You can put the black plastic edging back on (have to cut that in half too, of course), I ended up getting some aluminum edge pieces from Grainger because I couldn’t find more of the plastic. I’d suggest calling Forest River though, good chance they’ll sell you some.</p>
<p>With the board cut and edged, last thing is installing a hinge. I used a piano hinge for strength and because they’re easier to align in these situations than a series of individual hinges. 4’ piano hinge from Lowe’s. The screws it came with seemed worryingly small so I got one size bigger to make sure it has strength. Remember, when you sit on the edge of the bed you’ll be pulling against this hinge!</p>
<h2 id="the-hasps">THE HASPS</h2>
<p>Finally the hasps. I went with two marine hasps:</p>
<p><a href="https://www.amazon.com/gp/product/B000HA9JZU/ref=ppx_yo_dt_b_asin_title_o08_s01?ie=UTF8&psc=1">https://www.amazon.com/gp/product/B000HA9JZU/ref=ppx_yo_dt_b_asin_title_o08_s01?ie=UTF8&psc=1</a></p>
<p>Hasps are mounted to the back side of the cabinets, with the rotating hasp part (it’s important to get those that rotate so they’re self-locking) on the “top” of the bed backer board. I set them at a height so the board would be level when latched, which means it isn’t actually resting on top of the mattress. But the hasps are strong, there’s been no sign at all of weakness! We travel with it up and latched.</p>
<p><img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE4.jpg" alt="Image4" /></p>
<h2 id="all-done">ALL DONE</h2>
<p>So this is what you have now:</p>
<p><img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE5.jpg" alt="Image5" /></p>
<p>Full access to that window, and a table to boot (wouldn’t climb on it or anything but great for setting down drinks or books).</p>
<h2 id="making-the-bed">MAKING THE BED</h2>
<p>The process to put the bed away is:</p>
<ol>
<li>Shove all pillows, comforters into the side holes out of the way.
<img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE6.jpg" alt="Image6" /></li>
<li>Flop the mattress over on top of itself. Smack it back against the wall.
<img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE2.jpg" alt="Image2" /></li>
<li>Flop the board half over. It’ll rest against the side of the mattress.
<img src="../../assets/images/2020-08-11-NoBo-MurphyBed-Modification/IMAGE7.jpg" alt="Image7" /></li>
<li>Lift the board up to be on top of the mattress. Push it back as far as it’ll go.</li>
<li>Insert the hasp latches and twist to lock. You may have to lift the board slightly to get to level and slip in the hasps.</li>
</ol>
<p>With a tiny bit of practice it takes 15 seconds, maybe. And then enjoy your window!</p>JakeVisIn the 2020 No boundaries 19.6 model (and in other models), NoBo does a vertical murphy bed at the end of the trailer. This has the very unfortunate downside that while the bed is put away, it completely blocks the window.Chromium Video Autoplay2020-08-05T00:00:00-07:002020-08-05T00:00:00-07:00https://jv.ag/blog/Chromium-Video-Autoplay<p>I use <a href="https://dakboard.com">Dakboard</a> for my personal status display at home, and at work. Its a great tool, lots of capability. I run it from a RPI with Chromium running in kiosk mode. Issue is, on newer versions of Chromium videos wont autoplay. So if you patch your RPI (like you should), autoplay breaks… The fix, add this to your command line:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">--autoplay-policy</span><span class="o">=</span>no-user-gesture-required
</code></pre></div></div>
<p>My full command line on autostart for dakboard is:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>chromium-browser <span class="nt">--autoplay-policy</span><span class="o">=</span>no-user-gesture-required <span class="nt">--noerrdialogs</span> <span class="nt">--incognito</span> <span class="nt">--kiosk</span> https://dakboard.com/display/uuid/XXXXXXXXXXXXXXXXXXXXXXXXXXXX
</code></pre></div></div>
<p>And if you are running the dakboard provided image, this is part of the script located at: <code class="language-plaintext highlighter-rouge">/home/pi/startup/chromium.sh</code></p>JakeVisI use Dakboard for my personal status display at home, and at work. Its a great tool, lots of capability. I run it from a RPI with Chromium running in kiosk mode. Issue is, on newer versions of Chromium videos wont autoplay. So if you patch your RPI (like you should), autoplay breaks… The fix, add this to your command line:GL.Inet TTL Change2020-05-10T00:00:00-07:002020-05-10T00:00:00-07:00https://jv.ag/blog/GLinet-TTL-Change<p>I use a <a href="https://www.gl-inet.com/products/gl-x750/">GL-X750</a> for internet access while I travel, and while I have an unlimited dataplan is seems some carriers in the us play funny buggers and “de priortise” data from secondary devices. I have found this work around to function for me…. we are changing the TTL of all connected devices, so its harder for the carrier to work out what device is what.</p>
<ul id="markdown-toc">
<li><a href="#step-1-login-to-your-device" id="markdown-toc-step-1-login-to-your-device">Step 1: Login to your device</a></li>
<li><a href="#step-2-more-settings---advanced" id="markdown-toc-step-2-more-settings---advanced">Step 2: More Settings -> Advanced</a></li>
<li><a href="#step-3-login-again" id="markdown-toc-step-3-login-again">Step 3: Login again</a></li>
<li><a href="#step-4-network---firewall" id="markdown-toc-step-4-network---firewall">Step 4: Network -> Firewall</a></li>
<li><a href="#step-5-custom-rules---add-entry" id="markdown-toc-step-5-custom-rules---add-entry">Step 5: Custom Rules -> Add entry</a></li>
<li><a href="#step-6-restart" id="markdown-toc-step-6-restart">Step 6: Restart</a></li>
</ul>
<h2 id="step-1-login-to-your-device">Step 1: Login to your device</h2>
<p><img src="../../assets/images/2020-05-10-GLinet-TTL-Change/1.png" alt="Login" /></p>
<h2 id="step-2-more-settings---advanced">Step 2: More Settings -> Advanced</h2>
<p><img src="../../assets/images/2020-05-10-GLinet-TTL-Change/2.png" alt="Advanced Settings" /></p>
<h2 id="step-3-login-again">Step 3: Login again</h2>
<p>Yes - the username will be root, the password will be your admin password. Your path will be <code class="language-plaintext highlighter-rouge">https://x.x.x.x/cgi-bin/luci</code></p>
<p><img src="../../assets/images/2020-05-10-GLinet-TTL-Change/3.png" alt="Login 2" /></p>
<h2 id="step-4-network---firewall">Step 4: Network -> Firewall</h2>
<p><img src="../../assets/images/2020-05-10-GLinet-TTL-Change/4.png" alt="Firewall" /></p>
<h2 id="step-5-custom-rules---add-entry">Step 5: Custom Rules -> Add entry</h2>
<p>You want to click on custom rules, then go right to the bottom. Here add this line:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#Change TTL
iptables -t mangle -I POSTROUTING 1 -j TTL --ttl-set 65
</code></pre></div></div>
<p><img src="../../assets/images/2020-05-10-GLinet-TTL-Change/5.png" alt="Firewall" /></p>
<h2 id="step-6-restart">Step 6: Restart</h2>
<p>Once done, click on the restart firewall, and you should be set after a reboot. This worked for me, your milage may vary.</p>JakeVisI use a GL-X750 for internet access while I travel, and while I have an unlimited dataplan is seems some carriers in the us play funny buggers and “de priortise” data from secondary devices. I have found this work around to function for me…. we are changing the TTL of all connected devices, so its harder for the carrier to work out what device is what.Update on-Prem DNS for Hidden Master2020-03-09T00:00:00-07:002020-03-09T00:00:00-07:00https://jv.ag/blog/dnscmd-transfer<p>I use <a href="https://www.cloudns.net">CloudNS</a> for most of my DNS hosting; however I do also have a local DNS server as part of my AD infastructure. THere is a few cases where I want this zone also published publicly.</p>
<p>To support this you need to setup transfers.. and I was sick of entering it all by hand - so these are the commands needed. If your using <a href="https://www.cloudns.net">CloudNS</a> these IPs should work for you, if not, just swap them out.</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">dnscmd</span><span class="w"> </span><span class="nx">ad1</span><span class="w"> </span><span class="nx">/zoneresetsecondaries</span><span class="w"> </span><span class="nx">woofy.io</span><span class="w"> </span><span class="nx">/securelist</span><span class="w"> </span><span class="nx">109.201.133.111</span><span class="w"> </span><span class="nx">209.58.140.85</span><span class="w"> </span><span class="nx">54.36.26.145</span><span class="w"> </span><span class="nx">185.206.180.104</span><span class="w"> </span><span class="nx">185.136.96.66</span><span class="w"> </span><span class="nx">185.136.97.66</span><span class="w"> </span><span class="nx">185.136.98.66</span><span class="w"> </span><span class="nx">185.136.99.66</span><span class="w"> </span><span class="nx">185.206.180.193</span><span class="w"> </span><span class="nx">/notifylist</span><span class="w"> </span><span class="nx">109.201.133.111</span><span class="w"> </span><span class="nx">209.58.140.85</span><span class="w"> </span><span class="nx">54.36.26.145</span><span class="w"> </span><span class="nx">185.206.180.104</span><span class="w"> </span><span class="nx">185.136.96.66</span><span class="w"> </span><span class="nx">185.136.97.66</span><span class="w"> </span><span class="nx">185.136.98.66</span><span class="w"> </span><span class="nx">185.136.99.66</span><span class="w"> </span><span class="nx">185.206.180.193</span><span class="w">
</span></code></pre></div></div>
<p>I also dont have AD crease NS records for me - I do that manully - to stop windows from autocreasing them do this:</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Dnscmd</span><span class="w"> </span><span class="nx">/config</span><span class="w"> </span><span class="nx">/DisableNSRecordsAutoCreation</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></code></pre></div></div>JakeVisI use CloudNS for most of my DNS hosting; however I do also have a local DNS server as part of my AD infastructure. THere is a few cases where I want this zone also published publicly.SUDO With No Password2019-10-02T00:00:00-07:002019-10-02T00:00:00-07:00https://jv.ag/linux/SUDO-With-No-Password<p>I use SSH Keys for everything… and generally dont know my password for a linux machine once built. Hence I need to set sudoers correctly.. This is how I do that (for reference).</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>vi /etc/sudoers
</code></pre></div></div>
<p>Then make the block look like:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Allow members of group sudo to execute any command</span>
%sudo <span class="nv">ALL</span><span class="o">=(</span>ALL:ALL<span class="o">)</span> NOPASSWD:ALL
</code></pre></div></div>
<p>(Your just adding <code class="language-plaintext highlighter-rouge">NOPASSWD:</code> right before the last ALL)</p>JakeVisI use SSH Keys for everything… and generally dont know my password for a linux machine once built. Hence I need to set sudoers correctly.. This is how I do that (for reference).How to Remove Old Profile Pictures2019-10-01T00:00:00-07:002019-10-01T00:00:00-07:00https://jv.ag/windows/How-to-Remove-Old-Profile-Pictures<p>I recently changed my profile photo on Win10.. and wanted to remove all my previous ones. Seems the UI doesnt allow for that. You can find the location of the profile photos here:</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">%</span><span class="n">appdata</span><span class="o">%</span><span class="nx">\Microsoft\Windows\AccountPictures</span><span class="w">
</span></code></pre></div></div>
<p>Go there, and delete the ones you dont want.</p>JakeVisI recently changed my profile photo on Win10.. and wanted to remove all my previous ones. Seems the UI doesnt allow for that. You can find the location of the profile photos here:VLAN Interface on Windows Server2019-09-16T00:00:00-07:002019-09-16T00:00:00-07:00https://jv.ag/windows/VLAN-Interface-on-Windows-Server<p>Every needed to add a seondary interface on a Windows server? This will allow you to do it.
Make sure you have hyper-v installed - and then add the interfaces. This will add an interface with tagged VLAN 1, called ClientNet.</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Add-VMNetworkAdapter</span><span class="w"> </span><span class="nt">-ManagementOS</span><span class="w"> </span><span class="nt">-Name</span><span class="w"> </span><span class="nx">ClientNet</span><span class="w">
</span><span class="n">Set-VMNetworkAdapterVlan</span><span class="w"> </span><span class="nt">-ManagementOS</span><span class="w"> </span><span class="nt">-VMNetworkAdapterName</span><span class="w"> </span><span class="nx">ClientNet</span><span class="w"> </span><span class="nt">-Access</span><span class="w"> </span><span class="nt">-VlanId</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></code></pre></div></div>
<p>If you need to stop your machine from registering this IP in DNS (with AD), machine sure you open up the adaptor, got to TCP/IP settings, advanced, DNS and uncheck the register with DNS.</p>JakeVisEvery needed to add a seondary interface on a Windows server? This will allow you to do it. Make sure you have hyper-v installed - and then add the interfaces. This will add an interface with tagged VLAN 1, called ClientNet.