thảo luận Cộng đồng người dùng MikroTik Router

chạy tốt rồi bác ơi, em lại biết thên cái ULA này, món ipv6 luôn là cái lờ mờ với em :D

Chỉ thiếu bước đưa cái container bridge vào LAN list để traffic ra Internet bình thường là đủ
Đúng bác ạ, em quên vụ đưa bridge vào LAN list ở trên. Với ở trên em vừa edit lại đoạn cho địa chỉ vào bridge đấy bác. Khỏi phải pool làm gì bác ạ, tại cái prefix cố định mình tự quản lý được nên em sửa thành add thẳng địa chỉ gồm cả phần prefix và không chọn pool rồi bác nhé.
 
VETH của mình để mỗi IPv4 mà cái trong bảng IPv6 cho bridge chứa adguard container nó là "dynamic, link local", vẫn có ipv6 bình thường là sao nhỉ :D
Địa chỉ mà nó ghi link local thì là địa chỉ bắt đầu bằng fe80::/10 ạ. Địa chỉ này mọi thiết bị có stack IPv6 đều gắn cho các interface mạng của mình và chỉ có giá trị giữa các thiết bị chia sẻ nhau 1 cái layer 2 ạ. Thí dụ bác cắm cáp mạng vào cổng RJ45 rồi vào switch, rồi cắm mấy thiết bị khác vào cùng switch, thì các thiết bị mỗi cái tạo cho mình một cái địa chỉ đầu fe80::/10 và có thể dùng nó để nói chuyện với các thiết bị khác cùng cắm vào cái switch đó (hoặc nhiều tầng switch, đại khái là khi các thiết bị nói truyện trực tiếp với nhau bằng MAC address được thì dùng địa chỉ link local nói chuyện với nhau ở tầng IPv6 được mà không cần router hay DHCPv6 gì cả. Không giới hạn ở ethernet, nếu layer bên dưới là PPP (point to point) thì ở hai đầu cũng có thể tự gán địa chỉ link local cho mình và nói chuyện với đầu kia.

Nhưng cái scope của cái địa chỉ đó chỉ là ở mức cùng link layer, không vượt ra ngoài được, tức là khi bác có nhiều VLAN, hay LAN với WAN thì địa chỉ ở mạng này không route sang mạng bên kia được. Ngoài ra một máy có nhiều interfaces thì khi dùng địa chỉ này là địa chỉ đích bác sẽ phải thêm cái phần nhận dạng interface vào đằng sau địa chỉ để còn biết đi ra ngoài bằng interface nào, kiểu fe80::65:93ee:24d%ether4 ý, hay dưới windows dùng số id của adapter fe80::65:93ee:24d%17

Có địa chỉ link local mà không có địa chỉ global unique address GUA (hoặc ULA và có sự trợ giúp của router để NAT) thì không ra ngoài internet được ạ, thậm chí còn không sang được mạng LAN bên cạnh.
 
chạy tốt rồi bác ơi, em lại biết thên cái ULA này, món ipv6 luôn là cái lờ mờ với em :D

Chỉ thiếu bước đưa cái container bridge vào LAN list để traffic ra Internet bình thường là đủ

Nhược điểm rất lớn của ULA khiến nó chỉ được dùng với những trường hợp không có được địa chỉ global GUA là địa chỉ ULA có mức độ ưu tiên thấp hơn IPv4. Tức là nếu máy của bác có địa chỉ IPv4 và địa chỉ ULA IPv6, thì khi nó ra ngoài internet nó sẽ luôn ưu tiên sử dụng IPv4 trước. Thí dụ domain google.com resolve ra cả địa chỉ IPv4 và IPv6 nhưng máy của bác sẽ chỉ dùng IPv4 để vào google.com. Chỉ khi đích đến 100% không hỗ trợ IPv4, thí dụ domain name chỉ có AAAA record, không có A record, hay bác gõ hẳn địa chỉ đích IPv6 ra bằng tay, thì lúc đó IPv6 mới được sử dụng.

Còn nếu máy bác có địa chỉ IPv4 và địa chỉ IPv6 global (GUA) thì khi vào google.com các hệ điều hành ngày nay sẽ chọn IPv6 trước tiên.

Nếu bác vào shell container kia và ping google.com bác sẽ thấy nó ping địa chỉ IPv4 của google. Còn trên PC của bác có IPv6 địa chỉ xịn, ping google.com sẽ là ping địa chỉ IPv6.
 
Last edited:
khi nãy em nghĩ, nếu nhà mạng cấp cho mình prefix /64, vậy mình có tự chia nhỏ hơn 1 phần cho cái LAN bridge và dùng 1 phần khác cho container bridge được không ? như vậy mình sẽ có GUA luôn cả 2 bên ?

Bác có thể làm được điều này nhưng nó sẽ vô cùng bất tiện với khả năng hiện thời của RouterOS ạ. Lý do là DHCPv6 server của RouterOS không có khả năng cấp phát địa chỉ IPv6 đơn lẻ cho thiết bị, chỉ có khả năng làm máy chủ cấp prefix (prefix delegation). Còn cái để các thiết bị tự cấp địa chỉ cho mình mà dùng được trên RouterOS là SLAAC (bật cái Advertise trong cửa sổ Address với thêm entry bên Neighbor Discovery) thì nó bắt buộc prefix phải là /64.

Tức là giờ bác muốn chia nhỏ cái nhà mạng cấp ra thành nhiều cái /80 chẳng hạn, thì bác phải add trên router các dải /80 cho các bridge/vlan, v.v... mà không được bật Advertise (bật thì nó cũng không cho bác điền dải nhỏ hơn /64 đâu), sau đó trên từng thiết bị bác sẽ phải đặt địa chỉ static bằng tay. Điều này cũng có nghĩa là mỗi khi quay PPPoE nhà mạng cho prefix mới thì bác lại phải chạy một vòng qua các thiết bị sửa lại prefix!

Bác có thể nghĩ đến ý tưởng làm kiểu để nguyên cái /64 với SLAAC trên bridge chính, để các thiết bị cắm vào bridge chính đó tự nhận được địa chỉ, và bên cạnh đó bác nhặt ra vài địa chỉ, hoặc vùng địa chỉ nhỏ trong dải đó rồi gắn bằng tay cho các thiết bị và interface khác. Lúc này phải thêm entry vào bảng route, để cho các route có dải nhỏ hơn đó được lái ra interface đúng, còn cái route cho cái subnet /64 thì vẫn lái ra cái bridge, và tất nhiên phải cầu nguyện là không có thiết bị dùng SLAAC nào tự gán cho mình 1 địa chỉ rơi đúng vào cái phần bác tách ra này. Vẫn bị vấn đề phải sửa địa chỉ mỗi khi nhà mạng cho subnet mới, nhưng nếu bác chỉ dùng cho các container chạy trên router thì về lý thuyết có thể viết script tự update phần prefix của các container này.

Tuy nhiên cách này cũng sẽ FAIL một cách đáng buồn, ở chỗ là có thể các container của bác vào được internet bằng địa chỉ GUA không cần NAT, nhưng đổi lại, các thiết bị dùng SLAAC ở cái subnet /64 kia hết đường nối vào các container này nữa. Lý do là các thiêt bị cấu hình với SLAAC kia nhìn thấy subnet của mình là /64, nên khi bác cho chúng nối vào 1 địa chỉ của container đã được bác hack kiểu kia thì chúng sẽ nghĩ địa chỉ đó vẫn nằm trong subnet với mình, nên sẽ không đi qua router mà tìm cách nói chuyện với địa chỉ đó trực tiếp trên link layer (layer 2), bằng neighbor discovery này nọ. Trong khi cái container thì không nằm trên cùng layer 2 này rồi nên sẽ không bao giờ tìm được nó.

Tóm lại chia nhỏ subnet /64 chỉ thực tế khi bác có prefix tương đối tĩnh, và có máy chủ DHCPv6 có đầy đủ tính năng, hoặc số thiết bị đủ ít để có thể cấu hình manual bằng tay được.
 
chắc phải xem lại cái container này, chạy có vẻ không ngon lắm với ac² nên cứ vài tiếng lại tự stop làm ảnh hưởng cả nhà. Mà đã dùng ssd rời qua usb port rồi chứ không phải là cắm usb key bình thường cho nó. ^^
Chắc không đủ RAM bác ạ, con nhà em không chạy container, cấu hình không có gì đặc biệt, thêm mỗi 1 interface WireGuard mà chạy mồi hồi khi log đã đầy thì còn 54MB RAM trống thôi. Cái AGH của bác phải chia sẻ chỗ RAM còn lại đó.
 
Mô hình: (Modem nhà mạng) --> Mikrotik --> Router
Cho em hỏi, có cách nào để em quay pppoe trên cả Mik và Router không ạ?
 
chắc phải xem lại cái container này, chạy có vẻ không ngon lắm với ac² nên cứ vài tiếng lại tự stop làm ảnh hưởng cả nhà. Mà đã dùng ssd rời qua usb port rồi chứ không phải là cắm usb key bình thường cho nó. ^^
Lên Pc router thôi :beauty:
Cứ gọi là tha hồ add :D
 
Các bác cho e xin script để auto enable với disable lte với. Trước dùng Wintel lắp phát wifi bình thường chả sao, mấy tháng nay dùng Big50Y cứ vài hôm lại mất mạng, phải dis/enable lte hoặc reboot mới có mạng trở lại ( trước đây dùng 7.3 giờ dùng 7.13.3)
 
thế tự nhiên em ac² bỏ không không làm gì trong khi nó chả bị hỏng, phí hehe

mà 2 củ là con nào bạn ? mình chưa bao giờ ngó sang router pc cả
Ổn định thì Sophos cắm mik hoặc mấy con brand mini PC. China no-name thì cấu hình mạnh hơn nhiều.
ac2 thanh lý môn hộ cho thím nào có nhu cầu phù hợp thôi.
 
Last edited:
Ổn định thì Sophos cắm mik hoặc mấy con brand mini PC. China no-name thì cấu hình mạnh hơn nhiều.
ac2 thanh lý môn hộ cho thím nào có nhu cầu phù hợp thôi.
ủa mấy con này cấu hình mạnh ghê bác
 
thế tự nhiên em ac² bỏ không không làm gì trong khi nó chả bị hỏng, phí hehe

mà 2 củ là con nào bạn ? mình chưa bao giờ ngó sang router pc cả
Không dùng thì bán đi là xong .
Tôi vừa nâng N5105 , 16Gb ram, 1 switch 2,5Gb giá 3củ . Chạy ưng cái bụng :beauty:
1000001089.jpg


1000001140.jpg
 
Các bác cho e xin script để auto enable với disable lte với. Trước dùng Wintel lắp phát wifi bình thường chả sao, mấy tháng nay dùng Big50Y cứ vài hôm lại mất mạng, phải dis/enable lte hoặc reboot mới có mạng trở lại ( trước đây dùng 7.3 giờ dùng 7.13.3)
Code:
global WaitingforTimer
global LteLoop 1
while ( $LteLoop =1 ) do={
  # Add Apn
  if ([ :len [ /interface/ lte/apn/ find where name="Lte1_Auto" ] ] =0)  do={
    /interface lte apn
    add name="Lte1_Auto" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=2 ip-type=auto authentication=none}
  if ([ :len [ /interface/ lte/apn/ find where name="Lte1_IPv4" ] ] =0)  do={
    /interface lte apn
    add name="Lte1_IPv4" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=2 ip-type=ipv4 authentication=none}
  if ([ :len [ /interface/ lte/apn/ find where name="Lte2_Auto" ] ] =0)  do={
    /interface lte apn
    #add name="Lte2_Auto" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=auto authentication=none
    add name="Lte2_Auto" apn="m3-world" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=auto authentication=pap user="mms" password="mms"
  }
  if ([ :len [ /interface/ lte/apn/ find where name="Lte2_IPv4" ] ] =0)  do={
    /interface lte apn
    #add name="Lte2_IPv4" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=ipv4 authentication=none
    add name="Lte2_IPv4" apn="m3-world" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=ipv4 authentication=pap user="mms" password="mms"
  }
  # Change Apn when LTE1, LTE2 disconnected
  if ([ :len [ /interface/find where name="lte1" ] ]=1 and [ :len [ /ip/address/find where interface="lte1" ] ]=0 ) do={       
    if ([/interface lte get [find name=lte1] disabled]=true) do={
      /interface lte set [find name=lte1] disabled=no}
    if ( [/interface lte get [ find name=lte1 ] apn-profiles]!="Lte1_IPv4") do={
      /interface lte set [ find name=lte1 ] apn-profiles="Lte1_IPv4"} else={
      /interface lte set [ find name=lte1 ] apn-profiles="Lte1_Auto"}}
  if ([ :len [ /interface/find where name="lte2" ] ]=1 and [ :len [ /ip/address/find where interface="lte2" ] ]=0) do={     
    if ([/interface lte get [find name=lte2] disabled]=true) do={
      /interface lte set [find name=lte2] disabled=no} 
    if ( [/interface lte get [ find name=lte2 ] apn-profiles]!="Lte2_IPv4") do={
      /interface lte set [ find name=lte2 ] apn-profiles="Lte2_IPv4"} else={
      /interface lte set [ find name=lte2 ] apn-profiles="Lte2_Auto"}}
  # Change Apn when LTE1, LTE2 connected but wrong APN
  do {
    if ( [/interface lte get [ find name=lte1 ] apn-profiles]!="Lte1_IPv4" and [/interface lte get [ find name=lte1 ] apn-profiles]!="Lte1_Auto" and [ :len [ /interface/find where name="lte1" ] ]=1 and [ :len [ /ip/address/find where interface="lte1" ] ]=1 ) do={
      /interface lte set [ find name=lte1 ] apn-profiles="Lte1_Auto"}
  } on-error={ }
  do {
    if ( [/interface lte get [ find name=lte2 ] apn-profiles]!="Lte2_IPv4" and [/interface lte get [ find name=lte2 ] apn-profiles]!="Lte2_Auto" and [ :len [ /interface/find where name="lte2" ] ]=1 and [ :len [ /ip/address/find where interface="lte2" ] ]=1 ) do={
      /interface lte set [ find name=lte2 ] apn-profiles="Lte2_Auto"}
  } on-error={ }
  # Waiting for LTE1, LTE2 reconnect
  if ( $WaitingforTimer>0) do={ set WaitingforTimer 0 }
  while ( $WaitingforTimer <61 and [ :len [ /ip/address/find where interface="lte1" ] ]=0 and [ :len [ /interface/find where name="lte1" ] ]=1 ) do={
    delay 1s;
    set WaitingforTimer ($WaitingforTimer+1)}
  while ( $WaitingforTimer <61 and [ :len [ /ip/address/find where interface="lte2" ] ]=0 and [ :len [ /interface/find where name="lte2" ] ]=1) do={
    delay 1s;
    set WaitingforTimer ($WaitingforTimer+1)}
  # change Lte Interface Name
  do {
    #if ([/interface lte get [find name=lte1] comment]="box 3.0_VINA" and [len [interface lte find]]=2 ) do={
      #/interface lte set [find comment="box 3.0_VINA"] name=lte4 }
  } on-error={}
  delay 1s
}
lte interface thím để đúng tên lte1 hoặc lte2, chỉnh lại distance lte trong scripts nếu cần thiết
 
Code:
global WaitingforTimer
global LteLoop 1
while ( $LteLoop =1 ) do={
  # Add Apn
  if ([ :len [ /interface/ lte/apn/ find where name="Lte1_Auto" ] ] =0)  do={
    /interface lte apn
    add name="Lte1_Auto" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=2 ip-type=auto authentication=none}
  if ([ :len [ /interface/ lte/apn/ find where name="Lte1_IPv4" ] ] =0)  do={
    /interface lte apn
    add name="Lte1_IPv4" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=2 ip-type=ipv4 authentication=none}
  if ([ :len [ /interface/ lte/apn/ find where name="Lte2_Auto" ] ] =0)  do={
    /interface lte apn
    #add name="Lte2_Auto" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=auto authentication=none
    add name="Lte2_Auto" apn="m3-world" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=auto authentication=pap user="mms" password="mms"
  }
  if ([ :len [ /interface/ lte/apn/ find where name="Lte2_IPv4" ] ] =0)  do={
    /interface lte apn
    #add name="Lte2_IPv4" apn="m9-reddi" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=ipv4 authentication=none
    add name="Lte2_IPv4" apn="m3-world" use-peer-dns=yes use-network-apn=yes add-default-route=yes default-route-distance=3 ip-type=ipv4 authentication=pap user="mms" password="mms"
  }
  # Change Apn when LTE1, LTE2 disconnected
  if ([ :len [ /interface/find where name="lte1" ] ]=1 and [ :len [ /ip/address/find where interface="lte1" ] ]=0 ) do={     
    if ([/interface lte get [find name=lte1] disabled]=true) do={
      /interface lte set [find name=lte1] disabled=no}
    if ( [/interface lte get [ find name=lte1 ] apn-profiles]!="Lte1_IPv4") do={
      /interface lte set [ find name=lte1 ] apn-profiles="Lte1_IPv4"} else={
      /interface lte set [ find name=lte1 ] apn-profiles="Lte1_Auto"}}
  if ([ :len [ /interface/find where name="lte2" ] ]=1 and [ :len [ /ip/address/find where interface="lte2" ] ]=0) do={   
    if ([/interface lte get [find name=lte2] disabled]=true) do={
      /interface lte set [find name=lte2] disabled=no}
    if ( [/interface lte get [ find name=lte2 ] apn-profiles]!="Lte2_IPv4") do={
      /interface lte set [ find name=lte2 ] apn-profiles="Lte2_IPv4"} else={
      /interface lte set [ find name=lte2 ] apn-profiles="Lte2_Auto"}}
  # Change Apn when LTE1, LTE2 connected but wrong APN
  do {
    if ( [/interface lte get [ find name=lte1 ] apn-profiles]!="Lte1_IPv4" and [/interface lte get [ find name=lte1 ] apn-profiles]!="Lte1_Auto" and [ :len [ /interface/find where name="lte1" ] ]=1 and [ :len [ /ip/address/find where interface="lte1" ] ]=1 ) do={
      /interface lte set [ find name=lte1 ] apn-profiles="Lte1_Auto"}
  } on-error={ }
  do {
    if ( [/interface lte get [ find name=lte2 ] apn-profiles]!="Lte2_IPv4" and [/interface lte get [ find name=lte2 ] apn-profiles]!="Lte2_Auto" and [ :len [ /interface/find where name="lte2" ] ]=1 and [ :len [ /ip/address/find where interface="lte2" ] ]=1 ) do={
      /interface lte set [ find name=lte2 ] apn-profiles="Lte2_Auto"}
  } on-error={ }
  # Waiting for LTE1, LTE2 reconnect
  if ( $WaitingforTimer>0) do={ set WaitingforTimer 0 }
  while ( $WaitingforTimer <61 and [ :len [ /ip/address/find where interface="lte1" ] ]=0 and [ :len [ /interface/find where name="lte1" ] ]=1 ) do={
    delay 1s;
    set WaitingforTimer ($WaitingforTimer+1)}
  while ( $WaitingforTimer <61 and [ :len [ /ip/address/find where interface="lte2" ] ]=0 and [ :len [ /interface/find where name="lte2" ] ]=1) do={
    delay 1s;
    set WaitingforTimer ($WaitingforTimer+1)}
  # change Lte Interface Name
  do {
    #if ([/interface lte get [find name=lte1] comment]="box 3.0_VINA" and [len [interface lte find]]=2 ) do={
      #/interface lte set [find comment="box 3.0_VINA"] name=lte4 }
  } on-error={}
  delay 1s
}
lte interface thím để đúng tên lte1 hoặc lte2, chỉnh lại distance lte trong scripts nếu cần thiết
Thanks bác. Giờ dùng Sim Vinaphone thì cần phải đổi APN của Vinaphone ko bác?
 
Last edited:
chơi quá lớn :D

con này dùng ở nhà mình siêu dư rồi, trong khi con hiện tại treo tường nhỏ nhắn, im ru sau nhiều năm bền bỉ mà chỉ vì mong thêm tính năng vượt khả năng của nó thôi. Kệ, cứ để dùng vì nó có hỏng đâu :D
không muốn quá khả năng của nó thì thím làm con pi 3 chạy adguardhome :D
 
cảm ơn bác cho biết, nhưng mà nhìn hình giao diện thấy đã to khủng rồi mà để chỉ thêm mỗi AGH mà phải đổi cả ac² thì thôi, dùng DoH là đủ sống rồi
Kích thước dòng SG105/115 đây bác, cũng ko có to lắm. Dài gâp đôi hap ac2 thôi mà.
hap ac2
1711683745668.png

Sophos SG105/115
1711683680048.png
 
VPN hay nghe người ta nhắc draytek, chọn con nào to to tí tầm Vigor3910 chắc thừa sức cho cả tương lai :D
Vigor3910 thì to tiền quá, với nhu cầu cũng ko tới đó nữa, giờ mua thì quá phí. Mình thì đang muốn vọc Mikrotik nên chắc chọn 3011 xem thế nào. Thank bác nhé
 
Back
Top