LVS配置命令理解1
上周末对照着Ubuntu LVS配置 的教程初步熟悉了ubuntu下LVS的配置过程中。这对于想掌握其原理的人来说是不够的。
配置的命令有以下几条:
ifconfig来为当前的网卡配置虚拟IP。
其中同样通过在CSDN上搜索,可以知道,通过在eth0(网卡接口名称)后加“:n”,其中n为N+(正整数),就可以为网卡配置多个虚拟IP地址。这样的IP地址是不会有真实的数据经过它。
比如我的电脑上只有一个无线网卡,用ifconfig命令得到的回显中,显示名称是wlps1s0。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| lin@lin-pc2:~/Documents/ops$ ifconfig 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:65536 Metric:1 RX packets:614 errors:0 dropped:0 overruns:0 frame:0 TX packets:614 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:57615 (57.6 KB) TX bytes:57615 (57.6 KB)
wlp1s0 Link encap:Ethernet HWaddr d0:57:7b:b0:a1:d0 inet addr:192.168.31.172 Bcast:192.168.31.255 Mask:255.255.255.0 inet6 addr: fe80::2805:4caf:e64f:ff0d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2241 errors:0 dropped:0 overruns:0 frame:0 TX packets:1901 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1512337 (1.5 MB) TX bytes:394920 (394.9 KB)
|
其中lo为本地的回环接口。LVS配置过程中也要使用这个接口。可以得到我的局域网IP网络号为192.168.31.x。那么如下的命令可以为我的无线网卡添加一个虚拟IP。
1
| lin@lin-pc2:~/Documents/ops$ sudo ifconfig wlp1s0:1 192.168.31.173 netmask 255.255.255.0
|
再次使用ifconfig命令得到的回显为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| lin@lin-pc2:~/Documents/ops$ ifconfig 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:65536 Metric:1 RX packets:672 errors:0 dropped:0 overruns:0 frame:0 TX packets:672 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:65106 (65.1 KB) TX bytes:65106 (65.1 KB)
wlp1s0 Link encap:Ethernet HWaddr d0:57:7b:b0:a1:d0 inet addr:192.168.31.172 Bcast:192.168.31.255 Mask:255.255.255.0 inet6 addr: fe80::2805:4caf:e64f:ff0d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3001 errors:0 dropped:0 overruns:0 frame:0 TX packets:2249 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2382550 (2.3 MB) TX bytes:459282 (459.2 KB)
wlp1s0:1 Link encap:Ethernet HWaddr d0:57:7b:b0:a1:d0 inet addr:192.168.31.173 Bcast:192.168.31.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
可以看到已经新增了一个虚拟IP。可以注意到这个虚拟IP对应的接口,没有显示接收,发送的数据包信息,却可以在局域网中ping通这个IP地址。原因是,它只是一个虚拟的,真正的数据包还是经过wlp1s0这个接口发送和接收的。
启动IP包转发功能
ubuntu内核中默认是不支持IP包转发的。因为ubuntu是作为终端操作系统来运行的,IP包转发是路由器的功能。然而,强大的内核可配置性,允许我们改变这样的默认设置,使它支持包转发。这也是为什么,ubuntu操作系统中支持wifi热点搭建的原因。控制这个选项的变量是在/proc/sys/net/ipv4/ip_forward文件中写着的。启动的方法有两种。
1. 直接在文件中写入1
1
| #echo "1" /proc/sys/net/ipv4/ip_forward
|
命令前面的#表示这个命令是需要有root权限的。
2. 通过sysctl命令来修改
1
| #sysctl net.ipv4.ip_forward=1
|
同样需要root权限,都能达到目的。sysctl是一个非常有用的在内核运行时改变内核参数的工具。