クロスオーバーケーブルを介して2台のマシンを接続し、1つのネットワークを共有したいので、1つのネットワークを持つ1つのdhcpサーバーしかなく、このLAN内の各サーバーは相互に接続できます。これは理にかなっていますか、それとも2つの別々のdhcpサーバーとネットワークがより良い方法ですか?
以下にいくつかの設定を追加し、いくつかの接続テストを行いました。
要するに:
machine1ポート5678にssh接続すると、10.62.62.20への接続が機能し、machine1でこの接続からの海岸壁のログエントリのみが表示されます。しかし、machine2ポート5678に接続すると、接続が機能せず、machine1で火星のログを確認できます。
Nov 29 15:26:57 machine1 kernel: [ 7495.749894] martian source **ssh.client.ip.addr** from **yyy.yyy.yyy.yyy**, on dev br1
machine1/etc/shorewall/rules
***snip***
DNAT:debug net lan:10.62.63.20:22 tcp 5678 - xxx.xxx.xxx.xxx
***snip***
machine2/etc/shorewall/rules
***snip***
DNAT:debug net lan:10.62.63.30:22 tcp 5678 - yyy.yyy.yyy.yyy
***snip***
machine1/etc/network/interfaces
# Loopback device:
auto lo
iface lo inet loopback
# device: eth0
#allow-hotplug eth0
auto eth0
iface eth0 inet manual
# device: eth1
#allow-hotplug eth1
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static
address xxx.xxx.xxx.xxx
broadcast xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
bridge_ports eth0
bridge_fd 0
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_stp off
auto br1
iface br1 inet static
address 10.62.63.1
broadcast 10.62.63.255
netmask 255.255.255.0
bridge_ports eth1
bridge_fd 0
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_stp off
machine2/etc/network/interfaces
# Loopback device:
auto lo
iface lo inet loopback
# device: eth0
#allow-hotplug eth0
auto eth0
iface eth0 inet manual
# device: eth1
#allow-hotplug eth1
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static
address yyy.yyy.yyy.yyy
broadcast yyy.yyy.yyy.yyy
netmask yyy.yyy.yyy.yyy
gateway yyy.yyy.yyy.yyy
bridge_ports eth0
bridge_fd 0
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_stp off
auto br1
iface br1 inet static
address 10.62.63.3
broadcast 10.62.63.255
netmask 255.255.255.0
bridge_ports eth1
bridge_fd 0
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_stp off
ip route show
yyy.yyy.yyy.yyy/yy dev br0 proto kernel scope link src yyy.yyy.yyy.yyy
10.62.63.0/24 dev br1 proto kernel scope link src 10.62.63.1
default via yyy.yyy.yyy.yyy dev br0
ping 10.62.63.3
to br1 ip(remote):okping 10.62.63.1
to br1 ip(local):okping 10.62.63.2
to dns(local):okping 10.62.63.20
to web01(ローカル):わかりましたping 10.62.63.30
to web02(リモート):わかりましたssh 10.62.63.20
to web01(ローカル):わかりましたssh 10.62.63.30
to web02(リモート):わかりましたip route show
yyy.yyy.yyy.yyy/yy dev br0 proto kernel scope link src yyy.yyy.yyy.yyy
10.62.63.0/24 dev br1 proto kernel scope link src 10.62.63.3
default via yyy.yyy.yyy.yyy dev br0
ping 10.62.63.3
to br1 ip(local):okping 10.62.63.1
to br1 ip(remote):okping 10.62.63.2
to dns(remote):okping 10.62.63.20
to web01(リモート):わかりましたping 10.62.63.30
to web02(ローカル):わかりましたssh 10.62.63.20
to web01(リモート):わかりましたssh 10.62.63.30
to web02(ローカル):わかりました問題は、インバウンドではなく、アウトバウンドパケットでした。
dhcpサーバーは両方のマシンに同じゲートウェイ(10.62.63.1)を提供したため、machine2のdnatインバウンドパケットはそれらの場所(machine2のweb)に到達するのに問題はありませんでしたが、返されるパケットはmachine1のゲートウェイ(10.62。 63.1)そしてそれが来ていた場所からではありません(10.62.63.3)。
したがって、マーションパケットとしてmachine1に到達します。
解決策は、DNS(dnsmasq)にタグを追加して、異なるホスト上の仮想マシンが異なるゲートウェイを取得するようにすることでした。
/etc/dnsmasq.conf
*** snip ***
dhcp-Host=set:machine1,ff:ff:ff:ff:ff:ff,web01,10.62.63.20
dhcp-Host=set:machine2,ee:ee:ee:ee:ee:ee,web02,10.62.63.30
dhcp-option=tag:machine1,option:router,10.62.63.1
dhcp-option=tag:machine2,option:router,10.62.63.3
*** snip ***