centos 7-linuxホストを使用して静的ルータをシミュレート

12478 ワード

準備作業:routeを使用してルーティングを操作する
  • 出力情報の解析
  • フィールド
    釈義Destination
    ターゲットネットワークまたはターゲットホストGateway
    ゲートウェイアドレスまたは'*'(未設定の場合)すなわち、ネットワークはこのIPを介して接続される.表示‘0.0.0.0’は、このルーティングが直接自機から送信されたことを示す.IP表示がある場合は、本経路がこのIPの転送を経て出なければならないことを示す.Genmask
    ターゲットネットワークのサブネットマスク,'255.255.255.255′はホストであり、′0.0である.0.0’はデフォルトのルーティングである.つまりnetmask;destinationとgenmaskは完全なネットワークに結合されている.Flags
    U(route is up)は、このルーティングが正常に起動するH(target is host)ターゲットルーティングがホストであることを示し、ネットワークG(use gateway)ではなく外部のホストを介して転送する必要があることを示し、転送データR(reinstate route for dynamic routing)が動的ルーティングを使用する場合、リカバリルーティング情報識別D(dynamically installed bu daemon or redirect)は、サービスによって動的ルーティングM(modified from routing daemon orredirect)に設定され、ルーティングが変更されたことを示す!(reject route)このルーティングは受け入れられません(安全でないネットワークに抵抗するために使用されます)Metric
    ルーティングの対象ネットワークアドレスに到達するには、いくつかのネットワークノード{hop}が必要である.Ref
    このルーティングルールの数を参照Use
    このルーティングルールを参照する転送パケットがいくつかありますIface
    ルーティング対応のネットワークインタフェースデバイスMSS
    このルーティングによるTCP接続のデフォルトの最大メッセージ長Window
    このルーティングによるTCP接続のデフォルトウィンドウサイズirtt
    初期RTTの往復時間
  • 命令の一般的な使い方
  • 一般的なディレクティブフォーマット:
          :
    route [n|ee]
              :
    route add|del [-net] [IP/CIDR] [gw|dev] [     ]
    route add|del [-net|-host] [     ] netmask [mask] [gw|dev] [     ]
    

    一般的なディレクティブオプション:routeオプション
    効用n
    通信プロトコルやホスト名を使用せずにipアドレス出力を直接使用ee
    より詳細なルーティング情報を表示add
    ルーティング情報の追加del
    ルーティング情報の削除-net
    ネットワークを追加し、ネットワーク番号のアドレスをすぐに追加する必要があります.-host
    ホストの追加netmask
    サブネットを設定し、サブネットマスクアドレスに続く必要があります.gw
    ゲートウェイ情報、ゲートウェイアドレスに続くdev
    どのネットワークデバイスを介してオンラインに出るかを設定し、ネットワークデバイス名に続く
    準備作業:IPエージェント転送機能のオン/オフ方法
    [root@centos6 ~]#
    [root@centos6 ~]# cat /etc/sysctl.conf | grep ip_forward
    net.ipv4.ip_forward = 0
    [root@centos6 ~]#
    

    プロファイル内のnet.ipv4.ip_forward値を1に変更し、sysctl -pを実行すると、IPエージェント転送機能がオンになります.逆に0はオフであり、同様にコマンドを実行するかホストを再起動する必要がある.
    準備作業:ゲートウェイGATEWAY
    ゲートウェイ(gateway)は、ネットワーク間コネクタ、またはプロトコルコンバータと呼ぶこともできる.OSIモデルでは、転送層に属する、主な役割は、2つの上位プロトコルの異なるセグメントを相互接続することである.ゲートウェイには異なる分類基準があり、ゲートウェイにも様々な種類があるが、そのうちTCP/IPプロトコルのゲートウェイが最も一般的である. :一方のネットワークが他方のネットワークのipアドレスに通信する. :セグメント内で利用可能なipアドレスは、一般に192.168のように1番目または最後である.0.1または192.168である.0.254. はっきり言って、2つの異なるセグメントのホストは通信を行い、2つのセグメントのゲートウェイを経なければ実現できない.一般的なルータにはデフォルトのゲートウェイアドレスがあり、通常は と呼ぶ.
    環境構築:ホストとダミーの構成
  • VMware Workstationで2つカスタマイズhost-only(ホストモードのみ)のアダプタ.ソフトウェア選択の経路は、 ・・テスト環境はカスタムVMnet9およびVMnet10を選択するが、ホストモードのアダプタ環境のみ、ホストホストに配置されたアダプタIPは、ダミーのゲートウェイアドレスGATEWAYであることに注意が必要である.以下は2つのテストアダプタのパラメータである:192.168.88.0/24および192.168.99.0/24.

  • VMnet9 :
           VMware Network Adapter VMnet9:
    
             DNS    . . . . . . . :
         . . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet9
           . . . . . . . . . . . . . : 00-50-56-C0-00-09
       DHCP     . . . . . . . . . . . :  
              . . . . . . . . . . :  
            IPv6   . . . . . . . . : fe80::193c:41ce:fdc7:253d%43(  )
       IPv4    . . . . . . . . . . . . : 192.168.88.254(  )
             . . . . . . . . . . . . : 255.255.255.0
           . . . . . . . . . . . . . :
       DHCPv6 IAID . . . . . . . . . . . : 721440854
       DHCPv6     DUID  . . . . . . . : 00-01-00-01-23-FF-C4-A7-C8-5B-76-1A-BC-9B
       DNS      . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                           fec0:0:0:ffff::2%1
                                           fec0:0:0:ffff::3%1
       TCPIP    NetBIOS  . . . . . . . :    
    

    VMnet10 :
           VMware Network Adapter VMnet10:
    
             DNS    . . . . . . . :
         . . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet10
           . . . . . . . . . . . . . : 00-50-56-C0-00-0A
       DHCP     . . . . . . . . . . . :  
              . . . . . . . . . . :  
            IPv6   . . . . . . . . : fe80::9416:a31d:2f36:db8e%44(  )
       IPv4    . . . . . . . . . . . . : 192.168.99.254(  )
             . . . . . . . . . . . . : 255.255.255.0
           . . . . . . . . . . . . . :
       DHCPv6 IAID . . . . . . . . . . . : 738218070
       DHCPv6     DUID  . . . . . . . : 00-01-00-01-23-FF-C4-A7-C8-5B-76-1A-BC-9B
       DNS      . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                           fec0:0:0:ffff::2%1
                                           fec0:0:0:ffff::3%1
       TCPIP    NetBIOS  . . . . . . . :    
    
  • 2台のダミーマシンを異なるセグメントのホストとしてクローンし、ゲートウェイを配置しないようにテストする.

  • ホストA88/24-netの配置、セグメント:192.168.88.0/24、IP:192.168.88.140.ルーティング確認ゲートウェイが通じるかどうかを確認し、ping 99セグメントのアドレスを試みる.
    [root@88/24-net ~]#
    [root@88/24-net ~]# cat /etc/centos-release
    CentOS release 6.3 (Final)
    [root@88/24-net ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    ONBOOT=yes
    IPADDR=192.168.88.140
    NETMASK=255.255.255.0
    NETWORK=192.168.88.0
    BROADCAST=192.168.88.255
    HWADDR=00:0C:29:9C:82:80
    NAME=eth0
    [root@88/24-net ~]#
    [root@88/24-net ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.88.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    [root@88/24-net ~]# ping 192.168.88.254
    PING 192.168.88.254 (192.168.88.254) 56(84) bytes of data.
    64 bytes from 192.168.88.254: icmp_seq=1 ttl=64 time=0.478 ms
    64 bytes from 192.168.88.254: icmp_seq=2 ttl=64 time=0.458 ms
    64 bytes from 192.168.88.254: icmp_seq=3 ttl=64 time=1.09 ms
    64 bytes from 192.168.88.254: icmp_seq=4 ttl=64 time=0.398 ms
    ^C
    --- 192.168.88.254 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3265ms
    rtt min/avg/max/mdev = 0.398/0.606/1.092/0.282 ms
    [root@88/24-net ~]#
    [root@88/24-net ~]# ping 192.168.99.254
    connect: Network is unreachable
    [root@88/24-net ~]#
    

    ホストB99/24-netの配置、セグメント:192.168.99.0/24、IP:192.168.99.140.ルーティング確認ゲートウェイが通じるかどうかを確認し、ping 88セグメントのアドレスを試みる.
    [root@99/24-net ~]#
    [root@99/24-net ~]# cat /etc/centos-release
    CentOS release 6.3 (Final)
    [root@99/24-net ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    ONBOOT=yes
    IPADDR=192.168.99.140
    NETMASK=255.255.255.0
    NETWORK=192.168.99.0
    BROADCAST=192.168.99.255
    HWADDR=00:0C:29:A6:E2:AF
    NAME=eth0
    [root@99/24-net ~]#
    [root@99/24-net ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.99.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
    [root@99/24-net ~]# ping 192.168.99.254
    PING 192.168.99.254 (192.168.99.254) 56(84) bytes of data.
    64 bytes from 192.168.99.254: icmp_seq=1 ttl=64 time=0.194 ms
    64 bytes from 192.168.99.254: icmp_seq=2 ttl=64 time=0.357 ms
    64 bytes from 192.168.99.254: icmp_seq=3 ttl=64 time=0.389 ms
    64 bytes from 192.168.99.254: icmp_seq=4 ttl=64 time=0.386 ms
    ^C
    --- 192.168.99.254 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3445ms
    rtt min/avg/max/mdev = 0.194/0.331/0.389/0.082 ms
    [root@99/24-net ~]#
    [root@99/24-net ~]# ping 192.168.88.254
    connect: Network is unreachable
    [root@99/24-net ~]#
    
  • アナログルートであるホストを配置するには、追加する必要があるVMnet9VMnet10の2つのNICが必要であり、同様にゲートウェイを配置する必要はない.セグメント192.168.88.0/24のIPは192.168.88.130、セグメント192.168である.99.0/24のIPは192.168.99.130である.最後に、ネットワークセグメントのホストと通信可能かどうかをテストする.

  • ダミールーティングホストvm-routerのネットワーク構成:
    [root@vm-router network-scripts]#
    [root@vm-router network-scripts]# pwd
    /etc/sysconfig/network-scripts
    [root@vm-router network-scripts]# cat /etc/centos-release
    CentOS Linux release 7.4.1708 (Core)
    [root@vm-router network-scripts]# cat ifcfg-ens32
    ONBOOT=yes
    IPADDR=192.168.88.130
    NETMASK=255.255.255.0
    BROADCAST=192.168.88.255
    NETWORK=192.168.88.0
    HWADDR=00:0C:29:D3:24:1B
    NAME=ens32
    [root@vm-router network-scripts]# cat ifcfg-ens34
    ONBOOT=yes
    IPADDR=192.168.99.130
    NETMASK=255.255.255.0
    BROADCAST=192.168.99.255
    NETWORK=192.168.99.0
    HWADDR=00:0C:29:D3:24:25
    NAME=ens32
    [root@vm-router network-scripts]# cd
    [root@vm-router ~]#
    [root@vm-router ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens32
    169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 ens34
    192.168.88.0    0.0.0.0         255.255.255.0   U     0      0        0 ens32
    192.168.99.0    0.0.0.0         255.255.255.0   U     0      0        0 ens34
    [root@vm-router ~]# ping 192.168.88.140
    PING 192.168.88.140 (192.168.88.140) 56(84) bytes of data.
    64 bytes from 192.168.88.140: icmp_seq=1 ttl=64 time=0.640 ms
    64 bytes from 192.168.88.140: icmp_seq=2 ttl=64 time=0.575 ms
    ^C
    --- 192.168.88.140 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1009ms
    rtt min/avg/max/mdev = 0.575/0.607/0.640/0.040 ms
    [root@vm-router ~]# ping 192.168.99.140
    PING 192.168.99.140 (192.168.99.140) 56(84) bytes of data.
    64 bytes from 192.168.99.140: icmp_seq=1 ttl=64 time=1.35 ms
    64 bytes from 192.168.99.140: icmp_seq=2 ttl=64 time=0.658 ms
    ^C
    --- 192.168.99.140 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1002ms
    rtt min/avg/max/mdev = 0.658/1.007/1.357/0.350 ms
    [root@vm-router ~]#
    
  • 仮想ルーティングホストを開くvm-routerのIPアドレス転送機能を2台のホストAとホストBに1つのルーティングルールを追加する.

  • 仮想ルーティングホストvm-routerIPアドレス転送機能をオン.(念のため、NICを再起動)
    [root@vm-router ~]#
    [root@vm-router ~]# sysctl -p
    [root@vm-router ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
    [root@vm-router ~]# sysctl -p
    net.ipv4.ip_forward = 1
    [root@vm-router ~]# systemctl restart network
    [root@vm-router ~]#
    

    ホストA88/24-netダミールーティングホストの同セグメントIPをゲートウェイとするルーティングルールを追加する.
    [root@88/24-net ~]#
    [root@88/24-net ~]# route add -net 192.168.99.0/24 gw 192.168.88.130
    [root@88/24-net ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.99.0    192.168.88.130  255.255.255.0   UG    0      0        0 eth0
    192.168.88.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    [root@88/24-net ~]#
    [root@88/24-net ~]# ping 192.168.99.140
    PING 192.168.99.140 (192.168.99.140) 56(84) bytes of data.
    64 bytes from 192.168.99.140: icmp_seq=1 ttl=63 time=0.949 ms
    64 bytes from 192.168.99.140: icmp_seq=2 ttl=63 time=1.27 ms
    64 bytes from 192.168.99.140: icmp_seq=3 ttl=63 time=1.31 ms
    64 bytes from 192.168.99.140: icmp_seq=4 ttl=63 time=1.22 ms
    ^C
    --- 192.168.99.140 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3320ms
    rtt min/avg/max/mdev = 0.949/1.191/1.319/0.148 ms
    [root@88/24-net ~]#
    

    ホストB99/24-net同様にルーティングルールを追加する、仮想ルーティングホストの同セグメントIPをゲートウェイとする.
    [root@99/24-net ~]#
    [root@99/24-net ~]# route add -net 192.168.88.0/24 gw 192.168.99.130
    [root@99/24-net ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.99.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
    192.168.88.0    192.168.99.130  255.255.255.0   UG    0      0        0 eth1
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
    [root@99/24-net ~]#
    [root@99/24-net ~]# ping 192.168.88.140
    PING 192.168.88.140 (192.168.88.140) 56(84) bytes of data.
    64 bytes from 192.168.88.140: icmp_seq=1 ttl=63 time=0.820 ms
    64 bytes from 192.168.88.140: icmp_seq=2 ttl=63 time=1.21 ms
    64 bytes from 192.168.88.140: icmp_seq=3 ttl=63 time=1.35 ms
    64 bytes from 192.168.88.140: icmp_seq=4 ttl=63 time=1.15 ms
    ^C
    --- 192.168.88.140 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3288ms
    rtt min/avg/max/mdev = 0.820/1.135/1.350/0.197 ms
    [root@99/24-net ~]#
    

    終了:この時点でホストAとホストBは互いに通信可能となる.