私たちは、インターネットゲートウェイとルーターの両方として動作できる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
}
これを解決する方法は、NATルールをマスカレードではなくSNATに変更することでした。
ほとんどのディストリビューションでは、ルーターとして機能するように設定されていない限り、デフォルトでIPトラフィックの転送を拒否する動作になります。通常、私はそのような作業にパケットプロテクター(asusホームルーターで実行されているLinux)を使用します。ただし、/ etc /sysctl.confの設定を確認する必要があります。
'net.ipv4.ip_forward ='を探します。トラフィックを転送する場合は、この値を1に設定する必要があります(そうでない場合は '0')。ここでファイルを変更すると、再起動後も変更が持続し、ネットワークサービスの開始時に開始されます。