kubernetes-guide/content/cases/home-network/network-config.md

3.8 KiB
Raw Blame History

基础网络配置

配置静态 IP 和默认路由

软路由需要配置一个静态 IP 和一个默认路由Ubuntu 可以使用 netplan 来配置,配置文件路径是 /etc/netplan/config.yaml,通过 netplan apply 执行生效。下面根据不同方案给出一些配置示例。

主路由方案配置

对于主路由方案,需要选一个网口用来连接光猫来拨号上网,再选一个网口配置内网静态 IP 并连接交换机,用于内网通信和路由转发,下面是我用过的配置:

解释一下:

  • 我的路由器有 6 个网口Ubuntu 默认使用 enp*s0 的命名方式自动给网口分配网卡名称。
  • 第一个网口我用来拨号上网,上联是光猫(光猫设置桥接,不要光猫的路由功能)。设置用第一个网口来做 PPPoE 拨号的话,会自动修改默认路由走虚拟出来的 ppp0 网卡,这里配置的默认路由不重要。
  • 第二个网口设置一个内网静态 IP用于内网通信。内网网段我计划用 10.10.10.0/24,软路由静态 IP 使用 10.10.10.2,如果要用 IPv6也得分配个固定的内网 IPv6 地址,写到 addresses 里。
  • 使用静态 IP禁用掉 dhcp 动态获取 IP 的能力,所以每个网口的 dhcp4dhcp6 均设为 false。

旁路由方案配置

对于旁路由方案,不需要拨号,主要选一个网口来配置内网静态 IP 就行,这个网口连上交换机,配置示例:

桥接

如果需要,其它剩余网口设置桥接,当做交换机用,方面接入更多设备。可以在 netplan 配置里加下 bridges 配置:

  bridges:
    br0:
      dhcp4: no
      interfaces: 
        - enp3s0
        - enp4s0
        - enp5s0

配置拨号上网

旁路由方案的拨号上网这里不做介绍,不同场景配置方法各不相同,比如主路由是华为、小米路由器设备,需登录路由器管理页面进行配置;如果是让光猫来拨号,需登录光猫进行配置;如果使用双软路由方案,比如在 EXSI 里虚拟出 RouterOS 作为主路由,那么就登陆 RouterOS 主路由页面进行配置拨号上网。

这里只给出主路由方案的 Ubuntu 系统配置 PPPoE 拨号的方法。

需要实现 Ubuntu 开机自动执行 PPPoE 拨号,可以用 networkd-dispatcher 来实现:

如果不生效,可以在 rc.local 开机脚本里做:

#!/bin/bash

echo "run pppoe"
pon dsl-provider

确保 rc-local 服务处于 enabled 状态: systemctl enable rc-local

配置混杂模式

对于软路由,配置网卡为混杂模式很重要,因为作为路由器,需要监听所有流量,这样才能做路由转发。可以在 /etc/network/if-up.d/ 目录下配置脚本,实现开机自动为所有网卡打开混杂模式:

#!/bin/bash

for i in {1..6}
do
  /sbin/ip link set enp${i}s0 promisc on
done

/sbin/ip link set br_lan promisc on

配置防火墙

对于主路由方案,在 Ubuntu 里配置防火墙,可以用 nftables 来声明式配置:

确保 nftables 服务处于 enabled 状态: systemctl enable nftables

配置内核参数

删除自带的一些内核参数配置,避免冲突:rm /etc/sysctl.d/10-network-security.conf