JUNOS software supports basic Remote Procedure Call Application Layer Gateway (RPC ALG) services. RPC is a protocol that allows an application running in one address space to access the resources of applications running in another address space as if the resources were local to the first address space. The RPC ALG is responsible for RPC packet processing.
Before You Begin |
---|
For background information, read |
The RPC ALG in JUNOS software supports the following services and features:
Use the RPC ALG if you need RPC-based applications, such as NFS or Microsoft Outlook from the J-series device. The RPC ALG functionality is enabled by default.
The RPC ALG can be applied by using:
Use the default application set:
In the policy, use the predefined application set for Control and Data Connections.
Use the predefined control via junos-sun-rpc:
Use the customized application:
This topic covers:
Sun Microsystems Remote Procedure Call—also known as Open Network Computing Remote Procedure Call (ONC RPC)—provides a way for a program running on one host to call procedures in a program running on another host. Because of the large number of RPC services and the need to broadcast, the transport address of an RPC service is dynamically negotiated based on the service's program number and version number. Several binding protocols are defined for mapping the RPC program number and version number to a transport address.
J-series devices running JUNOS software support the Sun RPC as a predefined service and allow and deny traffic based on a security policy you configure. The Application Layer Gateway (ALG) provides the functionality for J-series devices to handle the dynamic transport address negotiation mechanism of the Sun RPC and to ensure program number-based security policy enforcement. You can define a security policy to permit or deny all RPC requests, or to permit or deny by specific program number. The ALG also supports route and NAT mode for incoming and outgoing requests. The following SUN RPC topics are addressed in this section:
When an application or a PC client calls a remote service, it needs to find the transport address of the service. In the case of TCP/UDP, the address is a port number. A typical procedure for this case is as follows:
A client also can use the CALLIT message to call the remote service directly, without determining the port number of the service. In this case, the procedure is as follows:
Table 86 lists predefined Sun RPC services.
Table 86: Predefined Sun RPC Services
junos-sun-rpc-portmap-tcp |
junos-sun-rpc-portmap |
junos-sun-rpc-portmap-udp |
|
All Sun RPC applications can be customized by using a predefined application set. For example, an application can be customized to open the control session only and not allow any data sessions:
application-set junos-sun-rpc {
application junos-sun-rpc-tcp;
application junos-sun-rpc-udp;
}
In the following example, the predefined application set allows data sessions only. It will not work without the control session.
application-set junos-sun-rpc-portmap {
application junos-sun-rpc-portmap-tcp;
application junos-sun-rpc-portmap-udp;
}
To customize all Sun RPC applications with predefined application sets, use both application sets in the policy:
application-set [junos-sun-rpc junos-sun-rpc-portmap]
![]() |
Note: Microsoft Remote Procedure Call (MS RPC) applications are customized in the same way as SUN RPC applications. |
Microsoft Remote Procedure Call (MS RPC) is the Microsoft implementation of the Distributed Computing Environment (DCE) RPC. Like the Sun RPC (see Sun RPC ALG), MS RPC provides a way for a program running on one host to call procedures in a program running on another host. Because of the large number of RPC services and the need to broadcast, the transport address of an RPC service is dynamically negotiated based on the service program's Universal Unique IDentifier (UUID). The specific UUID is mapped to a transport address.
J-series device running JUNOS software support MS RPC as a predefined service and allow and deny traffic based on a policy you configure. The ALG provides the functionality for J-series Services devices to handle the dynamic transport address negotiation mechanism of the MS RPC, and to ensure UUID-based security policy enforcement. You can define a security policy to permit or deny all RPC requests, or to permit or deny by specific UUID number. The ALG also supports route and NAT mode for incoming and outgoing requests.
The corresponding TCP/UDP ports are dynamic. To permit them, you use a set applications application-name term term-name uuid hex-number statement for each number. The ALG maps the program numbers into dynamically negotiated TCP/UDP ports based on these four UUIDs and permits or denies the service based on a policy you configure.
Table 87 lists predefined Microsoft services, parameters associated with each service, and a brief description of each service. Parameters include Universal Unique Identifiers (UUIDs) and TCP/UDP source and destination ports. A UUID is a 128-bit unique number generated from a hardware address, a timestamp, and seed values.
Table 87: Predefined Microsoft RPC Services
junos-ms-rpc-portmap-tcp |
junos-ms-rpc-portmap |
junos-ms-rpc-portmap-udp |
|