第二周

网络互联

网络互联 - 图1

任务0:搭建项目模拟环境

  • LinuxServer:双网卡(NAT)
  • LnuxClient:单网卡(NAT)
  • WindowsClient:单网卡(NAT)

VMWare基本操作(略)

任务1:配置网卡IP

  • LinuxServer

    • 网卡1:192.168.11.254/24
    • 网卡2:10.10.11.254/24
  • LinuxClient

    • IP:192.168.11.10/24
    • GateWay:192.168.11.254
  • WindowsClient

    • IP: 10.10.11.10/24
    • GateWay: 10.10.11.254/24

方法一:nmtui 图形化工具配置(略)

方法二:nmcli命令行配置

  • 添加网络接口
    nmcli con add con-name <网络接口名称> type <接口类型> ifname <网卡名称>

  • 修改网络接口
    nmcli con modify <网络接口名称> [选项] [参数]

    • 常用选项和参数ipv4.addresses x.x.x.x/x,ipv4.method manual,ipv4.gateway x.x.x.x,ipv4.dns 'x.x.x.x, x.x.x.x'
  • 启用(或重启)网络接口
    nmcli con up <网络接口名称>

配置LinuxServer网卡

任务2:启动IP转发(临时,重启后失效)

功能:

  • 财务部和技术支持部中的机器可透明的互相访问

实现方法:

  • 临时生效

    • echo 1 > /proc/sys/net/ipv4/ip_forward

注意:sudo echo 1 > /proc/sys/net/ipv4/ip_forward,显示权限不够,无法执行

  • 错误原因:

    • bash 提示权限不够,是因为重定向符号 “>” 也是bash的命令,sudo 只是让echo命令具有了 root 权限,但是并没有让 “>” 命令也据有 root 权限,所以 bash会认为这个命令没有写入信息的权限。
    • 解决方法:

      • sudo bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
  • 永久生效:vim /etc/sysctl.d/ip_forward.conf

    • 写入net.ipv4.ip_forward = 1
  • 不重启系统刷新内核参数

    • 如单独在/etc/sysctl.d下创建文件修改ip_forward, 使用sysctl -p刷新时需要指定文件

      • sysctl -p /etc/sysctl.d/ip_forward.conf
    • 如直接在/etc/sysctl.conf中修改ip_forward, 使用sysctl -p刷新时可不指定文件

编写shell脚本

复习了上面的前置知识,肯定可以看懂下面的脚本了

  1. #!/bin/bash
  2. #1.setup connection
  3. nmcli con add con-name net192 type ethernet ifname <网卡设备名> ipv4.addresses 192.168.11.254/24 ipv4.method manual autoconnect yes
  4. nmcli con add con-name net10 type ethernet ifname <网卡设备名> ipv4.addresses 10.10.11.254/24 ipv4.method manual autoconnect yes
  5. #2.up connection
  6. nmcli con up net10
  7. nmcli con up net192
  8. #enable ipforward
  9. echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf
  10. sysctl -p /etc/sysctl.d/ip_forward.conf

shell脚本完成了router(需要配置IP转发的机器)机器的配置工作,只需配置两个部门的机器的IP和GateWay即可完成网络互联。