Dummynet не совпадает по потокам
У меня есть две машины, как показано ниже:
To internet<---->PC_A<----->PC_B
PC_A имеет два интерфейса (один подключен к Интернету, а другой - к PC_B). PC_B должен пройти через PC_A для подключения к Интернету. Я запускаю Dummynet на ПК_А. PC_A имеет IP 192.168.1.1 на интерфейсе, обращенном к Интернету, и IP 10.42.0.1 на интерфейсе, обращенном к PC_B. PC_B bas 10.42.0.2 настроен на его интерфейс.
У меня есть две трубы в Dummynet, настроенные следующим образом:
ipfw add pipe 1 ip from 192.168.1.1 to any
ipfw add pipe 2 ip from any to 192.168.1.1
ipfw pipe 1 config bw 5000Kb/s
ipfw pipe 2 config bw 5000Kb/s
Если я запускаю тесты пропускной способности на двух машинах (скажем, speedtest.net), пропускная способность PC_A - это именно то, что я указываю в Dummynet, в то время как PC_B получает неограниченную пропускную способность. Я не понимаю, как это возможно, поскольку пакеты PC_B должны проходить через его шлюз, где он будет подчиняться правилам Dummynet.
Может кто-нибудь, пожалуйста, укажите мне на предложения.
Благодарю.
1 ответ
PC_A настроен на NAT или эта машина просто пересылает пакеты? Если первое отсутствует, ваши правила IPFW не будут перехватывать пакеты, проходящие через интерфейс PC_B 10.42.0.2. Если это еще не сделано, я бы предложил использовать tcpdump на интерфейсе 192.168.1.1 на PC_A для просмотра адресов источников пакетов, покидающих локальную сеть.
Чтобы уточнить, правила IPFW, которые вы установили для pipe1 и pipe2, будут сопоставлять только пакеты с адресами источника и назначения (соответственно) из 192.168.1.1...
В зависимости от топологии вашей сети и конфигурации маршрутизации вы можете достичь желаемого без NAT, используя фильтры входа / выхода в ваших правилах IPFW...
ipfw add pipe 1 ip from any to any in via em0
ipfw add pipe 2 ip from any to any out via em0
... однако без правильно настроенного NAT, я не уверен, как обратный трафик сможет вернуться обратно к исходному компьютеру.