web-dev-qa-db-ja.com

1台のコンピューター上のゲートウェイとルーター

私たちは、インターネットゲートウェイとルーターの両方として動作できるLinux/BSD/etcボックスのセットアップを試みてきました。状況をうまく表現する方法がわからないので、ご容赦ください...

現在、次のネットワークインターフェイス(マスクされたIPアドレス)でVyattaを使用しています。

  • eth0-> x.x.x.178/30-WAN(アップストリームルーター:x.x.x.177)
    • vlan100-> eth0に添付
  • br100-> y.y.y.1-eth0.vlan100とeth1のブリッジ
  • eth1-> y.y.y.y/24-WAN(x.x.x.178はこのサブネットのアップストリームルーター)でブリッジされます)
  • eth2-> 10.10.0.1/16-プライベートネットワーク、NAT through y.y.y.1

問題は次のとおりです。NATルールを設定して10.10.0.0/16トラフィックをbr100経由でルーティングする場合、何もルーティングされません。ただし、NAT eth0を介してルーティングするルール。トラフィックは実際にルーティングされますが、現在はyyy1アドレスではなくxxx178アドレスから送信されています。

私はここで何が間違っているのですか?どんな考えや提案も役に立ちます。


現在の構成(多少の毛羽立ちを除く):

interfaces {
    bridge br100 {
        address y.y.y.1/24
    }
    ethernet eth0 {
        address x.x.x.178/30
        vif 100 {
            bridge-group {
                bridge br100
            }
        }
    }
    ethernet eth1 {
        bridge-group {
            bridge br100
        }
    }
    ethernet eth2 {
        address 10.10.0.1/16
    }
    loopback lo {
    }
}
services {
    nat {
        rule 1 {
            outbound-interface br100
            source {
                address 10.10.0.0/16
            }
            type masquerade
        }
    }
}
system {
    gateway-address x.x.x.177
}
1
miquella

これを解決する方法は、NATルールをマスカレードではなくSNATに変更することでした。

2
Futoque

ほとんどのディストリビューションでは、ルーターとして機能するように設定されていない限り、デフォルトでIPトラフィックの転送を拒否する動作になります。通常、私はそのような作業にパケットプロテクター(asusホームルーターで実行されているLinux)を使用します。ただし、/ etc /sysctl.confの設定を確認する必要があります。

'net.ipv4.ip_forward ='を探します。トラフィックを転送する場合は、この値を1に設定する必要があります(そうでない場合は '0')。ここでファイルを変更すると、再起動後も変更が持続し、ネットワークサービスの開始時に開始されます。

1
haus