Static Routing
Static routing is a method where routes are manually configured in the routing table by a network administrator, as opposed to being learned dynamically via routing protocols. It is commonly used in simple or controlled environments where routes rarely change.
Static Routing
Static Routing on Interface
Static Routing on VRF
Prerequisites
Hardware:
Switches or routers that support VLANs
(e.g., edgecore, ufispace)
Software:
Network operating systems that support VLAN configuration
(e.g., SONiC-OS-4.4.0-Enterprise_Base, SONiC-OS-4.4.2-Enterprise_Base)
Access:
Administrative or privileged CLI access
Commands:
config static route add:
This command is used to add a static route.
Syntax:
ip route <Destination-IP/mask> <nexthop-IP/interface> <route-preference/nexthop-vrf/tag>
config static route del:
This command is used to delete a static route.
Syntax
Scenario_01: Static routing
Topology:
Procedure:
Step 1: Configure ip addresses for interfaces as per topology
R1:
interafce Ethernet12
ip address 10.1.1.2/24
R2:
interface Ethernet 12
Ip address 10.1.1.4/24
interface Ethernet6
ip address 30.1.1.2/24
R3:
interface Ethernet6
ip address 30.1.1.4/24
Step 2: configure static route
R1:
R3:
Validation:
Check the destination IP address in routing table
R1:
  sonic# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
K>* 0.0.0.0/0 via 172.27.1.1 Management0 0/202 01:31:20 ago
C>* 10.1.1.0/24 Direct Ethernet12 0/0 00:00:43 ago
C>* 172.27.1.0/24 Direct Management0 0/0 01:31:20 ago
S>* 30.1.1.0/24 via 10.1.1.4 Ethernet12 1/0 00:00:04 ago
sonic# ping 30.1.1.4
PING 30.1.1.4 (30.1.1.4) 56(84) bytes of data.
64 bytes from 30.1.1.4: icmp_seq=1 ttl=63 time=0.315 ms
64 bytes from 30.1.1.4: icmp_seq=2 ttl=63 time=0.309 ms
sonic# traceroute 30.1.1.4
traceroute to 30.1.1.4 (30.1.1.4), 30 hops max, 60 byte packets
1 10.1.1.4 (10.1.1.4) 0.352 ms 0.316 ms 0.344 ms
2 30.1.1.4 (30.1.1.4) 0.312 ms 0.444 ms 0.510 ms
R3:
sonic# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
K>* 0.0.0.0/0 via 172.27.1.1 Management0 0/202 01:31:20 ago
C>* 30.1.1.0/24 Direct Ethernet6 0/0 00:00:43 ago
C>* 172.27.1.0/24 Direct Management0 0/0 01:31:20 ago
S>* 10.1.1.0/24 via 30.1.1.2 Ethernet6 1/0 00:00:04 ago
sonic# ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=63 time=0.339 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=63 time=0.348 ms
sonic# traceroute 10.1.1.2
traceroute to 10.1.1.2 (10.1.1.2), 30 hops max, 60 byte packets
1 30.1.1.2 (30.1.1.2) 0.358 ms 0.309 ms 0.285 ms
2 10.1.1.2 (10.1.1.2) 0.440 ms 0.394 ms 0.369 ms
Scenario_02: Static Routing on Interface
Topology:
Procedure:
Step 1: Configure ip addresses for interfaces and loopback as per topology
R1:
interafce Ethernet12
ip address 10.1.1.2/24
interface Loopback 1
ip address 1.1.1.1/32
R2:
interface Ethernet 12
Ip address 10.1.1.4/24
interface Ethernet6
ip address 30.1.1.2/24
R3:
interface Ethernet6
ip address 30.1.1.4/24
interface Loopback 1
Ip address 2.2.2.2/32
Step 2: configure static route
R1:
sonic(config)# ip route 30.1.1.0/24 interface Ethernet 12
R3:
sonic(config)# ip route 10.1.1.0/24 interface Ethernet6
sonic(config)# ip route 1.1.1.1/32 interface Ethernet6
R2:
sonic(config)# ip route 1.1.1.1/32 interface Ethernet12
sonic(config)# ip route 2.2.2.2/32 interface Ethernet6
Validation:
R1
sonic# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
K>* 0.0.0.0/0 via 172.27.1.1 Management0 0/202 01:48:19 ago
C>* 1.1.1.1/32 Direct Loopback1 0/0 00:04:10 ago
C>* 10.1.1.0/24 Direct Ethernet12 0/0 00:17:42 ago
C>* 172.27.1.0/24 Direct Management0 0/0 01:48:19
S>* 30.1.1.0/24 Direct Ethernet12 1/0 00:00:10 ago
S>* 2.2.2.2/32 Direct Ethernet12 1/0 00:00:20 ago
sonic# ping 2.2.2.2
PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data.
64 bytes from 2.2.2.2: icmp_seq=1 ttl=63 time=0.273 ms
64 bytes from 2.2.2.2: icmp_seq=2 ttl=63 time=0.273 ms
R2:
sonic# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
K>* 0.0.0.0/0 via 172.27.1.1 Management0 0/202 01:48:19 ago
C>* 10.1.1.0/24 Direct Ethernet12 0/0 00:04:10 ago
C>* 30.1.1.0/24 Direct Ethernet6 0/0 00:17:42 ago
C>* 172.27.1.0/24 Direct Management0 0/0 01:48:19
S>* 2.2.2.2/32 Direct Ethernet6 1/0 00:00:40 ago
S>* 1.1.1.1/32 Direct Ethernet12 1/0 00:00:38 ago
R3
sonic# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
K>* 0.0.0.0/0 via 172.27.1.1 Management0 0/202 01:48:19 ago
C>* 2.2.2.2/32 Direct Loopback1 0/0 00:04:10 ago
C>* 30.1.1.0/24 Direct Ethernet6 0/0 00:17:42 ago
C>* 172.27.1.0/24 Direct Management0 0/0 01:48:19
S>* 10.1.1.0/24 Direct Ethernet6 1/0 00:00:30 ago
S>* 1.1.1.1/32 Direct Ethernet6 1/0 00:00:50 ago
sonic# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=63 time=0.297 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=63 time=0.304 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=63 time=0.297 ms
Static Routing on VRF
Topology:
Procedure:
Step 1: Configure ip addresses for interfaces and loopback on R1 and R3 as per topology
R1:
Configure ip address to Ethernet12
interafce Ethernet12
ip address 10.1.1.2/24
Configure ip address to loopback1
interface Loopback1
R3:
Configure ip address to Ethernet6
interface Ethernet6
ip address 30.1.1.4/24
Configure ip address to loopback1
interface Loopback1
ip address 2.2.2.2/32
Step 2: Create vrf on R2
ip vrf Vrf_1
Step 3: Bind vrf to interfaces on R2
interface Ethernet6
ip vrf forwarding Vrf_1
interface Ethernet12
Step 4: Configure ip addresses to interface on R2 as per topology
R2:
interface Ethernet12
ip address 10.1.1.4/24
interface Ethernet6
ip address 30.1.1.2/24
Step 5: Configure static route on R1 and R3
R1:
sonic(config)# ip route 30.1.1.0/24 10.1.1.4
sonic(config)# ip route 2.2.2.2/32 10.1.1.4
R3:
sonic(config)# ip route 10.1.1.0/24 30.1.1.2
sonic(config)# ip route 1.1.1.1/32 30.1.1.2
Step 6: Configure static route on vrf in R2
sonic(config)# ip route vrf Vrf_1 2.2.2.2/32 30.1.1.4
Result : ping R1 loopback IP address to R3 Loopback IP address.
R1:
sonic# ping 2.2.2.2
PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data.
64 bytes from 2.2.2.2: icmp_seq=1 ttl=63 time=0.273 ms
64 bytes from 2.2.2.2: icmp_seq=2 ttl=63 time=0.273 ms