当前位置: 首页 > news >正文

自己怎么做公司网站网站预订功能怎么做

自己怎么做公司网站,网站预订功能怎么做,wordpress 时尚网,成都找人做网站如果两个namespace处于不同的子网中#xff0c;那么就不能通过bridge进行连接了#xff0c;而是需要通过路由器进行三层转发。然而Linux并未像提供虚拟网桥一样也提供一个虚拟路由器设备#xff0c;原因是Linux自身就具备有路由器功能。 路由器的工作原理是这样的#xff…如果两个namespace处于不同的子网中那么就不能通过bridge进行连接了而是需要通过路由器进行三层转发。然而Linux并未像提供虚拟网桥一样也提供一个虚拟路由器设备原因是Linux自身就具备有路由器功能。 路由器的工作原理是这样的路由器上有2到多个网络接口每个网络接口处于不同的三层子网上。路由器会根据内部的路由转发表将从一个网络接口中收到的数据包转发到另一个网络接口这样就实现了不同三层子网之间的互通。Linux内核提供了IP Forwarding功能启用IP Forwarding后就可以在不同的网络接口中转发IP数据包相当于实现了路由器的功能。 开启路由转发 Linux的IP Forwarding功能并不是默认开启的可以采用下面的方法开启 在/etc/sysctl.conf下增加如下内容 net.ipv4.ip_forward1 net.ipv6.conf.default.forwarding1 net.ipv6.conf.all.forwarding1然后使用sysctl -p重新加载配置文件 $ sysctl -p /etc/sysctl.conf使用路由连接两个namespace 下面我们实验将两个不同三层子网中的namespace通过Linux自身的路由功能连接起来该试验的网络拓扑如下图所示。 注意图中下方的路由器并未对应一个物理或者虚拟的路由器设备而是采用了一个带两个虚拟网卡的namespace来实现由于Linux内核启用了IP forwading功能因此ns-router namespace可以在其两个处于不同子网的网卡之间进行IP数据包转发实现了路由功能。 创建namespace 创建三个名为ns0、ns1、ns-router的namespace其中ns0和ns1充当两个不同网段的命名空间ns-router负责充当路由功能。 $ ip netns add ns0 $ ip netns add ns1 $ ip netns add ns-router$ ip netns list ns-router ns1 ns0创建veth 创建两个veth用来连接两个namespace和router。 $ ip link add type veth $ ip link add type veth$ ip link 56: veth0veth1: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 2e:40:31:14:9e:5d brd ff:ff:ff:ff:ff:ff 57: veth1veth0: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 86:a3:bf:bc:2c:82 brd ff:ff:ff:ff:ff:ff 58: veth2veth3: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether f2:c5:84:06:e6:76 brd ff:ff:ff:ff:ff:ff 59: veth3veth2: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 42:be:88:01:8c:c0 brd ff:ff:ff:ff:ff:ff将veth划入namespace 使用veth pair将ns0和ns1连接到由ns-router实现的路由器上。 $ ip link set veth0 netns ns0 $ ip link set veth1 netns ns-router $ ip link set veth2 netns ns1 $ ip link set veth3 netns ns-router为veth分配ip 为虚拟网卡设置ip地址ns0和ns1分别为192.168.0.0/24和192.168.1.0/24两个子网上而ns-router的两个网卡则分别连接到了这两个子网上。 $ ip netns exec ns0 ip addr add 192.168.0.2/24 dev veth0 $ ip netns exec ns-router ip addr add 192.168.0.1/24 dev veth1 $ ip netns exec ns1 ip addr add 192.168.1.2/24 dev veth2 $ ip netns exec ns-router ip addr add 192.168.1.1/24 dev veth3启用veth 将网卡的状态设置为up。 $ ip netns exec ns0 ip link set veth0 up $ ip netns exec ns-router ip link set veth1 up $ ip netns exec ns-router ip link set veth3 up $ ip netns exec ns1 ip link set veth2 up查看各个命名空间的ip 查看命名空间ns0的ip $ ip netns exec ns0 ip addr 1: lo: LOOPBACK mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 56: veth0if57: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 2e:40:31:14:9e:5d brd ff:ff:ff:ff:ff:ff link-netnsid 1inet 192.168.0.2/24 scope global veth0valid_lft forever preferred_lft foreverinet6 fe80::2c40:31ff:fe14:9e5d/64 scope linkvalid_lft forever preferred_lft forever 查看命名空间ns-router的ip $ ip netns exec ns-router ip addr 1: lo: LOOPBACK mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 57: veth1if56: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 86:a3:bf:bc:2c:82 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 192.168.0.1/24 scope global veth1valid_lft forever preferred_lft foreverinet6 fe80::84a3:bfff:febc:2c82/64 scope linkvalid_lft forever preferred_lft forever 59: veth3if58: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 42:be:88:01:8c:c0 brd ff:ff:ff:ff:ff:ff link-netnsid 1inet 192.168.1.1/24 scope global veth3valid_lft forever preferred_lft foreverinet6 fe80::40be:88ff:fe01:8cc0/64 scope linkvalid_lft forever preferred_lft forever 查看命名空间ns1的ip $ ip netns exec ns1 ip addr 1: lo: LOOPBACK mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 58: veth2if59: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether f2:c5:84:06:e6:76 brd ff:ff:ff:ff:ff:ff link-netnsid 1inet 192.168.1.2/24 scope global veth2valid_lft forever preferred_lft foreverinet6 fe80::f0c5:84ff:fe06:e676/64 scope linkvalid_lft forever preferred_lft forever测试 此时尝试从ns0 ping ns1会失败原因是虽然ns-router可以进行路由转发但ns1的IP地址不在ns0的子网中ns0在尝试发送IP数据包时找不到对应的路由因此会报错提示Network is unreachable。此时IP数据包并未能发送到ns-router上。 $ ip netns exec ns0 ping 192.168.1.1 -c 3 connect: Network is unreachable$ ip netns exec ns0 ping 192.168.1.2 -c 3 connect: Network is unreachable添加路由 我们在ns0和ns1中分别加上到达对方子网的路由即将发送到对方子网的IP数据包先发送到路由器上本子网对于的网络接口上然后通过路由器ns-router进行转发 $ ip netns exec ns0 ip route add 192.168.1.0/24 via 192.168.0.1 $ ip netns exec ns1 ip route add 192.168.0.0/24 via 192.168.1.1再次测试 此时再在两个ns中尝试ping对方就可以成功了。 $ ip netns exec ns0 ping 192.168.1.2 -c 3 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 64 bytes from 192.168.1.2: icmp_seq1 ttl63 time0.045 ms 64 bytes from 192.168.1.2: icmp_seq2 ttl63 time0.040 ms 64 bytes from 192.168.1.2: icmp_seq3 ttl63 time0.031 ms--- 192.168.1.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev 0.031/0.038/0.045/0.009 ms$ ip netns exec ns1 ping 192.168.0.2 -c 3 PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data. 64 bytes from 192.168.0.2: icmp_seq1 ttl63 time0.034 ms 64 bytes from 192.168.0.2: icmp_seq2 ttl63 time0.042 ms 64 bytes from 192.168.0.2: icmp_seq3 ttl63 time0.034 ms--- 192.168.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev 0.034/0.036/0.042/0.007 ms为了方便理解在该试验中使用了一个单独的namespace ns-router来承担路由器的功能实际上我们可以直接把veth路由器端的虚拟网卡放在default network namespace中由default network namespace来承担路由器功能。 使用路由连接namespace与主机 前面在介绍Linux bridge时我们讲到从网络角度上来说bridge是一个二层设备因此并不需要设置IP。但Linux bridge虚拟设备比较特殊我们可以认为bridge自带了一张网卡这张网卡在主机上显示的名称就是bridge的名称。这张网卡在bridge上因此可以和其它连接在bridge上的网卡和namespace进行二层通信同时从主机角度来看虚拟bridge设备也是主机default network namespace上的一张网卡在为该网卡设置了IP后可以参与主机的路由转发。 通过给bridge设置一个IP地址并将该IP设置为namespace的缺省网关可以让namespace和主机进行网络通信。如果在主机上再添加相应的路由可以让namespace和外部网络进行通信。 下面显示了为Linux bridge设备bridge0设置了IP地址后的逻辑网络视图。注意下图中Linux bridge(bridge0)和路由器(default network namespace)上出现了bridge0这张网卡即这张网卡同时在二层上工作于Linux bridge中在三层上工作于default network namespace中。 当将bridge0设置为缺省网关后可以从ns0和ns1连接到主机网络172.16.0.157/16上。此时数据流向是这样的ns0–(网桥)–bridge0–(IP Forwarding)–172.16.0.157/16 创建namespace 创建命名空间ns0和ns1 $ ip netns add ns0 $ ip netns add ns1$ ip netns list ns1 ns0创建veth 创建2对veth pair $ ip link add type veth $ ip link add type veth$ ip link 60: veth0veth1: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 22:08:b1:3d:44:a3 brd ff:ff:ff:ff:ff:ff 61: veth1veth0: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether d2:db:62:51:7d:75 brd ff:ff:ff:ff:ff:ff 62: veth2veth3: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 62:da:16:fa:50:a0 brd ff:ff:ff:ff:ff:ff 63: veth3veth2: BROADCAST,MULTICAST,M-DOWN mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether d6:59:1b:fb:e6:a6 brd ff:ff:ff:ff:ff:ff创建bridge并启用 $ ip link add bridge0 type bridge$ ip link 64: bridge0: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether d2:3b:75:2a:23:50 brd ff:ff:ff:ff:ff:ff$ ip link set bridge0 up划分veth 通过veth pair将ns0和ns1连接到bridge0上。 $ ip link set veth0 netns ns0 $ ip link set veth2 netns ns1 $ ip link set veth1 master bridge0 $ ip link set veth3 master bridge0为veth设置ip $ ip netns exec ns0 ip addr add 192.168.1.2/24 dev veth0 $ ip netns exec ns1 ip addr add 192.168.1.3/24 dev veth2启用veth $ ip netns exec ns0 ip link set veth0 up $ ip netns exec ns1 ip link set veth2 up $ ip link set veth1 up $ ip link set veth3 up$ ip link 61: veth1if60: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue master bridge0 state UP mode DEFAULT group default qlen 1000link/ether d2:db:62:51:7d:75 brd ff:ff:ff:ff:ff:ff link-netnsid 0 63: veth3if62: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue master bridge0 state UP mode DEFAULT group default qlen 1000link/ether d6:59:1b:fb:e6:a6 brd ff:ff:ff:ff:ff:ff link-netnsid 1 64: bridge0: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether d2:db:62:51:7d:75 brd ff:ff:ff:ff:ff:ff查看命名空间的ip 查看命名空间ns0的ip $ ip netns exec ns0 ip addr 1: lo: LOOPBACK mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 60: veth0if61: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 22:08:b1:3d:44:a3 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 192.168.1.2/24 scope global veth0valid_lft forever preferred_lft foreverinet6 fe80::2008:b1ff:fe3d:44a3/64 scope linkvalid_lft forever preferred_lft forever查看命名空间ns1的ip $ ip netns exec ns1 ip addr 1: lo: LOOPBACK mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 62: veth2if63: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 62:da:16:fa:50:a0 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 192.168.1.3/24 scope global veth2valid_lft forever preferred_lft foreverinet6 fe80::60da:16ff:fefa:50a0/64 scope linkvalid_lft forever preferred_lft forever测试 从命名空间ns0尝试ping命名空间ns1可以通信 $ ip netns exec ns0 ping 192.168.1.3 -c 3 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 64 bytes from 192.168.1.3: icmp_seq1 ttl64 time0.026 ms 64 bytes from 192.168.1.3: icmp_seq2 ttl64 time0.034 ms 64 bytes from 192.168.1.3: icmp_seq3 ttl64 time0.031 ms--- 192.168.1.3 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev 0.026/0.030/0.034/0.005 ms从命名空间ns1尝试ping命名空间ns0可以通信 $ ip netns exec ns1 ping 192.168.1.2 -c 3 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 64 bytes from 192.168.1.2: icmp_seq1 ttl64 time0.049 ms 64 bytes from 192.168.1.2: icmp_seq2 ttl64 time0.030 ms 64 bytes from 192.168.1.2: icmp_seq3 ttl64 time0.037 ms--- 192.168.1.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev 0.030/0.038/0.049/0.010 ms从命名空间ns0尝试ping主机不可以通信 $ ip netns exec ns0 ping 172.16.0.157 -c 3 connect: Network is unreachable从命名空间ns1尝试ping主机不可以通信 $ ip netns exec ns1 ping 172.16.0.157 -c 3 connect: Network is unreachable此时ns0和ns1之间可以通信但如果尝试从ns0和ns1中ping主机IP地址则会发现网络不可达原因是地址不在同一子网上并且没有相应的路由。 为bridge0分配ip $ ip addr add 192.168.1.1/24 dev bridge0$ ip addr default qlen 1000link/ether d2:db:62:51:7d:75 brd ff:ff:ff:ff:ff:ffinet 192.168.1.1/24 scope global bridge0valid_lft forever preferred_lft forever给命名空间添加默认路由 给命名空间ns0添加默认路由 $ ip netns exec ns0 ip route add default via 192.168.1.1$ ip netns exec ns0 route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 0 0 0 veth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 veth0给命名空间ns1添加默认路由 $ ip netns exec ns1 ip route add default via 192.168.1.1$ ip netns exec ns1 route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 0 0 0 veth2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 veth2在ns0和ns1中设置bridge0的IP为缺省网关。 再次测试 从命名空间ns0尝试ping主机可以通信 $ ip netns exec ns0 ping 172.16.0.157 -c 3 PING 172.16.0.157 (172.16.0.157) 56(84) bytes of data. 64 bytes from 172.16.0.157: icmp_seq1 ttl64 time0.026 ms 64 bytes from 172.16.0.157: icmp_seq2 ttl64 time0.037 ms 64 bytes from 172.16.0.157: icmp_seq3 ttl64 time0.033 ms--- 172.16.0.157 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev 0.026/0.032/0.037/0.004 ms从命名空间ns1尝试ping主机可以通信 $ ip netns exec ns1 ping 172.16.0.157 -c 3 PING 172.16.0.157 (172.16.0.157) 56(84) bytes of data. 64 bytes from 172.16.0.157: icmp_seq1 ttl64 time0.022 ms 64 bytes from 172.16.0.157: icmp_seq2 ttl64 time0.038 ms 64 bytes from 172.16.0.157: icmp_seq3 ttl64 time0.038 ms--- 172.16.0.157 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev 0.022/0.032/0.038/0.010 ms此时再从ns0和ns1尝试ping主机IP发现已经可以正常通信现在我们已经通过将bridge0设置为缺省网关的方法打通了namespace和主机之间的网络。 使用iptables连接namespace与外部网络 在上面的例子中虽然使用路由连接了namespace和主机的网络但是在namespace中无法访问外部的网络。 尝试在命名空间ns0和ns1中访问百度 $ ip netns exec ns1 ping www.baidu.com -c 3 ping: www.baidu.com: Name or service not known$ ip netns exec ns0 ping www.baidu.com -c 3 ping: www.baidu.com: Name or service not known下面使用iptables做DNAT转换连接namespace与外部网络 $ iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth0 -j MASQUERADE$ iptables --list -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destinationChain INPUT (policy ACCEPT) target prot opt source destinationChain OUTPUT (policy ACCEPT) target prot opt source destinationChain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 192.168.1.0/24 anywhere再次尝试在命名空间ns0和ns1中访问百度 $ ip netns exec ns0 ping www.baidu.com -c 3 PING www.a.shifen.com (14.119.104.254) 56(84) bytes of data. 64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq1 ttl51 time9.83 ms 64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq2 ttl51 time9.37 ms 64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq3 ttl51 time9.42 ms--- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev 9.378/9.545/9.832/0.232 ms$ ip netns exec ns1 ping www.baidu.com -c 3 PING www.a.shifen.com (14.119.104.254) 56(84) bytes of data. 64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq1 ttl51 time9.31 ms 64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq2 ttl51 time9.35 ms 64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq3 ttl51 time9.39 ms--- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev 9.319/9.355/9.396/0.031 ms发现在命名空间ns0和ns1中可以访问外部网络了。
http://www.pierceye.com/news/865873/

相关文章:

  • 建设银行官方网站企业网银手机网站怎么dw做
  • 简单自适应网站wordpress联系表格
  • 雄县没有做网站的公司广告设计与制作就业率
  • 网站找谁做贵州网架公司
  • 做纸箱在什么网站找客户wordpress默认导航栏
  • wordpress采集自动伪原创福州360手机端seo
  • 工信部网站备案要求重庆网站公司设计
  • 宛城区建网站淘宝网页设计报告
  • 网站后台需求字节跳动员工人数2019
  • saas建站 cms科技感背景素材
  • 武进区城乡建设局网站在线员工后台网站建设
  • 关于网站开发人员的薪资易语言怎么做无限打开网站
  • 网站备案名称几个字企业网站定制案例
  • 新浪云服务器做网站重庆建设厅官方网站
  • 苏州市住房和城乡建设局官方网站郑州专业旅游网站建设
  • 网站免费正能量直接进入浏览器下载安装公开课网站建设
  • 个人做电影网站合法吗网页制作与网站建设完全学习手册下载
  • 椒江做网站wordpress的分类
  • 新手做网站应该注意什么重庆市建设工程造价信息网公众号
  • 网址输入奉化seo页面优化外包
  • 坪山商城网站建设哪家效益快教务管理系统是应用软件吗
  • 深圳网站搭建找谁怎么在手机上制作app
  • 做app和做网站的区别桂林市天气预报15天
  • 高端织梦html5网站模板 dedecms网络公司模板关键词排名优化方法
  • 上海网站建设咨找个网站2021能看到
  • 可以用服务器做网站查询公司信息
  • 个人可以备案企业网站吗旅行社网站 模板
  • 三丰云做网站步骤网站怎么上传ftp
  • 做二手车有哪些网站有哪些手续网站建设单位有哪些方面
  • 建设网站的和服务器常州免费网站制作