From the course: Juniper Networks Certified Associate JNCIA-Junos (JN0-105) Cert Prep

RE and PFE

- [Instructor] Let's now talk about the functions of the routing engine and the packet forwarding engine. The routing engine is the brain of the device and it is responsible for performing important functions like routing protocol updates and system management. It is based on x86 or PowerPC architecture, depending on the platform that's running Junos. It is responsible for maintaining routing tables, bridging table and the primary forwarding table. So it is the job of the routing engine to construct the routing table. The routing table is a table of all the known routes. This table is used to build what is known as the forwarding table and the forwarding table only contains the active routes. So the routing engine starts by collecting all the known routes and puts them into a table called as the routing table. This is then used to create another table called forwarding table, which only contains the active routes. And a copy of this is sent to the packet forwarding engine. What is the advantage of doing this? We'll talk about it shortly. The routing engine is also responsible for controlling the interfaces, chassis components, system management, and access to the device. This means it is the routing engine that's responsible for providing the command line interface and the J-Web graphical user interface. These are the two ways to connect to a Junos device. You can connect via the command line interface, or you can connect via the graphical user interface, which is known as the J-Web. And it is the responsibility of the routing engine to provide these interfaces. The routing table also creates and maintains one or more routing tables. This is used to create a forwarding table that contains the active routes. Let's now talk about the packet forwarding engine. The packet forwarding engine usually runs on a separate hardware. So there is a hardware level separation between the control plane and the forwarding plane. This makes the system fault-tolerant, so even if the routing engine fails, the packet forwarding engine can continue to operate because it is on a separate hardware. It is responsible for forwarding transit traffic through the device. So any traffic that enters the Junos device through one of the interfaces gets processed by the packet forwarding engine and it's sent out another interface. That's what is known as the transit traffic. And it is the responsibility of the packet forwarding engine to manage transit traffic. The packet forwarding engine receives a copy of the forwarding table from the routing engine using an internal link. And we can see that in the diagram here. The routing engine creates the routing table, which is then used to populate the forwarding table. The forwarding table is then copied over to the packet forwarding engine using an internal link that connects the routing engine and the packet forwarding engine. The updates that are sent on this internal link are high priority updates and they are incremental in nature. That means only the changes are sent over. The entire copy is not sent each time. Having a copy of the forwarding table on the packet forwarding engine has its own advantages. When traffic comes in through one of the interfaces and when it needs to be forwarded out another interface, the packet forwarding engine does not need to consult the routing engine because it already has a copy of the forwarding table. Remember, the routing engine is the brain of the device. It's the most important part of the device. And increasing load on the routing engine is not a good idea. So, the packet forwarding engine keeps a copy of the forwarding table, so it can make its own decisions. When packet comes in, it checks the forwarding table. If there's a route available, the packet is sent out without having to consult the routing engine. Also, having a separation like this where the packet forwarding engine is running on a separate hardware results in fault-tolerance. Even if the routing engine becomes unavailable, the packet forwarding engine can continue to operate because it has its own copy of the forwarding table. Moving on, the packet forwarding engine usually runs on separate hardware. We spoke about this. And in some cases, it uses Application Specific Integrated Circuits, also known as ASICs, for increased performance. If you're wondering what an ASIC is, it's just a specialized hardware used to improve performance. So on some Junos devices that need high performance, the packet forwarding engine may be hosted using specialized hardware known as ASICs. The packet forwarding engine is also responsible for implementing services, such as rate limiting, stateless firewall filters, and Class of Service. I've opened up a document here, which is called as the Junos OS Architecture Overview. And scrolling down on this document, we can see a beautiful picture that shows the differences between the routing engine and the packet forwarding engine. As you can see here, the routing engine is responsible for key functions like maintaining routing tables, controlling the routing protocol process, interface process, providing the user interface, like the command-line interface and the J-Web (indistinct). And also to create a copy of the forwarding table. The packet forwarding engine is usually hosted on a separate hardware. It has its own copy of the forwarding table and sometimes may also use ASICs.

Contents