【Ubuntu18】Ubuntu18.04下双网卡内外网设置

写在开篇:在使用双网卡搭建dhcp server的时候(有兴趣可以看上一篇文章,有搭建过程),遇到了双网关ping不通的问题,在同事帮助下解决了问题,解决的思路与下文转载的这篇有些像,很值得参考。(话说这个同事用的也是绿色界面,让我一度以为这篇文章是不是就是他本人hhh)

 

 

在安装了18.04服务器版本后,要对网关进行配置,在之前默认都在/etc/network/interfaces配置文件上配置

然后习惯性的重启网络

systemctl restart network
提示无效

重启机器后,这个网卡也是没用生效,说明配置文件没有起作用。

在查询一番资料后,发现,之前那些操作是多年以来的做法。但是现在,在某些发行版上(例如 Ubuntu Linux 18.04),网络的配置与控制发生了很大的变化。不需要那个 interfaces 文件和 /etc/init.d/networking 脚本,我们现在转向使用 Netplan。Netplan 是一个在某些 Linux 发行版上配置网络连接的命令行工具。Netplan 使用 YAML 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。

cd /etc/netplan 进入文件夹

打开yaml文件

vim /etc/netplan/50-cloud-init.yaml


文件的布局看起来就像这样:

network:
    Version: 2
    Renderer: networkd
    ethernets:
       DEVICE_NAME:
          Dhcp4: yes/no
          Addresses: [IP/NETMASK]
          Gateway: GATEWAY
          Nameservers:
             Addresses: [NAMESERVER, NAMESERVER]


 

主要是配置ethernets里的参数:

DEVICE_NAME 是需要配置设备的实际名称。
Dhcp4: yes / no 代表IPv4是否启用 dhcp 对应的IPv6 就是Dhcp6:yes / no
Addresses 是设备的 IP 地址。
NETMASK 是 IP 地址的掩码。
GATEWAY 是网关的地址。
NAMESERVER 是由逗号分开的 DNS 服务器列表。
例如以下这样的配置

network:
    version: 2
    renderer: networkd
    ethernets:
       enp1s0:
       dhcp4: no
       addresses: [192.168.1.230/24]
       gateway: 192.168.1.254
       nameservers:
          addresses: [8.8.4.4,8.8.8.8]


配置完后,可以使用测试命令看配置是否成功

sudo netplan try

 


上面的命令会在应用配置之前验证其是否有效。如果成功,你就会看到配置被接受。换句话说,Netplan 会尝试将新的配置应用到运行的系统上。如果新的配置失败了,Netplan 会自动地恢复到之前使用的配置。成功后,新的配置就会被使用。

如果对配置完全没问题了,可以直接使用 应用新配置的命令

sudo netplan apply


通过ifconfig命令可以查看网卡是否获取到IP

网卡1是我们设置的静态固定ip,连接30网段的内网,网卡2是我们设置的DHCP ,连接0网段的可通外网。

互相ping了30网段的机器和0网段的机器,都是显示通讯正常。

但是笔者的笔记本接入的是无线网的2网段,发现ping不通网卡2的192.168.0.70。但是笔记本能Ping通0网段的网关,网卡2也可以Ping通2网段的网关。于是就思考,是否是系统的路由转发有问题了

sudo route -n


 出现以下的信息 

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.169.30.254  0.0.0.0         UG    100    0        0 enp1s0
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 enp2s0
10.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 enp2s0
192.168.0.254   0.0.0.0         255.255.255.255 UH    100    0        0 enp2s0
192.168.30.0    0.0.0.0         255.255.255.0   U     0      0        0 enp1s0


发现有两条默认路由,0.0.0.0 都指向了两个不同的网卡出口和默认网关。对于指向30.254的这条默认网关是没用的

执行

sudo route del default gw 192.168.30.254


现在从笔记本就可以远程连接0.70设备了。

本以为这样就解决问题了,连接完设备,把文件部署好后,重启下系统,发现又连接不上了

再次登陆设备检查,发现路由表中已删除的默认路由又出现了,也就是说route del只是临时删除,重启设备或者类似netplan apply 重启服务的操作都会让默认路由重新生成。在又一番查找资料后,发现,默认路由是根据你网关配置自动生成的,那我在网卡1中不设置网关,30网段的通信都是指向型的通信,都是内网固定IP这样,没有网关并不会影响通信。于是进配置文件修改

如下

删除了enp1s0的gateway.这里要删除整行,不能就删除网关ip,不然重启服务后,会提示你网关所在的行数里缺少参数,需要填入IP地址。

修改完配置文件后,重启网络

sudo netplan apply


查看路由表

sudo route -n

完美。各自Ping通了内外网。 
————————————————
版权声明:本文为CSDN博主「大橘为重之大橘已定」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tjsxin/article/details/94390346

你可能感兴趣的:(CCNA)