LINUX做为网关,让其他机子共享下网。怎么设置
LINUX做为网关,让其他机子共享上网。如何设置?
eth0 Link encap:Ethernet HWaddr 00:0C:29:48:3F:D9
inet addr:192.168.88.4 Bcast:192.168.88.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe48:3fd9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:119 errors:0 dropped:0 overruns:0 frame:0
TX packets:125 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14740 (14.3 KiB) TX bytes:17219 (16.8 KiB)
Interrupt:19 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 00:0C:29:48:3F:E3
inet addr:192.168.99.200 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe48:3fe3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:79 errors:0 dropped:0 overruns:0 frame:0
TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9103 (8.8 KiB) TX bytes:2646 (2.5 KiB)
Interrupt:16 Base address:0x2080
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
eth1 这个是内网给他们作为网关,让他们共享上网。
eth0 这个是别人分配的一个可连接互联网IP。
我要怎么样设置呢?才可以让192.168.99.201、192.168.99.202、192.168.99.203、192.168.99.20x……等机器上网呢?
主机:
IP:192.168.99.201
掩码:255.255.255.0
网关:192.168.99.200
DNS:192.168.99.200
这样上不了网……
------解决方案--------------------
eth0 Link encap:Ethernet HWaddr 00:0C:29:48:3F:D9
inet addr:192.168.88.4 Bcast:192.168.88.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe48:3fd9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:119 errors:0 dropped:0 overruns:0 frame:0
TX packets:125 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14740 (14.3 KiB) TX bytes:17219 (16.8 KiB)
Interrupt:19 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 00:0C:29:48:3F:E3
inet addr:192.168.99.200 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe48:3fe3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:79 errors:0 dropped:0 overruns:0 frame:0
TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9103 (8.8 KiB) TX bytes:2646 (2.5 KiB)
Interrupt:16 Base address:0x2080
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
eth1 这个是内网给他们作为网关,让他们共享上网。
eth0 这个是别人分配的一个可连接互联网IP。
我要怎么样设置呢?才可以让192.168.99.201、192.168.99.202、192.168.99.203、192.168.99.20x……等机器上网呢?
主机:
IP:192.168.99.201
掩码:255.255.255.0
网关:192.168.99.200
DNS:192.168.99.200
这样上不了网……
------解决方案--------------------
- C/C++ code
首先创建两张路由表,只需要添加到相应的文件中即可,Linux一共支持255个路由表,rt_tables文件中默认已经存在了三张路由表,分别是: 255 local 254 main 253 default [root@localhost ~]# echo "10 cnc" >> /etc/iproute2/rt_tables [root@localhost ~]# echo "20 cernet" >> /etc/iproute2/rt_tables 注意:路由表前面的数字只是编号并不代表优先级,路由表没有优先级,只有策略规则才有优先级。 以下配置内容每次重启系统后都会消失,所以要把脚本设置为随系统一块启动。 ######################配置脚本############################### #!/bin/bash #加载iptables的nat和filter模块,iptables服务最好设置成在开机时自动运行 modprobe iptable_nat modprobe iptable_filter #打开Linux内核包转发功能 echo "1" > /proc/sys/net/ipv4/ip_forward #配置接口的IP地址,并激活接口 #eth0连接联通线路,eth1连接教育网线路,eth2下连三层交换机 #这里使用iproute2的新命令来配置IP,不在使用旧的命令如:ifconfig ip address add 115.158.113.164/25 dev eth0 ip link set dev eth0 up ip address add 10.212.46.100/24 dev eth1 ip link set dev eth1 up ip address add 10.10.10.1/30 dev eth2 ip link set dev eth2 up #向路由表中添加路由 #向cnc路由表中添加一条默认路由 ip route add default via 115.158.113.129 table cnc #向cernet路由表中添加一条默认路由 ip route add default via 10.212.46.1 table cernet #向主路由表中添加指向内部网段的路由,不然数据包反回时找不到路由信息 ip route add 192.168.100.0/24 via 10.10.10.2 table main ip route add 192.168.200.0/24 via 10.10.10.2 table main #设置路由规则rule,注意规则是按优先级来执行的。 #所有目的地访问115.158.119.0/25网段的用户都走cernet线路出去。 ip rule add from 0.0.0.0/0 to 115.158.119.0/25 table cernet pref 99 #网段192.168.100.0/24的用户都走联通线路出去,优先级设置为100 ip rule add from 192.168.100.0/24 table cnc pref 100 #网段192.168.200.0/24的用户都走教育网线路出去,优先级设置为101 ip rule add from 192.168.200.0/24 table cernet pref 101 #刷新路由表,使新配置的路由生效 ip route flush cache #按求对数据包进行NAT转换 #把192.168.100.0/24网段的用户的源IP转换成联通线路接口的IP iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to 115.158.113.164 iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j SNAT --to 10.212.46.100 ######################结束##################################
------解决方案--------------------