如何将ubuntu配置为路由器(二)

上次文章链接:如何将ubuntu配置为路由器

上次说到将具有六个独立网卡的软交换机通过NAT的方式实现了一个网卡与另一个网卡跨网段上网功能,那么有没有一种方法,能让其中一个口作为wan口,其他网口作为lan口且全在同一局域网下?

您好,有的。

答案就是linux的bridge(桥接)功能。

Bridge网桥

关于bridge的简介可以参考这篇文章,我认为讲得简单易懂  Linux Bridge简介。总结概括如下:

  • bridge是虚拟网络设备
  • bridge依赖于实际物理网卡,其MAC地址即为其依赖物理网卡的mac地址
  • 所有挂在bridge下的网卡都在同一个子网且没有ip(或者可以认为ip为0.0.0.0)

其实说白了bridge就是实现了交换机的功能,然后通过NAT将bridge与WAN口网卡连接起来,就可以实现开头说的功能,接下来就是实际操作了。

网桥管理工具

首先需要安装一个bridge管理工具

sudo apt-get install bridge-utile

网桥配置脚本

然后依次输入新建一个.sh脚本文件

# 新建一个bridge, 名字为br0
sudo ip link add name br0 type bridge

# 向网桥添加网卡设备(虚拟网卡设备也可以), bridge的MAC与第一个添加的设备相同
sudo brctl addif br0 eht1
sudo brctl addif br0 eht2
sudo brctl addif br0 eht3
sudo brctl addif br0 eht4

# 停止网卡设备(其实不停也无所谓)
sudo ifconfig eht1 down
sudo ifconfig eht2 down
sudo ifconfig eht3 down
sudo ifconfig eht4 down

# 将上述网卡设备ip设为0.0.0.0 并启动网络设备
sudo ifconfig eht1 0.0.0.0 up
sudo ifconfig eht2 0.0.0.0 up
sudo ifconfig eht3 0.0.0.0 up
sudo ifconfig eht4 0.0.0.0 up

# 网桥ip设为192.168.1.1(网关), 子网掩码255.255.255.0 并启动网桥
sudo ifconfig br0 192.168.1.1 netmask 255.255.255.0 up

# 添加路由
sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 br0

# 开启WAN口网卡与br0网桥的转发功能
sudo iptables -A FORWARD -i eth0 -o br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o br0 -j ACCEPT

# NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

其中第一个指令新建网桥也可以用这个

sudo brctl addbr br0

完成

运行脚本文件,现在eth1~eth4都连接到了br0网桥,即eth1~eth4+br0都处于192.168.1.0这个网段下且br0网桥为网关,其他设备连接到eth1~eth4上,修改ip到192.168.1.0网段即可上网,通过ifconfig命令可以看到网络设备多了个br0,其mac地址与eth1相同,且eth1~eth4没有ip地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值