# 基础网络配置 ## 配置静态 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 的能力,所以每个网口的 `dhcp4` 和 `dhcp6` 均设为 false。 ### 旁路由方案配置 对于旁路由方案,不需要拨号,主要选一个网口来配置内网静态 IP 就行,这个网口连上交换机,配置示例: ### 桥接 如果需要,其它剩余网口设置桥接,当做交换机用,方面接入更多设备。可以在 netplan 配置里加下 `bridges` 配置: ```yaml bridges: br0: dhcp4: no interfaces: - enp3s0 - enp4s0 - enp5s0 ``` ## 配置拨号上网 旁路由方案的拨号上网这里不做介绍,不同场景配置方法各不相同,比如主路由是华为、小米路由器设备,需登录路由器管理页面进行配置;如果是让光猫来拨号,需登录光猫进行配置;如果使用双软路由方案,比如在 EXSI 里虚拟出 RouterOS 作为主路由,那么就登陆 RouterOS 主路由页面进行配置拨号上网。 这里只给出主路由方案的 Ubuntu 系统配置 PPPoE 拨号的方法。 需要实现 Ubuntu 开机自动执行 PPPoE 拨号,可以用 `networkd-dispatcher` 来实现: 如果不生效,可以在 `rc.local` 开机脚本里做: ```bash showLineNumbers title="/etc/rc.local" #!/bin/bash echo "run pppoe" pon dsl-provider ``` > 确保 rc-local 服务处于 enabled 状态: `systemctl enable rc-local` ## 配置混杂模式 对于软路由,配置网卡为混杂模式很重要,因为作为路由器,需要监听所有流量,这样才能做路由转发。可以在 `/etc/network/if-up.d/` 目录下配置脚本,实现开机自动为所有网卡打开混杂模式: ```bash showLineNumbers title="/etc/network/if-up.d/set-promisc" #!/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`