首页 > 系统相关 >Linux 虚拟网络 host gw

Linux 虚拟网络 host gw

时间:2024-06-15 17:22:35浏览次数:13  
标签:gw 10.1 forever set 00 lft host ff Linux

host gw

把 host 作为网关,通过网关进行数据包传输。

使用 Containerlab 模拟网络

a | 拓扑

拓扑

b | 网络拓扑文件

# host-gw.clab.yml
name: host-gw
topology:
  nodes:
    gw1:
      kind: linux
      image: vyos/vyos:1.2.8
      cmd: /sbin/init
      binds:
        - /lib/modules:/lib/modules
        - ./startup-conf/gw1.cfg:/opt/vyatta/etc/config/config.boot

    gw2:
      kind: linux
      image: vyos/vyos:1.2.8
      cmd: /sbin/init
      binds:
        - /lib/modules:/lib/modules
        - ./startup-conf/gw2.cfg:/opt/vyatta/etc/config/config.boot

    server1:
      kind: linux
      image: harbor.dayuan1997.com/devops/nettool:0.9
      exec:
      - ip addr add 10.1.5.10/24 dev net0
      - ip route replace default via 10.1.5.1

    server2:
      kind: linux
      image: harbor.dayuan1997.com/devops/nettool:0.9
      exec:
      - ip addr add 10.1.8.10/24 dev net0
      - ip route replace default via 10.1.8.1


  links:
    - endpoints: ["gw1:eth1", "server1:net0"]
    - endpoints: ["gw2:eth1", "server2:net0"]
    - endpoints: ["gw1:eth2", "gw2:eth2"]

c | VyOS 配置文件

  • gw1.cfg
配置文件
# ./startup-conf/gw1.cfg
interfaces {
    ethernet eth1 {
        address 10.1.5.1/24
        duplex auto
        smp-affinity auto
        speed auto
    }
    ethernet eth2 {
        address 172.12.1.10/24
        duplex auto
        smp-affinity auto
        speed auto
    }
    loopback lo {
    }
}
protocols {
    # 静态路由,指定到达 10.1.8.0/24 网络的下一条为 172.12.1.11, 172.12.1.11 和 172.12.1.10 互为 veth pair
    static {
        route 10.1.8.0/24 {
            next-hop 172.12.1.11 {
            }
        }
    }
}
system {
    config-management {
        commit-revisions 100
    }
    console {
        device ttyS0 {
            speed 9600
        }
    }
    host-name vyos
    login {
        user vyos {
            authentication {
                encrypted-password $6$QxPS.uk6mfo$9QBSo8u1FkH16gMyAVhus6fU3LOzvLR9Z9.82m3tiHFAxTtIkhaZSWssSgzt4v4dGAL8rhVQxTg0oAG9/q11h/
                plaintext-password ""
            }
            level admin
        }
    }
    ntp {
        server 0.pool.ntp.org {
        }
        server 1.pool.ntp.org {
        }
        server 2.pool.ntp.org {
        }
    }
    syslog {
        global {
            facility all {
                level info
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone UTC
}


/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "dns-forwarding@1:mdns@1:ssh@1:webproxy@1:webgui@1:zone-policy@1:broadcast-relay@1:l2tp@1:cluster@1:snmp@1:pppoe-server@2:conntrack@1:wanloadbalance@3:webproxy@2:firewall@5:ntp@1:dhcp-server@5:dhcp-relay@2:system@10:nat@4:quagga@7:qos@1:ipsec@5:conntrack-sync@1:config-management@1:vrrp@2:pptp@1" === */
/* Release version: 1.2.8 */
  • gw2.cfg
配置文件
# ./startup-conf/gw1.cfg
interfaces {
    ethernet eth1 {
        address 10.1.8.1/24
        duplex auto
        smp-affinity auto
        speed auto
    }
    ethernet eth2 {
        address 172.12.1.11/24
        duplex auto
        smp-affinity auto
        speed auto
    }
    loopback lo {
    }
}
protocols {
    # 静态路由,指定到达 10.1.5.0/24 网络的下一条为 172.12.1.10, 172.12.1.10 和 172.12.1.11 互为 veth pair
    static {
        route 10.1.5.0/24 {
            next-hop 172.12.1.10 {
            }
        }
    }
}
system {
    config-management {
        commit-revisions 100
    }
    console {
        device ttyS0 {
            speed 9600
        }
    }
    host-name vyos
    login {
        user vyos {
            authentication {
                encrypted-password $6$QxPS.uk6mfo$9QBSo8u1FkH16gMyAVhus6fU3LOzvLR9Z9.82m3tiHFAxTtIkhaZSWssSgzt4v4dGAL8rhVQxTg0oAG9/q11h/
                plaintext-password ""
            }
            level admin
        }
    }
    ntp {
        server 0.pool.ntp.org {
        }
        server 1.pool.ntp.org {
        }
        server 2.pool.ntp.org {
        }
    }
    syslog {
        global {
            facility all {
                level info
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone UTC
}


/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "dns-forwarding@1:mdns@1:ssh@1:webproxy@1:webgui@1:zone-policy@1:broadcast-relay@1:l2tp@1:cluster@1:snmp@1:pppoe-server@2:conntrack@1:wanloadbalance@3:webproxy@2:firewall@5:ntp@1:dhcp-server@5:dhcp-relay@2:system@10:nat@4:quagga@7:qos@1:ipsec@5:conntrack-sync@1:config-management@1:vrrp@2:pptp@1" === */
/* Release version: 1.2.8 */

d | 部署服务

# tree -L 2 ./
./
├── host-gw.clab.yml
└── startup-conf
    ├── gw1.cfg
    └── gw2.cfg

# clab deploy -t host-gw.clab.yml
INFO[0000] Containerlab v0.54.2 started                 
INFO[0000] Parsing & checking topology file: 1.yaml     
INFO[0000] Creating docker network: Name="clab", IPv4Subnet="172.20.20.0/24", IPv6Subnet="2001:172:20:20::/64", MTU=1500 
INFO[0000] Creating lab directory: /root/wcni-kind/network/5-demo-cni/5-host-gw/1-clab-host-gw/clab-host-gw 
INFO[0000] Creating container: "server2"                
INFO[0000] Creating container: "gw1"                    
INFO[0000] Creating container: "gw2"                    
INFO[0001] Creating container: "server1"                
INFO[0001] Created link: gw2:eth1 <--> server2:net0     
INFO[0001] Created link: gw1:eth2 <--> gw2:eth2         
INFO[0002] Created link: gw1:eth1 <--> server1:net0     
INFO[0002] Executed command "ip addr add 10.1.8.10/24 dev net0" on the node "server2". stdout: 
INFO[0002] Executed command "ip route replace default via 10.1.8.1" on the node "server2". stdout: 
INFO[0002] Executed command "ip addr add 10.1.5.10/24 dev net0" on the node "server1". stdout: 
INFO[0002] Executed command "ip route replace default via 10.1.5.1" on the node "server1". stdout: 
INFO[0002] Adding containerlab host entries to /etc/hosts file 
INFO[0002] Adding ssh config for containerlab nodes     
INFO[0002] 

标签:gw,10.1,forever,set,00,lft,host,ff,Linux
From: https://www.cnblogs.com/evescn/p/18249507

相关文章

  • Linux下Nginx安装并开启SSL
    Linux下Nginx安装并开启SSL一.下载nginxNginxdownload下载后上传至服务器。PS:博主使用的Nginx版本为:nginx-1.23.4.tar.gz二.安装Nginx所需要的环境1.安装gcc-c++yuminstallgcc-c++yuminstall-yopensslopenssl-devel2.安装pcre包yuminstall-ypcrepcre......
  • Linux文件系统【真的很详细】
    目录 一.认识磁盘1.1磁盘的物理结构1.2磁盘的存储结构1.3磁盘的逻辑存储结构二.理解文件系统 2.1如何管理磁盘2.2如何在磁盘中找到文件 2.3关于文件名哈喽,大家好。今天我们学习文件系统,我们之前在Linux基础IO中研究的是进程和被打开文件之间的关系,以及如何管理被......
  • Linux项目部署套餐
    第一步准备工作创建一个目录用于存放要用到的工具并上传所需要用到的文件#下载上传需要用到的工具yuminstalllrzsz#创建目录mkdir-p/usr/local/mytools#进入mytools目录下cd/usr/local/mytools#上传可一次性上传jdk,mysql,tomcat,redis压缩包rz第二步安装jd......
  • Linux下Java环境安装
    Linux下open-jdk1.8安装教程一.下载安装包Javadownload下载后上传到服务器二.安装1.解压安装包tar-zxvfjdk-8u341-linux-x64.tar.gz2.配置环境变量在/etc/profile文件中,新增Java的环境变量vi/etc/profileexportJAVA_HOME=/usr/local/jdk/jdk1.8.0_341export......
  • 【Linux】生产者消费者模型——阻塞队列BlockQueue
    >作者:დ旧言~>座右铭:松树千年终是朽,槿花一日自为荣。>目标:理解【Linux】生产者消费者模型——阻塞队列BlockQueue。>毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安!>专栏选自:Linux初阶>望小伙伴们点赞......
  • Linux下Redis安装教程
    Linux下Redis安装教程一.下载Redis安装包官网下载地址:Redisdownloads推荐下载redis-7.0.0.tar.gz教程是以这个版本安装的二.安装1.下载Redis环境支持#安装GCC,Redis是基于C语言开发的,需要GCC支持yuminstallgcc-c++2.上传至服务器上传工具可以使用XFTPXFTP......
  • Linux Shell基础命令
    pwd功能:显示当前目录的绝对地址cd功能:切换目录绝对路径:以/为起点,遍历到子目录相对路径:以当前目录为起点,遍历到子目录常用目录:.当前目录..上层目录-上次操作所在路径~相当于/home/用户名的路径示例用途:cd/home/linux/Desktop#绝对路径的用法cd/home/......
  • 006-使用buildroot构建一个完整的Linux操作系统
    原文:https://www.bilibili.com/read/cv31634226/实验介绍 之前的实验中介绍了如何使用buildroot构建一个易于使用的完整文件系统,但是buildroot的功能不止于此。 本实验准备使用buildroot构建一个完整的Linux操作系统。 本实验还会将编译好的固件烧录到U盘中,然后在......
  • linux中DNS域名解析服务
    DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。域名的正向解析是DNS服务器的最基本的功能,也是最常......
  • linux中DNS域名解析服务(后续补充)
    分离解析简介:分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址的客户机请求解析同一域名时,为其提供不同的解析结果。        实验要求:防火墙要么关闭掉,要么添加允许通过条目。以及......