美文网首页
[Linux] Bridged&NAT

[Linux] Bridged&NAT

作者: AustinPup | 来源:发表于2019-01-09 10:58 被阅读0次

简介

Bridged桥接:
可以实现局域网内相互访问,为其配置一套网络IP,一般宿主机作为桥接网关。
NAT:
桥接后的各个虚拟机可以互相访问,但是不能访问外网,这里用来实现虚拟机访问外网;
host-only:
这里用得少,暂时不介绍
桥接步骤: 宿主机添加网桥配置后,虚拟机地址配置相应的静态地址;
Nat步骤: 宿主机开启路由转发,iptables 地址转换后,虚拟机网络配置DNS

重启网络

service network restart
/etc/init.d/networking restart

iptables 地址转换

#查看
iptables -L -n -t nat
#网段地址转发
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to 192.168.1.1

route 路由命令

#查看路由
route
#删除网关
route del default gw 192.168.2.1
#添加临时路由
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 1
#永久添加路由
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 1

网桥命令

#查看
brctl show
#删除
brctl delbr br0

防火墙命令

引文

ubuntu下Bridge&NAT

引文
S1: 修改宿主机创建br0文件,然后重启网络
文件路径: /etc/network/interfaces
文件内容:

auto br0
iface br0 inet static
address 192.168.4.1 # br0 的 ip 在192.168.4.0\24
netmask 255.255.255.0 
#bridge_ports enp1s0 # 实验发现,这里没必要将 host 的实体接口桥接,所以注释了起来
bridge_ports none # 但是又发现,这里不设置这个参数会导致网桥创建失败,所以我们可以
                  # 写一个不存在的接口来混过这个检查,比如我这里写了个 none
bridge_stp on

S2: 修改虚拟机的网络配置文件,然后重启网络

source /etc/network/interfaces.d/*
 
auto lo
iface lo inet loopback
 
auto ens3
iface ens3 inet static
address 192.168.4.101 # 这个 ip 为手动指定,应在 br0 的同一网段
netmask 255.255.255.0
gateway 192.168.4.1 # 这里应该设置成 host 中 br0 的 ip,
                    # 相当于创建了默认到 br0 ip 的路由
#up route add default gw 192.168.4.1 dev ens3 # 经过实验,这句于上一句效果等
                                              # 价,二者留一即可,所以注释掉了

PS:如果是虚拟机的话,需要配置下/etc/qemu/bridge.conf,并且以网桥方式启动虚拟机;

S3 NAT配置,实现虚拟机外网上网,宿主机开启路由转发
编辑 /etc/sysctl.conf 配置文件,将 net.ipv4.ip_forward = 0 修改为net.ipv4.ip_forward = 1, 重启 host

S4: 宿主机利用 iptables 搭建 MASQUERADE 模式的 NAT

# 第一条命令中将 192.168.4.0\24 网段的数据包伪装成 wlp2s0 接口的 ip 
# 发送出去,所以要实现 guest 通过 NAT 共享上网,wlp2s0 处应该填写连入
# 互联网的网络接口,这里 wlp2s0 是我的无线网卡接口。
iptables -t nat -A POSTROUTING -s "192.168.4.0/255.255.255.0" -o wlp2s0 -j MASQUERADE 
# 第一条命令中将 192.168.4.0\24 网段的数据包伪装成 192.168.4.0\24 外的任何 ip 
# 发送出去,按我的理解 iptables 会自动判断哪些 ip 可以成为伪装的目标,所以这条命令
# 可能更加通用。
iptables -t nat -A POSTROUTING -s "192.168.4.0/255.255.255.0" ! -d "192.168.4.0/255.255.255.0" -j MASQUERADE

PS1:基于接口的方式有时不成功,可以直接通过
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to 192.168.1.1
PS2: iptables 查阅
iptables -L -n -t nat

S5 虚拟机修改网络配置文件

source /etc/network/interfaces.d/*
 
auto lo
iface lo inet loopback
 
auto ens3
iface ens3 inet static
address 192.168.4.101 # 这个 ip 为手动指定,应在 br0 的同一网段
netmask 255.255.255.0
gateway 192.168.4.1 # 这里应该设置成 host 中 br0 的 ip,相当于创建了默认到 br0 ip 的路由
#up route add default gw 192.168.4.1 dev ens3 # 经过实验,这句于上一句效果等价,二者留一即可,所以注释掉了
dns-nameservers 192.168.3.1 # 将 dns 服务器设置为我的路由器 ip 即可

Centos下Bridge&NAT

桥接步骤差不多,但是配置文件不同,这里列出下相应的配置文件
S1 宿主机br0网桥文件
网桥文件路径:/etc/sysconfig/network-scripts/ifcfg-br0
文件内容:

TYPE=Bridge
ONBOOT=yes
DEVICE=br0
BOOTRPOTO=static
IPADDR=192.168.3.11
NETMASK=255.255.255.0

有线网接口文件路径:/etc/sysconfig/network-scripts/ifcfg-enp2s0

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp2s0
UUID=a7091b88-1d8b-4d80-8bd8-c5026a65a242
DEVICE=enp2s0
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
BRIDGE=br0
#最后一行加一下就可以

S3 宿主机开启路由转换
查看 sysctl -p

S4 虚拟机网络配置
文件路径:/etc/sysconfig/network-scripts/ifcfg-ens3

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.3.13 # 桥接用
GATEWAY=192.168.3.11 #桥接用
NETMASK=255.255.255.0 #桥接用
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens3
UUID=81a72b21-3338-41fb-a674-a9e3cf1c5920
DEVICE=ens3
ONBOOT=yes
DNS1=192.168.1.1 #NAT用

PS: iptables 再次注意下

相关文章

  • [Linux] Bridged&NAT

    简介 Bridged桥接:可以实现局域网内相互访问,为其配置一套网络IP,一般宿主机作为桥接网关。NAT:桥接后的...

  • Linux Shell命令及配置安装手册

    Linux 教程 Linux 教程、Linux 简介、Linux 安装、Linux 系统启动过程、Linux 系统...

  • Linux命令行使用教程

    Linux基本单词 Linux缩写 Linux目录 Linux操作 Linux技巧 Linux自学命令行办法

  • 面试题 2021-11-01~2021-11-12

    常用的Linux命令 Linux命令 - Linux安全网 - Linux操作系统_Linux 命令_Linux教...

  • 远程桌面 linux

    Windows远程Linux、Linux远程Windows或Linux远程Linux Windows远程Linux...

  • Linux简单介绍

    Linux 相关Linux 下的一些特点Linux 小练习Linux 文件权限Linux 命令-chmodLinu...

  • Day 2 - Summon Linux

    LunaprimRose 2020.03.14 Linux Linux is not Unix 简介 Linux ...

  • 记一次搭建生产服务器

    Linux JDK 安装 Linux Maven 安装 Linux node 安装 Linux redis安装 L...

  • Linux命令整理

    一、Linux简介 1、什么是Linux 1.1、Linux操作系统:指GUN/Linux,采用Linux内核的G...

  • Linux简介(8.8)

    linux的文本模式介绍 linux的登录与登出 linux的关机 linux的init进程 Init是Linux...

网友评论

      本文标题:[Linux] Bridged&NAT

      本文链接:https://www.haomeiwen.com/subject/ugewrqtx.html