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 192.0.2.5/24 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 192.0.2.7. 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 192.0.2.7. 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 192.0.2.7. 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 192.0.2.132:

$ arping -I eth0 192.0.2.132
ARPING 192.0.2.132 from 192.0.2.131 eth0
Unicast reply from 192.0.2.132 [54:78:1A:86:1C:0B]  0.670ms
Unicast reply from 192.0.2.132 [54:78:1A:86:1C:0B]  0.722ms
Unicast reply from 192.0.2.132 [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
192.0.2.3                ether   52:54:00:12:35:03   C                     eth0
192.0.2.2                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.

How to make Ubuntu as router for external traffic

Due to limitations in public IPs you cant give all your hosts the publicly route-able IPs. but on otherside you want to install packages etc on those private host . One way is to enable a Public IP with a Host (we called it as gateway host) which has two network card , One network card has public ip and other with private one.

Now you want to route all hosts in private network to route their public traffic via that (gateway) host .

On Gateway host do this:

## eth1 in above where you have public ip can be any interface

iptables -A FORWARD -i eth2 -j ACCEPT

## eth2 in above where you have private ip can be any interface

On Private hosts:

## 192.168.1.22 is our gateway’s private ip you can check with yours what is the private ip you have on gateway

## by running ifconfig eth2 ## replace eth2 with interface you have private ip on gateway