<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Junos - Category - Fryguy's Blog</title><link>https://hugo.fryguy.net/categories/junos/</link><description>Junos - Category - Fryguy's Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Mon, 13 Apr 2026 01:08:29 +0000</lastBuildDate><atom:link href="https://hugo.fryguy.net/categories/junos/" rel="self" type="application/rss+xml"/><item><title>Juniper Port Checker – Validate Port Speed Mappings Before You Deploy</title><link>https://hugo.fryguy.net/2026/04/12/juniper-port-checker-qfx5120/</link><pubDate>Mon, 13 Apr 2026 01:08:29 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2026/04/12/juniper-port-checker-qfx5120/</guid><description><![CDATA[<div class="wp-block-image">

</div>
<p>If you work with Juniper hardware and have never used the <a href="https://apps.juniper.net/port-checker/" target="_blank" rel="noopener">Juniper Port Checker</a>, you are missing out on a really useful tool. It is part of the Juniper Pathfinder suite and it gives you a visual representation of the front panel of a device and lets you configure port speeds to validate that your planned configuration is actually supported by the hardware. No more digging through data sheets trying to figure out what happens to adjacent ports when you change a speed.</p>]]></description></item><item><title>EX4400 VC Ports Conversation</title><link>https://hugo.fryguy.net/2022/09/23/ex4400-vc-ports-conversation/</link><pubDate>Fri, 23 Sep 2022 12:47:41 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2022/09/23/ex4400-vc-ports-conversation/</guid><description><![CDATA[ 
<p>This week I am in the <a href="https://learningportal.juniper.net/juniper/user_activity_info.aspx?id=12970" target="_blank" rel="noreferrer noopener">Juniper Campus Networks with Mist AI ( JCMA )</a> course and going over the labs. I ran into a problem where the EX4400-24T et-0/1/0 and et-1/1/1 ports did not appear in in the Junos configuration nor the Mist portal. The configuration was in the portal via the templates, but the ports did not exist on the switch.</p>
<p>I have seen similar conditions as these ports can also be used for the Virtual Chasis (VC) ports. What I did find interesting is that the normal way I have always changed VC-Ports on Junos did not work.</p>
<p>First, let us look at the vc-ports on this EX4400-24T:</p>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-text">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">{master:0}
</span></span><span class="line"><span class="cl">lab@ex2&gt; show virtual-chassis vc-port 
</span></span><span class="line"><span class="cl">fpc0:
</span></span><span class="line"><span class="cl">--------------------------------------------------------------------------
</span></span><span class="line"><span class="cl">Interface   Type              Trunk  Status       Speed        Neighbor
</span></span><span class="line"><span class="cl">or                             ID                 (mbps)       ID  Interface
</span></span><span class="line"><span class="cl">PIC / Port
</span></span><span class="line"><span class="cl">1/0         Configured         -1    Down         50000
</span></span><span class="line"><span class="cl">1/1         Configured         -1    Down         50000
</span></span><span class="line"><span class="cl">1/2         Configured         -1    Down         50000
</span></span><span class="line"><span class="cl">1/3         Configured         -1    Down         50000</span></span></code></pre></div></div>
<p>As you can see, we have 4 VC-Ports configured on Pic 1 – Ports 0-3.</p>]]></description></item><item><title>Juniper SRX DNS Proxy Configuration (Split-DNS)</title><link>https://hugo.fryguy.net/2020/07/07/juniper-srx-dns-proxy-configuration-split-dns/</link><pubDate>Tue, 07 Jul 2020 10:00:00 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2020/07/07/juniper-srx-dns-proxy-configuration-split-dns/</guid><description><![CDATA[<div class="wp-block-image">
  
</div>
<p>This post is intended to show you how to configure a Juniper SRX to be a DNS proxy for your network. This will allow you to forward DNS queries to both a private DNS server for your local domain and a public DNS server for all other requests.</p>
<p>Using the SRX as a DNS proxy has a few advantages for a network administrator. The first being that if you need to ever change an upstream DNS server pointer, you just need to update the SRX and not all the clients. The second is that if you want to split domain name DNS queries among different DNS servers, you can do that. This is good if you have a .local domain server locally or over a VPN. This will allow you to keep that query local, yet all other requests will go to a public DNS server.</p>
<p>The topology for this lab is as follows:</p>
<ul class="wp-block-list">
<li>
The internal network in this topology is my Home network that is providing access to the Internet.
</li>
<li>
The SRX is configured with DHCP on the UNTRUST side to obtain an IP from my home network.
</li>
<li>
SRX is configured with a static IP of 192.168.100.1/24 on the TRUST side.
</li>
<li>
SRX is acting as DHCP server for 192.168.100.0/24 and serving DNS server IP of 192.168.100.1.
</li>
<li>
The SRX is NATing all traffic from TRUST to the UNTRUST interface.
</li>
<li>
Linux host is a simple Ubuntu 16.04 desktop default in EVE-NG.
</li>
</ul>
<figure class="wp-block-image size-large">
<p> </figure></p>
<p>You can find a copy of the EVE-NG topology as well as the SRX start and final configs in my github repository: <a href="https://github.com/FryguyPA/Junos-SRX-DNS-Proxy" target="_blank" rel="noopener noreffer ">https://</a><a href="https://github.com/FryguyPA/Junos-SRX-DNS-Proxy" target="_blank" rel="noreferrer noopener">github</a><a href="https://github.com/FryguyPA/Junos-SRX-DNS-Proxy" target="_blank" rel="noreferrer noopener" title="Fryguy's GIthub repository">.</a><a href="https://github.com/FryguyPA/Junos-SRX-DNS-Proxy" target="_blank" rel="noopener noreffer ">com/FryguyPA/Junos-SRX-DNS-Proxy</a></p>]]></description></item><item><title>Junos VRRP with Tracking</title><link>https://hugo.fryguy.net/2019/11/14/junos-vrrp-with-tracking/</link><pubDate>Thu, 14 Nov 2019 08:41:11 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2019/11/14/junos-vrrp-with-tracking/</guid><description><![CDATA[<p style="text-align:center" class="has-text-color has-background has-huge-font-size has-very-light-gray-color has-vivid-cyan-blue-background-color">
  <strong>VRRP</strong>
</p>
<p>Virtual Router Redundancy Protocol (VRRP) is commonly deployed on corporate networks in order to maintain default gateway redundancy for hosts. In this post, I will show you the commands to configure VRRP with route-tracking and interface-tracking.</p>
<p>For this lab, I will be using EVE-NG with four vSRX running 12.1X47-D15.4 code in packet-mode. I am using this version as it has the same features as newer codes, yet is less impactful on my lab hardware. The diagram for this lab is below, you can find the starting and ending configs at my <a rel="noreferrer noopener" aria-label="github repository (opens in a new tab)" href="https://github.com/FryguyPA/BLOG-2019-VRRP" target="_blank">GitHub repository</a>. The root password for the devices is juniper123. BGP has been configured between INET and WAN1/WAN2 and is passing a default (0/0) route.</p>
<div class="wp-block-image">

</div>
<p>First up we will configure our VRRP on WAN1 and WAN2 using the virtual IP of 192.168.255.1. To configure VRRP there are a few things we need to remember in Junos.</p>
<ul class="wp-block-list">
<li>
The VRRP group on both routers has to match
</li>
<li>
In order to ping, you need to configure <em>accept-data</em>
</li>
<li>
VRRP is configured under the interface IP address
</li>
<li>
Higher priority is the preferred master
</li>
<li>
Preempt is required if you want to allow for the backup to take over
</li>
</ul>]]></description></item><item><title>Junos – Loading Configs – 5 of 5 – Set</title><link>https://hugo.fryguy.net/2019/11/11/junos-loading-configs-5-of-5-set/</link><pubDate>Mon, 11 Nov 2019 08:42:11 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2019/11/11/junos-loading-configs-5-of-5-set/</guid><description><![CDATA[<div class="wp-block-image">

</div>
<p>This is the fifth post in the <em>Loading Configs</em> series. In this post, we will cover the <em>load set</em> command. This allows you to enter commands into the buffer just like you would on the CLI. All these commands are either <em>set</em> or <em>delete</em> based commands. Yes, you can use this to delete as well.</p>
<p>Here is a quick refresher on what we are doing…</p>]]></description></item><item><title>Junos – Loading configs – 4 of 5 – Update</title><link>https://hugo.fryguy.net/2019/11/07/junos-loading-configs-4-of-5-update/</link><pubDate>Thu, 07 Nov 2019 08:30:30 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2019/11/07/junos-loading-configs-4-of-5-update/</guid><description><![CDATA[<div class="wp-block-image">

</div>
<p>This is the fourth post in the <em>Loading Configs</em> series. In this post, we will cover the <em>load update</em> command. We touched on this in post one when we discussed <em>override</em>. This command, <em>update</em>, is less destructive as it will update the configuration, yet the Junos device will only evaluate the differences between the running and what you have staged.</p>
<p>Here is a quick refresher on what we are doing…</p>
<p>For this lab series, we will use a simple topology to demonstrate the different ways to load configs. We have our SRX configured with TRUST and UNTRUST zones, a connection to the Internet, and a Windows 7 PC that has a browser installed. We will focus on making changes to our security policies.</p>
<div class="wp-block-image">

</div>]]></description></item><item><title>Junos – Loading Configs – 3 of 5 – Replace</title><link>https://hugo.fryguy.net/2019/11/04/junos-loading-configs-3-of-4-replace/</link><pubDate>Mon, 04 Nov 2019 08:19:28 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2019/11/04/junos-loading-configs-3-of-4-replace/</guid><description><![CDATA[<div class="wp-block-image">

</div>
<p>This is the third post in the <em>Loading Configs</em> series. In this post, we will cover the <em>load replace</em> command. This command shines when you want to replace parts of a configuration without having to delete a bunch of stuff. It is really powerful in security policies and firewall filters, places where you tend to want to replace a lot of configs quickly.</p>]]></description></item><item><title>Junos – Loading Configs – 2 of 5 – Patch</title><link>https://hugo.fryguy.net/2019/10/31/junos-loading-configs-2-of-4-patch/</link><pubDate>Thu, 31 Oct 2019 08:15:16 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2019/10/31/junos-loading-configs-2-of-4-patch/</guid><description><![CDATA[<div class="wp-block-image">

</div>
<p>This is the second post in the <em>Loading Configs</em> series. In this post, we will cover the <em>load patch</em> command. The beauty of the <em>load patch</em> command is that you can load the config on one device, issue a <em>show | compare</em>, and take that output and patch another device. This is also useful when you want to test your commands for a change, roll it back, and then re-apply it later.</p>
<p>Here is a quick refresher on what we are doing…</p>
<p>For this lab series, we will use a simple topology to demonstrate the different ways to load configs. We have our SRX configured with TRUST and UNTRUST zones, a connection to the Internet, and a Windows 7 PC that has a browser installed. We will focus on making changes to our security policies.</p>
<div class="wp-block-image">

</div>]]></description></item><item><title>Junos – Loading Configs – 1 of 5 – Merge</title><link>https://hugo.fryguy.net/2019/10/28/junos-loading-configs-1-of-4/</link><pubDate>Mon, 28 Oct 2019 08:35:46 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2019/10/28/junos-loading-configs-1-of-4/</guid><description><![CDATA[<div class="wp-block-image">

</div>
<p>In this post series, we will cover one of the wonderful things with Junos, which is loading configurations to the devices. Compared to other vendors where you paste into a live configuration, Junus uses a candidate configuration for all changes. A great benefit of this is that there are a few ways to load configurations onto the devices.</p>
<p>The ways we can load the configurations are shown below.</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-text">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">  factory-default      Override existing configuration with factory default
</span></span><span class="line"><span class="cl">  merge                Merge contents with existing configuration
</span></span><span class="line"><span class="cl">  override             Override existing configuration
</span></span><span class="line"><span class="cl">  patch                Load patch file into configuration
</span></span><span class="line"><span class="cl">  replace              Replace configuration data
</span></span><span class="line"><span class="cl">  set                  Execute set of commands on existing configuration
</span></span><span class="line"><span class="cl">  update               Update existing configuration</span></span></code></pre></div></div>
<p>I want to briefly touch on a few of the commands.</p>
<p>The first command, <em>factory-default</em>, is a way to soft reset the configuration back to the factory configuration without losing any of the locally stored data. The alternate way is factory default the configuration is to use the <em>request system zeroize</em> command. The zerioze command will rest the device back to the factory configuration and remove all locally stored user data (logs, files, etc).</p>
<p>The second command, <em>override,</em> will discard the current configuration and replace it with what you load into the device. When doing this the Junos device will re-evaluate the entire configuration you have entered. By re-evaluating the config, it will treat everything like it is new and you will have an impact to the device. If you want to just update the config and not re-evaluate everything, then you would use <em>load update,</em> which we will cover in post 4.</p>
<p>For this post, we will cover <em>merge, patch, replace, update,</em> and <em>set.</em></p>]]></description></item><item><title>Junos Policy Based VPNs – Part 4 of 4 – Recap</title><link>https://hugo.fryguy.net/2019/10/24/junos-policy-based-vpns-part-4-of-4/</link><pubDate>Thu, 24 Oct 2019 08:56:57 +0000</pubDate><author>Fryguy</author><guid>https://hugo.fryguy.net/2019/10/24/junos-policy-based-vpns-part-4-of-4/</guid><description><![CDATA[<div class="wp-block-image">

</div>
<p>I figured I would take a moment and recap theses past few posts and talk about the different methods now that we understand what they are. I also want to talk about some of the things to consider when choosing your approach.</p>
<p><strong>Policy-Based with Security Policies</strong></p>
<p>In our first post, we covered using security policies to establish and pass the traffic over the tunnel. There are a few challenges with this type of configuration is that you need to be keenly aware of.</p>
<p>You need to keep in mind that the order of security policies is critical. If you have a policy that permits or denies this traffic before the policy that says to tunnel the traffic, you will never send the traffic over the tunnel. Also, new security policies are always placed at the end of the current policies, so when you add a new VPN, you will need to remember to insert the new policy in the proper location.</p>]]></description></item></channel></rss>