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

88 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 基础网络配置
## 配置静态 IP 和默认路由
软路由需要配置一个静态 IP 和一个默认路由Ubuntu 可以使用 netplan 来配置,配置文件路径是 `/etc/netplan/config.yaml`,通过 `netplan apply` 执行生效。下面根据不同方案给出一些配置示例。
### 主路由方案配置
对于主路由方案,需要选一个网口用来连接光猫来拨号上网,再选一个网口配置内网静态 IP 并连接交换机,用于内网通信和路由转发,下面是我用过的配置:
<FileBlock showLineNumbers title="/etc/netplan/config.yaml" file="home-network/netplan-config-main-route.yaml" />
解释一下:
* 我的路由器有 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 就行,这个网口连上交换机,配置示例:
<FileBlock showLineNumbers title="/etc/netplan/config.yaml" file="home-network/netplan-config-bypass-route.yaml" />
### 桥接
如果需要,其它剩余网口设置桥接,当做交换机用,方面接入更多设备。可以在 netplan 配置里加下 `bridges` 配置:
```yaml
bridges:
br0:
dhcp4: no
interfaces:
- enp3s0
- enp4s0
- enp5s0
```
## 配置拨号上网
旁路由方案的拨号上网这里不做介绍,不同场景配置方法各不相同,比如主路由是华为、小米路由器设备,需登录路由器管理页面进行配置;如果是让光猫来拨号,需登录光猫进行配置;如果使用双软路由方案,比如在 EXSI 里虚拟出 RouterOS 作为主路由,那么就登陆 RouterOS 主路由页面进行配置拨号上网。
这里只给出主路由方案的 Ubuntu 系统配置 PPPoE 拨号的方法。
需要实现 Ubuntu 开机自动执行 PPPoE 拨号,可以用 `networkd-dispatcher` 来实现:
<FileBlock showLineNumbers title="/etc/networkd-dispatcher/carrier.d/setup-pppoe.sh" file="home-network/setup-pppoe.sh" />
如果不生效,可以在 `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 来声明式配置:
<FileBlock showLineNumbers title="/etc/nftables.conf" file="home-network/nftables.conf" />
> 确保 nftables 服务处于 enabled 状态: `systemctl enable nftables`
## 配置内核参数
<FileBlock showLineNumbers title="/etc/sysctl.d/10-router.conf" file="home-network/10-router.conf" />
> 删除自带的一些内核参数配置,避免冲突:`rm /etc/sysctl.d/10-network-security.conf`