Linux网络体验

本文详细介绍了Linux系统中的网卡配置,包括查看、添加和删除IP地址,以及使用NetworkNamespace和vethpair实现网络隔离和通信。通过实例展示了如何在不同namespace间创建和管理虚拟网卡进行通信。
摘要由CSDN通过智能技术生成

1、计算机网络模型

image-20240411143642921

image-20240411145007141

2、Linux中的网卡

2.1、网卡信息
ip link show

image-20240411145336323

ls /sys/class/net
ip a
#状态:UP/DOWN/UNKOWN等
#link/ether:MAC地址
#inet:绑定的IP地址
在Linux中网卡对应的其实就是文件,所以找到对应的网卡文件即可
比如:cat /etc/sysconfig/network-scripts/ifcfg-eth0

image-20240411145407537

image-20240411145444528

当然,这块可以直接修改ifcfg-*文件,但是我们通过命令添加试试

(1)添加IP地址
ip addr add 192.168.0.100/24 dev eth0 
(2)删除IP地址 
ip addr delete 192.168.0.100/24 dev eth0
重启网卡 :service network restart / systemctl restart network
启动/关闭某个网卡 :ifup/ifdown eth0 or ip link set eth0 up/down
2.2 、Network Namespace

[!IMPORTANT]

在linux上,网络的隔离是通过network namespace来管理的,不同的network namespace是互相隔离的

ip netns list:查看当前机器上的network 
network namespace 的管理
ip netns list #查看
ip netns add ns1 #添加 
ip netns delete ns1 #删除
2.3、namespace实战
1、创建一个network namespace
ip netns add ns1
2、查看该namespace下网卡的情况
ip netns exec ns1 ip a
3、启动ns1上的lo网卡
ip netns exec ns1 ifup lo
or
ip netns exec ns1 ip link set lo up
4、此时的state变成了UNKOWN
ip netns exec ns1 ip a
5、再创建一个network namespace
ip netns add ns2
6、此时想让两个ns1与ns2联通起来
veth pair :Virtual Ethernet Pair,是一个成对的端口,可以实现上述功能

image-20240411152309196

7、创建一对link,也就是接下来要通过veth pair连接的link
ip link add veth-ns1 type veth peer name veth-ns2
8、查看link情况
ip link
9、将veth-ns1加入ns1中,将veth-ns2加入ns2中
ip link set veth-ns1 netns ns1
ip link set veth-ns2 netns ns2
10、查看宿主机和ns1,ns2的link情况
ip link
ip netns exec ns1 ip link
ip netns exec ns2 ip link
11、此时veth-ns1和veth-ns2还没有ip地址,显然通信还缺少点条件
ip netns exec ns1 ip addr add 192.168.0.11/24 dev veth-ns1
ip netns exec ns2 ip addr add 192.168.0.12/24 dev veth-ns2
12、再次查看,发现state是DOWN,并且还是没有IP地址
ip netns exec ns1 ip link
ip netns exec ns2 ip link
13、启动veth-ns1和veth-ns2
ip netns exec ns1 ip link set veth-ns1 up
ip netns exec ns2 ip link set veth-ns2 up
14、再次查看,发现state是UP,同时有IP
ip netns exec ns1 ip a
ip netns exec ns2 ip a
15、此时两个network namespace互相ping一下,发现是可以ping通的
ip netns exec ns1 ping 192.168.0.12
ip netns exec ns2 ping 192.168.0.11
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值