How Arp works in Linux


To understand how ARP translates IP addresses to MAC addresses, consider the following example. Assume host A has an IP address of and a MAC address of fc:99:47:49:d4:a0, and wants to send a packet to host B with an IP address of Note that the network number is the same for both hosts, so host A is able to send frames directly to host B.

The first time host A attempts to communicate with host B, the destination MAC address is not known. Host A makes an ARP request to the local network. The request is a broadcast with a message like this:

To: everybody (ff:ff:ff:ff:ff:ff). I am looking for the computer who has IP address Signed: MAC address fc:99:47:49:d4:a0.

Host B responds with a response like this:

To: fc:99:47:49:d4:a0. I have IP address Signed: MAC address 54:78:1a:86:00:a5.

Host A then sends Ethernet frames to host B.

You can initiate an ARP request manually using the arping command. For example, to send an ARP request to IP address

$ arping -I eth0
ARPING from eth0
Unicast reply from [54:78:1A:86:1C:0B]  0.670ms
Unicast reply from [54:78:1A:86:1C:0B]  0.722ms
Unicast reply from [54:78:1A:86:1C:0B]  0.723ms
Sent 3 probes (1 broadcast(s))
Received 3 response(s)

To reduce the number of ARP requests, operating systems maintain an ARP cache that contains the mappings of IP addresses to MAC address. On a Linux machine, you can view the contents of the ARP cache by using the arp command:

$ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface                ether   52:54:00:12:35:03   C                     eth0                ether   52:54:00:12:35:02   C                     eth0

How Vlan works in plain language

To understand how VLANs work, let’s consider VLAN applications in a traditional IT environment, where physical hosts are attached to a physical switch, and no virtualization is involved. Imagine a scenario where you want three isolated networks but you only have a single physical switch. The network administrator would choose three VLAN IDs, for example, 10, 11, and 12, and would configure the switch to associate switchports with VLAN IDs. For example, switchport 2 might be associated with VLAN 10, switchport 3 might be associated with VLAN 11, and so forth. When a switchport is configured for a specific VLAN, it is called an access port. The switch is responsible for ensuring that the network traffic is isolated across the VLANs.

Now consider the scenario that all of the switchports in the first switch become occupied, and so the organization buys a second switch and connects it to the first switch to expand the available number of switchports. The second switch is also configured to support VLAN IDs 10, 11, and 12. Now imagine host A connected to switch 1 on a port configured for VLAN ID 10 sends an Ethernet frame intended for host B connected to switch 2 on a port configured for VLAN ID 10. When switch 1 forwards the Ethernet frame to switch 2, it must communicate that the frame is associated with VLAN ID 10.

If two switches are to be connected together, and the switches are configured for VLANs, then the switchports used for cross-connecting the switches must be configured to allow Ethernet frames from any VLAN to be forwarded to the other switch. In addition, the sending switch must tag each Ethernet frame with the VLAN ID so that the receiving switch can ensure that only hosts on the matching VLAN are eligible to receive the frame.

A switchport that is configured to pass frames from all VLANs and tag them with the VLAN IDs is called a trunk port. IEEE 802.1Q is the network standard that describes how VLAN tags are encoded in Ethernet frames when trunking is being used.


The meanings of SR、LRM、LR、ER and ZR

SR、LRM、LR、ER、ZR are terms used in fiber optic communications, stand for the transmission distance of the 10G modules.

SR stands for Short Range, these transceivers support link length of 300m over multi-mode fiber and use 850nm lasers.

LRM means Long Reach Multimode, these transceivers support distance up to 220m over multi-mode fiber and use 1310nm lasers.

LR means Long Reach, these transceivers support distance up to 10km over single mode fiber and use 1310nm lasers.

ER means Extended Reach, the data rate of these transceivers support distance up to 40km over single mode fiber and use 1550nm lasers.

ZR also stands for Extended Reach which can transmit 10G data rate and 80km distance over single mode fiber and use 1550nm lasers.

Problem with SSD corruption on power failure .. flactuation

only enterprise-class SSDs can be relied upon (at all) for safe behavior on power fail.

The enterprise-class SSDs have super-capacitors that store enough power to write all data stored in the RAM within the SSD on power fail, and vendors charge three times as much as they do for consumer class SSDs.

Some vendors do certify their SSDs, but you should check them under real power-fail conditions, like pulling the plug.

It is better to use an Arduino with a relay for experimenting with cutting off power.