Implementing the TCP/IP Model in C from scratch.
- Build a MultiNode Topology Emulation of Routers and Switches
- Implement DataLink Layer (L2 routing), including ARP
- Implement L2 Switching (Mac-based Learning and Forwarding)
- Implement VLAN Based MAC learning and Forwarding
- Implement Network Layer (L3 routing)
+-----------+
| H4 |
| 122.1.1.4 |
+----+------+
|eth0/7 - 10.1.1.3/24
|
|eth0/1
+----+----+ +--------+
+---------+ | | | |
| |10.1.1.2/24 | L2Sw |eth0/2 10.1.1.1/24| H3 |
| H1 +---------------------+ +------------------------+122.1.1.3|
|122.1.1.1|eth0/5 eth0/4| | eth0/6 | |
+ --------+ | | | |
+----+----+ +--------+
|eth0/3
|
|
|
|10.1.1.4/24
|eth0/8
+----++------+
| |
| H2 |
|122.1.1.2 |
| |
+------------+
+-----------+ +--------+ +--------+
| |eth0/0 10.1.1.2/24| | eth0/2 eth0/3| |
| R1 +----------------------| R2 +----------------------------+ R3 |
|122.1.1.1 |10.1.1.1/24 eth0/1|122.1.1.2| 20.1.1.1/24 20.1.1.2/24| 122.1.1.3|
+---+--+----+ | | +- +
|eth0/7 +--------+ +----+---+
| 40.1.1.2/24 | eth0/4
| |30.1.1.1/24
| |
| |
| |
| |
| |
| +-----------+ |
| | | |
| eth0/6 | R4 | |
+--------------------------+ 122.1.1.4 | |
40.1.1.1/24| +-------------------------------+
| |eth0/5
+-----------+30.1.1.2/24
config node R1 route /
122.1.1.2 32 10.1.1.2 eth0/0
122.1.1.3 32 10.1.1.2 eth0/0
122.1.1.4 32 40.1.1.1 eth0/7
cd
conf node R2 route 122.1.1.3 32 20.1.1.2 eth0/2
run node R1 ping 122.1.1.3
+---------+ +----------+
| | | |
| H2 | | H5 |
|122.1.1.2| |122.1.1.5 |
+---+-----+ +-----+----+
|10.1.1.2/24 +10.1.1.5/24
|eth0/3 |eth0/8
| |
|eth0/7,AC,V10 |eth0/9,AC,V10
+-----+----+ +-----+---+
| | | |
+------+---+ | | | | +--------+
| H1 |10.1.1.1/24 | L2SW1 |eth0/5 eth0/7| L2SW2 |eth0/10 eth0/11| H6 |
|122.1.1.1 +-------------------| |+-------------------------------| +-------------+----------+122.1.1.6|
+------+---+ eth0/1 eth0/2| |TR,V10,V11 TR,V10,V11| |AC,V10 10.1.1.6/24| |
AC,V10| | | | +-+------+
+-----+----+ +----+----+
|eth0/6 |eth0/12
|AC,V11 |AC,V11
| |
| |
| |
| |eth0/11
|eth0/4 |10.1.1.4/24
|10.1.1.3/24 +--+-----+
+----+---+| | H4 |
| H3 | | |
|122.1.1.3| |122.1.1.4|
+--------+| +--------+
+---------| +----------+
+--------+ | | |R3 |
|R1 |eth0/1 eth0/2|R2 |eth0/3 eth0/4|122.1.1.3 |
|122.1.1.1+-----------------------------+122.1.1.2|+----------------------------------+ |
| |10.1.1.1/24 10.1.1.2/24| |11.1.1.2/24 11.1.1.1/24| |
+--------+ +-------+-| +----------+
+---------+ +----------+
| |eth0/4 eth0/4| |
| L2SW4 +-------------------------------+ L2SW3 |
| |TR,V10 TR,V10| |
+---+-----+ +-----+----+
|TR,V10 +TR,V10
|eth0/3 |eth0/8
| |
|eth0/7,TR,V10 |eth0/9,TR,V10
+-----+----+ +-----+---+
| | | |
+------+---+ | | | | +--------+
| H1 |10.1.1.1/24 | L2SW1 |eth0/5 eth0/7| L2SW2 |eth0/10 eth0/11| H6 |
|122.1.1.1 +-------------------| |+-------------------------------| +-------------+----------+122.1.1.6|
+------+---+ eth0/1 eth0/2| |TR,V10 TR,V10| |AC,V10 10.1.1.6/24| |
AC,V10| | | | +-+------+
+-----+----+ +----+----+