• veth 设备对实验


    首先创建2个netns

    [root@zabbix-server ~]# ip netns add  netns1
    [root@zabbix-server ~]# ip netns add  netns2

    创建1对veth 

    [root@zabbix-server ~]# ip link add veth1 type veth  peer name veth2

    使用 ip link show 可以看到2个veth

    [root@zabbix-server ~]# ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether 00:50:56:be:11:34 brd ff:ff:ff:ff:ff:ff
    4: veth2@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
        link/ether 02:8d:80:1d:9e:63 brd ff:ff:ff:ff:ff:ff
    5: veth1@veth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
        link/ether ce:6a:a5:1d:8c:6c brd ff:ff:ff:ff:ff:ff

    我们首先核实一下2个网络命名空间里面的网络 里面都只有一个lo回环设备

    [root@zabbix-server ~]# ip netns exec netns1 bash
    [root@zabbix-server ~]# ip a
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    [root@zabbix-server ~]# exit
    exit
    [root@zabbix-server ~]# ip netns exec netns2 bash
    [root@zabbix-server ~]# ip a
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    [root@zabbix-server ~]# exit
    exit

    我们现在把veth一头分给netns1  使用命令 ip link show 查看只剩下一个了

    [root@zabbix-server ~]# ip link set veth1 netns netns1
    [root@zabbix-server ~]# ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether 00:50:56:be:11:34 brd ff:ff:ff:ff:ff:ff
    12: veth2@if13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
        link/ether de:05:80:c6:9b:6b brd ff:ff:ff:ff:ff:ff link-netnsid 0

    我们把veth2 分给 netns2  使用命令 ip link show  在宿主机上已经看不到veth

    [root@zabbix-server ~]# ip link set veth2 netns netns2
    [root@zabbix-server ~]# ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether 00:50:56:be:11:34 brd ff:ff:ff:ff:ff:ff

    我们现在登录2个netns去查看一下,都多了一个veth  

    [root@zabbix-server ~]# ip netns exec netns1 bash
    [root@zabbix-server ~]# ip a
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    13: veth1@if12: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether fe:5f:58:a3:43:67 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    [root@zabbix-server ~]# ifconfig
    [root@zabbix-server ~]# exit
    exit
    [root@zabbix-server ~]# ip netns exec netns2 bash
    [root@zabbix-server ~]# ip a
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    12: veth2@if13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether de:05:80:c6:9b:6b brd ff:ff:ff:ff:ff:ff link-netnsid 0
    [root@zabbix-server ~]# exit
    exit

    我们现在分别给2个netns配置上ip 

    [root@zabbix-server ~]# ip netns exec netns1 ip addr add 10.1.1.1/24 dev veth1
    [root@zabbix-server ~]# ip netns exec netns2 ip addr add 10.1.1.2/24 dev veth2

    启动设备

    [root@zabbix-server ~]# ip netns exec netns1 ip link set dev veth1 up
    [root@zabbix-server ~]# ip netns exec netns2 ip link set dev veth2 up

    2个网络命名空间已经可以正常通讯

    [root@zabbix-server ~]# ip netns exec netns2 ping 10.1.1.1
    PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
    64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.060 ms
    64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.050 ms
    64 bytes from 10.1.1.1: icmp_seq=3 ttl=64 time=0.045 ms
    ^C
    --- 10.1.1.1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 1999ms
    rtt min/avg/max/mdev = 0.045/0.051/0.060/0.010 ms
    [root@zabbix-server ~]# ip netns exec netns1 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=64 time=0.037 ms
    64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.052 ms
    64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=0.042 ms
    ^C
    --- 10.1.1.2 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 1999ms
    rtt min/avg/max/mdev = 0.037/0.043/0.052/0.009 ms
    [root@zabbix-server ~]# ip netns exec netns1 bash
    [root@zabbix-server ~]# ip a
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    13: veth1@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether fe:5f:58:a3:43:67 brd ff:ff:ff:ff:ff:ff link-netnsid 1
        inet 10.1.1.1/24 scope global veth1
           valid_lft forever preferred_lft forever
        inet6 fe80::fc5f:58ff:fea3:4367/64 scope link 
           valid_lft forever preferred_lft forever
    [root@zabbix-server ~]# ifconfig
    veth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.1.1.1  netmask 255.255.255.0  broadcast 0.0.0.0
            inet6 fe80::fc5f:58ff:fea3:4367  prefixlen 64  scopeid 0x20<link>
            ether fe:5f:58:a3:43:67  txqueuelen 1000  (Ethernet)
            RX packets 16  bytes 1328 (1.2 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 16  bytes 1328 (1.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@zabbix-server ~]# exit
    exit
    [root@zabbix-server ~]# ip netns exec netns2 bash
    [root@zabbix-server ~]# ip a
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    12: veth2@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether de:05:80:c6:9b:6b brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 10.1.1.2/24 scope global veth2
           valid_lft forever preferred_lft forever
        inet6 fe80::dc05:80ff:fec6:9b6b/64 scope link 
           valid_lft forever preferred_lft forever
    [root@zabbix-server ~]# ifconfig
    veth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.1.1.2  netmask 255.255.255.0  broadcast 0.0.0.0
            inet6 fe80::dc05:80ff:fec6:9b6b  prefixlen 64  scopeid 0x20<link>
            ether de:05:80:c6:9b:6b  txqueuelen 1000  (Ethernet)
            RX packets 16  bytes 1328 (1.2 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 16  bytes 1328 (1.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@zabbix-server ~]# exit
    exit
    [root@zabbix-server ~]# 
  • 相关阅读:
    jquery组件WebUploader文件上传用法详解
    asp.net Forms身份验证详解
    FormsAuthentication使用指南
    对于新手用c#中的delegate(委托)和event(事件)
    Union All/Union/Intersect操作
    DALFactory出现"未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件”的解决方案 .
    C#多线程编程实例 线程与窗体交互
    FormsAuthentication使用指南
    asp.net Forms身份验证详解
    chrome浏览器调试JS代码
  • 原文地址:https://www.cnblogs.com/caonw/p/13279755.html
Copyright © 2020-2023  润新知