Ubuntu 18.04 网卡配置、NAT 转发 及 DHCP 服务器配置
本次纯属记录,希望有所帮助。
目的,模拟一个内网和外网,内网机器访问外网,并进行 地址转换。
实验环境:
已有一个 192.16.10.0/24 网段的局域网,该网络内拥有一台路由器,用于给网络中的设备分配IP地址。实验时,把该局域网当成外网。以下都以外网称呼。
欲配置一个 192.168.1.0/24 的网段作为内网。
有一台拥有两网卡的Linux主机,将该Linux主机做成网关,其分别连接两个网段,完成两网段间的网络地址的转换工作。以下以网关称呼。
以下操作均在root用户下进行。
1. 网卡配置和NAT转发
第一步:配置 网关
网关配置:系统 Ubuntu 18.04,内核版本 5.0.0,网卡1名称:enp1s0,网卡2名称:enx00e04c68066f
(网卡2是一个USB转网卡,可使用ls /proc/sys/net/ipv4/conf
或ifconfig
查看网卡名称)
欲把该网关的 网卡 enp1s0 连接外网网段 192.16.10.0/24。网卡 enx00e04c68066f 连接 内网网段 192.168.1.0/24。
其 interface 文件配置如下:
vim /etc/network/interface
# enp1s0 采用 DHCP,等待分配 ip
auto enp1s0
iface enp1s0 inet dhcp
# enx00e04c68066f 采用 静态 ip,其 ip 是 192.168.1.2
auto enx00e04c68066f
iface enx00e04c68066f inet static
address 192.168.1.2
netmask 255.255.255.0
# gateway 192.168.1.2 # 网关
# dns-nameservers 114.114.114.144 # DNS
# dns-nameservers 8.8.8.8
# 本地回环地址,默认这样配置即可
auto lo
iface lo inet loopback
说明,enp1s0 连接了外网,采用dhcp获得地址(由上述所说的路由器分配地址)。enx00e04c68066f 连接内网,采用了静态网络配置,把ip地址设定为 192.168.1.2。
然后使用/etc/init.d/networking restart
重启网络。为避免不必要的问题,建议重启系统。
可使用ifconfig
查看是否网络配置是否生效了。
本人实验时,enp1s0 分配到ip地址为192.16.10.8.
第二步,网关 开启内核转发
在网关上,要配置内核转发。
此为永久生效方案,即重启后仍有效
vim /etc/sysctl.conf
大约在文件的第28行,将以下内容的注释去掉(或者新增一个)
net.ipv4.ip_forward=1
使内核转发立即生效:
sysctl -p
第三步:配置内网中机器
将一台Linux主机PC1的网卡eth1连接到 enx00e04c68066f 网卡。将其作为内网机器。
为其配置静态ip地址192.16.10.5。
ifconfig eth1 192.16.10.5
或者,像上面一样,通过修改 interface 文件实现静态网络配置。
配置后,一定用使用 ping 等命令测试 PC1 与 网关的内网 ip 是否连通。如ping 192.168.1.2
,两台机子上都要ping对方机器。
然后加一条路由,告诉内网机器,发送给 192.16.10.0/24 的数据包,交给网关 192.168.1.2 处理。(确保能ping通之后,再加此路由)
route add -net 192.16.10.0/24 gw 192.168.1.2